Economics
This page is about the framework's cost engine (PowerSystemCostCalculator and
LevelisedCostCalculator in NEMSweep.Model). The figures it produces are the cost of
building and running the modelled system for one year, not a retail electricity bill. There is
no bidding, no settlement, and no market price anywhere in NEMSweep, and nothing here should be read
as what anyone would pay. See
Limitations §3
before quoting a dollar figure from a NEMSweep result.
Annuitisation
The cost engine prices exactly one year, and rejects a scenario whose period is not exactly one
year. The assets in that year last decades, though: a coal plant, a battery, an interconnector.
LevelisedCostCalculator spreads a one-off capital cost across an asset's technical life using the
standard capital recovery factor:
r(1 + r)^n / ((1 + r)^n − 1)
for real discount rate r and technical life n years. Multiplying a capital sum by that factor
gives the equal annual payment that would repay it, at that rate, over that life. That is how a
single modelled year can carry its fair share of an asset that will still be running in year
twenty.
The rate is real, not nominal: every cost figure in the model is stated in the scenario's
real-dollar year, so applying a nominal rate on top would double-count inflation. At a zero discount
rate the capital recovery factor is undefined (division by zero), so the calculator falls back to
straight-line recovery, 1/n, as the degenerate case.
What is charged for generation
For each generating fleet, the annual cost is:
annualised power capex + one year of fixed opex
+ variable opex on gross generated energy + fuel cost on gross generated energy
Capital cost is annuitised from the fleet's power capacity and technical life. Fixed opex is one year's charge against nameplate capacity. Variable opex and fuel cost are both charged on gross generated energy, before curtailment or storage charging are subtracted out, using the same short-run marginal cost components that set merit order: variable operating cost, and fuel price multiplied by heat rate.
What is charged for storage
For each realised storage fleet, the annual cost is:
annualised (power capex + energy capex) over technical life + one year of fixed power opex
charged against the fleet's total final capacity, including whatever capacity storage sizing introduced and not just what the scenario originally declared. There is no separate charge for the energy storage moves while charging. That is deliberate, not an omission: gross-generation variable operating cost and fuel are already charged on the energy used to charge storage, at the point that energy was generated, and a battery's round-trip loss is already folded into that gross-generation figure because more had to be generated than was later delivered. Charging storage again for its energy throughput would double-count it. For the same reason, the storage figure published here is not a standalone levelised cost of storage (LCoS). It prices only the storage asset itself, against the same energy-served denominator as everything else, rather than the delivered cost of energy that passed through storage.
The denominator
Every levelised figure, for generation, storage, transmission and the total alike, divides by
energy served: demand minus unserved energy (DispatchOutcome.EnergyServed in code). No
levelised figure divides by generation. A regional levelised cost uses only that region's own energy
served; the system figure uses the system total. Dividing by energy served rather than generation is
what makes the figures comparable to a genuine cost of supply: energy generated but curtailed, or
lost to storage round-trip inefficiency, was never served to anyone and so does not appear in the
denominator that spreads the system's cost.
Emissions
EmissionsCalculator accounts operational carbon dioxide over the same modelled year, from the same
dispatch evidence, and publishes an EmissionsSummary beside the cost breakdown. For each
generating fleet:
emissions = emissions intensity (t CO2-e/MWh) x gross generated energy
Gross, deliberately: this is the fuel term's basis, so energy a fleet generated to charge storage carries the emissions of generating it, and a battery's round-trip loss shows up as emissions rather than disappearing. Emissions are aggregated by region and by technology, and the per-technology contributions reconcile exactly to the system total, in the published artifact as well as in the model.
The series read is available generation, before curtailment. That is exact for the fleets that emit, because dispatch only constrains off Solar and Wind and records no curtailment for a dispatchable fleet; it is also why a scenario should leave those intensities at zero, since a non-zero one would be charged for output that was constrained off.
The published intensity divides system emissions by the same energy served denominator every levelised cost uses, so an emissions intensity and an SLCoE for the same run are comparable figures about the same year. A regional intensity charges the emissions a region's own plant released against the load that region served, so a net importer's figure understates the emissions behind its supply and a net exporter's overstates them; the system figure is free of that distortion.
The scope is combustion during generation. Fuel extraction and delivery, plant construction and decommissioning are all outside it, as is anything attributable to storage or transmission assets, which burn no fuel of their own here. This is an operational figure, not a life-cycle one, and like every cost figure it is only as good as the scenario's own assumptions.
Why regional costs do not sum to the system total
Transmission is annuitised once, at system level, from each directed interconnector's own capital and fixed-opex assumptions and its route length. It is never split or attributed back to either endpoint region. Every way of doing that split is arbitrary, whether by rating, by realised flow or evenly, so the model does not attempt one. The consequence is genuine rather than an oversight: summing every region's levelised cost will not reproduce the system levelised cost, because the system figure carries transmission and the regional figures explicitly do not.
Decimal versus double
Money and every cost-rate type (Money, EnergyPrice, GenerationEnergyCost, PowerCapacityCost,
and so on) use decimal, because cost arithmetic is base-10 and accumulating it in binary
floating-point would introduce artefacts a reader could easily mistake for a modelling error.
Measured physical quantities such as power, energy and distance remain double. The two only meet
inside typed conversion methods (PowerCapacityCost.For(Power), EnergyPrice.For(Energy), and so on), which
validate that the physical value is finite and non-negative before converting it. This is a
correctness-of-presentation choice, not a precision upgrade: using decimal prevents base-10
rounding artefacts from being mistaken for a model defect, but it does not make the underlying cost
assumptions any more accurate.
Cost-rate types
| Type | Unit | Prices |
|---|---|---|
Money |
AUD | A monetary amount: a cost, credit, or net adjustment. |
EnergyPrice |
AUD/MWh served | The output unit of every levelised cost figure (SLCoE and its regional equivalents). |
GenerationEnergyCost |
AUD/MWh generated | Variable operating cost and fuel-derived cost on gross generation; also short-run marginal cost. |
PowerCapacityCost |
AUD/MW | One-off generation or storage power capital cost. |
EnergyCapacityCost |
AUD/MWh of storage capacity (one-off) | Storage energy capital cost. Not AUD/MWh generated or served. |
AnnualPowerCapacityCost |
AUD/MW/year | Recurring fixed operating cost against installed power capacity. |
FuelPrice |
AUD/GJ (thermal) | Fuel price; combined with HeatRate to derive the fuel component of GenerationEnergyCost. |
HeatRate |
GJ/MWh | Thermal energy required per MWh generated. |
Emissions |
t CO2-e | A quantity of greenhouse gas released. Unsigned. |
GenerationEmissionsIntensity |
t CO2-e/MWh generated | A technology's emissions per MWh generated. The input assumption. |
ServedEmissionsIntensity |
t CO2-e/MWh served | Emissions per MWh served. The published outcome, and never an input. |
DistancePowerCost |
AUD/km/MW (one-off) | Interconnector capital cost, scaled by route length and directed capacity. |
AnnualDistancePowerCost |
AUD/km/MW/year | Interconnector fixed operating cost, scaled the same way. |
Next
- Storage sizing: how the Battery capacity priced here is arrived at.
- Transmission: the layering that produces the route length
DistancePowerCostandAnnualDistancePowerCostare charged against. - Limitations: what a NEMSweep AUD/MWh figure is not.