> ## Documentation Index
> Fetch the complete documentation index at: https://docs.energy.nlead.ch/llms.txt
> Use this file to discover all available pages before exploring further.

# Assumptions & Confirmation Points

> What must be confirmed before go-live — deliberately not hard-coded

<Warning>
  None of the following is guessed into final behaviour. Each item is
  configurable or isolated behind an adapter, and marked `TODO(confirm...)`
  at the exact spot in the code. **Do not go live before closing every
  item.**
</Warning>

The Engrate integration itself is implemented against the **documented**
[Engrate Schedule Management API](https://docs.engrate.io) (endpoint, auth,
payload shape, units, one-call-per-TSO are confirmed by their docs) — the
remaining points are market-setup data and conventions:

<AccordionGroup>
  <Accordion title="1 — Balancing-group EIC codes" icon="fingerprint">
    The party EICs of our four balancing groups are **placeholders** in
    `config.py` (`AREA_MARKET_IDS`). Set the real codes before any live
    submission — Engrate validates EICs.
  </Accordion>

  <Accordion title="2 — TSO identifiers and receiver EICs" icon="tower-broadcast">
    `50HERTZ_DE_TSO` / receiver `10XDE-VE-TRANSMK` are taken from Engrate's
    documentation. The identifiers for Amprion, TenneT and TransnetBW
    follow the same pattern but must be verified against Engrate's console
    or support.
  </Accordion>

  <Accordion title="3 — EPEX/ECC exchange leg" icon="right-left">
    Two open points: the ECC counterparty party EIC
    (`EXCHANGE_COUNTERPARTY_EIC`, unset by default), and whether the leg
    must be submitted at all or is auto-nominated by ECC
    (`INCLUDE_EXCHANGE_LEG` flag). The balance computation always accounts
    for the delivery either way.
  </Accordion>

  <Accordion title="4 — Forecast series identifiers" icon="table-cells">
    Engrate's `production`/`consumption` series carry the same
    `out_party`/`in_party`/`out_area`/`in_area` structure as trades. The
    service currently fills all four with our own balancing group and area;
    confirm this layout with Engrate.
  </Accordion>

  <Accordion title="5 — Customer input granularity" icon="layer-group">
    Does the customer deliver per control area or per market location
    (MaLo)? Both are supported: series tagged with `control_area`, or
    tagged with `malo` plus a `malo_mapping` table in the request. If
    MaLo-tagged input becomes the norm, the mapping should move to
    configuration.
  </Accordion>

  <Accordion title="6 — Home control area" icon="house-flag">
    Which balancing group receives the ECC delivery is `HOME_CONTROL_AREA`
    config. The default `TenneT` is a placeholder, not a decision.
  </Accordion>

  <Accordion title="7 — Trader CSV format" icon="file-csv">
    Columns, `;` separator, UTF-8 encoding, `.` decimals and the filename
    convention `open_position_YYYYMMDD.csv` are assumptions to confirm with
    the trader. See `adapters/csv_format.py`.
  </Accordion>
</AccordionGroup>

## Out of scope (this version)

Settlement / MaBiS, intraday trading, actual trade execution, forecasting
itself (the customer provides the forecast) and REMIT reporting. The
domain/adapter split is designed so these can be added without reworking the
core.
