For the complete documentation index, see llms.txt. This page is also available as Markdown.

Power Forecast

Jua's Power Forecast is an end-to-end model trained directly on actual generation data, delivering renewable energy generation forecasts in MW for power trading and grid management.

Power Forecast vs Market Aggregates MW — The Power Forecast is a purpose-built model trained on real generation data. The default product (regime=curtailed) forecasts actual production. Where it is available, regime=uncurtailed forecasts potential (no curtailment). Market Aggregates with MW output applies generic power curves to weather forecasts and is also a potential-production product. Power Forecast is significantly more accurate for the zones it covers. Both use the same facility datasets.

Availability

Curtailed (regime=curtailed, default)

Country
Solar
Wind Onshore
Wind Offshore
Wind Transmission
Wind Embedded
Load

🇩🇪 Germany

🇫🇷 France

🔜 Coming soon

🇬🇧 Great Britain

🔜 Coming soon

🇧🇪 Belgium

🔜 Coming soon

🇳🇱 Netherlands

🔜 Coming soon

Uncurtailed (regime=uncurtailed)

Country
Solar
Wind Onshore
Wind Offshore
Wind Transmission
Wind Embedded
Load

🇩🇪 Germany

🇬🇧 Great Britain

Uncurtailed coverage is limited to the table above. Other zone and generation-type combinations return 400 rather than falling back to the curtailed product.

Additional European countries are being added progressively. Contact support@jua.ai for details.

Need a load (demand) forecast today? The end-to-end Power Forecast does not yet cover Load for all zones, but a population-weighted load forecast in MW is already available for ~48 European zones via the Query Engine Market Aggregates MW endpoint using weighting=population with unit=mw. It applies a temperature-driven load curve to 2m air temperature and returns a load_mw column.

Specifications

Property
Value

Temporal Resolution

15-minute intervals

Forecast Horizon

Variable, until end of next day

Forecast becomes available

~1.5 hours from init time

Units

MW (Megawatts)

Update frequency

Curtailed (regime=curtailed, default)

Country
Update Frequency

🇩🇪 Germany

15 min

🇫🇷 France

15 min

🇳🇱 Netherlands

15 min

🇬🇧 Great Britain

30 min

🇧🇪 Belgium

1 hour

Uncurtailed (regime=uncurtailed)

Generation type
Update Frequency

Solar

30 min

Wind

1 hour

Forecast becomes available

The table below shows the first three hours of the day; the same cadence continues for the rest of the day. The Zones column lists which countries publish a run at that init time (DE/FR/NL every 15 min, GB every 30 min, BE every hour).

Init time (UTC)
Forecast becomes available (UTC)
Zones

00:00

01:30

DE, FR, NL, GB, BE

00:15

01:45

DE, FR, NL

00:30

02:00

DE, FR, NL, GB

00:45

02:15

DE, FR, NL

01:00

02:30

DE, FR, NL, GB, BE

01:15

02:45

DE, FR, NL

01:30

03:00

DE, FR, NL, GB

01:45

03:15

DE, FR, NL

02:00

03:30

DE, FR, NL, GB, BE

02:15

03:45

DE, FR, NL

02:30

04:00

DE, FR, NL, GB

02:45

04:15

DE, FR, NL

...

...

...

Access

