Skip to main content

Cost Estimation

Before submitting a forecast job, use POST /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 structured external_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 — check covered_cities or covered_bidding_zones in the catalog. Unknown cities and zones return 400.

Legacy fields (deprecated)

The flat form fields covariates=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.

Error Codes