{
  "schema_version": "kronaxis-scorecard-metrics-v1",
  "computed_at": "2026-05-11T12:44:10Z",
  "totals": {
    "n_scored": 583,
    "n_predictions": 595
  },
  "by_methodology": {
    "KPM-1 v1.0 on [uk_council_election]": {
      "n": 130,
      "hits": 37,
      "pct": 28.5,
      "is_backtest": false,
      "wrong_tool": false
    },
    "KPM-2.2 v15.1 on [uk_council_election]": {
      "n": 130,
      "hits": 77,
      "pct": 59.2,
      "is_backtest": true,
      "wrong_tool": false
    },
    "KPM-byelection v1.0 on [uk_council_byelection]": {
      "n": 12,
      "hits": 9,
      "pct": 75.0,
      "is_backtest": true,
      "wrong_tool": false
    },
    "KPM-2.2 v15.1 on [uk_council_byelection]": {
      "n": 12,
      "hits": 5,
      "pct": 41.7,
      "is_backtest": true,
      "wrong_tool": true
    },
    "KPM-scotparl v1.0 on [scottish_parliament_election]": {
      "n": 1,
      "hits": 1,
      "pct": 100.0,
      "is_backtest": true,
      "wrong_tool": false
    },
    "KPM-senedd v1.0 on [welsh_senedd_election]": {
      "n": 1,
      "hits": 0,
      "pct": 0.0,
      "is_backtest": true,
      "wrong_tool": false
    },
    "KPM-mayoral v1.0 on [london_mayoral_election]": {
      "n": 1,
      "hits": 1,
      "pct": 100.0,
      "is_backtest": true,
      "wrong_tool": false
    },
    "KPM-v17-ward-uns v1.0 on [uk_council_election]": {
      "n": 37,
      "hits": 20,
      "pct": 54.1,
      "is_backtest": true,
      "wrong_tool": false
    },
    "KPM-v17.1-ward-uns-overlay v1.1 on [uk_council_election]": {
      "n": 37,
      "hits": 23,
      "pct": 62.2,
      "is_backtest": true,
      "wrong_tool": false
    },
    "KPM-v17.3-ward-uns-reform-no-incumbency v1.3 on [uk_council_election]": {
      "n": 37,
      "hits": 23,
      "pct": 62.2,
      "is_backtest": true,
      "wrong_tool": false
    },
    "KPM-v17.6-council-reform-override v1.6 on [uk_council_election]": {
      "n": 37,
      "hits": 26,
      "pct": 70.3,
      "is_backtest": true,
      "wrong_tool": false
    },
    "KPM-v17.7-io-census-indep v1.7-io on [uk_council_election]": {
      "n": 37,
      "hits": 26,
      "pct": 70.3,
      "is_backtest": true,
      "wrong_tool": false
    },
    "KPM-v17.8-brexit v1.8 on [uk_council_election]": {
      "n": 37,
      "hits": 26,
      "pct": 70.3,
      "is_backtest": true,
      "wrong_tool": false
    },
    "KPM-v17.9-brexit-and-indep v1.9 on [uk_council_election]": {
      "n": 37,
      "hits": 26,
      "pct": 70.3,
      "is_backtest": true,
      "wrong_tool": false
    },
    "KPM-v17.10-ensemble v1.10 on [uk_council_election]": {
      "n": 37,
      "hits": 28,
      "pct": 75.7,
      "is_backtest": true,
      "wrong_tool": false
    }
  },
  "by_tier_kpm1": {
    "Toss-up": {
      "n": 120,
      "hits": 36,
      "pct": 30.0
    },
    "Lean": {
      "n": 10,
      "hits": 1,
      "pct": 10.0
    }
  },
  "by_region": {
    "East Midlands": {
      "n": 2,
      "hits_kpm1": 0,
      "hits_v151": 0,
      "pct_kpm1": 0.0,
      "pct_v151": 0.0
    },
    "East of England": {
      "n": 24,
      "hits_kpm1": 3,
      "hits_v151": 11,
      "pct_kpm1": 12.5,
      "pct_v151": 45.8
    },
    "Greater London": {
      "n": 31,
      "hits_kpm1": 13,
      "hits_v151": 17,
      "pct_kpm1": 41.9,
      "pct_v151": 54.8
    },
    "North East": {
      "n": 7,
      "hits_kpm1": 2,
      "hits_v151": 3,
      "pct_kpm1": 28.6,
      "pct_v151": 42.9
    },
    "North West": {
      "n": 23,
      "hits_kpm1": 11,
      "hits_v151": 13,
      "pct_kpm1": 47.8,
      "pct_v151": 56.5
    },
    "South East": {
      "n": 24,
      "hits_kpm1": 4,
      "hits_v151": 15,
      "pct_kpm1": 16.7,
      "pct_v151": 62.5
    },
    "South West": {
      "n": 7,
      "hits_kpm1": 1,
      "hits_v151": 7,
      "pct_kpm1": 14.3,
      "pct_v151": 100.0
    },
    "West Midlands": {
      "n": 15,
      "hits_kpm1": 2,
      "hits_v151": 10,
      "pct_kpm1": 13.3,
      "pct_v151": 66.7
    },
    "Yorkshire and The Humber": {
      "n": 9,
      "hits_kpm1": 1,
      "hits_v151": 6,
      "pct_kpm1": 11.1,
      "pct_v151": 66.7
    },
    "Unknown": {
      "n": 3,
      "hits_kpm1": 0,
      "hits_v151": 0,
      "pct_kpm1": 0.0,
      "pct_v151": 0.0
    }
  },
  "by_kind": {
    "uk_council_election": {
      "n_subjects": 130,
      "methodologies": [
        "KPM-1 v1.0",
        "KPM-2.2 v15.1",
        "KPM-v17-ward-uns v1.0",
        "KPM-v17.1-ward-uns-overlay v1.1",
        "KPM-v17.10-ensemble v1.10",
        "KPM-v17.3-ward-uns-reform-no-incumbency v1.3",
        "KPM-v17.6-council-reform-override v1.6",
        "KPM-v17.7-io-census-indep v1.7-io",
        "KPM-v17.8-brexit v1.8",
        "KPM-v17.9-brexit-and-indep v1.9"
      ]
    },
    "uk_council_byelection": {
      "n_subjects": 12,
      "methodologies": [
        "KPM-2.2 v15.1",
        "KPM-byelection v1.0"
      ]
    },
    "scottish_parliament_election": {
      "n_subjects": 1,
      "methodologies": [
        "KPM-scotparl v1.0"
      ]
    },
    "welsh_senedd_election": {
      "n_subjects": 1,
      "methodologies": [
        "KPM-senedd v1.0"
      ]
    },
    "london_mayoral_election": {
      "n_subjects": 1,
      "methodologies": [
        "KPM-mayoral v1.0"
      ]
    }
  },
  "baselines": {
    "always_noc": {
      "hits": 63,
      "n": 142,
      "pct": 44.4
    },
    "always_labour": {
      "hits": 27,
      "n": 142,
      "pct": 19.0
    }
  },
  "notable_misses": [
    {
      "council": "Norwich",
      "predicted": "No overall control",
      "actual": "Green",
      "category": "Green breakthrough (model did not anticipate)"
    },
    {
      "council": "Hackney",
      "predicted": "No overall control",
      "actual": "Green",
      "category": "Green breakthrough (model did not anticipate)"
    },
    {
      "council": "Lewisham",
      "predicted": "No overall control",
      "actual": "Green",
      "category": "Green breakthrough (model did not anticipate)"
    },
    {
      "council": "Waltham Forest",
      "predicted": "No overall control",
      "actual": "Green",
      "category": "Green breakthrough (model did not anticipate)"
    },
    {
      "council": "Hastings",
      "predicted": "No overall control",
      "actual": "Green",
      "category": "Green breakthrough (model did not anticipate)"
    },
    {
      "council": "Kent CC - Cliftonville",
      "predicted": "Reform UK",
      "actual": "Green",
      "category": "Green breakthrough (model did not anticipate)"
    },
    {
      "council": "Rossendale BC - Hareholme and Waterfoot",
      "predicted": "Reform UK",
      "actual": "Green",
      "category": "Green breakthrough (model did not anticipate)"
    },
    {
      "council": "Essex",
      "predicted": "No overall control",
      "actual": "Reform UK",
      "category": "Reform breakthrough"
    },
    {
      "council": "Suffolk",
      "predicted": "No overall control",
      "actual": "Reform UK",
      "category": "Reform breakthrough"
    },
    {
      "council": "South Tyneside",
      "predicted": "No overall control",
      "actual": "Reform UK",
      "category": "Reform breakthrough"
    },
    {
      "council": "St Helens",
      "predicted": "Labour",
      "actual": "Reform UK",
      "category": "Reform breakthrough"
    },
    {
      "council": "Sandwell",
      "predicted": "Labour",
      "actual": "Reform UK",
      "category": "Reform breakthrough"
    },
    {
      "council": "Walsall",
      "predicted": "No overall control",
      "actual": "Reform UK",
      "category": "Reform breakthrough"
    },
    {
      "council": "Barnsley",
      "predicted": "No overall control",
      "actual": "Reform UK",
      "category": "Reform breakthrough"
    },
    {
      "council": "Leicestershire CC - Narborough & Whetstone",
      "predicted": "No overall control",
      "actual": "Reform UK",
      "category": "Reform breakthrough"
    },
    {
      "council": "Luton BC - Wigmore",
      "predicted": "No overall control",
      "actual": "Reform UK",
      "category": "Reform breakthrough"
    },
    {
      "council": "Salford BC - Barton & Winton",
      "predicted": "No overall control",
      "actual": "Reform UK",
      "category": "Reform breakthrough"
    },
    {
      "council": "Watford",
      "predicted": "No overall control",
      "actual": "Liberal Democrat",
      "category": "Lib Dem hold/pickup"
    },
    {
      "council": "Stockport",
      "predicted": "No overall control",
      "actual": "Liberal Democrat",
      "category": "Lib Dem hold/pickup"
    },
    {
      "council": "Tunbridge Wells",
      "predicted": "No overall control",
      "actual": "Liberal Democrat",
      "category": "Lib Dem hold/pickup"
    }
  ]
}