Pradra StudioDocs

Batch predictions

When you need to score many records at once — tonight's whole customer base, this month's sensor readings — submit a batch prediction job instead of calling the endpoint row by row. The platform scores the rows asynchronously and gives you a downloadable result file.

How it works

  1. You provide the rows: either inline (for smaller sets) or by uploading a CSV or JSONL file.
  2. The job snapshots everything it needs at submission — the deployment, the model artifact, the contract. A job that runs for hours scores every row against the same model, even if someone promotes a new version midway.
  3. Rows are validated against the capability's contract just like real-time calls. A row that fails validation gets an error in its result cell; it does not fail the whole job.
  4. The result is a CSV — your input columns echoed back, plus the predictions — fetched through a time-limited download link.

Batch jobs run on separate capacity from real-time traffic, so a large scoring run never slows down your live endpoint.

Working with batch jobs in the Studio

  1. Go to Batch predictions in the sidebar and submit a job: pick the capability, then paste rows or upload a file.
  2. The list shows every job with its status — queued, running, then a terminal state — and polls live.
  3. Open a job's detail page for progress, per-row error counts, and the Download results link once it succeeds.
  4. Jobs for a specific capability also appear on its deployment's detail page, next to the monitoring charts.

Reading the outcome

  • Succeeded with some row errors is a normal outcome: the result file marks exactly which rows were rejected and why (almost always a contract mismatch). Fix those rows and resubmit just them.
  • Failed means the job itself could not complete — the model or storage was unavailable — and no partial results are published. Nothing in production is affected; resubmit when the cause is resolved.

One subtlety worth knowing

Derived date features (like days_since(...)) are computed against a clock frozen at submission for the entire job. Without that, a job spanning hours would give its first and last rows subtly different features. Real-time calls use now; batch uses submit time; both are the right answer to their own question.

Next