Power Forecast has dedicated endpoints under /v1/power-forecast/* on the Query Engine. They are separate from the generic /v1/forecast/* endpoints and use the dimensions zone_key (country/region code) and psr_type (generation source type).

Endpoint
Method
Purpose

/v1/power-forecast/data

POST

Query power forecast values (MW) by zone_keys, psr_types, init time

/v1/power-forecast/zones

GET

List supported zones

/v1/power-forecast/psr-types

GET

List supported PSR (generation-source) types

/v1/power-forecast/init-times

GET

List available init times for a zone

/v1/power-forecast/versions

GET

List available model versions and their stable/latest status

/v1/power-forecast/fallback-init-times

GET

List init times that fall back to a different model

/v1/power-forecast/fallback-status

GET

Inspect fallback status for an init time

Example — latest 4-hour Solar forecast for Germany:

Response columns: zone_key, psr_type, init_time, time, value (MW).

max_prediction_timedelta is in minutes for power-forecast endpoints. Use start_time / end_time to query in time-range mode instead of init-time mode.

Optional walk-forward debiasing

Power Forecast values are raw by default if you omit debias. Examples on this page pass "debias": true so new integrations get the walk-forward correction. Pass "debias": false (or omit the field) only when you need the unadjusted forecast.

How it works. For each forecast point — matched by zone, technology, initialization clock, and lead time — the API:

  1. Looks back over recent forecast-versus-actual history: eight weeks for wind, four weeks for solar and load.

  2. Estimates the average signed error (forecast minus actual) over that window.

  3. Subtracts that bias from the current forecast.

  4. Moves the window ahead as new actuals arrive, and repeats.

The correction is additive in MW. Historical periods with negative day-ahead prices are left out of the bias estimate, because metered generation can then sit below weather-driven potential for reasons that are not forecast error. Points without enough history are omitted.

Walk-forward debias is fitted on metered (curtailed) actuals. Combining "debias": true with "regime": "uncurtailed" (or an uncurtailed version_pins[].regime) is rejected. Uncurtailed queries stay raw.

Omitting debias, or setting it to false, returns the unadjusted forecast.

Product

debias=true

Curtailed (regime=curtailed)

Supported

Uncurtailed (regime=uncurtailed)

Not supported (query is rejected)

The Python SDK exposes the same flag as client.power_forecast.get_data(..., debias=True) and get_day_ahead_timeseries(..., debias=True). See the Power Forecast SDK page.

Model versioning

version and regime are independent.

  • version picks the model: omit it (or use "stable") to follow Jua's stable model, use "latest" for the newest model, or pass a version hash to keep using that exact model after Jua updates. "stable" and "latest" move when Jua updates the model.

  • regime selects which product "stable" and "latest" refer to. "curtailed" (default) is actual production. "uncurtailed" is potential. A version hash ignores regime.

Uncurtailed currently covers Germany Solar, Wind Onshore, and Wind Offshore, and Great Britain Wind Transmission. Other zone and generation-type combinations return 400 rather than falling back to the curtailed product.

Current versions

Description
Release date
Version hash
Stable
Latest

Initial production checkpoint for the Belgium offshore wind forecast

2026-06-17

p8unxyd8

Initial production checkpoint for the Belgium onshore wind forecast

2026-06-17

0ze11rfm

Adds EPT 2.1 Helios to the Belgium solar forecast

2026-07-09

0dc4kiqs

Initial production checkpoint for the France offshore wind forecast

2026-06-17

a0mxgzdn

Initial production checkpoint for the France onshore wind forecast

2026-06-12

rtoz3nvb

Adds EPT 2.1 Helios to the France solar forecast

2026-07-09

den0y9ln

Initial production checkpoint for the Germany load forecast

2026-06-04

590ieffq

Initial uncurtailed checkpoint for the Germany offshore wind forecast

2026-08-18

90d4cfla

Initial production checkpoint for the Germany offshore wind forecast

2026-06-08

blcqp8ll

Initial production checkpoint for the Germany onshore wind forecast

2026-06-08

8n8rqlpn

Initial uncurtailed checkpoint for the Germany onshore wind forecast

2026-08-18

yazswc2b

Initial uncurtailed checkpoint for the Germany solar forecast

2026-08-18

hcrgsy3v

Adds EPT 2.1 Helios to the Germany solar forecast

2026-07-09

rv7orbtm

Initial production checkpoint for the Great Britain embedded wind forecast

2026-05-13

uawes0b4

Adds EPT 2.1 Helios to the Great Britain solar forecast

2026-07-09

wc0y235q

Initial uncurtailed checkpoint for the Great Britain transmission wind forecast

2026-08-18

56uvq04q

Initial production checkpoint for the Great Britain transmission wind forecast

2026-05-13

l5xpioly

Initial production checkpoint for the Great Britain wind forecast

2026-04-03

pwaazna8

Initial production checkpoint for the Netherlands offshore wind forecast

2026-06-17

va5ucy4o

Initial production checkpoint for the Netherlands onshore wind forecast

2026-06-17

zh2nppj8

Adds EPT 2.1 Helios to the Netherlands solar forecast

2026-07-09

n21abyr0

Call GET /v1/power-forecast/versions, optionally filtered by zone_key and psr_type, to discover run IDs. The response marks curtailed "stable" / "latest" with is_stable / is_latest and uncurtailed "stable" / "latest" with is_stable_uncurtailed / is_latest_uncurtailed. Uncurtailed models in the table above are the rows whose description starts with "Initial uncurtailed checkpoint". To freeze today's model, copy the model_version from the matching flag and pass it to the data request:

For multi-zone or multi-technology requests, version_pins can override individual (zone_key, psr_type) combinations while all unlisted combinations use the top-level version:

The version and regime parameters on /v1/power-forecast/init-times use the same semantics as POST /data, so you can discover runs for the exact product and model version you intend to query. Each pin in version_pins may also set regime; omit it to inherit the request regime.

Python SDK

The same data is available through the Jua Python SDK via client.power_forecast, which returns an xarray.Dataset in MW:

See the Power Forecast SDK page for zones/PSR-type discovery, init-time selection, time-range queries, and the day-ahead stitching helper.

Hindcast Data

Curtailed (regime=curtailed, default)

Zone

Temporal Extent

Forecast Types

DE

2025-06-01 00:00:00 - today

Solar, Wind Onshore, Wind Offshore, Load

FR

2025-06-21 00:00:00 - today

Solar, Wind Onshore, Wind Offshore

GB

2025-04-16 00:00:00 - today

Solar, Wind, Wind Transmission, Wind Embedded

BE

2025-06-21 00:00:00 - today

Solar, Wind Onshore, Wind Offshore

NL

2025-06-21 00:00:00 - today

Solar, Wind Onshore, Wind Offshore

Uncurtailed (regime=uncurtailed)

Zone

Temporal Extent

Forecast Types

DE

2025-01-01 00:00:00 - today

Solar, Wind Onshore, Wind Offshore

GB

2025-01-01 00:00:00 - today

Wind Transmission

Last updated