---
title: "Submit Outcome"
method: POST
path: "/v1/calibration/outcomes"
---

# Submit Outcome

`POST /v1/calibration/outcomes`

## Request

- Base URL: `https://api.forgeorbital.com`
- URL: `https://api.forgeorbital.com/v1/calibration/outcomes`
- Auth: API key in header `X-API-Key`

Submit ground-truth outcome for a prior signed decision record.

Closes the learning loop: evaluate registers the prediction;
this endpoint tags it with what actually happened so Brier score
and reliability bins accrue on the partner's own book.

## Request body

- CalibrationOutcomeSubmit: Ground-truth outcome for a prior signed decision record.
  - `schema_version` 'forge-outcome/v2', required
  - `record_id` string, required: record_id from the signed DecisionRecord.
  - `industry` string, required: Same industry key used at evaluate time.
  - `final_outcome` string, required: Observed outcome label from the signed decision-option menu.
  - `partner_decision` string: What the partner actually did, if different from Forge selected_action.
  - `outcome_evidence` OutcomeEvidenceSubmit: Reference-only evidence metadata; raw evidence stays customer-side.
    - `schema_version` 'forge-outcome-evidence-reference/v1', required: Required reference-only evidence contract version: forge-outcome-evidence-reference/v1.
    - `evidence_sha256` string, required: Customer-computed SHA-256 of the exact evidence artifact bytes retained in the customer system. The endpoint rejects raw content.
    - `evidence_id` string: Optional opaque identifier in the customer evidence store.
    - `source_system_id` string: Optional opaque source-system identifier.
  - `observed_at` string, date-time: When the outcome occurred or became observable.
  - `outcome_authority` OutcomeAuthoritySubmit, required: Customer-declared source for ground truth. Forge binds this declaration to the authenticated submitter. The source named here is not independently verified by this endpoint.
    - `authority_type` 'system_of_record' | 'authorized_human' | 'customer_attestation', required
    - `authority_id` string, required
    - `authority_role` string
    - `source_reference` string: Optional opaque identifier in the customer's system of record. URLs, email addresses, and free-text notes are not accepted.
    - `attested_at` string, date-time, required
  - `client_id` string: Optional tenant assertion. When supplied, it must exactly match the authenticated org_id.

## Response `200`

Successful Response

- CalibrationOutcomeResponse
  - `schema_version` 'forge-outcome-receipt/v1'
  - `accepted` true
  - `updated` boolean, required
  - `idempotent_replay` boolean
  - `reason` 'outcome_written' | 'outcome_already_recorded', required
  - `record_id` string, required
  - `final_outcome` string, required
  - `outcome_authority` CalibrationOutcomeAuthorityResponse, required
    - `authority_type` 'system_of_record' | 'authorized_human' | 'customer_attestation', required
    - `authority_id` string, required
    - `authority_role` string, nullable
    - `source_reference` string, nullable
    - `attested_at` string, date-time, required
    - `authenticated_submitter` string, required
    - `authenticated_role` string, nullable
    - `authority_assertion_scope` 'customer_asserted', required
    - `forge_independently_verified` false, required
    - `authentication_binding` 'bound_to_authenticated_submitter', required
  - `outcome_event_id` integer, nullable
  - `storage_write_status` CalibrationStorageWriteStatusResponse, required
    - `attempted` boolean, required
    - `written` boolean, required
    - `reason` string, required
    - `backend` string, nullable
    - `outcome_evidence_retention` 'none' | 'reference_only_evaluation_metrics', nullable
  - `calibration_summary` object, required

## Other responses

- `422`: Stable, sanitized product API error.
- `default`: Stable, sanitized product API error.

---

[API](https://skmtc.dev/forgeorbital/apis/forge-decision-records-api.md) · [All operations](https://skmtc.dev/forgeorbital/apis/forge-decision-records-api/llms.txt) · [OpenAPI document](https://skmtc.dev/forgeorbital/apis/forge-decision-records-api/revisions/4410e0e5c86a?raw)
