{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://docs.demiton.io/registers/opportunity_win_probability/v2.json",
  "title": "opportunity_win_probability contract v2",
  "type": "object",
  "required": [
    "currency",
    "model_version",
    "n_losses",
    "n_training_rows",
    "n_wins",
    "p_win",
    "scored_at",
    "subject_opportunity_ref",
    "training_as_of"
  ],
  "properties": {
    "p_win": {
      "type": "number",
      "description": "Model-issued probability that the referenced pursuit is won. The shelf's only measure, already declared `PREDICTIVE`/`float`/`probability`.",
      "x-demiton-requiredness": "required",
      "x-demiton-unit": "probability 0–1"
    },
    "n_wins": {
      "type": "integer",
      "description": "Positive-class examples in the fit.",
      "x-demiton-requiredness": "required",
      "x-demiton-unit": "count"
    },
    "accuracy": {
      "type": "number",
      "description": "Share of held-out decided opportunities classified correctly at the 0.5 threshold.",
      "x-demiton-requiredness": "optional",
      "x-demiton-unit": "fraction 0–1"
    },
    "currency": {
      "type": "currency",
      "description": "Currency the scored pursuit is denominated in; today stamped `\"AUD\"` unconditionally by the producer.",
      "x-demiton-requiredness": "required"
    },
    "customer": {
      "type": "string",
      "description": "The customer the pursuit is for, where one exists.",
      "x-demiton-requiredness": "optional",
      "x-demiton-reference": true
    },
    "n_losses": {
      "type": "integer",
      "description": "Negative-class examples in the fit.",
      "x-demiton-requiredness": "required",
      "x-demiton-unit": "count"
    },
    "scored_at": {
      "type": "string",
      "description": "When this prediction was produced.",
      "x-demiton-requiredness": "required",
      "x-demiton-unit": "UTC",
      "format": "date-time",
      "x-demiton-type": "datetime"
    },
    "brier_score": {
      "type": "number",
      "description": "Calibration error of the fit that issued these predictions, when a backtest was run.",
      "x-demiton-requiredness": "optional",
      "x-demiton-unit": "unitless (lower better)"
    },
    "valid_until": {
      "type": "string",
      "description": "Until when this prediction is the current one for its pursuit.",
      "x-demiton-requiredness": "optional",
      "x-demiton-unit": "UTC",
      "format": "date-time",
      "x-demiton-type": "datetime"
    },
    "model_version": {
      "type": "string",
      "description": "Version tag of the issuing model.",
      "x-demiton-requiredness": "required"
    },
    "feature_values": {
      "type": "object",
      "description": "The five bounded feature inputs to the score: `value_band` (0–4), `has_customer`, `work_type_known`, `sales_cycle_known`, `log_value`.",
      "x-demiton-requiredness": "optional"
    },
    "training_as_of": {
      "type": "string",
      "description": "The transaction-time cutoff the model was trained to; the label set is only decided opportunities known at this instant.",
      "x-demiton-requiredness": "required",
      "x-demiton-unit": "UTC",
      "format": "date-time",
      "x-demiton-type": "datetime"
    },
    "n_training_rows": {
      "type": "integer",
      "description": "Decided (won/lost) opportunities the fit used; `MIN_TRAINING_ROWS = 5` gates whether any prediction is emitted.",
      "x-demiton-requiredness": "required",
      "x-demiton-unit": "count"
    },
    "subject_opportunity_ref": {
      "type": "string",
      "description": "Stable identifier of the scored pursuit.",
      "x-demiton-requiredness": "required"
    }
  },
  "x-demiton-register-type": "opportunity_win_probability",
  "x-demiton-contract-version": "2.0.1",
  "x-demiton-store": "tenant",
  "x-demiton-axes": [
    {
      "axis": "customer",
      "requirement": "optional",
      "role": "context"
    },
    {
      "axis": "currency",
      "requirement": "required",
      "role": "context"
    }
  ],
  "x-demiton-measures": [
    {
      "key": "p_win",
      "accumulation": "predictive",
      "dtype": "float",
      "unit": "probability"
    }
  ],
  "x-demiton-provenance": {
    "standards": []
  },
  "description": "Predicted probability of winning a pipeline opportunity.",
  "x-demiton-contract-url": "https://docs.demiton.io/registers/opportunity_win_probability/",
  "x-demiton-register-catalog": "https://docs.demiton.io/concepts/register-catalog"
}