{
  "title": "Seven-day source-to-ingest timestamp audit of changed sportsbook odds",
  "study_window_start_utc": "2026-09-20T00:00:00Z",
  "study_window_end_exclusive_utc": "2026-09-27T00:00:00Z",
  "published_date": "2026-09-27",
  "measurement": "ingest_ts - source_ts, available changed-odds captures only",
  "unit": "seconds",
  "weighting": "Each capture weighted by total blobs / sampled blobs in its day × sport × bookmaker stratum",
  "summary": {
    "bookmaker_source_identities": 20,
    "sports": 5,
    "sampled_blobs": 4629,
    "blobs_in_scope": 128691,
    "available_sample_captures": 5033,
    "median_seconds": 9,
    "p90_seconds": 27,
    "p95_seconds": 37,
    "p99_seconds": 92,
    "within_60_percent": 98.3
  },
  "limits": [
    "Measures recorded source-timestamp age at API ingest, not bookmaker publication-to-client latency.",
    "Archive includes semantic odds changes; unchanged customer-visible quotes are absent.",
    "Bookmaker rows differ in sport and league mix. Ladbrokes and Ladbrokes UK are separate source identities, not independent corporate operators.",
    "Market-family capture counts overlap because one ingest capture can include several market families."
  ],
  "bookmakers": [
    {
      "id": "unibet",
      "name": "Unibet",
      "nonempty_day_sport_strata": 35,
      "sample_captures": 272,
      "median_seconds": 8.0,
      "p90_seconds": 92.0,
      "p95_seconds": 250.0,
      "p99_seconds": 560.0,
      "within_60_percent": 88.4
    },
    {
      "id": "caesars",
      "name": "Caesars",
      "nonempty_day_sport_strata": 21,
      "sample_captures": 180,
      "median_seconds": 20.0,
      "p90_seconds": 46.0,
      "p95_seconds": 53.0,
      "p99_seconds": 106.0,
      "within_60_percent": 97.5
    },
    {
      "id": "sportsbet",
      "name": "Sportsbet",
      "nonempty_day_sport_strata": 35,
      "sample_captures": 275,
      "median_seconds": 9.0,
      "p90_seconds": 24.0,
      "p95_seconds": 51.0,
      "p99_seconds": 223.0,
      "within_60_percent": 96.9
    },
    {
      "id": "williamhill",
      "name": "William Hill",
      "nonempty_day_sport_strata": 35,
      "sample_captures": 290,
      "median_seconds": 15.0,
      "p90_seconds": 36.0,
      "p95_seconds": 47.0,
      "p99_seconds": 68.0,
      "within_60_percent": 97.7
    },
    {
      "id": "ladbrokes-uk",
      "name": "Ladbrokes UK",
      "nonempty_day_sport_strata": 28,
      "sample_captures": 240,
      "median_seconds": 12.0,
      "p90_seconds": 30.0,
      "p95_seconds": 46.0,
      "p99_seconds": 71.0,
      "within_60_percent": 97.7
    },
    {
      "id": "ladbrokes",
      "name": "Ladbrokes",
      "nonempty_day_sport_strata": 35,
      "sample_captures": 289,
      "median_seconds": 6.0,
      "p90_seconds": 24.0,
      "p95_seconds": 43.0,
      "p99_seconds": 157.0,
      "within_60_percent": 96.1
    },
    {
      "id": "bet365",
      "name": "Bet365",
      "nonempty_day_sport_strata": 35,
      "sample_captures": 267,
      "median_seconds": 11.0,
      "p90_seconds": 26.0,
      "p95_seconds": 39.0,
      "p99_seconds": 62.0,
      "within_60_percent": 98.5
    },
    {
      "id": "betright",
      "name": "BetRight",
      "nonempty_day_sport_strata": 35,
      "sample_captures": 310,
      "median_seconds": 9.0,
      "p90_seconds": 27.0,
      "p95_seconds": 35.0,
      "p99_seconds": 78.0,
      "within_60_percent": 98.6
    },
    {
      "id": "draftkings",
      "name": "DraftKings",
      "nonempty_day_sport_strata": 28,
      "sample_captures": 245,
      "median_seconds": 12.0,
      "p90_seconds": 29.0,
      "p95_seconds": 35.0,
      "p99_seconds": 53.0,
      "within_60_percent": 99.2
    },
    {
      "id": "888sport",
      "name": "888sport",
      "nonempty_day_sport_strata": 33,
      "sample_captures": 264,
      "median_seconds": 9.0,
      "p90_seconds": 25.0,
      "p95_seconds": 33.0,
      "p99_seconds": 68.0,
      "within_60_percent": 98.6
    },
    {
      "id": "betway",
      "name": "Betway",
      "nonempty_day_sport_strata": 14,
      "sample_captures": 122,
      "median_seconds": 6.0,
      "p90_seconds": 22.0,
      "p95_seconds": 33.0,
      "p99_seconds": 53.0,
      "within_60_percent": 100.0
    },
    {
      "id": "tabtouch",
      "name": "TABtouch",
      "nonempty_day_sport_strata": 35,
      "sample_captures": 271,
      "median_seconds": 7.0,
      "p90_seconds": 22.0,
      "p95_seconds": 30.0,
      "p99_seconds": 48.0,
      "within_60_percent": 99.8
    },
    {
      "id": "fanduel",
      "name": "FanDuel",
      "nonempty_day_sport_strata": 35,
      "sample_captures": 260,
      "median_seconds": 7.0,
      "p90_seconds": 23.0,
      "p95_seconds": 29.0,
      "p99_seconds": 53.0,
      "within_60_percent": 99.1
    },
    {
      "id": "betrivers",
      "name": "BetRivers",
      "nonempty_day_sport_strata": 28,
      "sample_captures": 242,
      "median_seconds": 9.0,
      "p90_seconds": 20.0,
      "p95_seconds": 28.0,
      "p99_seconds": 137.0,
      "within_60_percent": 98.2
    },
    {
      "id": "betonline",
      "name": "BetOnline",
      "nonempty_day_sport_strata": 28,
      "sample_captures": 261,
      "median_seconds": 10.0,
      "p90_seconds": 24.0,
      "p95_seconds": 27.0,
      "p99_seconds": 60.0,
      "within_60_percent": 99.1
    },
    {
      "id": "betfred",
      "name": "Betfred",
      "nonempty_day_sport_strata": 21,
      "sample_captures": 215,
      "median_seconds": 6.0,
      "p90_seconds": 19.0,
      "p95_seconds": 27.0,
      "p99_seconds": 42.0,
      "within_60_percent": 100.0
    },
    {
      "id": "pointsbet",
      "name": "PointsBet",
      "nonempty_day_sport_strata": 34,
      "sample_captures": 287,
      "median_seconds": 6.0,
      "p90_seconds": 19.0,
      "p95_seconds": 25.0,
      "p99_seconds": 50.0,
      "within_60_percent": 99.8
    },
    {
      "id": "pinnacle",
      "name": "Pinnacle",
      "nonempty_day_sport_strata": 28,
      "sample_captures": 262,
      "median_seconds": 6.0,
      "p90_seconds": 15.0,
      "p95_seconds": 23.0,
      "p99_seconds": 60.0,
      "within_60_percent": 100.0
    },
    {
      "id": "tab",
      "name": "TAB",
      "nonempty_day_sport_strata": 35,
      "sample_captures": 298,
      "median_seconds": 6.0,
      "p90_seconds": 18.0,
      "p95_seconds": 22.0,
      "p99_seconds": 38.0,
      "within_60_percent": 99.7
    },
    {
      "id": "betmgm",
      "name": "BetMGM",
      "nonempty_day_sport_strata": 21,
      "sample_captures": 183,
      "median_seconds": 7.0,
      "p90_seconds": 17.0,
      "p95_seconds": 21.0,
      "p99_seconds": 40.0,
      "within_60_percent": 100.0
    }
  ],
  "sports_breakdown": [
    {
      "id": "baseball",
      "name": "Baseball",
      "sample_captures": 994,
      "median_seconds": 9.0,
      "p90_seconds": 30.0,
      "p95_seconds": 51.0,
      "p99_seconds": 296.0,
      "within_60_percent": 96.3
    },
    {
      "id": "american-football",
      "name": "American football",
      "sample_captures": 1230,
      "median_seconds": 9.0,
      "p90_seconds": 27.0,
      "p95_seconds": 39.0,
      "p99_seconds": 64.0,
      "within_60_percent": 98.6
    },
    {
      "id": "soccer",
      "name": "Soccer",
      "sample_captures": 1266,
      "median_seconds": 8.0,
      "p90_seconds": 26.0,
      "p95_seconds": 35.0,
      "p99_seconds": 60.0,
      "within_60_percent": 99.1
    },
    {
      "id": "basketball",
      "name": "Basketball",
      "sample_captures": 1123,
      "median_seconds": 8.0,
      "p90_seconds": 26.0,
      "p95_seconds": 34.0,
      "p99_seconds": 56.0,
      "within_60_percent": 99.1
    },
    {
      "id": "aussie-rules",
      "name": "Australian rules",
      "sample_captures": 420,
      "median_seconds": 8.0,
      "p90_seconds": 24.0,
      "p95_seconds": 29.0,
      "p99_seconds": 45.0,
      "within_60_percent": 99.9
    }
  ],
  "daily_breakdown": [
    {
      "date": "2026-09-20",
      "sample_captures": 741,
      "median_seconds": 10.0,
      "p90_seconds": 30.0,
      "p95_seconds": 44.0,
      "p99_seconds": 68.0,
      "within_60_percent": 98.5
    },
    {
      "date": "2026-09-21",
      "sample_captures": 728,
      "median_seconds": 9.0,
      "p90_seconds": 23.0,
      "p95_seconds": 28.0,
      "p99_seconds": 42.0,
      "within_60_percent": 99.9
    },
    {
      "date": "2026-09-22",
      "sample_captures": 725,
      "median_seconds": 11.0,
      "p90_seconds": 30.0,
      "p95_seconds": 42.0,
      "p99_seconds": 68.0,
      "within_60_percent": 98.0
    },
    {
      "date": "2026-09-23",
      "sample_captures": 653,
      "median_seconds": 14.0,
      "p90_seconds": 43.0,
      "p95_seconds": 64.0,
      "p99_seconds": 115.0,
      "within_60_percent": 94.3
    },
    {
      "date": "2026-09-24",
      "sample_captures": 713,
      "median_seconds": 14.0,
      "p90_seconds": 34.0,
      "p95_seconds": 46.0,
      "p99_seconds": 109.0,
      "within_60_percent": 97.9
    },
    {
      "date": "2026-09-25",
      "sample_captures": 717,
      "median_seconds": 9.0,
      "p90_seconds": 23.0,
      "p95_seconds": 32.0,
      "p99_seconds": 52.0,
      "within_60_percent": 99.6
    },
    {
      "date": "2026-09-26",
      "sample_captures": 756,
      "median_seconds": 4.0,
      "p90_seconds": 20.0,
      "p95_seconds": 28.0,
      "p99_seconds": 209.0,
      "within_60_percent": 98.2
    }
  ],
  "market_breakdown": [
    {
      "id": "total",
      "name": "Game total",
      "sample_captures": 3296,
      "median_seconds": 9.0,
      "p90_seconds": 26.0,
      "p95_seconds": 36.0,
      "p99_seconds": 68.0,
      "within_60_percent": 98.6
    },
    {
      "id": "handicap",
      "name": "Spread / handicap",
      "sample_captures": 3202,
      "median_seconds": 8.0,
      "p90_seconds": 25.0,
      "p95_seconds": 34.0,
      "p99_seconds": 64.0,
      "within_60_percent": 98.9
    },
    {
      "id": "moneyline",
      "name": "Moneyline",
      "sample_captures": 2621,
      "median_seconds": 9.0,
      "p90_seconds": 27.0,
      "p95_seconds": 37.0,
      "p99_seconds": 74.0,
      "within_60_percent": 98.7
    },
    {
      "id": "moneyline 3w",
      "name": "Three-way moneyline",
      "sample_captures": 2173,
      "median_seconds": 9.0,
      "p90_seconds": 28.0,
      "p95_seconds": 39.0,
      "p99_seconds": 106.0,
      "within_60_percent": 98.3
    },
    {
      "id": "team total",
      "name": "Team total",
      "sample_captures": 2173,
      "median_seconds": 8.0,
      "p90_seconds": 26.0,
      "p95_seconds": 35.0,
      "p99_seconds": 64.0,
      "within_60_percent": 98.8
    },
    {
      "id": "player prop",
      "name": "Player prop",
      "sample_captures": 1856,
      "median_seconds": 9.0,
      "p90_seconds": 30.0,
      "p95_seconds": 42.0,
      "p99_seconds": 94.0,
      "within_60_percent": 98.3
    },
    {
      "id": "both teams to score",
      "name": "Both teams to score",
      "sample_captures": 428,
      "median_seconds": 7.0,
      "p90_seconds": 25.0,
      "p95_seconds": 31.0,
      "p99_seconds": 60.0,
      "within_60_percent": 99.3
    },
    {
      "id": "big win little win",
      "name": "Big win / little win",
      "sample_captures": 327,
      "median_seconds": 9.0,
      "p90_seconds": 20.0,
      "p95_seconds": 32.0,
      "p99_seconds": 46.0,
      "within_60_percent": 99.4
    }
  ]
}
