Cost Estimation
Before submitting a forecast job, usePOST /estimate to get a transparent cost and runtime estimate.
Request
Request Fields
Response
What Drives Cost
Covariates
Enrich your forecasts with external data. The recommended interface is the structuredexternal_covariates field — accepted as a JSON string form
field on POST /forecast, and as a JSON object in the body of
POST /forecast/storage-object and POST /forecast/batch.
Discover available sources
GET /covariates/catalog returns every source, its required location key, its
variables, the generated output column names, and which cities/zones are
pre-materialized:
Sources & variables
Each enabled variable becomes one extra column named
<prefix>_<variable>
(e.g. wx_temperature_2m, rate_treasury_10y_daily, elec_wind_forecast)
and is passed to the model as a known future covariate.
Example: weather by city
Example: electricity day-ahead forecasts (renewables-driven prices)
Point-in-time correctness
All archive-backed sources (weather via CDS when source="cds",
air_quality, rates, electricity) store (reference_time, valid_time)
forecast vintages. With point_in_time: true (default) a backtest uses only
the forecast that would have been known at each historical origin — no target
leakage. The public forecast routes currently use the default
num_val_windows = 1, which reserves one trailing validation window. Pipeline
configurations that explicitly set num_val_windows = 0 instead use the latest
issue to supply known covariates beyond the final observation.
Note: archive-backed sources are scoped to pre-materialized cities/zones — checkcovered_citiesorcovered_bidding_zonesin the catalog. Unknown cities and zones return400.
Legacy fields (deprecated)
The flat form fieldscovariates=temperature_2m,... plus
latitude/longitude are still accepted and internally mapped onto
external_covariates.weather. Prefer the structured field; do not mix both in
one request.