Campaign Cash

Methodology

How this was built

96,768 contributions totalling $55,100,364.02, from 63,517 contributors to 1,718 campaigns across 13 elections. Where every figure comes from, what has been corrected, and what the data cannot tell you.

$55,100,364Total contributed
96,768Contributions
63,517Contributors
13Elections

Where the data comes from

Two City sources, because neither covers the whole period. The Open Data catalogue's contribution release stops at 2018. The City's Elections Financial Disclosure system, which holds everything since, only goes back to 2018. Election results come from two further Open Data packages, one for general elections and one for by-elections.

ElectionSourceDatesContributionsTotal
2006 Municipal ElectionOpen Datanot published12,119$5,304,322.01
2010 Municipal ElectionOpen Datanot published21,651$11,862,184.28
2014 Municipal ElectionOpen Datanot published22,452$11,492,523.08
2018 Municipal Election (47 Wards)EFD filingsyes285$151,270.05
2018 Municipal Election (25 Wards)EFD filingsyes15,206$9,377,182.57
2021 Councillor Ward 22 By-ElectionEFD filingsyes919$472,513.31
2022 Municipal ElectionEFD filingsyes10,265$6,744,082.14
2023 French School Boards Trustee By-ElectionEFD filingsyes15$8,309.05
2023 By-Election for MayorEFD filingsyes11,858$8,586,298.14
2023 Councillor Ward 20 By-ElectionEFD filingsyes632$345,093.86
2024 Councillor Ward 15 By-ElectionEFD filingsyes562$287,962.36
2025 TDSB Ward 11 By-ElectionEFD filingsyes116$51,089.98
2025 Councillor Ward 25 By-ElectionEFD filingsyes688$417,533.19

Contribution dates exist only from 2018 on — 40,546 of 96,768 rows. The 2006–2014 Open Data releases never published them, so nothing earlier can be charted over time.

What the City does and does not verify

Nothing here is audited. The City's own disclosure states that staff have not verified or amended what candidates filed, and that figures entered from paper statements may differ from the statements themselves. Where a candidate filed a corrected or supplementary statement, only the latest is searchable. These are filings, not findings.

Corrections to the previous version

The 2014 election was understated by $4,765,281. The 2015-era database read contribution amounts as formatted text, so every contribution of $1,000 or more was truncated at the thousands comma: $2,500 became $2, $1,000 became $1. Doug Ford's $508,224.73 contribution to his own 2014 mayoral campaign — the largest single contribution in the archive — was stored as $508.00. 2,142 rows were affected. Row counts were all correct, which is why it went unnoticed for a decade.

Three checks now run on every build: amounts are refused if they arrive as comma-formatted text; every year and office is reconciled to the cent against the City's own published summary workbooks; and the build fails if any group of 500 or more contributions has a maximum below $1,000, which is the signature of that truncation.

A candidate is missing from the City's Open Data release. Grimes, Mark appears in the Elections Financial Disclosure filing with 104 contributions, and in the City's Open Data release with none at all — $108,700 of contributions. This archive uses the Elections Financial Disclosure filing, the more complete of the two, and records the discrepancy rather than resolving it silently.

The 2018 Open Data summary workbook carries a footnote reading "Only lists contributions of $100 or more". That footnote is wrong: the 2018 data contains 595 contributions under $100, the smallest being four cents.

Corporate and union money

The ban is not one date, and the archive shows why. Corporate and union contributions were barred from Toronto council and mayoral campaigns from the 2010 election. That ban did not cover school board trustee campaigns, which ran under provincial rules and kept accepting them legally through 2014. A province-wide ban closed the gap for 2018. Third party advertisers, a category that first existed in 2018, were covered by neither.

General electionCorporateTrade union
20061,447339
201011988
201413587
201812

A small residue survives on council after the ban — 23 contributions in 2010 and 12 in 2014. The City publishes filings as submitted and does not verify them.

Postal codes and privacy

Individual contributors are published by postal area — the first three characters — not their full postal code. Corporations, unions and third party registrants are published in full, including the street address the City publishes for them.

The reasoning: the City redacts individual contributors' street addresses under the Municipal Freedom of Information and Protection of Privacy Act — every individual address in all nineteen years is blank — but publishes the full postal code. In urban Toronto a full postal code commonly resolves to one side of a block or a single apartment building, and here 15,427 of 28,268 distinct postal codes belong to exactly one contributor. Name plus full postal code therefore gets a determined reader most of the way back to the address that redaction was meant to withhold. A postal area covers 113 contributors on average, which supports the geographic reporting without pointing at a household.

Full postal codes are still used behind the scenes to tell contributors apart. Only what gets published changes, and the reduction happens when the published files are built — not in the interface — so the database this site serves does not contain them.

How contributors are identified

A contributor is a name plus a postal code, with case, spacing, accents and typists' punctuation folded. Nothing looser. 63,484 of 63,517 contributors have a real postal code behind that identity; 33 do not, and are grouped by name alone for convenience — those may combine different people and are marked as such wherever they appear.

Nicknames are never merged: Bob Smith and Robert Smith at one postal code remain two contributors. Someone who moved between elections appears more than once. Known placeholder postal codes, such as the M0M 0M0 that turns up in the 2018 data, are never treated as real.

Candidates are handled differently and are resolved across elections by name, because they are public figures filing under a consistent legal name. 436 contributions also name the corporate officer or cheque signatory behind a company, which the 2010 and 2014 releases publish and which the search covers.

Election results and money per vote

A person may seek only one municipal office at a time. Anyone here with two campaigns in the same year registered for the first, left before the nomination deadline, and registered for the second. Those are separate campaigns with separate money — contributions cannot be moved between them — and they are never combined.

Absence from the official results is how we know a campaign ended before the ballot was printed. Such a campaign shows no votes and no money-per-vote figure, because there is no denominator.

OutcomeCampaignsMeaning
Elected341Won the seat
Acclaimed0Unopposed; no votes cast
Defeated1,288On the ballot, lost
Dropped out49Raised money, left before the ballot was set
Election cancelled22The 2018 47-ward election, abandoned mid-campaign
Not applicable18Third party advertisers, never on a ballot

Money raised per vote received is not campaign spending. It divides contributions by votes. This archive holds what came in, not what went out, so a campaign that banked money it never spent looks identical to one that spent everything.

What this cannot tell you

Download the data

Everything behind this site, under the same privacy rule: individuals by postal area, organizations in full. Contribution data is the City's; boundaries are adapted from Statistics Canada's 2021 Census cartographic files. Built 2026-09-22.

The working database, which holds full postal codes for individuals, is not published — that is the whole point of the rule above. Anyone wanting to reproduce the contributor matching can get the unredacted source from the City's own disclosure system, which is where the authority to publish it sits.

Corrections

If something here is wrong, it is worth fixing. Errors in this archive are usually errors in how two City sources were reconciled, and those are exactly the ones worth knowing about. Get in touch through City Hall Watcher.