Skip to content

Energy price calculation

How the EMS converts the EPEX spot price into the net injection and consumption prices that drive PV curtailment and cost optimization.

The EMS never bases its decisions on the raw EPEX spot price directly. It first converts EPEX into the net injection price and the net consumption price using the contract parameters you configured. These net prices drive every price-based decision in the system, including PV curtailment and cost optimization.

The formulas below apply to a dynamic contract. Fixed, flexible and Spanish time-of-use contracts set the net prices differently, see Energy contracts for how each contract type is priced.

Supported countries and price source

Day-ahead spot prices are sourced from the ENTSO-E Transparency Platform for the project's bidding zone. The zone is derived automatically from the project's location. Coverage spans 22 European bidding zones across the following countries:

Country Bidding zone Local time
Belgium BE Europe/Brussels
Netherlands NL Europe/Amsterdam
Luxembourg LU Europe/Brussels
France FR Europe/Paris
Germany DE Europe/Berlin
Austria AT Europe/Vienna
Switzerland CH Europe/Zurich
Great Britain GB Europe/London
Poland PL Europe/Warsaw
Spain ES Europe/Madrid
Italy Seven zones (see below) Europe/Rome
Denmark Per project location Europe/Copenhagen
Sweden Per project location Europe/Stockholm
Norway Per project location Europe/Oslo
Ukraine UA Europe/Kyiv

Countries with several bidding zones

Some countries are not a single price area. Italy is split into its seven bidding zones (North, Centre-North, Centre-South, South, Calabria, Sicily and Sardinia), and Denmark, Sweden and Norway each have several zones as well. For these countries the correct zone follows from the project's location, and the day-ahead prices shown for the project are the prices of that zone, not a national average.

Prices are retrieved in 15-minute resolution, and one year of historical prices is available for the supported zones. If a project's country is not covered, the EMS falls back to the Belgian bidding zone for its day-ahead prices.

The formulas

Both prices are expressed in €/MWh:

Injection price   = (B × EPEX) − injection cost − injection distribution cost
Consumption price = (A × EPEX) + consumption cost + consumption distribution cost

Where:

  • A = consumption scaling factor
  • B = injection scaling factor
  • The costs are your fixed per-MWh contract components.

The injection price is what you actually earn (or pay) per MWh when you inject: it is the EPEX price minus the costs that come with injecting. Because those costs are subtracted, the injection price turns negative before EPEX itself does. The consumption price is what you actually pay per MWh imported: the EPEX price plus your consumption costs.

Contract parameters

You configure the following parameters for your project. They correspond one-to-one with the terms in the formulas above:

Parameter Symbol Effect
Consumption scaling factor A Multiplies EPEX in the consumption price
Consumption cost , Added to the consumption price
Consumption distribution cost , Added to the consumption price
Injection scaling factor B Multiplies EPEX in the injection price
Injection cost , Subtracted from the injection price
Injection distribution cost , Subtracted from the injection price

The break-even point

The injection and consumption costs are already included in the net prices, you do not set a separate threshold anywhere. The break-even EPEX price for injection is simply the sum of your injection costs:

Break-even EPEX = injection cost + injection distribution cost

Above that EPEX price the net injection price is positive (injecting pays); below it the net injection price is negative.

Worked example

With an injection scaling factor B = 1, injection cost €5/MWh and injection distribution cost €1/MWh:

Injection price = (1 × EPEX) − 5 − 1 = EPEX − 6
  • The break-even EPEX price is 6 €/MWh (5 + 1). At exactly EPEX 6 the net injection price is 0.
  • At an EPEX price of 4.01 €/MWh, the net injection price is 4.01 − 6 = −1.99 €/MWh. This is negative, injecting would cost you €1.99 per MWh.
  • The injection price only becomes positive once EPEX rises above 6 €/MWh.

The −1.99 in this example is not a setting or a threshold, it is the net injection price at that moment's EPEX. The value that price-based decisions compare against is the injection price crossing zero, which for this contract corresponds exactly to EPEX crossing 6 €/MWh.

Where these prices are used

  • PV curtailment: PV production is limited when the net injection price is negative.
  • Cost optimization: the battery is charged and discharged based on the net consumption and injection prices across the forecast.
  • Energy cost on the energy meter dashboard: measured energy is valued at these net prices to give an indicative cost per meter. That figure is an indication, not a settlement.