Skip to content

docs: add EXAA exchange adapter example notebook (05)#20

Merged
tommed merged 1 commit intomainfrom
docs/exaa-example-notebook
Mar 27, 2026
Merged

docs: add EXAA exchange adapter example notebook (05)#20
tommed merged 1 commit intomainfrom
docs/exaa-example-notebook

Conversation

@tommed
Copy link
Copy Markdown
Contributor

@tommed tommed commented Mar 27, 2026

Summary

  • Adds examples/05_exaa_exchange.ipynb — a comprehensive worked example for the EXAA exchange adapter
  • Refreshes executed outputs for notebooks 01–04 (re-run via make execute-notebooks)

Notebook overview

Scenario: Alpenstein Energy GmbH (Vienna) submits to the EXAA Classic day-ahead auction for a dual-zone portfolio:

Asset Zone Products
Reisseck II pumped-storage hydro AT 24 hourly bids (hEXA01hEXA24)
Bergkamen B CCGT DE-LU 96 quarter-hourly bids (qEXA01_1qEXA24_4)
Baseload block AT bEXAbase (01-24), divisible
Peak block AT bEXApeak (09-20), fill-or-kill

10 sections covering EXAA-specific concepts:

  1. Delivery day & CET timezone context (Classic vs Market Coupling deadlines)
  2. Hourly supply bids — standard_hourly_product_id, 3-tier hydro merit order
  3. Quarter-hourly bids — standard_quarter_hourly_product_id, post-MTU-transition DE-LU
  4. Block products — custom BlockProductResolver mapping period hours → exchange names; divisible vs fill-or-kill
  5. Order book assembly + bidding_zone_to_control_area zone verification
  6. EXAA conversion — composing a mixed ProductIdResolver for portfolios spanning both MTU resolutions
  7. Wire-format inspection — model_dump(by_alias=True) with annotated JSON
  8. Volume sign convention — assertion-backed demo: SELL = negative, BUY = positive (vs Nord Pool table)
  9. Unsupported bid types — LinkedBlockBid raises ValueError; filter_bids resolution pattern
  10. Visualisations — hydro price-band profile + block Gantt chart

Test plan

  • Notebook executes cleanly end-to-end (make execute-notebooks)
  • All assertions pass (sign convention checks)
  • No changes to library source code

🤖 Generated with Claude Code

Demonstrates the full pipeline from OrderBook to EXAA submission
payload for a dual-zone AT/DE-LU portfolio (Alpenstein Energy scenario):
hourly bids (hEXA01–hEXA24), quarter-hourly bids (qEXA01_1–qEXA24_4),
block products with a custom BlockProductResolver, volume sign
convention, wire-format inspection, and unsupported bid type handling.

Also refreshes executed outputs for notebooks 01–04.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@codecov
Copy link
Copy Markdown

codecov bot commented Mar 27, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@tommed tommed merged commit 3734f65 into main Mar 27, 2026
2 checks passed
@tommed tommed deleted the docs/exaa-example-notebook branch March 27, 2026 10:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant