{
  "ok": true,
  "service": "Betting and Odds Lab",
  "lensId": "betting-odds",
  "liveOnly": true,
  "simulated": false,
  "publicMutationAllowed": false,
  "purpose": "A professional KELLY lens for watching high-value odds forecasts close against reality.",
  "promise": "Compare market-implied probability, KELLY's evidence posture, reality settlement, and calibration without letting public users write ground truth.",
  "kellyEdge": "KELLY separates market price, evidence, causal pressure, settlement, and calibration so a forecast can be replayed instead of hand-waved.",
  "howToUse": [
    "Choose a proof preset that matches the question you care about.",
    "Ask KELLY inside this lab to get the sector-specific response without leaving the page.",
    "Inspect the live forecast showcase and proof-route status before trusting the output.",
    "Open the Glass Lab artifact target to trace source, proof, replay, and settlement evidence.",
    "Open the full Ask KELLY app only when you want the broader cross-sector conversation."
  ],
  "presets": [
    {
      "id": "betting-odds-preset-1",
      "title": "24-hour line movement proof",
      "horizon": "24 hours",
      "question": "Which monitored odds line is most likely to move materially before close?",
      "value": "Short-term proof that KELLY can spot source pressure before reality settles.",
      "signal": "opening line, closing line, injury/news source, final result, calibration",
      "artifact": "artifact pending until KELLY emits proof"
    },
    {
      "id": "betting-odds-preset-2",
      "title": "Market-vs-KELLY divergence",
      "horizon": "7-30 days",
      "question": "Where does public market belief diverge most from KELLY's evidence chain?",
      "value": "Medium-term proof that KELLY can separate consensus from causal evidence.",
      "signal": "odds drift, source receipts, KELLY forecast delta, settled outcome",
      "artifact": "artifact pending until KELLY emits proof"
    },
    {
      "id": "betting-odds-preset-3",
      "title": "Calibration edge watch",
      "horizon": "season / long arc",
      "question": "Does KELLY stay better calibrated than market confidence over repeated settlements?",
      "value": "Long-term proof that KELLY improves by tracking reality, not by sounding confident.",
      "signal": "Brier trend, settlement receipts, replayable calibration trail",
      "artifact": "artifact pending until KELLY emits proof"
    }
  ],
  "sources": [
    "The Odds API",
    "official league schedules and results",
    "settlement feeds",
    "KELLY replay receipts",
    "calibration history"
  ],
  "proofPoints": [
    "Market odds and KELLY forecast stay separate.",
    "Every settled outcome needs a source receipt.",
    "Calibration matters more than confident language.",
    "Public users inspect and ask; they do not write ground truth."
  ],
  "boundary": "This is not betting, gambling, financial, or investment advice. It is a read-only probability and proof interface.",
  "artifactRule": "Every displayed forecast must link to Glass Lab or clearly say the artifact is pending.",
  "artifactSpine": {
    "ok": true,
    "schema": "kelly-lens-artifact-spine-v1",
    "lensId": "betting-odds",
    "service": "Betting and Odds Lab",
    "readOnly": true,
    "publicMutationAllowed": false,
    "publicUserWriteAllowed": false,
    "groundTruthWriteAllowed": false,
    "glassLabArtifactBase": "https://glass-lab.up.railway.app?artifact=betting-odds",
    "forecastShowcaseUrl": "/api/kelly/forecast-showcase",
    "steps": [
      {
        "key": "source",
        "label": "Source",
        "description": "Approved data feed, document, event, price, weather, policy, research, or odds source.",
        "required": true,
        "status": "actively_checked_or_pending",
        "glassLabArtifactUrl": "https://glass-lab.up.railway.app?artifact=betting-odds%3Asource"
      },
      {
        "key": "observation",
        "label": "Observation",
        "description": "A tagged fact candidate KELLY can inspect without trusting blindly.",
        "required": true,
        "status": "actively_checked_or_pending",
        "glassLabArtifactUrl": "https://glass-lab.up.railway.app?artifact=betting-odds%3Aobservation"
      },
      {
        "key": "hypothesis",
        "label": "Hypothesis",
        "description": "The causal question, bridge, or forecast KELLY wants reality to test.",
        "required": true,
        "status": "actively_checked_or_pending",
        "glassLabArtifactUrl": "https://glass-lab.up.railway.app?artifact=betting-odds%3Ahypothesis"
      },
      {
        "key": "proof",
        "label": "Proof receipt",
        "description": "The evidence packet that explains what KELLY saw and why it moved.",
        "required": true,
        "status": "linked_when_kelly_emits_receipt",
        "glassLabArtifactUrl": "https://glass-lab.up.railway.app?artifact=betting-odds%3Aproof"
      },
      {
        "key": "replay",
        "label": "Replay",
        "description": "The reconstruction path that proves the chain can be rebuilt later.",
        "required": true,
        "status": "linked_when_kelly_emits_receipt",
        "glassLabArtifactUrl": "https://glass-lab.up.railway.app?artifact=betting-odds%3Areplay"
      },
      {
        "key": "settlement",
        "label": "Settlement",
        "description": "The reality-close record: what happened, when, and from which authority.",
        "required": true,
        "status": "linked_when_kelly_emits_receipt",
        "glassLabArtifactUrl": "https://glass-lab.up.railway.app?artifact=betting-odds%3Asettlement"
      },
      {
        "key": "calibration",
        "label": "Calibration",
        "description": "The score that separates accuracy from confident language.",
        "required": true,
        "status": "linked_when_kelly_emits_receipt",
        "glassLabArtifactUrl": "https://glass-lab.up.railway.app?artifact=betting-odds%3Acalibration"
      },
      {
        "key": "memory",
        "label": "Memory eligibility",
        "description": "A replay-backed candidate that may influence future KELLY work.",
        "required": true,
        "status": "linked_when_kelly_emits_receipt",
        "glassLabArtifactUrl": "https://glass-lab.up.railway.app?artifact=betting-odds%3Amemory"
      }
    ],
    "proofPresets": [
      {
        "id": "betting-odds-preset-1",
        "title": "24-hour line movement proof",
        "horizon": "24 hours",
        "question": "Which monitored odds line is most likely to move materially before close?",
        "value": "Short-term proof that KELLY can spot source pressure before reality settles.",
        "signal": "opening line, closing line, injury/news source, final result, calibration",
        "artifact": "artifact pending until KELLY emits proof",
        "glassLabArtifactUrl": "https://glass-lab.up.railway.app?artifact=artifact%20pending%20until%20KELLY%20emits%20proof"
      },
      {
        "id": "betting-odds-preset-2",
        "title": "Market-vs-KELLY divergence",
        "horizon": "7-30 days",
        "question": "Where does public market belief diverge most from KELLY's evidence chain?",
        "value": "Medium-term proof that KELLY can separate consensus from causal evidence.",
        "signal": "odds drift, source receipts, KELLY forecast delta, settled outcome",
        "artifact": "artifact pending until KELLY emits proof",
        "glassLabArtifactUrl": "https://glass-lab.up.railway.app?artifact=artifact%20pending%20until%20KELLY%20emits%20proof"
      },
      {
        "id": "betting-odds-preset-3",
        "title": "Calibration edge watch",
        "horizon": "season / long arc",
        "question": "Does KELLY stay better calibrated than market confidence over repeated settlements?",
        "value": "Long-term proof that KELLY improves by tracking reality, not by sounding confident.",
        "signal": "Brier trend, settlement receipts, replayable calibration trail",
        "artifact": "artifact pending until KELLY emits proof",
        "glassLabArtifactUrl": "https://glass-lab.up.railway.app?artifact=artifact%20pending%20until%20KELLY%20emits%20proof"
      }
    ],
    "boundary": "This endpoint describes the proof spine this lens must expose. It does not create proof, write memory, mutate GraphState, or settle outcomes.",
    "generatedAt": "2026-07-18T09:58:53.651Z"
  },
  "privacyRule": "Public users can inspect and ask. They cannot write KELLY Prime ground truth from this lab.",
  "userControlContract": {
    "ok": true,
    "schema": "kelly-public-user-control-contract-v1",
    "lensId": "betting-odds",
    "service": "Betting and Odds Lab",
    "settingsUrl": "https://www.causalea.com/settings",
    "legalUrl": "https://www.causalea.com/legal",
    "feedbackEmail": "TheAaronMoyer@gmail.com",
    "exportDeleteSupported": true,
    "privateLocationSupported": true,
    "preciseCoordinatesStored": false,
    "publicUserWriteAllowed": false,
    "primeLearnsFrom": "approved data APIs and closed public reality loops",
    "privateUserDataPolicy": "Browser-local user data can guide the user's viewport. It does not directly write KELLY Prime ground truth.",
    "glassLabUrl": "https://glass-lab.up.railway.app"
  },
  "glassLabArtifactUrl": "https://glass-lab.up.railway.app?artifact=betting-odds",
  "generatedAt": "2026-07-18T09:58:53.651Z"
}