About & methodology
What this site is, where every figure comes from, what we work out ourselves, and where the data runs out.
What Canadash is
Canadash is a non-partisan, non-commercial project that brings public data about Canadian political representation into one place: who represents you federally, provincially and (for now, in Toronto) municipally, how members of Parliament vote, what bills are before the House and the provincial legislatures, what campaigns raise and what members spend.
It is not an official source. Canadash is not affiliated with, endorsed by, or a publication of the House of Commons, the Parliament of Canada, Elections Canada, Statistics Canada, any provincial or territorial legislature, any municipal government, or any political party. Everything here is assembled from published open data. Where the two disagree, the official source is right and we are wrong.
Nothing on this site is legal, electoral or financial advice, and no figure should be relied on for an official purpose without confirming it against the source.
Where the data comes from
11 sources- OpenParliamentOpen data, free re-use with attribution
Sitting MPs, party and riding, bills, recorded divisions and individual ballots
Read live and cached for about an hour
- House of Commons open dataOpen Government Licence – Canada
Member roles, committee membership, caucus changes
Scheduled job, several times a week · not yet recorded
- House of Commons — Members' expendituresOpen Government Licence – Canada
Quarterly salaries, travel, hospitality and contract spending per member
Scheduled job; the source itself publishes quarterly · last good data Aug 24, 2026
- LEGISinfoOpen Government Licence – Canada
Bill text, sponsors, stages and status for the current Parliament
Read live and cached for about an hour
- Elections Canada — official voting resultsOpen Government Licence – Canada
Poll-level and riding-level results for general elections
Scheduled job; the source changes only after an election · last good data Aug 24, 2026
- Elections Canada — transposed 2021 resultsOpen Government Licence – Canada
2021 votes recalculated onto the 2023 riding boundaries, for comparison
Static dataset; refreshed with the election job · last good data Aug 24, 2026
- Elections Canada — political financing returnsOpen Government Licence – Canada
Individual contributions to candidates and riding associations
Scheduled job; the source publishes weekly · last good data Jul 31, 2026 · most recent refresh (Sep 1, 2026) failed, figures shown are older
- Statistics Canada — 2021 Census ProfileStatistics Canada Open Licence
Population, age, income and other riding demographics
Static: 2021 Census, income reference year 2020
- Represent (Open North)Open data, free re-use with attribution
Postal code lookup, federal / provincial / municipal representatives and contacts
Read live and cached for about an hour
- Provincial and territorial legislature websitesVaries by legislature; most under a provincial open licence
Bill lists, numbers, sponsors and stage history where the page is readable
Weekly scrape · last good data Sep 14, 2026
- Derived vote metrics (from OpenParliament ballots)Canadash calculation over open data
Party discipline and MP-to-MP voting agreement counts
Scheduled job, weekly · last good data Aug 3, 2026 · most recent refresh (Aug 27, 2026) failed, figures shown are older
Data freshness
The dates above are read from our own sync log at the moment you load this page — they are not written into the site. Sources we read live (OpenParliament, LEGISinfo, Represent) are cached for about an hour, so a change made in the last hour may not appear yet. Sources we import on a schedule show the date of the last run that finished cleanly. If a later run failed, we say so and keep showing the older, good data rather than an empty page.
What we calculate ourselves
5 derived measuresEverything in this section is a Canadash measure. None of it is published by Parliament, Elections Canada or any legislature. These are descriptive statistics over public records, not assessments. A number here is not a verdict on how well anyone does their job, and it is easy to construct a member who scores badly while working hard, or the reverse.
Participation
- How it is calculated ·
- Recorded divisions in which the member cast a ballot, divided by the divisions held while they sat in the current session.
- Thresholds ·
- Shown only where the member was eligible for at least 20 divisions, so a newly sworn-in member is not judged on a handful of votes.
- What it does not mean ·
- It is not attendance. A member can be in the building all week and miss a vote, or be absent on committee travel, ministerial duty, illness or parental leave. The source data cannot tell those apart.
Party discipline
- How it is calculated ·
- The share of divisions in which a member voted the same way as the majority of their own caucus.
- Thresholds ·
- Requires a caucus of at least 5 sitting members and a minimum number of shared divisions; independents are excluded because there is no caucus to compare against.
- What it does not mean ·
- A low score is not disloyalty and a high score is not obedience. Most divisions are uncontroversial, so nearly every member scores high.
Voting alignment
- How it is calculated ·
- For any two members, the number of divisions where both voted, and the share of those where they voted the same way.
- Thresholds ·
- Only divisions where both members recorded a ballot are counted.
- What it does not mean ·
- Agreement is not co-operation or agreement on principle — two members can vote the same way for opposite reasons.
Riding competitiveness
- How it is calculated ·
- The winner's margin over the runner-up, in votes and as a share of valid ballots cast.
- Thresholds ·
- Comparisons across boundary changes use Elections Canada's transposed figures and are labelled as such.
- What it does not mean ·
- A narrow past margin does not predict the next result. Turnout, candidates and boundaries all change.
Small-donor share
- How it is calculated ·
- The share of a campaign's or association's total contributions that came from donations below the small-donation threshold used in the financing returns.
- Thresholds ·
- Calculated only for entities with filed returns in the periods we hold.
- What it does not mean ·
- It is not a measure of grassroots support. Reporting thresholds, fundraising events and timing all shape the figure.
Known limits and gaps
- Participation counts recorded divisions only. Committee work, ministerial duty, approved absence, illness and paired votes are indistinguishable from any other missed vote in the source data.
- Provincial coverage is uneven. Six legislatures publish a bill list a program can read (Ontario, Quebec, Nova Scotia, New Brunswick, Manitoba, Northwest Territories); six do not, each for its own reason — listed below.
- Municipal coverage is Toronto only. Other municipalities are not covered at all yet.
- Election results exclude by-elections. Only general election results are loaded, so a seat won in a by-election will show the last general election result.
- Boundaries changed in 2023. Results before 2025 were counted on different riding boundaries. Where we compare across that change we use Elections Canada’s transposed figures and label them as transposed.
- Campaign finance is matched by name and riding. Financing returns do not carry a person identifier, so a common name can be attached to the wrong person. Treat a surprising donor figure as a prompt to check the return itself.
- Provincial bills are read from web pages. No legislature publishes a machine-readable bill feed, so we parse HTML. A site redesign can break the parse, and when it does the page shows older data and says so.
Legislatures with no bill data
- British Columbia — British Columbia's Progress of Bills page is rendered entirely in the browser by JavaScript. The HTML the server sends contains no bill data at all, so there is nothing to read without running a full browser on every refresh. British Columbia does publish real open data — MLA compensation is a genuine CSV feed — but nothing for bills.
- Alberta — Alberta's bill status page is a JavaScript form that fetches its results after the page loads, so the server sends no bill data. Alberta's open data portal does run a standard catalogue API, but it sits behind bot protection that rejects automated requests. Hansard is published as PDF only.
- Saskatchewan — Saskatchewan publishes its progress of bills as a per-session PDF rather than a web page with structured markup, and the links to those PDFs change with every session. There is no page we could read reliably without parsing PDFs whose layout is not guaranteed.
- Newfoundland and Labrador — The Newfoundland and Labrador House of Assembly site blocks automated requests, and — more seriously — it answers requests for pages that do not exist with a success code and an error page. A scraper cannot tell a real page from a missing one, which is exactly the condition under which a scraper starts publishing nonsense. We will not ingest it.
- Prince Edward Island — Prince Edward Island publishes bills only behind a search form — there is no page that simply lists them — and the site runs bot management that rejects automated requests inconsistently. There is no stable address we could read on a schedule.
- Yukon — The Yukon Legislative Assembly site is protected by a challenge that only a full browser can pass. Every automated request is refused, including for the progress of bills page. The underlying page looks readable — the obstacle is access, not structure.
AI-generated summaries
Some member pages carry a short written summary. Those summaries are generated by a language model from that member’s voting record and sponsored bills. They are not written or reviewed by a person before publication, and they are not checked against news coverage, speeches or statements.
A language model can misread a pattern, overstate a tendency, or omit something important. Treat these summaries as a rough orientation only — never as an authoritative account of anyone’s positions or views. The underlying votes and bills are linked on the same page, and those are the record.
Corrections
If something here is wrong, we want to know. Two different things can be wrong, and they go to different places:
- We got it wrong — a bad match, a stale figure, a broken parse, a measure that misrepresents what it claims to. Report it to us.
- The source got it wrong — an incorrect expenditure filing, a wrong riding, a misspelled name in an official record. We cannot change that; it has to be corrected by the body that published it (the House of Commons, Elections Canada, Statistics Canada or the relevant legislature), after which it will flow through to us on the next refresh.
Contact route not yet set up. This project does not currently publish a contact address. Rather than invent one, we are leaving this marked as missing until a real reporting channel exists.