{
  "candidate_count": 2,
  "generated_at": "2026-10-17T14:00:04Z",
  "homepage_ready": true,
  "market_set_id": "senate_iowa_2026",
  "prints": [
    {
      "calculation": {
        "final_math": {
          "configured_rule": "weighted_mean",
          "formula": "sum(median * weight) / sum(weight)",
          "published_value": "0.573",
          "raw_value": "0.5729017402386505626595585045",
          "rule": "weighted_mean",
          "weight_sum": "1.000000000000000000000000000",
          "weighted_sum": "0.5729017402386505626595585045"
        },
        "published_value": "0.573",
        "rounding": "round half up to 0.001, then clamp to [0.001, 0.999]",
        "rule": "weighted_mean",
        "venues_contributing": 3,
        "weighted_terms": [
          {
            "median": "0.55021887640449438202247191",
            "median_x_weight": "0.03443652643458460150242820960",
            "venue_id": "betfair",
            "weight": "0.06258695931992803545629054373"
          },
          {
            "median": "0.5650",
            "median_x_weight": "0.2802799735741759013515475700",
            "venue_id": "kalshi",
            "weight": "0.4960707496888069050469868496"
          },
          {
            "median": "0.585",
            "median_x_weight": "0.2581852402298900598055827249",
            "venue_id": "polymarket",
            "weight": "0.4413422909912650594967226067"
          }
        ],
        "window_end": "2026-10-17T14:00:00Z",
        "window_start": "2026-10-17T13:00:00Z"
      },
      "candidate_id": "ashley_hinson",
      "candidate_name": "Ashley Hinson (R)",
      "canonical_document": "prints/senate_iowa_2026__ashley_hinson/20261017T140000Z.json",
      "canonical_question_hash": "sha256:70f1e9fd21d3ed4df74a732d98d1e2e9dd2281a1c08b6d7dc8de3956f8540dfd",
      "core_offered_venue_count": 3,
      "detail_path": "details/senate_iowa_2026__ashley_hinson.json",
      "liquidity_window": {
        "end": "2026-10-17T12:00:00Z",
        "lag_hours": 1,
        "start": "2026-09-17T12:00:00Z",
        "statistic": "median",
        "target_hours": 720
      },
      "market_id": "senate_iowa_2026:ashley_hinson",
      "market_set_id": "senate_iowa_2026",
      "offered_venue_count": 6,
      "print": {
        "dispersion": "0.035",
        "flags": [],
        "value": "0.573",
        "venues_contributing": 3,
        "weight_contributing": "0.9865"
      },
      "type": "print",
      "venues": [
        {
          "avg_spread_q": "0.0232",
          "depth_history_hours": 67,
          "depth_history_samples": 2457,
          "depth_source": "lagged_30d_median",
          "depth_usd_30d": "799.6500",
          "median": "0.55021887640449438202247191",
          "valid_samples": 60,
          "venue_id": "betfair",
          "weight": "0.0626"
        },
        {
          "avg_spread_q": "0.0100",
          "depth_history_hours": 300,
          "depth_history_samples": 17858,
          "depth_source": "lagged_30d_median",
          "depth_usd_30d": "104353.0309",
          "median": "0.5650",
          "valid_samples": 59,
          "venue_id": "kalshi",
          "weight": "0.4961"
        },
        {
          "avg_spread_q": "0.0100",
          "depth_history_hours": 300,
          "depth_history_samples": 17860,
          "depth_source": "lagged_30d_median",
          "depth_usd_30d": "62023.2405",
          "median": "0.585",
          "valid_samples": 59,
          "venue_id": "polymarket",
          "weight": "0.4413"
        }
      ],
      "window_end": "2026-10-17T14:00:00Z",
      "window_start": "2026-10-17T13:00:00Z"
    },
    {
      "calculation": {
        "final_math": {
          "configured_rule": "weighted_mean",
          "formula": "sum(median * weight) / sum(weight)",
          "published_value": "0.428",
          "raw_value": "0.4277491628297282686299187366",
          "rule": "weighted_mean",
          "weight_sum": "1.000000000000000000000000000",
          "weighted_sum": "0.4277491628297282686299187366"
        },
        "published_value": "0.428",
        "rounding": "round half up to 0.001, then clamp to [0.001, 0.999]",
        "rule": "weighted_mean",
        "venues_contributing": 3,
        "weighted_terms": [
          {
            "median": "0.4487973913043478260869565218",
            "median_x_weight": "0.02438095923963098876492787061",
            "venue_id": "betfair",
            "weight": "0.05432509125949278376737648866"
          },
          {
            "median": "0.4350",
            "median_x_weight": "0.2138002603103431056892265823",
            "venue_id": "kalshi",
            "weight": "0.4914948512881450705499461661"
          },
          {
            "median": "0.417385",
            "median_x_weight": "0.1895679432797541741757642837",
            "venue_id": "polymarket",
            "weight": "0.4541800574523621456826773452"
          }
        ],
        "window_end": "2026-10-17T14:00:00Z",
        "window_start": "2026-10-17T13:00:00Z"
      },
      "candidate_id": "josh_turek",
      "candidate_name": "Josh Turek (D)",
      "canonical_document": "prints/senate_iowa_2026__josh_turek/20261017T140000Z.json",
      "canonical_question_hash": "sha256:2bfb23906aa4ef766ec2c1f256dadd9a35191c26bae364f59353cb23a51e25a4",
      "core_offered_venue_count": 3,
      "detail_path": "details/senate_iowa_2026__josh_turek.json",
      "liquidity_window": {
        "end": "2026-10-17T12:00:00Z",
        "lag_hours": 1,
        "start": "2026-09-17T12:00:00Z",
        "statistic": "median",
        "target_hours": 720
      },
      "market_id": "senate_iowa_2026:josh_turek",
      "market_set_id": "senate_iowa_2026",
      "offered_venue_count": 6,
      "print": {
        "dispersion": "0.031",
        "flags": [],
        "value": "0.428",
        "venues_contributing": 3,
        "weight_contributing": "0.9582"
      },
      "type": "print",
      "venues": [
        {
          "avg_spread_q": "0.0256",
          "depth_history_hours": 99,
          "depth_history_samples": 4625,
          "depth_source": "lagged_30d_median",
          "depth_usd_30d": "582.7500",
          "median": "0.4487973913043478260869565218",
          "valid_samples": 60,
          "venue_id": "betfair",
          "weight": "0.0543"
        },
        {
          "avg_spread_q": "0.0100",
          "depth_history_hours": 300,
          "depth_history_samples": 17858,
          "depth_source": "lagged_30d_median",
          "depth_usd_30d": "62700.2439",
          "median": "0.4350",
          "valid_samples": 59,
          "venue_id": "kalshi",
          "weight": "0.4915"
        },
        {
          "avg_spread_q": "0.0138",
          "depth_history_hours": 300,
          "depth_history_samples": 17860,
          "depth_source": "lagged_30d_median",
          "depth_usd_30d": "45469.5911",
          "median": "0.417385",
          "valid_samples": 59,
          "venue_id": "polymarket",
          "weight": "0.4542"
        }
      ],
      "window_end": "2026-10-17T14:00:00Z",
      "window_start": "2026-10-17T13:00:00Z"
    }
  ],
  "title": "Iowa Senate Election 2026",
  "type": "latest_index",
  "visible_candidate_count": 2
}
