Reporting Record
Sources & limitations
How this works: every day, this tracker searches Google News, GDELT's global news index, Media Cloud's news archive, and a set of PR wire feeds for stories mentioning a monitored UN agency, INGO, or NGO alongside donation-related language, published within the last 14 days. Candidate stories are grouped into events and read by an AI model. The recipient does NOT need to be one of the monitored organizations that anchors the search — a donation to any other named nonprofit, however small or local, is published too, as long as the AI model encounters it and (see below) it operates in a country this tracker actually covers; only a recipient that's never actually named (e.g. "a local charity") is rejected outright. Every entry is tagged UN Agency / INGO / NGO / Other Nonprofit so it's clear at a glance which is which. Anything the model is unsure about is flagged under "Assumptions & uncertainties" on that entry rather than silently resolved.
Geographic scope: this tracker is anchored on OCHA's Global Humanitarian Overview (GHO) country list plus Nepal — see the recipient's own operating country/context, not the donor's. A donation with no country named at all is still published, tagged "scope: unspecified" — donors often don't earmark a specific place. A donation to a real, named recipient in a country outside this list (e.g. general corporate philanthropy to a US university or hospital) is not published; that's a deliberate scope boundary, not a bug.
What this will miss: donations that never appear in general news or PR wires at all — small or local gifts, donations announced only on social media, or ones disclosed only in an annual report months later. This tracker is a discovery aid for otherwise-uncaptured private donations, not a comprehensive financial record.
Confidence scoring: each entry is scored out of 10 on three factors: the strongest source type behind it (an official press release scores highest, a general news mention lower), whether an explicit figure was stated, and whether more than one independent outlet reported it. Entries scoring below 5 are still published but marked low-confidence and excluded from the weekly email highlights.
Today's run, in numbers
- 203 feed(s) checked (200 Google News queries across 50 monitored recipients, 3 PR wire feeds) + 102 GDELT 15-minute file(s) scanned (495 candidate mentions of a monitored recipient found) + 7 Media Cloud queries (333 candidate articles found)
- 3146 raw item(s) considered
- 1861 discarded as older than 14 days
- 420 passed the keyword pre-filter
- 234 event cluster(s) sent to the AI model for extraction
- 5 flagged as duplicates/renewals of a previously published entry
- 4 rejected — the story was real, but no specific recipient organization was actually named
- 3 rejected — no specific donor company could be identified
- 8 rejected — a real donation, but to a recipient operating in a country outside this tracker's scope
- 5 rejected — the "donor" was itself one of the monitored recipients (a donor/recipient direction mix-up)
- 6 rejected — named donor and recipient, but no amount, figure, or in-kind description showing a donation actually happened
- 2 rejected — the donor was a sovereign state or other government/bilateral actor, not a private-sector donation
- 3 entries published today
Feed problems today
The following sources could not be reached and were skipped for this run. If a feed keeps failing, its URL may need updating in config/pr_wire_feeds.txt.
- GlobeNewswire - Nonprofit — 403 Client Error: Forbidden for url: https://www.globenewswire.com/en/search/subject/Non-profit%2520organisation/feedType/rss
- CSRWire — 403 Client Error: Forbidden for url: https://csrwire.com/feed/