FTMFOLLOW
THE MONEY
THE CHANNEL · T3010 · SCHEDULE 2 · T1236 · T1441 The argument

THE FLOW One destination · four doorways · two country codes

The Channel

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

The doorway map

Four ways out. Two of them are counted.

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.

Route A

Own activities abroad

T3010 Schedule 2, q.3 & line 200

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.

CountryAmount by countryRecipient named

$217.6MLine 200, the 104 filers whose only listed country was Israel

Route B

Handed to an intermediary

T3010 Schedule 2, q.2 table

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.

CountryAmount by countryRecipient named

$351.6M1,417 rows · 1,396 distinct recipients · 192 filers

Route C

Grant to a non-qualified donee

T1441 · new in 2022

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.

Country, as free textAmountRecipient named

$16.2M149 rows · 113 distinct recipients · 30 filers

Route D

Gift to a qualified donee

T1236 · no country field exists

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.

CountryAmountRecipient namedRecipient keyed

$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 denominator

The big number and the small print that shrinks it

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.

Line 200 is not the total. It is one route.

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.

Israel-coded charitable outflow by route, CRA annual releases
YearRoute A filersRoute B rowsRoute B totalRoute C rowsRoute C total
2020181716$229,069,503
2021167688$231,386,012
2022172628$238,640,8304$169,606
2023178845$279,928,51528$22,379,635
20241811,417$351,600,172149$16,203,706
CRA List of charities, open dataRoute C exists only from 2022; the reform created itThe most recent release still receives late filings
The field that is not a code

484 ways to spell a country

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

What the free-text box costs a reader

Matching the code, as a machine would
20 rows · $5,146,072
Matching the way a person reads it
149 rows · $16,203,706

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.

Two numbers, one schedule

232 filers reported more out than they reported spending

No interpretation is needed for this one. It is arithmetic inside a single form.

The line 210 table is defined as a subset of line 200

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.

A headline we tested and dropped

47% of the grant money has no destination. It is the Canada Council for the Arts.

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.

The claim that looked right

“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:

FilerRowsCash
Canada Council for the Arts6,086$244,022,314
Fondation Lucie et André Chagnon137$80,776,390
Foundation for Advancing Family Medicine17$27,921,237
Green Municipal Fund64$12,033,353
Habitat Conservation Trust Foundation204$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.

The records with a hole in them

Eight rows, $30,952,466, no recipient

Of the $367.8M this release codes to Israel across routes B and C, these rows name nobody. They are reproduced exactly as filed.

$18,665,991Recipient field empty
$4,337,101“LIST AVAILABLE UPON REQUEST”As filed
$3,585,051Recipient field empty
$3,531,228“See attached”As filed
$755,557Recipient field empty
$77,538Recipient field empty
canada-il-coded-2024.csv1,566 rows, routes B and C, 2024Two further unnamed rows carry $0 and are omitted here

“List available upon request”

What the filer wrote in the public recipient field
An offer to disclose privately.
Who can take up the offer
Unstated. There is no published mechanism attached to that sentence and no field that records whether anyone ever did.

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.

The readable side

The same transaction, filed in the United States

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.

Canada

T3010 · Schedule 2 · T1236 · T1441

Recipient named
On routes B, C and D — with 8 exceptions worth $31.0M
Amount per recipient
On routes B, C and D
Country
Validated on B. Free text on C. Absent on D
Recipient identifier
Registration number on D only. Routes B and C carry a name string and nothing else

✕ The foreign recipient is never keyed

United States

Form 990 · Schedule I · Schedule F

Recipient named
Row by row on Schedule I
Amount per recipient
Row by row
Recipient identifier
EIN, which joins to the Business Master File and to the recipient's own return
Grants leaving the country
Schedule F, by region

✓ The domestic chain is keyed end to end

Why the American border form shows almost nothing

Five large federations, Schedule I parsed
2,291 grant rows · $823,627,406
The national body's two largest counterparties
United Israel Appeal $155,290,107 · American Jewish Joint Distribution Committee $47,873,503 — together 89.4% of its grantmaking
What its Schedule F reports leaving the country
About $5.4M, mostly Ukraine relief

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.

IRS Business Master FileForm 990 XML releasesCounts are name-selected from the BMF and stated as such
The second ledger

The receiving side cannot be joined, and the reason is statutory

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.

Three separate blocks, none of them technical

The registry's open data is gated
The Israeli government open-data endpoint for the Registrar of Amutot redirects to an OAuth sign-in. The metadata catalogue is open; the files are not. We did not work around it and recommend nobody does.
The public alternative is documents, not data
GuideStar Israel publishes per-organisation pages and the filed annual financial statements as scanned PDFs. That supports reading one organisation. It does not support joining nine hundred.
There is no donor-country field to join on
Israel's disclosure law that names donors applies to support from foreign state entities. A Canadian registered charity is a private donor, so no naming duty arises from it. The record a reconciliation needs was never required to exist.

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.

A limitation that belongs on the record

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.

What would close it

Six joins, and what each one needs

None of these require new law. Four require a field that already exists somewhere to be carried into a file where it does not.

  1. Validate the country box on T1441

    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

  2. Enforce the subset the instruction already states

    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

  3. Publish the qualified-donee chain as a graph

    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

  4. Give foreign recipients a stable identifier

    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

  5. Set an evidence standard before classifying any recipient

    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

  6. Test successor vehicles against a control group

    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

What this is not

The claims this page refuses to make

Each of these is available from the data above and does not follow from it.

That the gaps are designed

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

That a residual is unbooked money

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

That 98% of charities are non-compliant

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.

That any named recipient did anything wrong

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

Method and limits

How this was built, and what it is not

What a machine did

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.

What the free-text resolver does, and why it is generous

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.

What a person did

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.

What this is not

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.

What changed during the build

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.

The data and the code

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.

Pass it on

Ten ways to put this in front of someone

Every card carries the source page, not a claim standing on its own.

𝕏X / Twitter Bluesky Mastodon fFacebook inLinkedIn WhatsApp Telegram r/Reddit Email

Ten share cards · 1080×1080 · tap to open, long-press or right-click to save