Data integrity
MaplePolls aggregates other people's polls, so the number on the front page is only as trustworthy as the pipeline that builds it. This page shows the machinery that keeps that pipeline honest — not a promise that we're careful, but the checks themselves and what they've caught.
Everything here is generated from our own run logs. When a check finds nothing, it says so; when it catches something, the count goes up. Nothing on this page is hand-edited.
See also: how we weight and source polls →Every Saturday an independent reader re-reads the source of every poll we ingested that week and compares it against what we stored (Part A), and re-reads every article our pipeline rejected to catch a real poll wrongly dropped (Part B). Findings are flagged for review, never auto-applied.
All clear — no mismatches, nothing likely missed.
- 1 polls re-checked against their source
- 0 stored-vs-source mismatches
- 18 rejected articles re-reviewed
- 0 possible missed polls flagged
Cumulative record (5): 11 polls re-checked against their source, 0 stored-vs-source mismatches; 53 rejected articles re-reviewed, 0 possible missed polls flagged.
Source: the weekly audit-polls run log.
Before any poll enters the average it passes automatic checks. These are the rejections from the last 30 days, grouped by which guard caught them — an article with no usable poll table, party shares that don't add up, or a poll for a jurisdiction we don't cover.
- 90 No structured poll data in the article
- 1 Party shares failed the sum-check
- 4 Poll for a jurisdiction we don't cover
- 35 Other validation rejections
A poll that can't be validated is never guessed at or mislabeled — it is left out until it can be read cleanly, not forced into the average.
Some pollsters report an "other / undecided" bucket and some don't, so a poll that lists only the named parties can sum to less than 100%. We used to average those raw shares directly, which quietly pulled the headline down for pollsters that report an undecided bucket. Since July 8, 2026 each poll's party shares are proportionally scaled to 100% before averaging, so every pollster is compared on the same basis. The table below is the measured effect on the rolling average at the time of the fix.
| Jurisdiction | Party | Change |
|---|---|---|
| Federal | LPC | +0.4 |
| CPC | +0.3 | |
| NDP | +0.1 | |
| BQ | +0.1 | |
| GPC | +0.0 | |
| PPC | +0.0 | |
| Ontario | OPC | +2.5 |
| OLP | +2.3 | |
| ONDP | +1.1 | |
| GPO | +0.2 | |
| Quebec | PQ | +0.3 |
| PLQ | +0.3 | |
| CAQ | +0.2 |
Correction effective July 8, 2026. Alberta and BC had no in-window polls to adjust.
Read the renormalization note in our methodology →Material corrections to the data — the kind that move a published average — recorded newest first.
- July 15, 2026
The entire federal rolling-average history (back to March 2025) was recomputed on one consistent basis — the current production method, including the July 8 renormalization — so the historical trend no longer mixes older and newer methods. Early rows built while the poll database was still being loaded shifted slightly; for example, May 19 NDP moved from 9.2% to 10.1%. Today's number is unchanged.
- July 8, 2026
Rolling average now renormalizes each poll's party shares to 100% before averaging, so pollsters that report an undecided bucket are compared on the same basis as those that don't. Largest effect: Ontario PC +2.5 points; federal Liberals +0.4.
The models that read and classify articles run at temperature zero. The same article produces the same classification on every run — the pipeline doesn't roll dice, so a result you see today is the result the same input produced yesterday.