Undercount.

Municipal 311 deduplication. Converts how many people complained into how many problems exist. Toronto 311 open data, 2025.

Ward coverage

Toronto publishes a 311 request's location at one of two precisions, and only the coarse one is common. 84.32% of requests are placed only inside a postal district holding thousands of addresses. 15.68% are placed at an actual street corner. Deduplication needs a corner.

This page does not claim that deduplication reorders Toronto's ward ranking. It claims the opposite, and shows why: at the precision the open data publishes, deduplication reaches too little of the file to reorder anything. The reordering the method can produce needs location the city already holds at the moment of the call, and does not release.

1. Location precision in the published file

84.32%, postal FSA only (421,812 requests)
15.68%
Postal FSA, e.g. M4E. A forward sortation area. Thousands of addresses. Not a location a crew can be sent to. Street intersection, e.g. QUEEN ST W & SHAW ST. A corner.
Every request carries exactly one of the two. Never both, never neither, the two sets are a strict partition of the file.
Location precision RequestsShare of file With both street names Distinct values
postal FSA (a district of thousands of addresses) 421,812 84.32% 0 100
street intersection (a corner) 78,457 15.68% 77,833 1
Total 500,269 100.00%

Unit: service requests. Source: 311 Service Requests 2025, all 500,269 rows, 2025-01-01 to 2025-12-31. Query location_precision_partition in sql/10_evidence.sql. The coarse bucket is identified by an A0A-form value; the fine bucket carries the literal string Intersection in the postal-code column.

77,833
requests deduplication can examine
unit: requests · source: coverage
26.02%
of those sit in a cluster of 2 or more
unit: percent of examined · source: dupe_rate_intersection
13,395
redundant reports removed
unit: requests · source: dupe_rate_intersection
2.68%
of the whole file
unit: percent · 13,395 ÷ 500,269

2. Raw ranking versus deduplicated ranking

Only 8 of 25 wards move, and no ward moves more than 2 places. This is not a reordering.

The arithmetic is the reason, and it is not subtle. Deduplication can only touch the 15.68% of requests that carry a corner, and it removes 13,395 of 500,269 rows, 2.68% of the file. The gaps between adjacent wards in the raw ranking are larger than that. A 2.68% perturbation cannot reorder a list whose neighbouring entries differ by more.

Deduplicated unique-issue count for a ward = requests in that ward with no corner (each its own unique issue, because we cannot prove otherwise) + clusters whose earliest report is in that ward. Anchor attribution avoids double counting clusters at an intersection sitting on a ward boundary; only 8 of 64,438 clusters span more than one ward.

The 8 wards that move, sorted by absolute rank change, in bold. The other 17 do not move at all and are one click below. Full data, not filtered data.
WardName Raw requestsDeduplicated issues RedundantDup rate, located Rank, rawRank, dedup Change
10 Spadina-Fort York 21,243 19,294 1,949 28.50% 10 12 -2
06 York Centre 18,852 16,360 2,492 48.91% 15 17 -2
11 University-Rosedale 27,122 26,475 647 15.56% 3 4 -1
19 Beaches-East York 27,018 26,671 347 11.44% 4 3 +1
02 Etobicoke Centre 21,242 20,854 388 12.74% 11 10 +1
05 York South-Weston 20,772 20,371 401 13.00% 12 11 +1
21 Scarborough Centre 18,777 18,287 490 17.62% 16 15 +1
13 Toronto Centre 18,718 18,154 564 13.31% 17 16 +1
Show all 25 wards, the 17 not listed above all have a rank change of 0Hide the remaining wards
WardName Raw requestsDeduplicated issues RedundantDup rate, located Rank, rawRank, dedup Change
14 Toronto-Danforth 30,476 29,898 578 13.19% 1 1 0
09 Davenport 27,124 26,699 425 12.22% 2 2 0
03 Etobicoke-Lakeshore 25,874 25,277 597 14.19% 5 5 0
04 Parkdale-High Park 25,517 25,063 454 12.35% 6 6 0
08 Eglinton-Lawrence 24,221 23,761 460 12.67% 7 7 0
20 Scarborough Southwest 22,300 22,011 289 11.68% 8 8 0
12 Toronto-St. Paul's 21,747 21,386 361 12.21% 9 9 0
15 Don Valley West 19,631 19,289 342 13.78% 13 13 0
25 Scarborough-Rouge Park 19,396 19,151 245 10.99% 14 14 0
18 Willowdale 15,510 15,305 205 11.36% 18 18 0
24 Scarborough-Guildwood 15,439 15,199 240 13.66% 19 19 0
01 Etobicoke North 15,406 15,103 303 12.77% 20 20 0
17 Don Valley North 13,737 13,438 299 14.74% 21 21 0
07 Humber River-Black Creek 13,514 13,253 261 14.39% 22 22 0
22 Scarborough-Agincourt 12,690 12,271 419 19.14% 23 23 0
23 Scarborough North 12,308 11,999 309 15.95% 24 24 0
16 Don Valley East 11,628 11,298 330 15.40% 25 25 0

