Market Aggregates
What are Market Aggregates for?
Market aggregates, especially used with weighting such as capacity weighting, are useful proxies to estimate how differences in forecasts - either between models or between different forecasts of the same model - impact energy production & consumption.
Imagine you are comparing the latest 12PM forecast of EPT against the 6 AM forecast. In Deckenpfronn, Germany, there is a huge difference in prediction for 100m wind speed. But since there is no wind park in Deckenpfronn this difference in wind speed will have no impact at the energy production at all. However, differences in wind speed at for example Reussenkoge Wind Farm, with a production capacity of over 250 MW, will have significant impacts on the energy output.
This is why we offer to compute capacity weighted averages for both solar and wind parameters. The averages are computed as
Vavg,weighted=∑iCtotCi⋅Vi
Where Vi is the value of the variable (e.g. wind speed) at a specific location (e.g. a wind farm), Ci is the production capacity at that location and Ctot=∑iCi is the total production capacity of the selected region.
Output MW Mode
By adding unit=mw to the GET /v1/forecast/market-aggregate endpoint, the query engine applies generic power curves to weather forecasts and returns predicted megawatts (MW) instead of raw weather values. This is useful for comparing different models and quick MW estimates across many European zones.
Looking for actual production forecasts? MW output here provides a model-specific forecast of potential production via power curves. For a forecast of actual production, use the Power Forecast — an end-to-end model trained on real generation data, significantly more accurate. Currently available for Germany (Solar, Wind Onshore).
MW output is only available on the GET /v1/forecast/market-aggregate endpoint, not the POST /v1/forecast/data endpoint.
MW mode:
Activated by passing
unit=mwas a query parameter on the GET endpointOnly works with
wind_speed_at_height_level_100morsurface_downwelling_shortwave_flux_sum_1hRestricts geo to
market_zoneorcountry_key(no polygon or bounding box)Only available for zones with power-curve data (see MW-Capable Zones below)
Weighting is auto-derived (wind →
wind_capacity, solar →solar_capacity)Both wind and solar can be selected simultaneously; the backend issues separate queries per variable and merges
When
merge_zones_or_countriesis enabled, MW values are summed across zones
Example: Wind MW Forecast
Example: Get Available MW Zones
MW-Capable Zones
The list of MW-capable zones is dynamic (queried from the mw-zones endpoint based on which zones have facility data and fitted power curves).
Wind MW zones: BE, DE, DK-DK1, DK-DK2, ES, FR, IT-CNO, IT-CSO, IT-NO, IT-SAR, IT-SIC, IT-SO, NL, NO-NO1, NO-NO2, SE-SE1, SE-SE2, SE-SE3, SE-SE4
Solar MW zones: BE, DE, DK-DK1, DK-DK2, ES, FR, IT-CNO, IT-CSO, IT-NO, IT-SAR, IT-SIC, IT-SO, NL, NO-NO1, SE-SE1, SE-SE2, SE-SE3, SE-SE4
NO-NO2 has wind MW support but not solar.
MW Column Names
When MW mode is enabled, output columns are renamed:
wind_onshore_mw
Wind Onshore MW
MW
wind_offshore_mw
Wind Offshore MW
MW
solar_mw
Solar MW
MW
Variable-to-Weighting Mapping
When not using MW mode, the weighting field is applied based on the variable:
wind_speed_at_height_level_100m
wind_capacity
surface_downwelling_shortwave_flux_sum_1h
solar_capacity
air_temperature_at_height_level_2m
population
Aggregation Periods and Column Naming
Market aggregate responses use an avg__ prefix on variable columns:
Hourly:
avg__wind_speed_at_height_level_100mDaily:
avg__wind_speed_at_height_level_100m, time column becomestime__to_start_of(day)Weekly:
avg__wind_speed_at_height_level_100m, time column becomestime__to_start_of(week)
In MW mode (GET endpoint only), columns use entirely different names (see MW Column Names above).
Accessing Market Aggregates
There are two ways to access market aggregates:
Making a request to
GET https://query.jua.ai/v1/forecast/market-aggregateUsing
POST https://query.jua.ai/v1/forecast/datawhich allows selecting custom regions such as polygons and bounding boxes
Using the `market-aggregate` endpoint
A convenient GET endpoint that allows fast and easy access to one or multiple market zones.
The Query Engine OpenAPI docs provide an interactive description of all endpoints
Using the generic `data` endpoint
While adding slightly more overhead to the query, the data endpoint provides more flexibility such as defining custom regions using polygons and bounding boxes. The example below is equivalent to the request to the market-aggregate endpoint above.
Checkout the examples on how to use market aggregates with polygons
Countries with Regional Zones
Some countries don't have a single zone code — use their regional zones instead:
Italy
IT-CNO, IT-CSO, IT-NO, IT-SAR, IT-SIC, IT-SO
Norway
NO-NO1, NO-NO2, NO-NO3, NO-NO4, NO-NO5
Sweden
SE-SE1, SE-SE2, SE-SE3, SE-SE4
Denmark
DK-DK1, DK-DK2
Japan
JP-CB, JP-CG, JP-HKD, JP-HR, JP-KN, JP-KY, JP-ON, JP-SK, JP-TH, JP-TK
Countries with single zone codes: DE, FR, GB, NL, PL, ES, BE, AT, CH, CZ, PT, GR, IE
Last updated