Table of Contents

What the model does

This section is for anyone who needs to know how a NEMSweep figure was produced before relying on it. It describes the framework: the dispatch, reliability, storage-sizing and cost engine in NEMSweep.Model. The framework has no hardcoded region list and no AEMO coupling; region identifiers are free-form strings, and the five-region, financial-year shape of the published results comes from the data the CLI feeds it. The grid model runs on a fixed one-hour timestep. The market-time offset, the single fixed UTC offset every series in a run shares, is a run parameter taken from the scenario period and defaulting to the NEM's UTC+10.

Given a set of regions, each with a demand series, generation and storage, a set of directed interconnectors, and a reliability standard, the framework dispatches the system hour by hour, grows battery storage where a region misses the standard, and prices the result. The rest of this section is how each of those steps works.

The pipeline

scenario config (JSON)
        │
        │  ScenarioDerivation.Derive  ── + demand series, + weather traces
        ▼
   PowerSystem            regions, fleets, storage, directed interconnectors
        │
        │  StorageSizingService.Size  ── outer loop, only when the target is missed
        │      └── Dispatcher.DispatchSystem  ── re-dispatched once per candidate
        ▼
   dispatch evidence      per-region and whole-system series, hour by hour
        │
        ├── SystemReliabilityAssessment   did it hold the standard?
        └── PowerSystemCostCalculator     what does it cost per MWh served?
                │
                ▼
        published artifacts (JSON)

Four stages, each with a clean boundary.

Intent. A Scenario is what you asked for. It owns the period, one fleet plan per region, the cost basis and any interconnectors. It knows nothing about files or data.

Realisation. ScenarioDerivation combines that intent with parsed demand and weather to produce a PowerSystem, the actual grid to be dispatched. This is a pure transformation. After it, nothing downstream is scenario-aware.

Dispatch. The Dispatcher walks the modelled period one hour at a time. Within each hour it dispatches generation in merit order, moves surplus between regions over the interconnectors, then operates storage. Demand it cannot meet becomes unserved energy; generation it cannot use becomes curtailment. See Dispatch.

Assessment. Reliability is measured as unserved energy against demand energy. If a region misses its target, StorageSizingService grows battery capacity and re-dispatches the entire system, until either every region complies or the search reports what stopped it. See Storage sizing. The final system is then priced, which Economics covers.

Why the two properties matter

The model is deterministic. No random draws, anywhere. The same inputs at the same commit produce identical results, value for value. There are no confidence intervals because there is no distribution, only the single realisation you asked for.

Determinism makes a difference between two runs attributable: if you changed one input and a number moved, that input moved it. That is what makes a sweep of dozens of runs a sensible unit of work rather than a statistical exercise.

The model is inspectable. Every assumption is either a value you supplied in the scenario or a constant in the assumptions register, and the register is checked against the code by a test. Every published result records the SHA-256 digest of the exact input bytes it was built from. Nothing about a result asks you to take the model's word for it.

The vocabulary

A small set of terms carries most of the meaning across this section, and each is used in exactly one sense.

Term Means
Region A node in the model, identified by a string. It has one demand series, its own fleets and storage, and imports and exports over interconnectors. The published example uses the five National Electricity Market regions (NSW1, QLD1, SA1, TAS1, VIC1); the framework places no constraint on the identifier or the count.
Fleet All capacity of one technology in one region, treated as a single unit.
Merit order Dispatch order: ascending short-run marginal cost, tie-broken by the GenerationTechnology enum order (Solar, Wind, Hydro, Coal, Gas).
Residual Demand less generation, within an interval. Positive is a deficit; negative is a surplus.
Unserved energy Demand that could not be met, from any source. The binding reliability measure, as a percentage of demand energy.
Curtailment Available generation that could not be used and was not stored.
Energy served Demand minus unserved energy. The denominator of every levelised cost. Distinct from delivered generation, which is generation that reached load.
Storage sizing Growing battery capacity until dispatch meets the reliability target, or reporting that the bounded search could not.
Sweep A baseline scenario plus a set of points, each point a free-form override patch on the baseline, lined up along one labelled axis. A point may change any number of inputs.

What the framework deliberately does not do

The framework is a system-planning model. It is not a market simulator, not a power-flow model, and not a forecast.

No bidding, no prices, no settlement. No unit commitment, so no minimum stable generation, no start-up costs and no ramp rates. No forced outages. No intra-regional network. No frequency control or system strength. No demand response. No security-constrained economic dispatch.

Those absences are what make the model small enough to run the published 25-point sweep, over five regions and 8,760 hourly intervals, in under ten minutes on ordinary hardware. That is the trade it exists to make. They are also why Limitations is required reading before you quote anything from it.

Where to go next

Page Covers
Dispatch The interval loop, merit order, hydro pacing, storage policy
Storage sizing The sizing search and what each outcome means
Economics Annuitisation, what is charged, and what the levelised figures mean
Transmission Directed links, prioritised max flow, losses and costing
Domain model reference Full ownership boundaries, invariants and unit semantics