How the counts are made

Methodology

Every figure on this site is counted from a public IRS file. If a file was not read, the page says so. Nothing is filled in from memory.

Files

The IRS bulk page says the files are updated monthly and does not state the day. This project checks weekly and refreshes when a file's Last-Modified header changes. Page dates on irs.gov can lag the file timestamp, so both are shown when the page was retrieved.

Parsed October 19, 2026 UTC.

Last ingest status: completed. Ingest completed. Addition and removal counts were left blank.

IRS files used in this build
FileLast-ModifiedBytesRowsSHA-256
EO BMF region 1 (eo1.csv)October 13, 2026 UTC46.7 MB280,164ea091ad16b21181a74ce5bdc42ea2df4afce3c64cde51ec7e5088db5a8c2ca0b
EO BMF region 2 (eo2.csv)October 13, 2026 UTC120.9 MB725,6226b5d18849f0fb5324955c342596b9dbfa903001cf5b2a8b0076d02fddd5f6909
EO BMF region 3 (eo3.csv)October 13, 2026 UTC158.6 MB965,185b1a20c75e02f96acc7986b0f9ee8f1efc4c40f77ba54dfbfbc4d5ceede83015f
EO BMF region 4 (eo4.csv)October 13, 2026 UTC856.5 KB5,004dfaf9b96dd4f52ea72a551eadd226ab275f2287430f4e60f1a53b679bf3a656c
Automatic revocation listOctober 13, 2026 UTC45.4 MB1,247,4257ea1b3a7d61f4c3e5772c74923886ff0d9c4b9770a7fce0d4169097e36d0e2db
Publication 78October 13, 2026 UTC28.7 MB1,428,50106c9f70cb98eed64046ef9a485f2b0c53920dc7cbda0ab3378dad6e6c9fd33fd
Form 990-N e-PostcardOctober 19, 2026 UTC89.1 MB1,549,380 (5 skipped)e61d5bf951e7c6842ce61e93d2b45466db1a321cec8d82aee03ffc588fc2f6f5

BMF page posting date: 10/13/2026. Page record count: 1,975,975. Page last reviewed: 15-Oct-2026. Publication 78 page date: September 10, 2026. Revocation page date: September 8, 2026. 990-N page date: September 7, 2026.

The parsed row count and the IRS page record count are both shown. One is not edited to match the other.

Diffs

A slim index keeps EIN plus the whitelisted BMF fields (state, subsection, classification, foundation, deductibility, status, NTEE, ruling). It is cached by the ingest workflow and is not committed. The manifest stores its SHA-256. The next ingest uses that cache when the hash matches, sorts both indexes, and walks them in EIN order. An EIN only in the new file is newly listed. An EIN in both files with a different whitelisted field is a field change. Publication 78 uses the same walk for additions, removals, and code changes. Removed Publication 78 rows keep EIN, state, and code from the index; the legal name is not stored there. If the cache is missing, those counts are left blank.

Revocations and reinstatements do not need a prior snapshot. They are grouped by the posting date and the reinstatement date already in the file. The first ingest is a baseline: new-listing and Publication 78 change counts are left blank on purpose.

Row lists cover the latest 12 months when a month has at most 2,500 rows. Larger months keep complete counts by state and subsection. Each HTML page shows 150 rows; further rows are on /page/N. State pages keep the latest 60 revocation rows and 60 reinstatement rows for that state.

2020 revocation-date caveat

The IRS says organizations with an automatic-revocation date between April 1 and July 14, 2020 should have a revocation date of July 15, 2020, because of the COVID-19 filing extension and a system limit. This site shows July 15, 2020 for those rows and keeps the file value beside it. The boundary dates are included. July 15, 2020 and March 31, 2020 are left as the file states them.

Privacy rules

Not stated

Regional EO BMF files eo1.csv through eo4.csv are a partition. Per-state files are not added on top.

Revocation dates from 1 April 2020 through 14 July 2020 are shown as 15 July 2020, matching the IRS bulk-download caveat. The file value is kept as revocationDateRaw.

ICO, STREET, ZIP, SORT_NAME, and Form 990-N officer name and address columns are never written.

Row lists are kept for posting or reinstatement months in the latest 12 months when the month has at most 2,500 rows. Larger months keep complete counts only.

NTEE is not a column on the revocation file, so category pages do not assign revocations to a major group.

Snapshot: Slim EIN indexes are not committed. The ingest workflow caches data/snapshot and this manifest stores each index SHA-256. Diffs run only when that cache matches. Source file hashes and Last-Modified are the record of what was parsed. 28.4 MB across the three indexes.