{
  "prepared_date": "2026-10-04",
  "scope": "2022–2025 E/W one-vacancy main-election ward and unitary-division contest records plus contested Scottish 2022 EMB wards. Historical sample, not a complete or current Britain-wide ranking.",
  "ew_contests": 6492,
  "ew_distinct_codes": 4562,
  "ew_country_counts": {
    "England": 6133,
    "Wales": 359
  },
  "scottish_wards": 347,
  "combined_records": 6839,
  "ew_published_vote_total": 13172476,
  "ew_equal_published_totals": 1,
  "ew_published_one_vote_gaps": 14,
  "ew_margin_at_most_10_votes": 118,
  "ew_margin_under_1pp": 165,
  "ew_winner_under_30pct": 33,
  "ew_winner_under_50pct": 2514,
  "ew_exclusions": {
    "not_ward_or_unitary_division": 889,
    "vacancies_not_one": 4267,
    "fewer_than_two_candidates": 95,
    "elected_count_not_one": 2
  },
  "ew_excluded_records": [
    {
      "ward": "Llanelwedd",
      "council": "Powys",
      "year": "2022",
      "reason": "elected_count_not_one"
    },
    {
      "ward": "Cramlington Village",
      "council": "Northumberland",
      "year": "2025",
      "reason": "elected_count_not_one"
    }
  ],
  "year_stats": [
    {
      "year": 2022,
      "contests": 2228,
      "margin_under_1pp": 58,
      "margin_at_most_10_votes": 40,
      "winner_under_30pct": 6
    },
    {
      "year": 2023,
      "contests": 2483,
      "margin_under_1pp": 44,
      "margin_at_most_10_votes": 42,
      "winner_under_30pct": 9
    },
    {
      "year": 2024,
      "contests": 1421,
      "margin_under_1pp": 39,
      "margin_at_most_10_votes": 17,
      "winner_under_30pct": 4
    },
    {
      "year": 2025,
      "contests": 360,
      "margin_under_1pp": 24,
      "margin_at_most_10_votes": 19,
      "winner_under_30pct": 14
    }
  ],
  "scotland": {
    "source_url": "https://www.emb.scot/downloads/file/980/local-government-elections-2022-results-updated-with-postals-station-split",
    "source_sheet": "RawDetails",
    "source_sha256": "68ef0070aa6f5dfd0425997b0c959edf7c8eb2a3fa16aa5f4a870ec41ae19822",
    "retrieved_date": "2026-10-04",
    "election_date": "2022-05-05",
    "method": "Party candidates combined by AffiliationNational; each independent candidate is a separate electoral choice. ENP=valid_votes^2/sum(group_votes^2). Lead is between largest first-preference electoral choices, not the winning margin.",
    "all_ward_count": 355,
    "analysed_ward_count": 347,
    "excluded_uncontested_count": 8,
    "candidate_row_count": 2548,
    "valid_first_preference_votes": 1857181,
    "reconciliation_mismatch_count": 0,
    "reconciliation_mismatches": [],
    "wards_enp_at_least_4": 99,
    "wards_enp_at_least_5": 20,
    "wards_lead_under_1_pp": 22,
    "wards_lead_under_5_pp": 120
  },
  "source_audit": {
    "checked_date": "2026-10-04",
    "local_candidate_csv": "project election candidate import",
    "local_candidate_csv_sha256": "779b49b0af60400f9adc2d75c799d3abc89c92a5d9da853172497c0a1e34dbaa",
    "comparison_fields": [
      "local authority",
      "ward/division name",
      "candidate name",
      "votes",
      "elected flag",
      "vacancies/seats contested"
    ],
    "normalisation": "Names: Unicode NFKC, trim, collapse whitespace, uppercase. Votes: integers; blank vote count treated as zero for uncontested results. Elected: boolean converted to 0/1. Counter comparison preserves duplicate rows.",
    "years": [
      {
        "year": 2022,
        "source_url": "https://commonslibrary.parliament.uk/content/uploads/2023/02/local-elections-2022.xlsx",
        "source_file_sha256": "0848b583f44aa277826d67b71a1b164cbd4e71cd658cea253e69441d26745681",
        "worksheet": "Candidates-results",
        "header_row": 2,
        "upstream_candidate_rows": 18481,
        "local_candidate_rows": 18481,
        "upstream_only_rows": 0,
        "local_only_rows": 0,
        "exact_match": true,
        "upstream_code_prefix_counts": {
          "E05": 15185,
          "W05": 3296
        }
      },
      {
        "year": 2023,
        "source_url": "https://commonslibrary.parliament.uk/content/uploads/2024/01/LEH-Candidates-2023.xlsx",
        "source_file_sha256": "5e1861b842bb818ba8791faa22eb82b153f7a5ea045f9a9bd1e673d958579e2c",
        "worksheet": "Cand_Table",
        "header_row": 1,
        "upstream_candidate_rows": 25697,
        "local_candidate_rows": 25697,
        "upstream_only_rows": 0,
        "local_only_rows": 0,
        "exact_match": true,
        "upstream_code_prefix_counts": {
          "Non": 25697
        }
      },
      {
        "year": 2024,
        "source_url": "https://commonslibrary.parliament.uk/content/uploads/2025/03/LEH-2024-results-HoC-version.xlsx",
        "source_file_sha256": "90b076b0cd542fceeea6b1c1c420ec51581262fed5d9e4dc5c7e064f625f67b1",
        "worksheet": "Candidates results",
        "header_row": 2,
        "upstream_candidate_rows": 10029,
        "local_candidate_rows": 10029,
        "upstream_only_rows": 0,
        "local_only_rows": 0,
        "exact_match": true,
        "upstream_code_prefix_counts": {
          "E05": 10029
        }
      },
      {
        "year": 2025,
        "source_url": "https://commonslibrary.parliament.uk/content/uploads/2026/03/LEH-2025-results-HoC.xlsx",
        "source_file_sha256": "4efb40c192e89c71a9b172e71f786fdb2932f5a11f1f8583114f58862ed16f08",
        "worksheet": "Candidates result",
        "header_row": 2,
        "upstream_candidate_rows": 8141,
        "local_candidate_rows": 8141,
        "upstream_only_rows": 0,
        "local_only_rows": 0,
        "exact_match": true,
        "upstream_code_prefix_counts": {
          "E05": 3267,
          "E58": 4874
        }
      }
    ]
  },
  "project_source_sha256": {
    "election_area_results.csv": "ca03573fa5b63715aacb533a910178a1a38bad79690026868daa02e5fca9dd87",
    "election_candidate_results.csv": "779b49b0af60400f9adc2d75c799d3abc89c92a5d9da853172497c0a1e34dbaa"
  },
  "limitations": [
    "E/W candidate vote, elected and vacancy fields checked against freshly downloaded Commons Library workbooks; historical EC2023 identifiers retained where ONS codes were absent. Headline cases also checked with council declarations.",
    "Repeated elections in the same area are separate records. Boundaries and dates are those of each election.",
    "E05 includes some unitary electoral divisions; E58 county divisions are excluded.",
    "Do not compare sample annual percentages as a national trend; election cohorts change.",
    "First preferences are not final STV winning margins.",
    "E/W margin fields are published gaps. Source totals can include a statutory deemed extra vote following a tied poll; the counts do not establish how many polls had exactly one extra real ballot."
  ]
}