> For the complete documentation index, see [llms.txt](https://docs.jua.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.jua.ai/models-and-products/power-forecast.md).

# Power Forecast

{% hint style="warning" %}
**Preview** - Power Forecast is currently in preview. Features and availability may change.
{% endhint %}

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.

{% hint style="info" %}
**Power Forecast vs Market Aggregates MW** — The Power Forecast is a purpose-built model trained on real generation data, providing a forecast of **actual production**. [Market Aggregates with MW output](/api-v2/query-engine/market-aggregates.md) applies generic power curves to weather forecasts, providing a model-specific forecast of **potential production**. Power Forecast is significantly more accurate for the zones it covers. Both use the same facility datasets.
{% endhint %}

## Availability

| 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 |

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

{% hint style="info" %}
**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](/api-v2/query-engine/market-aggregates.md) using `weighting=population` with `unit=mw`. It applies a temperature-driven load curve to 2m air temperature and returns a `load_mw` column.
{% endhint %}

## 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)                  |

| Country            | Update Frequency |
| ------------------ | ---------------- |
| 🇩🇪 Germany       | 15 min           |
| 🇫🇷 France        | 15 min           |
| 🇳🇱 Netherlands   | 15 min           |
| 🇬🇧 Great Britain | 30 min           |
| 🇧🇪 Belgium       | 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](/api-v2/query-engine.md). 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/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:**

```bash
curl -X POST "https://query.jua.ai/v1/power-forecast/data" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "zone_keys": ["DE"],
    "psr_types": ["Solar"],
    "init_time": "latest",
    "max_prediction_timedelta": 240
  }'
```

**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.

### Python SDK

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

```python
from jua import JuaClient

client = JuaClient()

# Latest German Solar forecast, up to 4 hours ahead (240 minutes)
ds = client.power_forecast.get_data(
    zone_keys=["DE"],
    psr_types=["Solar"],
    init_time="latest",
    max_prediction_timedelta=240,
)
```

See the [Power Forecast SDK page](/python-sdk/power-forecast.md) for zones/PSR-type discovery, init-time selection, time-range queries, and the day-ahead stitching helper.

## Hindcast Data

| **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            |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.jua.ai/models-and-products/power-forecast.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
