Skip to content

Submitting a Continuous Forecast

Forecasters can submit their continuous forecasts through the API. Ensure that your data is formatted correctly and adheres to the guidelines provided in the documentation.

API Endpoints

To interact with the Predico API and submit your forecasts for a given target resource, you can use the following endpoints:

Do not forget to fulfill the data requirements described in the Preparing a Continuous Forecast section.

Prerequisites

Submitting Forecast Data

After preparing your continuous forecast, submit it to the Predico platform.

In this example, we'll submit the random data generated in Preparing a Continuous Forecast section:

Before you submit

  • Submit all three quantiles — Q10, Q50, Q90. Partial submissions are excluded from scoring and payment.
  • Quantiles should satisfy Q10 ≤ Q50 ≤ Q90 at every timestamp.
  • Use a 15-minute resolution with no gaps across the target range.
  • All datetimes in UTC; timestamps must fall inside the window accepted by the endpoint (see API reference for exact bounds).

Series coverage and qualification

Predico slices your continuous series into per-session submissions at gate closure. For your day to qualify, the slice produced at each counting gate must be present (Intraday) and your series must reach into every opened D+1 / D+N session of the target day. See Evaluation.

Updating a forecast

Repeat the flow — the latest submission overwrites the previous one; the response will indicate updated records.

submit_continuous_forecast.py
# Submit the forecasts:
for submission in submission_list:
    response = requests.post(url=f"{API_URL}/market/continuous-forecasts/{resource_id}",
                            json=submission,
                            headers=headers,
                            timeout=30)

    # Check if the request was successful
    if response.status_code == 201:
        print(f"Response: {response.json()}")
        print(f"Forecast submission successful for {submission['variable']} quantile.")
    else:
        print(f"Failed to submit forecast for {submission['variable']} quantile.")
        print(f"Status code: {response.status_code}")
        print(f"Response: {response.content}")

Download Full Example

Remember that these forecasts will be sliced (automatically) by Predico in order to create Session Forecast submissions for market sessions. At the gate-closure of each market session, your continuous forecast will be sliced and submitted as a Session Forecast. You can later list the submitted forecasts via the Listing Session Submissions section.

Checking your submission status

After submitting a continuous forecast, you can confirm whether it covers each challenge in the currently open session — without waiting for gate closure.

The response lists every challenge in the open session and, for each one:

Field Meaning
ready true when your forecasts fully cover that challenge window.
source session_submission (an explicit per-challenge POST), continuous_forecast (this continuous series covers the window), or null if not covered. When both exist, session_submission wins.

A challenge is ready only when all of the following hold:

  • All three quantiles (Q10, Q50, Q90) are present.
  • Values exist at every expected 15-minute timestamp in the challenge's [start_datetime, end_datetime] window — no gaps.

If ready is false for a challenge you expected to cover, extend your continuous series (or submit a session forecast directly) so that all three quantiles span the full window at 15-minute resolution. The endpoint is scoped to the calling forecaster — you only see your own status.