Units: requests, issues, rank positions. Source: query ward_ranking in sql/10_evidence.sql, over all 500,269 rows. Ward boundaries: 25-ward model, 2018 federal riding boundaries.

One further caveat that cuts against the thesis rather than for it: two of the eight moving wards in this table move only because of a data artifact. Removing the automated Bathurst St submitter and the 311 contact-centre feedback records, both documented on the Concentration page, drops the table to 4 wards moving, maximum 1 place. The honest reading of this dataset is that there is no reordering at all.

3. Income validation

Income is not a model input. It is joined after every count above is final, and it is read by nothing upstream of any allocation decision. Its only job is to test whether the under-reporting tracks disadvantage. If income were a feature, the system would be allocating on who lives somewhere rather than on what is broken there.

Pearson correlation across n = 25 wards, df = 23. At this sample size |r| must exceed 0.3961 to reach p < 0.05. Two-tailed t test, t = r√(n−2) / √(1−r²).
Relationshiprt pnVerdict
Median household income vs raw request count +0.3725 +1.925 0.0667 25 not significant at n = 25
Median household income vs raw requests per 10,000 residents +0.3827 +1.987 0.0590 25 not significant at n = 25
Median household income vs deduplicated issues per 10,000 residents +0.3845 +1.998 0.0577 25 not significant at n = 25
Median household income vs duplicate rate -0.0987 -0.476 0.6388 25 not significant at n = 25
Ward population vs raw request count +0.2310 +1.139 0.2666 25 not significant at n = 25

Units: Pearson r (dimensionless), t statistic, two-tailed p. Sources: request counts from sr_raw (311 Service Requests 2025); median total household income 2020 and population 2021 from City of Toronto Ward Profiles (25-Ward Model), 2023 release, sheet 2021 One Variable → Statistics Canada 2021 Census. Correlations computed by Postgres corr() in query income_correlation; p values by two-tailed t test in scripts/part1_evidence.py.

Reading these honestly. Higher-income wards do report more, and the sign is the one the reporting-bias literature predicts (Kontokosta & Hong 2021, Kansas City; Minkoff 2016, NYC). But r = +0.3827 at p = 0.059 does not clear the conventional threshold with 25 wards. It is consistent with the literature; it is not independent confirmation of it. And the duplicate rate does not track income at all, r = −0.0987, p = 0.6388, a flat null. Whatever the loud-ward effect is in this data, it is in report volume, not in redundancy per problem.

The 25 rows behind those correlations, poorest ward first, so the relationship can be eyeballed rather than taken on trust.
WardName Median household income, 2020 Population, 2021 Raw requestsDeduplicated issues Raw per 10kDedup per 10k Dup rate, located
13 Toronto Centre $65,000 116,930 18,718 18,154 1600.8 1552.6 13.31%
05 York South-Weston $72,000 115,675 20,772 20,371 1795.7 1761.1 13.00%
07 Humber River-Black Creek $73,000 111,200 13,514 13,253 1215.3 1191.8 14.39%
22 Scarborough-Agincourt $77,000 103,690 12,690 12,271 1223.8 1183.4 19.14%
21 Scarborough Centre $78,000 111,560 18,777 18,287 1683.1 1639.2 17.62%
24 Scarborough-Guildwood $78,000 102,755 15,439 15,199 1502.5 1479.1 13.66%
16 Don Valley East $78,500 94,335 11,628 11,298 1232.6 1197.6 15.40%
20 Scarborough Southwest $79,000 110,095 22,300 22,011 2025.5 1999.3 11.68%
01 Etobicoke North $81,000 115,120 15,406 15,103 1338.3 1311.9 12.77%
18 Willowdale $81,000 117,130 15,510 15,305 1324.2 1306.7 11.36%
06 York Centre $82,000 107,355 18,852 16,360 1756.0 1523.9 48.91%
11 University-Rosedale $84,000 102,385 27,122 26,475 2649.0 2585.8 15.56%
17 Don Valley North $84,000 112,590 13,737 13,438 1220.1 1193.5 14.74%
04 Parkdale-High Park $85,000 104,715 25,517 25,063 2436.8 2393.4 12.35%
09 Davenport $85,000 104,730 27,124 26,699 2589.9 2549.3 12.22%
12 Toronto-St. Paul's $86,000 114,095 21,747 21,386 1906.0 1874.4 12.21%
23 Scarborough North $87,000 94,025 12,308 11,999 1309.0 1276.1 15.95%
19 Beaches-East York $89,000 108,500 27,018 26,671 2490.1 2458.2 11.44%
10 Spadina-Fort York $89,000 135,400 21,243 19,294 1568.9 1425.0 28.50%
03 Etobicoke-Lakeshore $90,000 139,920 25,874 25,277 1849.2 1806.5 14.19%
14 Toronto-Danforth $93,000 104,555 30,476 29,898 2914.8 2859.5 13.19%
08 Eglinton-Lawrence $97,000 114,820 24,221 23,761 2109.5 2069.4 12.67%
02 Etobicoke Centre $100,000 117,200 21,242 20,854 1812.5 1779.4 12.74%
15 Don Valley West $102,000 101,025 19,631 19,289 1943.2 1909.3 13.78%
25 Scarborough-Rouge Park $105,000 101,485 19,396 19,151 1911.2 1887.1 10.99%

