On this page6 sections

Data Sources

Last updated: 2026-10-18 (candidate display names from Wikipedia; DUN seat names from MECo-maps)

HitungKerusi's standing on data provenance. Every number on the site traces to one of these sources.

Electoral results

SourceWhat we takeLicence/access
TindakMalaysia GE15 datasetCandidate-level results for all 222 parliamentary seats, GE15 (19 Nov 2022): votes per bloc, electorates, turnoutOpen (GitHub)
Wikipedia: GE14 results by constituencyGE14 (9 May 2018) party-level votes per seat, parsed from wikitext; coalition totals reconcile exactly with the official resultCC BY-SA
MECo results corpusStandardised candidate-level ballots 1955–2026; loaded elections: GE12, GE13 (federal shares), PRN Johor 2022 + 2026, PRN NS 2023 + 2026, PRN Sabah 2025 (full DUN chambers); the six Aug-2023 peninsular PRNs enter as aggregate state shares (swing evidence only)Open (GitHub)
Wikipedia state-election pages (PRN Johor 2026, PRN Negeri Sembilan 2026)State-level bloc vote shares feeding the parliament swing layer; cross-validated against MECo (Johor agrees within ~1pt; NS PN differs ~4.6pt on alliance-boundary definitions — PAS under PN vs Bersatu rows)CC BY-SA
Wikipedia state-election results pages (PRN Melaka 2021, PRN Sarawak 2021)DUN baselines incl. candidate display names; both reproduce the actual seat counts exactlyCC BY-SA
Wikipedia by-election pages (Kuala Terengganu, Pulai, Kemaman 2023)Post-GE15 Dewan Rakyat by-election results, incl. candidate namesCC BY-SA
TindakMalaysia General-Election-DataAugust 2025 electorates per seat; by-election demographicsOpen (GitHub)
Sinar Project GE15 open dataCross-checking; boundaries (planned)Open
electiondata.myCross-checking seat totalsPublic web
SPR (Election Commission of Malaysia) gazettesAuthoritative result confirmation; by-election resultsOfficial

Known data caveats: Wikipedia's GE14 "total valid votes" cells are occasionally stale (e.g. P.119 implies 98.8% turnout) — we therefore derive valid votes from the candidate sum, which reconciles with the stated percentages. GE14 Sabah/Sarawak labels are coalition-level for some seats where component-level detail would refine the notional mapping (impact is bounded by GE14's ~2% weight in the baseline). Candidate names come from the results tables where a parser exists (PRN 2021 Melaka/Sarawak, the 2023 by-elections; the {{MASelec}} template pages match on votes) — a small number of runner-up rows keep a party-label fallback, and GE14's party-level source means those rows display the party rather than a person. Constituency names for state seats are filled from the MECo-maps boundary labels where the source dataset carried only codes.

Coalition membership history

Curated in-repo (data/seed/memberships.yaml), human-reviewed with dates (e.g. Bersatu's PH exit on 24 Feb 2020, GTA's 2022 formation and 2023 dissolution). Corrections welcome — this file is the single source of truth for notional realignment.

News

  • Google News RSS (topic queries: national politics, pilihan raya, Dewan Rakyat, party names) — English and Bahasa Malaysia editions
  • Malay Mail, Free Malaysia Today direct RSS
  • We store headlines and RSS-provided summaries only; full-text scraping of paywalled publishers is intentionally out of scope
  • Tagging: deterministic keyword/lexicon tagger always; LLM tagger when configured

Polls

Manually entered from public releases: Ilham Centre, Merdeka Center, EMIR Research, and university-affiliated surveys — each with field dates, sample size, and source URL. If a pollster does not publish methodology, it is entered with a low grade and down-weighted by the trust cap (see Methodology §6).

Status (Oct 2026): no poll is entered for any live chamber. The Melaka PRN campaign has produced only qualitative pollster readings circulating via news summaries — no per-bloc numbers with field dates on a source page, so none qualify. Ilham Centre's often-cited Melaka report is their 2021 survey (1,051 respondents, fielded 23 Oct–15 Nov 2021), retained as a candidate L3 backtest case, not a 2026 input. A daily automated watch hunts releases; entry remains a reviewed, sourced decision.

Boundaries (live)

MECo-maps constituency GeoJSON, thinned and keyed to seat codes by scripts/build_boundaries.py into apps/web/data/boundaries*.json — federal (GE-15 polygons, 222 seats) and five state assets (Melaka, Sarawak, Johor, Negeri Sembilan, Sabah).

Attribution

HitungKerusi is an independent analytical project. Forecast outputs are model estimates, not predictions of certainty; see the Methodology document for assumptions and limitations.