Grading

Grade a pregame price against the Sorqen record

Give Sorqen a price and the time you saw it. It answers what its fair-value record said at that exact point in market time, compares the price with an immutable Sorqen Close, and attaches the settled result when there is one.

NO LOOK-AHEAD: fair_at_time is the last priced observation at or BEFORE observed_at. A nearer later observation is deliberately not used.

A PARTIAL GRADE IS A NORMAL ANSWER: before kickoff there is no close and no result, so those anchors come back pending and the metrics that depend on them are null rather than zero.

Sorqen never fetches your venue. venue is a label for your own records.

post/v1/grade

Request

  • Base URL: https://sorqen.flashodds.live
  • URL: https://sorqen.flashodds.live/v1/grade
  • Auth: one of:
    • HTTP bearer
    • API key in header X-API-Key

Request body

outcome_idstring required

Canonical Sorqen outcome id.

observed_atstring date-time required

When you saw the price. Must be before the scheduled start: Sorqen grades pregame prices and publishes no live-market benchmark. Only information that existed at or before this instant is used.

venuestring nullable

Optional label for where your price came from. METADATA ONLY: Sorqen never fetches the venue and no code path reads this to decide anything.

Example request

{
  "outcome_id": "pe:evt:nfl:2026-09-21:nyg-buf:moneyline:full_game:buf",
  "observed_at": "2026-09-19T18:05:00Z",
  "price": {
    "format": "american",
    "value": -150
  },
  "venue": "draftkings"
}

Response

The grade, including partial grades where the close or the result does not exist yet.

metaobject

Example response

{
  "data": {
    "outcome_id": "pe:evt:nfl:2026-09-21:nyg-buf:moneyline:full_game:buf",
    "claim": {
      "observed_at": "2026-09-19T18:05:00Z",
      "probability": 0.6,
      "venue": "draftkings"
    },
    "fair_at_time": {
      "state": "available",
      "probability": 0.602,
      "confidence": 0.91,
      "dispersion": 0.018,
      "books": 7,
      "method_version": "example-book-consensus-novig",
      "observed_at": "2026-09-19T18:00:00Z"
    },
    "fair_close": {
      "state": "available",
      "probability": 0.611,
      "confidence": 0.93,
      "dispersion": 0.014,
      "books": 8,
      "method_version": "example-book-consensus-novig",
      "observed_at": "2026-09-21T16:58:00Z",
      "frozen_at": "2026-09-21T17:05:00Z",
      "policy_version": "benchmark-1.0.0",
      "inputs_hash": "sha256:0f3a1c7d9b2e4a6c8d0f2b4a6c8e0d2f"
    },
    "edge_at_time_pts": 0.2,
    "clv_pts": 1.1,
    "result": {
      "state": "settled",
      "won": true,
      "push": false,
      "final_score_home": 27,
      "final_score_away": 24,
      "settled_at": "2026-09-21T20:31:00Z"
    },
    "provenance": {
      "grade_method_version": "grade-1.0.0",
      "grade_inputs_hash": "sha256:7a1c0f3d9b2e4a6c8d0f2b4a6c8e0d2f"
    }
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.