Units: CAD (median total household income, 2020 income year); residents; service requests; issues; requests per 10,000 residents; percent. Source: query income_table, joining sr_raw to ward_income.

4. Subgroup analysis, located requests only

Subgroup analysis. This is not the headline. It covers 15.68% of the file.

The full-ward table in section 2 is dominated by the 84.32% of requests that carry no corner and therefore cannot be deduplicated at all. Those rows pass through both columns unchanged and dilute any movement. This narrower table asks a different question: among requests where deduplication is even possible, does the ranking move?

Located requests only: the 15.68% subset. Top 8 by absolute rank change; the remaining 17 are one click below.
WardName Located requestsDeduplicated issues Dup rate Rank, rawRank, dedup Change
06 York Centre 5,095 2,603 48.91% 2 12 -10
19 Beaches-East York 3,034 2,687 11.44% 12 9 +3
14 Toronto-Danforth 4,381 3,803 13.19% 3 2 +1
13 Toronto Centre 4,237 3,673 13.31% 4 3 +1
03 Etobicoke-Lakeshore 4,206 3,609 14.19% 5 4 +1
11 University-Rosedale 4,158 3,511 15.56% 6 5 +1
04 Parkdale-High Park 3,676 3,222 12.35% 7 6 +1
08 Eglinton-Lawrence 3,632 3,172 12.67% 8 7 +1
Show all 25 wardsHide the remaining wards
WardName Located requestsDeduplicated issues Dup rate Rank, rawRank, dedup Change
09 Davenport 3,477 3,052 12.22% 9 8 +1
15 Don Valley West 2,482 2,140 13.78% 15 16 -1
20 Scarborough Southwest 2,475 2,186 11.68% 16 15 +1
22 Scarborough-Agincourt 2,189 1,770 19.14% 19 20 -1
16 Don Valley East 2,143 1,813 15.40% 20 19 +1
07 Humber River-Black Creek 1,814 1,553 14.39% 23 24 -1
18 Willowdale 1,804 1,599 11.36% 24 23 +1
10 Spadina-Fort York 6,839 4,890 28.50% 1 1 0
05 York South-Weston 3,085 2,684 13.00% 10 10 0
02 Etobicoke Centre 3,045 2,657 12.74% 11 11 0
12 Toronto-St. Paul's 2,956 2,595 12.21% 13 13 0
21 Scarborough Centre 2,781 2,291 17.62% 14 14 0
01 Etobicoke North 2,373 2,070 12.77% 17 17 0
25 Scarborough-Rouge Park 2,229 1,984 10.99% 18 18 0
17 Don Valley North 2,028 1,729 14.74% 21 21 0
23 Scarborough North 1,937 1,628 15.95% 22 22 0
24 Scarborough-Guildwood 1,757 1,517 13.66% 25 25 0

Units: requests, issues, percent, rank positions. Source: query ward_ranking_located_only in sql/10_evidence.sql, over the 77,833 intersection-located requests.

The −10 on York Centre is one street corner, and that corner is a data artifact.

The confound, named. York Centre's 48.91% duplicate rate and its 10-place drop are produced almost entirely by BATHURST ST & CANYON AVE, a single intersection carrying 1,948 Moving Motor Vehicle Noise reports, 1,929 redundant, 14.4% of all redundancy in the city. Those reports arrive at 43–46 second intervals; 30.1% of the gaps between consecutive reports at that corner fall in the 30–60 second band, against 14.7% for every other noise report in Toronto. That signature appears at exactly two places in all 500,269 rows and both are on Bathurst St. It is one automated submitter, not 1,948 residents. Remove it and York Centre's movement disappears. The evidence is set out in full on the Concentration page.

Every other ward in the subgroup table moves by 3 places or fewer, and 10 of 25 do not move at all. Even in the subset built to favour the mechanism, the effect is modest once the artifact is removed.