THE FLOW One destination · four doorways · two country codes
The front page argues that Canada publishes the fragments and never joins them. The ledger tested that on one bill. This tests it on one flow: charitable money leaving Canada. A registered charity can send money abroad through four different reporting routes. Two carry a validated country code. One carries a free-text box. One has no country field at all. A headline total drawn from any single route is therefore a floor, and the size of what it misses is measurable — so this page measures it instead of estimating it.
4/2
Routes out / country-coded
$351.6M
Named & coded on the route nobody reads
484
Spellings of one country field
8
Records, $31.0M, filed with no recipient
Every route below is a legal, ordinary way for a Canadian registered charity to move
money to a foreign recipient. They are reported on different forms, with different fields, and CRA
publishes them as different files. Nothing here is a loophole; the finding is that the four cannot
be added together, because three of them answer a different question than the fourth.
Figures are the 2024 release, destination code IL — Israel.
The charity runs its own programs overseas. It lists the countries it worked in and reports one total for all of them. There is no per-country figure anywhere on the form. 181 filers listed Israel in 2024; 77 of them listed it alongside other countries, so their $281.0M of outside-Canada spending cannot be attributed to any one of them.
$217.6MLine 200, the 104 filers whose only listed country was Israel
The charity gives its resources to someone else to carry out the activity. This table is the best disclosure Canada produces on this flow and almost nobody reads it: it carries the recipient's name, the amount, and a validated two-letter country code, row by row.
$351.6M1,417 rows · 1,396 distinct recipients · 192 filers
The route created by the 2022 qualifying-disbursement reform, which let charities fund
organisations that are not qualified donees. It has a name, a purpose, an amount — and a
free-text country box. Read it literally, matching only the code IL, and you
find 20 rows worth $5.1M. Read the box as a human would and it is 149 rows worth $16.2M. A
literal read misses 68% of it.
$16.2M149 rows · 113 distinct recipients · 30 filers
A gift to another Canadian registered charity. This is the doorway the country code cannot see, because there is nothing to code: the recipient is Canadian. If that recipient then sends the money abroad, it reappears on its Schedule 2 a year later, under its own name. The form does carry the recipient's registration number, so the next hop inside Canada is genuinely joinable — 321,569 of 344,533 rows carry one. Nobody publishes the chain.
$15.44BAll destinations, all donees — the pool a country code never touches
Below all four: 109,310 grantees received $65,784,982 in grants of $5,000 or less, which are never itemised at all.
The figure usually quoted as "what Canadian charities spent abroad" is line 200 of Schedule 2. CRA's own guide says what it leaves out.
What the form says
“Do not include qualifying disbursements through gifts to qualified donees or grants to non-qualified donees in the amount reported on line 200.”
What that means
Routes C and D are excluded from line 200 by instruction. The most-quoted cross-border charity number in Canada is defined to exclude two of the four ways money actually leaves.
SOURCE · T4033, Completing Form T3010, Schedule 2 — line 200
This is not a defect being alleged. It is a scope statement, published, in plain language, on the guide page. The defect is that the number gets reported as though the scope statement were not there. A total is only a total once you say which door it counted.
| Year | Route A filers | Route B rows | Route B total | Route C rows | Route C total |
|---|---|---|---|---|---|
| 2020 | 181 | 716 | $229,069,503 | — | — |
| 2021 | 167 | 688 | $231,386,012 | — | — |
| 2022 | 172 | 628 | $238,640,830 | 4 | $169,606 |
| 2023 | 178 | 845 | $279,928,515 | 28 | $22,379,635 |
| 2024 | 181 | 1,417 | $351,600,172 | 149 | $16,203,706 |
CRA's codes list is explicit: “The codes are defined in ISO 3166-1 alpha-2.” Two of the four routes validate against it. The newest one does not.
Resolved to a code
1,819
Resolved, with leftover text
23
Could not be resolved
81
Placeholder or noise
62
Left blank
12,123
One field · one country column · 484 distinct non-empty strings in a single year
Israel, as actually filed in the 2024 release
ILIL-ISRAELIL-IsraelIL- IsraelIL ISRAELIL - ISRAELIL=ISRAELRW - Rwanda IL - IsraelUS- UNITED STATES OF AMERICA IL-ISRAEL
Elsewhere in the same column
N/AToronto ON CanadaCalgary AB CanadaPH-PHILLPPINESQR NEPAL - TO SUPPORT CHILDREN'S ORPHANGEUS-UNITED STATES OF AMERICAUS-UNITED STATESUNITED STATES
A literal read of Canada's newest cross-border disclosure misses 68% of the money on the destination it was asked about. The record is published. It is simply not joinable, and the difference between those two things is the subject of this entire site.
No interpretation is needed for this one. It is arithmetic inside a single form.
The instruction
Enter in the table “the total reported on line 200 that was transferred to individuals and organizations”.
The filings
In 2024, 232 of 2,771 filers with an intermediary table reported handing out more than their entire line 200 figure. The excess is $102,729,890.
CHECK · sum(Schedule 2 q.2 rows) > line 200, per filer, per fiscal period
This says nothing about any individual charity; the likeliest explanation for most rows is ordinary filing confusion about which figure belongs where. It says something about the return: two fields that are defined as a subset and a superset are published without the check that would enforce it, so the public file contains pairs of numbers that cannot both be right. Every downstream total inherits that.
This page was drafted with a stronger-sounding lead. It did not survive contact with the data, and the reason it failed is worth more than the sentence would have been.
“Canada requires cross-border charitable grants to be reported, and 47% of the money — $572,879,435 across 12,123 rows — has no destination recorded.”
Every figure in that sentence is correct. The T1441 file for 2024 holds 14,108 rows and $1,219,976,037 in cash grants, and exactly $572,879,435 of it sits on rows with an empty country box. The arithmetic is not the problem. The premise is: T1441 is not a cross-border form. It reports grants to non-qualified donees wherever they are, and most Canadian grantees are in Canada. An empty country box is what a correct domestic filing looks like.
Sorting the blank rows by size settles it immediately:
| Filer | Rows | Cash |
|---|---|---|
| Canada Council for the Arts | 6,086 | $244,022,314 |
| Fondation Lucie et André Chagnon | 137 | $80,776,390 |
| Foundation for Advancing Family Medicine | 17 | $27,921,237 |
| Green Municipal Fund | 64 | $12,033,353 |
| Habitat Conservation Trust Foundation | 204 | $9,659,350 |
The top fifteen filers are 77.5% of the “missing destinations”, and they are arts councils, community foundations and United Ways making grants in Canada. Individual blank rows read Kidd Pivot, Driftpile First Nation, Touchstone Theatre, Greenwood Public Library Association. There is no concealment here. There is a form doing its job.
The page keeps the finding that survived instead: the country box on that same form is free text, and that defect is real, measurable, and costs a reader 68% of the money on any given destination. A number can be arithmetically perfect and still answer a question nobody asked.
Of the $367.8M this release codes to Israel across routes B and C, these rows name nobody. They are reproduced exactly as filed.
8.4% of the Israel-coded total for the year rests on rows where the public record names no counterparty. That is not the largest number on this page, and it is the one that best describes the system: the information exists, and the public form is not where it lives.
Charitable flows into Israel are not only Canadian, and the American filings of the same class of transaction are markedly more legible. That contrast is the useful part: it shows the Canadian gaps are choices about form design, not facts of nature.
T3010 · Schedule 2 · T1236 · T1441
✕ The foreign recipient is never keyed
Form 990 · Schedule I · Schedule F
✓ The domestic chain is keyed end to end
Both of those large counterparties are US-incorporated. The money is granted domestically, so the form that tracks money leaving the United States correctly shows almost nothing. The border crossing happens one layer down, on the books of a class of US intermediaries that nobody aggregates: 1,111 such entities carry $3,001,688,095 of revenue and $7,787,158,725 of assets. Each files. No one joins them.
A two-ledger reconciliation — Canadian outbound against Israeli inbound — is the obvious way to test any of this. It is also, as of now, not constructible. Here is exactly where it stops.
So the residual that a two-ledger model would produce is not currently available at any confidence. Where the machine stops here is not a failure of the method; it is a statutory edge, and naming it precisely is worth more than publishing a number that would quietly depend on it.
Who operates the registry mirror
GuideStar Israel is run by NPTech, established by Yad Hanadiv and JDC-Israel.
Why that matters here
JDC is one of the two largest counterparties in the American flows measured above. The most usable public window onto the receiving side is co-founded by a major participant in it.
NOT AN ALLEGATION · A DISCLOSED INTEREST THAT A READER SHOULD WEIGH
This does not impugn the registry's contents, which come from the Registrar. It means a reconciliation built on it should say so, the same way it would for any other source whose operator is also a subject.
None of these require new law. Four require a field that already exists somewhere to be carried into a file where it does not.
The same ISO list already governs Schedule 2. Applying it to the newer form would end the 484-spellings problem at source and make every year after it comparable.
Needs a form-level validation rule — no statutory change
Line 210's table cannot exceed line 200. Checking that at filing time would remove the $102.7M of mutually impossible pairs from the public file.
Needs an arithmetic check at submission
Route D already carries the recipient's registration number on 93% of rows. The transitive closure — who gave to whom, then where that recipient sent it — is computable today from files CRA already publishes, and is published by no one.
Needs a join, not a disclosure
Routes B and C key their recipients by name string only, so a rename, a transliteration or a typo silently breaks a time series. Canonical IDs, recorded aliases and a confidence score are the difference between a list and a ledger.
Needs entity resolution, published with its error rate
Sorting recipients into categories is where this kind of work usually fails. A keyword on a name is not a destination and not a purpose — Beth Israel Deaconess Medical Center is a Boston hospital. Any published category needs a written rule, a sample audited against primary documents, and a reported error rate.
Needs a rule fixed before the data, not after
After a revocation, did prior funders redirect to a particular new organisation more than they redirected to unrelated new charities? Director overlap and timing alone establish nothing; the comparison against matched controls is what makes it a finding rather than a pattern.
Needs the revocation chronology, which is not in the open release
Each of these is available from the data above and does not follow from it.
Supported
The reporting arrangement has the effect of making a partial total look comprehensive. That is measurable and measured above.
Not supported
That anyone chose it for that purpose. Intent requires the drafting record, not the output.
FUNCTIONAL READING · NOT A STATEMENT OF PURPOSE
Supported
Two ledgers built on different periods, currencies and entity boundaries will differ.
Not supported
That the difference is flow. Timing, exchange rates, duplicates and non-filing produce the same gap.
A RECONCILED DISCREPANCY IS NOT A DISCOVERY
The real figure
CRA completed 220 audits in 2024–25 and reports that 98% found non-compliance, 40% serious.
The denominator
220, out of roughly 86,000 registered charities, selected because CRA already suspected a problem.
A SELECTED SAMPLE DOES NOT DESCRIBE THE POPULATION
Quoting the 98% without the 220 is precisely the move this site exists to argue against, which is why it appears here as a caution rather than as a counter.
What is published
Names and amounts, exactly as filers entered them on public returns.
What is not
Any assessment of any recipient. No classification of purpose appears on this page, because no defensible rule for one has been fixed yet.
THE SUBJECT HERE IS THE FORM, NOT THE FILER
Every Canadian figure on this page is computed by measure.py from the Canada Revenue Agency's annual List of charities release, 2020 through 2024, and written to measure.json, which is the only source the page reads from. Re-run the script against the same release and you get these numbers. The country-code table is CRA's own, parsed from the published codes list.
The resolver that turns IL=ISRAEL into a country code is deliberately permissive:
it splits on separators, accepts a leading valid code, matches full country names in English and
French, and falls back to substring matching. It is used to show how much a careful reader
recovers that a literal match loses, so understating its reach would overstate the finding.
Anything it cannot resolve is counted as unresolved, never assigned. The 68% figure is the gap
between a machine reading the field as a code and this resolver reading it as prose.
The American figures are entity counts and Schedule I rows taken from IRS Business Master File extracts and filed Form 990 XML. The federation and intermediary sets are name-selected, and that is a real limitation: a name filter is a hypothesis about membership, not a census of it. The counts are reported as what they are — sums over a named selection — and no rate, share or per-entity average is computed from them beyond the two-counterparty concentration, which is read directly off named Schedule I rows.
It is not an allegation, and it does not classify a single recipient. The one classification that was attempted during the build — sorting grant recipients by keyword — was discarded once it put a Boston teaching hospital and a Brookline synagogue in a bucket labelled by destination. That failure is documented above rather than hidden, because it is the most likely way for anyone repeating this work to go wrong.
The draft lead claim — 47% of cross-border grant money with no destination recorded — was dropped after testing, and the test is published as a section rather than a footnote. The arithmetic was right and the reading was wrong. A page that only shows the claims that survived teaches less than one that shows the one that did not.
measure.json holds every published figure with its route and
year. canada-il-coded-2024.csv is the 1,566
Israel-coded rows from routes B and C for 2024, as filed, including the blank recipients.
measure.py and
country_codes.json produce both. Take it and point
it at another destination code — the script takes --code.