{
  "candidate_count": 29,
  "definition": "Source reachability and contracts used in the last completed hourly publication. Unoffered contracts are excluded; notes concern only contracts not used that hour.",
  "freshness_threshold_seconds": 600,
  "generated_at": "2026-10-16T14:00:15Z",
  "lookback_hours": 168,
  "market_set_id": "gop_nomination_2028",
  "min_valid_samples_per_candidate_hour": 20,
  "observed_freshness_threshold_seconds": 3600,
  "reference_contracts_per_side": "250",
  "reliability_rules": [
    "A source fetch is successful when the source returns data without an access, credential, or venue-level API failure.",
    "Reliability is counted across source fetches, not across candidate markets.",
    "A source with at least 50 successful fetches in the last hour is considered Live.",
    "Thin books, wide spreads, missing candidate books, and freshness gaps are notes, not reliability penalties.",
    "NO_PRINT is the public penalty when fewer than two sources qualify for a candidate-hour."
  ],
  "status": "diagnostic_not_used_in_official_prints",
  "title": "2028 Republican Presidential Nomination",
  "type": "source_status_report",
  "validity_rules": [
    "The venue returned usable market data.",
    "The candidate was listed on that venue.",
    "Both sides of the book had enough depth for the reference trade.",
    "The bid-ask spread was within the methodology limit.",
    "Freshness was proven by a recent source timestamp or by recent observable venue data changes within the fallback freshness threshold.",
    "Venue delayed-data flags are recorded as evidence, but are not automatic failures when the freshness rule passes."
  ],
  "venues": {
    "betfair": {
      "latest_pull": {
        "fetched_at": "2026-10-16T13:59:14Z",
        "issues": {
          "BUY_Q_UNFILLABLE": 3,
          "SELL_Q_UNFILLABLE": 1,
          "SPREAD_TOO_WIDE": 5
        },
        "markets_seen": 23,
        "markets_usable": 14,
        "not_offered_rows": 6,
        "scheduled_minute": "2026-10-16T13:59:00Z"
      },
      "notes": [
        {
          "count": 3,
          "kind": "BUY_Q_UNFILLABLE",
          "text": "BUY_Q_UNFILLABLE"
        },
        {
          "count": 1,
          "kind": "SELL_Q_UNFILLABLE",
          "text": "SELL_Q_UNFILLABLE"
        },
        {
          "count": 5,
          "kind": "SPREAD_TOO_WIDE",
          "text": "SPREAD_TOO_WIDE"
        }
      ],
      "published_hour": {
        "contracts_offered": 23,
        "contracts_used": 14,
        "issues": {
          "BUY_Q_UNFILLABLE": 3,
          "SELL_Q_UNFILLABLE": 1,
          "SPREAD_TOO_WIDE": 5
        },
        "window_end": "2026-10-16T14:00:00Z",
        "window_start": "2026-10-16T13:00:00Z"
      },
      "reliability": {
        "last_hour": {
          "failed_pulls": 0,
          "missed_scheduled_pulls": 0,
          "observed_pulls": 60,
          "pulls": 60,
          "rate": "1.0000",
          "schedule_coverage_rate": "1.0000",
          "scheduled_pulls": 60,
          "successful_pulls": 60
        },
        "last_week": {
          "failed_pulls": 0,
          "missed_scheduled_pulls": 8183,
          "observed_pulls": 1897,
          "pulls": 1897,
          "rate": "1.0000",
          "schedule_coverage_rate": "0.1882",
          "scheduled_pulls": 10080,
          "successful_pulls": 1897
        }
      },
      "status": "live",
      "status_label": "Live",
      "venue_id": "betfair"
    },
    "gemini": {
      "latest_pull": {
        "fetched_at": "2026-10-16T13:59:17Z",
        "issues": {
          "SELL_Q_UNFILLABLE": 3,
          "SPREAD_TOO_WIDE": 1
        },
        "markets_seen": 13,
        "markets_usable": 9,
        "not_offered_rows": 16,
        "scheduled_minute": "2026-10-16T13:59:00Z"
      },
      "notes": [
        {
          "count": 3,
          "kind": "SELL_Q_UNFILLABLE",
          "text": "SELL_Q_UNFILLABLE"
        },
        {
          "count": 1,
          "kind": "SPREAD_TOO_WIDE",
          "text": "SPREAD_TOO_WIDE"
        }
      ],
      "published_hour": {
        "contracts_offered": 13,
        "contracts_used": 9,
        "issues": {
          "SELL_Q_UNFILLABLE": 3,
          "SPREAD_TOO_WIDE": 1
        },
        "window_end": "2026-10-16T14:00:00Z",
        "window_start": "2026-10-16T13:00:00Z"
      },
      "reliability": {
        "last_hour": {
          "failed_pulls": 0,
          "missed_scheduled_pulls": 0,
          "observed_pulls": 60,
          "pulls": 60,
          "rate": "1.0000",
          "schedule_coverage_rate": "1.0000",
          "scheduled_pulls": 60,
          "successful_pulls": 60
        },
        "last_week": {
          "failed_pulls": 4,
          "missed_scheduled_pulls": 8183,
          "observed_pulls": 1897,
          "pulls": 1897,
          "rate": "0.9979",
          "schedule_coverage_rate": "0.1882",
          "scheduled_pulls": 10080,
          "successful_pulls": 1893
        }
      },
      "status": "live",
      "status_label": "Live",
      "venue_id": "gemini"
    },
    "kalshi": {
      "latest_pull": {
        "fetched_at": "2026-10-16T13:59:15Z",
        "issues": {},
        "markets_seen": 29,
        "markets_usable": 29,
        "not_offered_rows": 0,
        "scheduled_minute": "2026-10-16T13:59:00Z"
      },
      "notes": [
        {
          "count": 1,
          "kind": "NO_PRINT",
          "text": "NO_PRINT"
        }
      ],
      "published_hour": {
        "contracts_offered": 29,
        "contracts_used": 28,
        "issues": {
          "NO_PRINT": 1
        },
        "window_end": "2026-10-16T14:00:00Z",
        "window_start": "2026-10-16T13:00:00Z"
      },
      "reliability": {
        "last_hour": {
          "failed_pulls": 0,
          "missed_scheduled_pulls": 0,
          "observed_pulls": 60,
          "pulls": 60,
          "rate": "1.0000",
          "schedule_coverage_rate": "1.0000",
          "scheduled_pulls": 60,
          "successful_pulls": 60
        },
        "last_week": {
          "failed_pulls": 0,
          "missed_scheduled_pulls": 8183,
          "observed_pulls": 1897,
          "pulls": 1897,
          "rate": "1.0000",
          "schedule_coverage_rate": "0.1882",
          "scheduled_pulls": 10080,
          "successful_pulls": 1897
        }
      },
      "status": "live",
      "status_label": "Live",
      "venue_id": "kalshi"
    },
    "polymarket": {
      "latest_pull": {
        "fetched_at": "2026-10-16T13:59:14Z",
        "issues": {},
        "markets_seen": 28,
        "markets_usable": 28,
        "not_offered_rows": 1,
        "scheduled_minute": "2026-10-16T13:59:00Z"
      },
      "notes": [],
      "published_hour": {
        "contracts_offered": 28,
        "contracts_used": 28,
        "issues": {},
        "window_end": "2026-10-16T14:00:00Z",
        "window_start": "2026-10-16T13:00:00Z"
      },
      "reliability": {
        "last_hour": {
          "failed_pulls": 0,
          "missed_scheduled_pulls": 0,
          "observed_pulls": 60,
          "pulls": 60,
          "rate": "1.0000",
          "schedule_coverage_rate": "1.0000",
          "scheduled_pulls": 60,
          "successful_pulls": 60
        },
        "last_week": {
          "failed_pulls": 0,
          "missed_scheduled_pulls": 8183,
          "observed_pulls": 1897,
          "pulls": 1897,
          "rate": "1.0000",
          "schedule_coverage_rate": "0.1882",
          "scheduled_pulls": 10080,
          "successful_pulls": 1897
        }
      },
      "status": "live",
      "status_label": "Live",
      "venue_id": "polymarket"
    },
    "predictit": {
      "latest_pull": {
        "fetched_at": "2026-10-16T13:59:14Z",
        "issues": {},
        "markets_seen": 14,
        "markets_usable": 14,
        "not_offered_rows": 15,
        "scheduled_minute": "2026-10-16T13:59:00Z"
      },
      "notes": [],
      "published_hour": {
        "contracts_offered": 14,
        "contracts_used": 14,
        "issues": {},
        "window_end": "2026-10-16T14:00:00Z",
        "window_start": "2026-10-16T13:00:00Z"
      },
      "reliability": {
        "last_hour": {
          "failed_pulls": 0,
          "missed_scheduled_pulls": 0,
          "observed_pulls": 60,
          "pulls": 60,
          "rate": "1.0000",
          "schedule_coverage_rate": "1.0000",
          "scheduled_pulls": 60,
          "successful_pulls": 60
        },
        "last_week": {
          "failed_pulls": 0,
          "missed_scheduled_pulls": 8183,
          "observed_pulls": 1897,
          "pulls": 1897,
          "rate": "1.0000",
          "schedule_coverage_rate": "0.1882",
          "scheduled_pulls": 10080,
          "successful_pulls": 1897
        }
      },
      "status": "live",
      "status_label": "Live",
      "venue_id": "predictit"
    },
    "smarkets": {
      "latest_pull": {
        "fetched_at": "2026-10-16T13:59:14Z",
        "issues": {
          "BUY_Q_UNFILLABLE": 4,
          "SELL_Q_UNFILLABLE": 4,
          "SPREAD_TOO_WIDE": 1
        },
        "markets_seen": 21,
        "markets_usable": 14,
        "not_offered_rows": 8,
        "scheduled_minute": "2026-10-16T13:59:00Z"
      },
      "notes": [
        {
          "count": 4,
          "kind": "BUY_Q_UNFILLABLE",
          "text": "BUY_Q_UNFILLABLE"
        },
        {
          "count": 8,
          "kind": "FETCHED_OUTSIDE_SCHEDULED_MINUTE",
          "text": "FETCHED_OUTSIDE_SCHEDULED_MINUTE"
        },
        {
          "count": 2,
          "kind": "SELL_Q_UNFILLABLE",
          "text": "SELL_Q_UNFILLABLE"
        },
        {
          "count": 1,
          "kind": "SPREAD_TOO_WIDE",
          "text": "SPREAD_TOO_WIDE"
        }
      ],
      "published_hour": {
        "contracts_offered": 29,
        "contracts_used": 14,
        "issues": {
          "BUY_Q_UNFILLABLE": 4,
          "FETCHED_OUTSIDE_SCHEDULED_MINUTE": 8,
          "SELL_Q_UNFILLABLE": 2,
          "SPREAD_TOO_WIDE": 1
        },
        "window_end": "2026-10-16T14:00:00Z",
        "window_start": "2026-10-16T13:00:00Z"
      },
      "reliability": {
        "last_hour": {
          "failed_pulls": 0,
          "missed_scheduled_pulls": 0,
          "observed_pulls": 60,
          "pulls": 60,
          "rate": "1.0000",
          "schedule_coverage_rate": "1.0000",
          "scheduled_pulls": 60,
          "successful_pulls": 60
        },
        "last_week": {
          "failed_pulls": 0,
          "missed_scheduled_pulls": 8183,
          "observed_pulls": 1897,
          "pulls": 1897,
          "rate": "1.0000",
          "schedule_coverage_rate": "0.1882",
          "scheduled_pulls": 10080,
          "successful_pulls": 1897
        }
      },
      "status": "live",
      "status_label": "Live",
      "venue_id": "smarkets"
    }
  },
  "window_end": "2026-10-16T14:00:00Z",
  "window_start": "2026-10-09T14:00:00Z",
  "windows": {
    "last_hour": {
      "label": "Last completed hour",
      "window_end": "2026-10-16T14:00:00Z",
      "window_start": "2026-10-16T13:00:00Z"
    },
    "last_week": {
      "label": "Last week",
      "window_end": "2026-10-16T14:00:00Z",
      "window_start": "2026-10-09T14:00:00Z"
    }
  }
}
