Skip to content

Change DK-DK1 and DK-DK2 parser to use energinet instead of ENTSOE#8656

Draft
silkeholmebonnen wants to merge 2 commits into
masterfrom
silkebonnen/gmm-1507-change-dk-parser-to-use-energinet-instead-of-entsoe
Draft

Change DK-DK1 and DK-DK2 parser to use energinet instead of ENTSOE#8656
silkeholmebonnen wants to merge 2 commits into
masterfrom
silkebonnen/gmm-1507-change-dk-parser-to-use-energinet-instead-of-entsoe

Conversation

@silkeholmebonnen

@silkeholmebonnen silkeholmebonnen commented Feb 17, 2026

Copy link
Copy Markdown
Contributor

Issue

GMM-1507

Description

This PR changes the DK-DK1 and DK-DK2 parser to use energinet hourly values instead of ENTSOE. The reason for this is that ENTSOE currently does not have accurate values, and for DK-DK2 ENTSOE has a ~4 week delay on wind offshore, which makes up approximately 50% of DK-DK2's total production.

Preview

Double check

  • I have tested my parser changes locally with uv run test_parser "zone_key"
  • I have run pnpx prettier@2 --write . and uv run format in the top level directory to format my changes.

@silkeholmebonnen
silkeholmebonnen requested a review from a team as a code owner February 17, 2026 13:34
@github-actions github-actions Bot added python Pull requests that update Python code zone config Pull request or issue for zone configurations labels Feb 17, 2026
@VIKTORVAV99

Copy link
Copy Markdown
Member

It does look like it fixes the wind issue but it also looks like almost all coal are now biomass and there is lower gas and oil production + a marginal change in solar.

New Parser:

 {'correctedModes': [],
  'datetime': datetime.datetime(2026, 2, 17, 12, 0, tzinfo=zoneinfo.ZoneInfo(key='UTC')),
  'production': {'biomass': 725.750951,
                 'coal': 0.005718,
                 'gas': 105.70942,
                 'hydro': 0.0,
                 'oil': 7.822502,
                 'solar': 151.76184,
                 'wind': 290.031814},
  'source': 'energinet.dk',
  'sourceType': <EventSourceType.measured: 'measured'>,
  'storage': {},
  'zoneKey': 'DK-DK2'}

Old Parser:

 {'correctedModes': [],
  'datetime': datetime.datetime(2026, 2, 17, 12, 0, tzinfo=datetime.timezone.utc),
  'production': {'biomass': 483.57, 'coal': 218.89, 'gas': 124.6, 'oil': 37.69, 'solar': 160.45, 'wind': 114.06},
  'source': 'entsoe.eu',
  'sourceType': <EventSourceType.measured: 'measured'>,
  'storage': {},
  'zoneKey': 'DK-DK2'},
 {'correctedModes': [],
  'datetime': datetime.datetime(2026, 2, 17, 12, 15, tzinfo=datetime.timezone.utc),
  'production': {'biomass': 481.43, 'coal': 207.38, 'gas': 117.71, 'oil': 35.5, 'solar': 152.29, 'wind': 115.48},
  'source': 'entsoe.eu',
  'sourceType': <EventSourceType.measured: 'measured'>,
  'storage': {},
  'zoneKey': 'DK-DK2'},
 {'correctedModes': [],
  'datetime': datetime.datetime(2026, 2, 17, 12, 30, tzinfo=datetime.timezone.utc),
  'production': {'biomass': 480.32, 'coal': 202.18, 'gas': 115.45, 'oil': 34.77, 'solar': 150.17, 'wind': 113.29},
  'source': 'entsoe.eu',
  'sourceType': <EventSourceType.measured: 'measured'>,
  'storage': {},
  'zoneKey': 'DK-DK2'},
 {'correctedModes': [],
  'datetime': datetime.datetime(2026, 2, 17, 12, 45, tzinfo=datetime.timezone.utc),
  'production': {'biomass': 476.24, 'coal': 200.0, 'gas': 114.13, 'oil': 34.34, 'solar': 144.95, 'wind': 107.62},
  'source': 'entsoe.eu',
  'sourceType': <EventSourceType.measured: 'measured'>,
  'storage': {},
  'zoneKey': 'DK-DK2'}

If our goal is forecast performance I'm not sure this is "better" as more stuff changes here and our external solar and wind forecasts for DK-DK2 from energidataservice.dk looks pretty good.

So honestly don't know if this is better or worse.

@silkeholmebonnen

Copy link
Copy Markdown
Contributor Author

It does look like it fixes the wind issue but it also looks like almost all coal are now biomass and there is lower gas and oil production + a marginal change in solar.

If our goal is forecast performance I'm not sure this is "better" as more stuff changes here and our external solar and wind forecasts for DK-DK2 from energidataservice.dk looks pretty good.

So honestly don't know if this is better or worse.

I trust the data coming straight from energinet more than what is reported through entsoe. And the wind issue is a pretty big issue when it is often around 50% of production.

Regarding the forecast, I suspect that it might be because it has been trained when we had both onshore and offshore wind power available. But as you can see in the picture below this means that the gap is quite big from what we say is in the grid right now (because we dont include wind offshore), to what we forecast (which might include both).

image

@VIKTORVAV99

Copy link
Copy Markdown
Member

I don't think we can say that just because it's coming from energinets platform it's more accurate as it's energinet that is reporting to ENTSO-E as well.

Had it just been a few mw differences they could just be rounding things differently and such but with this big of a change we need to be able to explain why if we change. Not just internally but also externally as it will have a big impact on the carbon emissions.

The wind issue is a problem but I don't want to replace it with another one.

@silkeholmebonnen
silkeholmebonnen marked this pull request as draft February 26, 2026 15:55
@silkeholmebonnen

Copy link
Copy Markdown
Contributor Author

I converted this to draft since Energinet is not clearly better than ENTSOE

@xaverdh

xaverdh commented Mar 21, 2026

Copy link
Copy Markdown

The ENTSO-E data has been wrongly reporting biomass as coal for many years. This comes mostly from fuel switch in power stations, that are still reported as coal fired, even if they are using biomass. According to my information (news mostly, but I have been following this for some time), the only significant coal fired plant in Denmark today is Nordjylland in DK1.

The best approach would probably to reach out to ENTSO-E and get them to report correct data. Otherwise what kind of source / reference would you accept as authoritative?

Copy link
Copy Markdown
Member

It's not ENTSO-E that are reporting the data it's ENERGINET that are reporting data to ENTSO-E that simply re-publishes the data they get. This means we can't be sure which source is correct since it's ENERGINET that is reporting data for both platforms.

We can however ask ENTSO-E to reach out to ENERGINET and validate that the data is correct.

@xaverdh

xaverdh commented Mar 21, 2026

Copy link
Copy Markdown

So according to this list: https://ens.dk/media/7199/download from https://ens.dk/analyser-og-statistik/data-oversigt-over-energisektoren
in 2024 the power stations with >= 100TJ generation from coal (kul_TJ) were:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

python Pull requests that update Python code zone config Pull request or issue for zone configurations

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants