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
| Source | What we take | Licence/access |
|---|---|---|
| TindakMalaysia GE15 dataset | Candidate-level results for all 222 parliamentary seats, GE15 (19 Nov 2022): votes per bloc, electorates, turnout | Open (GitHub) |
| Wikipedia: GE14 results by constituency | GE14 (9 May 2018) party-level votes per seat, parsed from wikitext; coalition totals reconcile exactly with the official result | CC BY-SA |
| MECo results corpus | Standardised 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 exactly | CC BY-SA |
| Wikipedia by-election pages (Kuala Terengganu, Pulai, Kemaman 2023) | Post-GE15 Dewan Rakyat by-election results, incl. candidate names | CC BY-SA |
| TindakMalaysia General-Election-Data | August 2025 electorates per seat; by-election demographics | Open (GitHub) |
| Sinar Project GE15 open data | Cross-checking; boundaries (planned) | Open |
| electiondata.my | Cross-checking seat totals | Public web |
| SPR (Election Commission of Malaysia) gazettes | Authoritative result confirmation; by-election results | Official |
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.