| Variant | Download | Dictionary | Quality Report | Size |
|---|---|---|---|---|
| Master BMF (geocoded) | Download | Dictionary | Quality report | 3253.4 mb |
| Unified BMF | Download | Dictionary | Quality report | 2973.4 mb |
BMF Data Catalog
The IRS Business Master File (BMF) is the authoritative registry of tax-exempt organizations in the United States. NCCS publishes BMF data in several forms; this catalog organizes them by what you’re trying to do.
For background on what the BMF contains and its scope limitations, see the BMF overview page.
Which dataset should I use?
| If you need… | Use | Why |
|---|---|---|
| One row per nonprofit, ever (1989–present) | Unified BMF | Combines every vintage into a single longitudinal frame |
| A specific month’s snapshot (2023-06 or later) | Transformed monthly BMF | Cleaned and standardized; column schema is stable across months |
| A specific month’s snapshot (1989–2022) | Harmonized legacy BMF | Same column schema as transformed; aligns historical vintages |
| The unmodified IRS file | Raw monthly archive | Untouched IRS releases, for replication of upstream analysis |
| The original NCCS legacy file | Raw legacy archive | Original 501CX-NONPROFIT-PX vintages, for reproducibility only |
| Canonical county FIPS, or to roll up to metro areas | Geography crosswalks | Optional join layers for the geocoded BMF (TIGER 2023 / OMB 2023) |
| An NTEE code for an org whose current code is blank | NTEE-resolved crosswalk | Recovers a per-EIN NTEE across all vintages (current + legacy); join by ein |
Unified BMF
One row per EIN spanning 1989 to present, with most-recent values for each organization plus first_vintage_ym, last_vintage_ym, and bmf_source to track provenance. This is the primary product for longitudinal analysis and as a sampling frame. 3,687,435 unique EINs, built from 118 source files across 114 vintages (1989–2026).
The join key is ein (XX-XXXXXXX), unchanged. The Unified BMF additionally carries two coercion-safe renderings of the same key (ADR 0036): ein_prefixed (ein-XX-XXXXXXX, lowercase — provably text, recommended for new joins) and EIN2 (EIN-XX-XXXXXXX, uppercase — a legacy-compatibility alias for merges written against the older Unified BMF / harmonized CORE format). Use whichever fits your existing code; all renderings are bijective with the same underlying 9-digit EIN.
Renamed from “Master BMF” (2026-07-01). This product was briefly published as “Master BMF”; it has been renamed back to Unified BMF, restoring the name the research community originally knew it by (ADR 0037). This is a non-silent supersession: the prior
s3://nccsdata/master/bmf/path stays live and reachable through 2026-09-28 (a 90-day window), after which it moves to a retained, citable archive — it is never deleted. If you bookmarked or scripted against the old path, re-pin tos3://nccsdata/unified/bmf/before the cutover.
The geocoded variant is the recommended default — it carries the same row schema as the plain file plus lat/lon joined against a deduplicated address table. (The geocoded extension and its per-state marts are a separate product, still named “Master BMF” — they are not renamed by this change.)
Download by State/Territory
For users who only need a single state, the geocoded Master BMF is also published as per-state marts (50 states + DC, U.S. territories, APO/FPO military codes, Compact of Free Association nations, and a ZZ bucket for rows with no resolvable state). Each mart carries lat/lon and shares a schema and dictionary with the geocoded headline file above.
| Download Link | Size | State/Territory |
|---|---|---|
| Download | 44 mb | Alabama |
| Download | 9.6 mb | Alaska |
| Download | 51.7 mb | Arizona |
| Download | 28.2 mb | Arkansas |
| Download | 343.6 mb | California |
| Download | 61 mb | Colorado |
| Download | 39.2 mb | Connecticut |
| Download | 15.6 mb | Delaware |
| Download | 29.6 mb | District of Columbia |
| Download | 186.9 mb | Florida |
| Download | 100.9 mb | Georgia |
| Download | 15.5 mb | Hawaii |
| Download | 17.4 mb | Idaho |
| Download | 132.8 mb | Illinois |
| Download | 73.6 mb | Indiana |
| Download | 48.9 mb | Iowa |
| Download | 31.8 mb | Kansas |
| Download | 38 mb | Kentucky |
| Download | 41.9 mb | Louisiana |
| Download | 16.8 mb | Maine |
| Download | 72.5 mb | Maryland |
| Download | 73.8 mb | Massachusetts |
| Download | 97.6 mb | Michigan |
| Download | 66.2 mb | Minnesota |
| Download | 26.7 mb | Mississippi |
| Download | 74.4 mb | Missouri |
| Download | 18.8 mb | Montana |
| Download | 24.1 mb | Nebraska |
| Download | 22.7 mb | Nevada |
| Download | 15.5 mb | New Hampshire |
| Download | 88.6 mb | New Jersey |
| Download | 19.7 mb | New Mexico |
| Download | 198.5 mb | New York |
| Download | 96.6 mb | North Carolina |
| Download | 11 mb | North Dakota |
| Download | 129.4 mb | Ohio |
| Download | 38.4 mb | Oklahoma |
| Download | 44.5 mb | Oregon |
| Download | 134.8 mb | Pennsylvania |
| Download | 11.6 mb | Rhode Island |
| Download | 50.4 mb | South Carolina |
| Download | 12.5 mb | South Dakota |
| Download | 64.3 mb | Tennessee |
| Download | 244.4 mb | Texas |
| Download | 21.4 mb | Utah |
| Download | 10.9 mb | Vermont |
| Download | 89.1 mb | Virginia |
| Download | 72.4 mb | Washington |
| Download | 20.7 mb | West Virginia |
| Download | 65.5 mb | Wisconsin |
| Download | 9.6 mb | Wyoming |
| Download | 0.1 mb | American Samoa |
| Download | 0.3 mb | Guam |
| Download | 0.1 mb | Northern Mariana Islands |
| Download | 4.6 mb | Puerto Rico |
| Download | 0.9 mb | U.S. Virgin Islands |
| Download | 0 mb | Armed Forces Americas |
| Download | 0.3 mb | Armed Forces Europe |
| Download | 0.2 mb | Armed Forces Pacific |
| Download | 0 mb | Federated States of Micronesia |
| Download | 0 mb | Marshall Islands |
| Download | 0 mb | Palau |
| Download | 4.5 mb | Unknown / unmapped |
Access via S3
s3://nccsdata/geocoding/bmf-master/merged/ # Geocoded variant (recommended)
s3://nccsdata/unified/bmf/ # Plain Unified BMF (bmf_unified.{parquet,csv} + dictionary + quality report + _manifest.json)
s3://nccsdata/master/bmf/ # Superseded plain path — reachable through 2026-09-28, then archived (not deleted)
s3://nccsdata/master/bmf/state_marts/csv/ # Per-state geocoded marts
Monthly BMF
Cleaned, schema-stable monthly snapshots covering 1989 to the present. The transformed pipeline (2023-06+) and the harmonized legacy pipeline (1989-2022) write to different S3 prefixes but share a column schema, so you can stack them across the era boundary without reshaping.
Recent Releases
One row per release. The Download column links the CSV (canonical format); a parquet variant is also available for some months at the same S3 prefix.
| Year | Month | Pipeline | Download | Dictionary | Quality Report | Size |
|---|---|---|---|---|---|---|
| 2026 | 06 | Transformed | Download | Dictionary | Quality report | 1785.3 mb |
| 2026 | 05 | Transformed | Download | Dictionary | Quality report | 1766.2 mb |
| 2026 | 03 | Transformed | Download | Dictionary | Quality report | 1712.8 mb |
| 2026 | 01 | Transformed | Download | Dictionary | Quality report | 1704.2 mb |
| 2025 | 12 | Transformed | Download | Dictionary | Quality report | 1702.4 mb |
Browse Older Releases
The complete archive of every monthly release — data, dictionary, and quality report — is below. (There is no separate centralized index; this catalog is the canonical listing.)
Show all monthly releases (1989–present)
| Year | Month | Pipeline | Download | Dictionary | Quality Report | Size |
|---|---|---|---|---|---|---|
| 2026 | 06 | Transformed | Download | Dictionary | Quality report | 1785.3 mb |
| 2026 | 05 | Transformed | Download | Dictionary | Quality report | 1766.2 mb |
| 2026 | 03 | Transformed | Download | Dictionary | Quality report | 1712.8 mb |
| 2026 | 01 | Transformed | Download | Dictionary | Quality report | 1704.2 mb |
| 2025 | 12 | Transformed | Download | Dictionary | Quality report | 1702.4 mb |
| 2025 | 11 | Transformed | Download | Dictionary | Quality report | 1681.3 mb |
| 2025 | 10 | Transformed | Download | Dictionary | Quality report | 1681.3 mb |
| 2025 | 09 | Transformed | Download | Dictionary | Quality report | 1667.8 mb |
| 2025 | 08 | Transformed | Download | Dictionary | Quality report | 1693 mb |
| 2025 | 07 | Transformed | Download | Dictionary | Quality report | 1685 mb |
| 2025 | 06 | Transformed | Download | Dictionary | Quality report | 1681.2 mb |
| 2025 | 05 | Transformed | Download | Dictionary | Quality report | 1679.2 mb |
| 2025 | 04 | Transformed | Download | Dictionary | Quality report | 1672 mb |
| 2025 | 03 | Transformed | Download | Dictionary | Quality report | 1672.1 mb |
| 2025 | 02 | Transformed | Download | Dictionary | Quality report | 1664.6 mb |
| 2025 | 01 | Transformed | Download | Dictionary | Quality report | 1664.6 mb |
| 2024 | 12 | Transformed | Download | Dictionary | Quality report | 1662.3 mb |
| 2024 | 11 | Transformed | Download | Dictionary | Quality report | 1657.1 mb |
| 2024 | 08 | Transformed | Download | Dictionary | Quality report | 1677.4 mb |
| 2024 | 07 | Transformed | Download | Dictionary | Quality report | 1669.2 mb |
| 2024 | 06 | Transformed | Download | Dictionary | Quality report | 1662.8 mb |
| 2024 | 04 | Transformed | Download | Dictionary | Quality report | 1649.8 mb |
| 2024 | 03 | Transformed | Download | Dictionary | Quality report | 1651.7 mb |
| 2024 | 02 | Transformed | Download | Dictionary | Quality report | 1645.8 mb |
| 2024 | 01 | Transformed | Download | Dictionary | Quality report | 1645.8 mb |
| 2023 | 12 | Transformed | Download | Dictionary | Quality report | 1644.1 mb |
| 2023 | 11 | Transformed | Download | Dictionary | Quality report | 1639.8 mb |
| 2023 | 10 | Transformed | Download | Dictionary | Quality report | 1633.1 mb |
| 2023 | 09 | Transformed | Download | Dictionary | Quality report | 1628.8 mb |
| 2023 | 08 | Transformed | Download | Dictionary | Quality report | 1252.9 mb |
| 2023 | 07 | Transformed | Download | Dictionary | Quality report | 1654.2 mb |
| 2023 | 06 | Transformed | Download | Dictionary | Quality report | 1621.9 mb |
| 2022 | 08 | Harmonized legacy | Download | Dictionary | Quality report | 774.7 mb |
| 2022 | 01 | Harmonized legacy | Download | Dictionary | Quality report | 773.5 mb |
| 2020 | 04 | Harmonized legacy | Download | Dictionary | Quality report | 765.3 mb |
| 2019 | 08 | Harmonized legacy | Download | Dictionary | Quality report | 763.1 mb |
| 2018 | 12 | Harmonized legacy | Download | Dictionary | Quality report | 677.9 mb |
| 2016 | 08 | Harmonized legacy | Download | Dictionary | Quality report | 821.3 mb |
| 2016 | 04 | Harmonized legacy | Download | Dictionary | Quality report | 816 mb |
| 2016 | 03 | Harmonized legacy | Download | Dictionary | Quality report | 814.5 mb |
| 2016 | 02 | Harmonized legacy | Download | Dictionary | Quality report | 811.2 mb |
| 2015 | 12 | Harmonized legacy | Download | Dictionary | Quality report | 804.4 mb |
| 2015 | 11 | Harmonized legacy | Download | Dictionary | Quality report | 804.8 mb |
| 2015 | 09 | Harmonized legacy | Download | Dictionary | Quality report | 796.1 mb |
| 2015 | 07 | Harmonized legacy | Download | Dictionary | Quality report | 801.7 mb |
| 2015 | 05 | Harmonized legacy | Download | Dictionary | Quality report | 795.3 mb |
| 2015 | 04 | Harmonized legacy | Download | Dictionary | Quality report | 790.9 mb |
| 2015 | 02 | Harmonized legacy | Download | Dictionary | Quality report | 783.6 mb |
| 2014 | 12 | Harmonized legacy | Download | Dictionary | Quality report | 777.3 mb |
| 2014 | 11 | Harmonized legacy | Download | Dictionary | Quality report | 773 mb |
| 2014 | 09 | Harmonized legacy | Download | Dictionary | Quality report | 757.8 mb |
| 2014 | 06 | Harmonized legacy | Download | Dictionary | Quality report | 743.8 mb |
| 2014 | 04 | Harmonized legacy | Download | Dictionary | Quality report | 741.1 mb |
| 2014 | 02 | Harmonized legacy | Download | Dictionary | Quality report | 666.8 mb |
| 2013 | 12 | Harmonized legacy | Download | Dictionary | Quality report | 664.2 mb |
| 2013 | 10 | Harmonized legacy | Download | Dictionary | Quality report | 663 mb |
| 2013 | 09 | Harmonized legacy | Download | Dictionary | Quality report | 662.5 mb |
| 2013 | 08 | Harmonized legacy | Download | Dictionary | Quality report | 661.9 mb |
| 2013 | 07 | Harmonized legacy | Download | Dictionary | Quality report | 671.9 mb |
| 2013 | 06 | Harmonized legacy | Download | Dictionary | Quality report | 670.6 mb |
| 2013 | 05 | Harmonized legacy | Download | Dictionary | Quality report | 670.7 mb |
| 2013 | 04 | Harmonized legacy | Download | Dictionary | Quality report | 670.2 mb |
| 2013 | 03 | Harmonized legacy | Download | Dictionary | Quality report | 668.2 mb |
| 2013 | 02 | Harmonized legacy | Download | Dictionary | Quality report | 677.2 mb |
| 2012 | 12 | Harmonized legacy | Download | Dictionary | Quality report | 685.4 mb |
| 2012 | 11 | Harmonized legacy | Download | Dictionary | Quality report | 684.3 mb |
| 2012 | 10 | Harmonized legacy | Download | Dictionary | Quality report | 683.9 mb |
| 2012 | 08 | Harmonized legacy | Download | Dictionary | Quality report | 683.3 mb |
| 2012 | 07 | Harmonized legacy | Download | Dictionary | Quality report | 682.7 mb |
| 2012 | 06 | Harmonized legacy | Download | Dictionary | Quality report | 684.4 mb |
| 2012 | 04 | Harmonized legacy | Download | Dictionary | Quality report | 678.8 mb |
| 2012 | 03 | Harmonized legacy | Download | Dictionary | Quality report | 680.4 mb |
| 2012 | 02 | Harmonized legacy | Download | Dictionary | Quality report | 674.5 mb |
| 2011 | 12 | Harmonized legacy | Download | Dictionary | Quality report | 691.6 mb |
| 2011 | 11 | Harmonized legacy | Download | Dictionary | Quality report | 690.9 mb |
| 2011 | 10 | Harmonized legacy | Download | Dictionary | Quality report | 689.3 mb |
| 2011 | 09 | Harmonized legacy | Download | Dictionary | Quality report | 688.6 mb |
| 2011 | 08 | Harmonized legacy | Download | Dictionary | Quality report | 688.4 mb |
| 2011 | 07 | Harmonized legacy | Download | Dictionary | Quality report | 689.1 mb |
| 2011 | 06 | Harmonized legacy | Download | Dictionary | Quality report | 759.2 mb |
| 2010 | 11 | Harmonized legacy | Download | Dictionary | Quality report | 765.4 mb |
| 2010 | 08 | Harmonized legacy | Download | Dictionary | Quality report | 758.2 mb |
| 2010 | 07 | Harmonized legacy | Download | Dictionary | Quality report | 756.3 mb |
| 2010 | 05 | Harmonized legacy | Download | Dictionary | Quality report | 755.6 mb |
| 2010 | 04 | Harmonized legacy | Download | Dictionary | Quality report | 753.4 mb |
| 2010 | 01 | Harmonized legacy | Download | Dictionary | Quality report | 713.5 mb |
| 2009 | 10 | Harmonized legacy | Download | Dictionary | Quality report | 708.2 mb |
| 2009 | 07 | Harmonized legacy | Download | Dictionary | Quality report | 701.5 mb |
| 2009 | 04 | Harmonized legacy | Download | Dictionary | Quality report | 694.3 mb |
| 2009 | 01 | Harmonized legacy | Download | Dictionary | Quality report | 687.6 mb |
| 2008 | 12 | Harmonized legacy | Download | Dictionary | Quality report | 684.2 mb |
| 2008 | 10 | Harmonized legacy | Download | Dictionary | Quality report | 682.5 mb |
| 2008 | 06 | Harmonized legacy | Download | Dictionary | Quality report | 674 mb |
| 2008 | 04 | Harmonized legacy | Download | Dictionary | Quality report | 660.3 mb |
| 2008 | 01 | Harmonized legacy | Download | Dictionary | Quality report | 658.7 mb |
| 2007 | 09 | Harmonized legacy | Download | Dictionary | Quality report | 666.2 mb |
| 2007 | 04 | Harmonized legacy | Download | Dictionary | Quality report | 664.5 mb |
| 2007 | 01 | Harmonized legacy | Download | Dictionary | Quality report | 662.4 mb |
| 2006 | 11 | Harmonized legacy | Download | Dictionary | Quality report | 647.2 mb |
| 2006 | 05 | Harmonized legacy | Download | Dictionary | Quality report | 601.6 mb |
| 2006 | 01 | Harmonized legacy | Download | Dictionary | Quality report | 604.7 mb |
| 2005 | 11 | Harmonized legacy | Download | Dictionary | Quality report | 602.5 mb |
| 2005 | 07 | Harmonized legacy | Download | Dictionary | Quality report | 599.4 mb |
| 2004 | 12 | Harmonized legacy | Download | Dictionary | Quality report | 597.3 mb |
| 2004 | 04 | Harmonized legacy | Download | Dictionary | Quality report | 587.8 mb |
| 2003 | 11 | Harmonized legacy | Download | Dictionary | Quality report | 584.5 mb |
| 2003 | 07 | Harmonized legacy | Download | Dictionary | Quality report | 575.4 mb |
| 2003 | 01 | Harmonized legacy | Download | Dictionary | Quality report | 564.8 mb |
| 2002 | 07 | Harmonized legacy | Download | Dictionary | Quality report | 554.9 mb |
| 2002 | 01 | Harmonized legacy | Download | Dictionary | Quality report | 587.3 mb |
| 2001 | 07 | Harmonized legacy | Download | Dictionary | Quality report | 527.1 mb |
| 2000 | 05 | Harmonized legacy | Download | Dictionary | Quality report | 506.9 mb |
| 1999 | 12 | Harmonized legacy | Download | Dictionary | Quality report | 505.3 mb |
| 1998 | 09 | Harmonized legacy | Download | Dictionary | Quality report | 497.1 mb |
| 1997 | 10 | Harmonized legacy | Download | Dictionary | Quality report | 483.9 mb |
| 1996 | 06 | Harmonized legacy | Download | Dictionary | Quality report | 462.9 mb |
| 1995 | 08 | Harmonized legacy | Download | Dictionary | Quality report | 441.1 mb |
| 1989 | 06 | Harmonized legacy | Download | Dictionary | Quality report | 249.5 mb |
Access via S3
s3://nccsdata/processed/bmf/{YYYY_MM}/ # Transformed (2023-06 -> present)
s3://nccsdata/processed/bmf-legacy/{YYYY_MM}/ # Harmonized legacy (1989-06 -> 2022)
Each month directory contains:
bmf_{YYYY_MM}_processed.csv(or.parquet) — the databmf_{YYYY_MM}_data_dictionary.csv— column definitionsbmf_{YYYY_MM}_quality_report.json— machine-readable quality metrics
Geography Crosswalks
Optional join layers for the geocoded Master BMF that turn a messy address into clean geography: attach a canonical county FIPS code to each organization, then roll that county up to its metro/micropolitan area. Reach for these when you need a collision-proof geographic key — Baltimore city (24510) is not Baltimore County (24005) — or want to aggregate nonprofits to metro areas.
These rows link the canonical S3 copies — the same files the pipeline consumes — so the catalog never drifts from the machine contract. The CSV is for humans and spreadsheets; the parquet is the machine-typed copy; each _manifest.json records the row count, sha256, and geography vintage.
How the crosswalks chain together
These are derived, multi-hop artifacts: you don’t start from county_fips, you arrive at it. The geocoded BMF gives you a dirty county label and a lat/lon; the crosswalks walk that to a metro area:
- County label → county FIPS. Join the county FIPS crosswalk on
(geo_state_abbr, geo_county)— the crosswalk side of the county key isgeo_county_raw— to get a canonical 5-chargeo_county_fips. - Connecticut detour (by coordinate). CT replaced its counties with planning regions in 2022, so CT’s old county labels are deferred in step 1 (
resolution = deferred_ct_planning_region). Resolve them instead from the org’s coordinate: round lat/lon to 2 decimals and join the CT planning-region crosswalk on(lat2, lon2)to get the planning-region FIPS (09110–09190). - County FIPS → metro area. Chain the CBSA crosswalk on
county_fipsto attach the metro/micropolitan area (and Combined Statistical Area, where applicable). The CBSA crosswalk already keys CT on the new planning-region FIPS, so step 2 lands cleanly here.
All three share one geography vintage (Census TIGER 2023 / OMB 2023) and are designed to be chained — present them together, not in isolation. FIPS/CBSA/CSA codes are strings; preserve leading zeros. Unresolved/ambiguous county labels and rural counties carry NA codes by design, not as missing data.
| Crosswalk | Role in the chain | Geography vintage | Rows | Download | Machine copy | Manifest |
|---|---|---|---|---|---|---|
| County FIPS | label → FIPS (hop 1) | Census TIGER 2023 | 3,635 (3,615 resolved, 99.4%) | CSV | Parquet | manifest.json |
| CT planning-region | CT by coordinate (hop 2) | Census TIGER 2023 | 14,271 (coordinate grid) | CSV | Parquet | manifest.json |
| CBSA (metro/micro) | FIPS → metro area (hop 3) | OMB 2023 delineations | 3,228 (1,915 in a CBSA, 1,313 rural) | CSV | Parquet | manifest.json |
Geography vintage matters. County boundaries shift — Connecticut replaced its counties with planning regions in 2022 — so a stale vintage is a silent trap. All three crosswalks are built against the 2023 vintage (Census TIGER 2023 boundaries; OMB 2023 CBSA delineations) and carry the year in-column (
tiger_year/delineation_year). Filter against the boundary year you intend, and don’t mix vintages across the chain.
County FIPS crosswalk
Maps the geocoder’s dirty county label (geo_county) to the canonical Census county FIPS GEOID + NAMELSAD, so you can canonicalize names and filter by a collision-proof key. 3,635 rows; 3,615 resolved (99.4%) — the remainder are 8 ambiguous city-vs-county labels, 8 CT labels deferred to the planning-region crosswalk, and 4 unresolved.
| Column | Description |
|---|---|
geo_state_abbr |
2-letter state postal code (join key) |
geo_county_raw |
The geocoder’s raw, dirty county label (join key) |
geo_county_fips |
Canonical 5-char county FIPS GEOID (string — keep leading zeros) |
state_fips |
2-char state FIPS (string) |
geo_county_canonical |
Canonical county name (NAMELSAD) |
resolution |
How the raw label was matched (resolved, ambiguous, unresolved, deferred_ct_planning_region) |
tiger_year |
Census TIGER boundary vintage (2023) |
CT planning-region crosswalk
Connecticut’s companion to the county crosswalk. Because CT’s old county labels can’t be trusted post-2022, this resolves CT geography from the organization’s coordinate instead of its label. It’s a lookup grid — one row per ~1 km cell (lat/lon rounded to 2 decimals) mapped to one of CT’s 9 planning regions (FIPS 09110–09190). 14,271 rows.
| Column | Description |
|---|---|
geo_state_abbr |
Always CT |
lat2, lon2 |
Latitude/longitude rounded to 2 decimals (the join key — round the org’s coordinate the same way) |
geo_county_fips |
CT planning-region FIPS (09110–09190; joins to the CBSA crosswalk’s county_fips) |
state_fips |
09 |
geo_county_canonical |
Planning-region name |
area_share |
Fraction of the cell falling in this planning region (1 when the cell sits fully inside one region) |
straddle |
TRUE where a cell straddles a region boundary (529 cells); pick the row with the largest area_share |
tiger_year |
Census TIGER boundary vintage (2023) |
CBSA crosswalk
The metro/micropolitan rollup. Maps each county FIPS to its OMB Core-Based Statistical Area, so you can aggregate nonprofits to metro areas. 3,228 rows (one per county GEOID): 1,915 counties fall in a CBSA — 1,252 metropolitan, 663 micropolitan, across 935 distinct CBSAs (184 of which are grouped into Combined Statistical Areas) — and 1,313 rural counties carry NA.
| Column | Description |
|---|---|
county_fips |
5-char county FIPS (string; joins to the county crosswalk’s geo_county_fips) |
county_name |
County name |
cbsa_code |
CBSA code (string — keep leading zeros) |
cbsa_title |
CBSA name |
cbsa_type |
Metropolitan Statistical Area or Micropolitan Statistical Area |
central_outlying |
Whether the county is central or outlying within the CBSA |
csa_code |
Combined Statistical Area code (string), if any |
csa_title |
Combined Statistical Area name, if any |
delineation_year |
OMB delineation vintage (2023) |
Caveats
- FIPS, CBSA, and CSA codes are strings. Opening a CSV directly in Excel may strip leading zeros on display — read these columns as text.
NAis a value, not a gap. Rural counties (those in no CBSA) carryNACBSA/CSA codes by design; that’s the correct value. Likewise, ambiguous city-vs-county labels (a bare “Baltimore” or “Roanoke”) are intentionally left unresolved upstream in the county crosswalk.
Access via S3
s3://nccsdata/crosswalks/county-fips/ # county FIPS crosswalk (.csv + .parquet + _manifest.json)
s3://nccsdata/crosswalks/ct-planning-region/ # CT planning-region crosswalk (.csv + .parquet + _manifest.json)
s3://nccsdata/crosswalks/cbsa/ # CBSA crosswalk (.csv + .parquet + _manifest.json)
Each prefix is flat — the vintage is carried in-column and in _manifest.json (use its sha256 to detect changes), not in the path.
Full producer documentation: County FIPS crosswalk · CBSA crosswalk · CT planning-region crosswalk.
NTEE-Resolved Crosswalk
A per-EIN NTEE classification recovered across every vintage of both BMF pipelines (the current monthly file and the legacy 501CX archive). The Unified BMF carries each organization’s NTEE as reported in its most-recent vintage — which silently discards a known older code when the newest one is blank. The IRS sometimes nulls an organization’s NTEE_CD at source: Carnegie Mellon (EIN 25-0969449) is blank in the current BMF but was coded B43 (University) in the legacy vintages. No cleaner can classify a null; only a cross-vintage lookup can recover it.
This crosswalk does that recovery. It aggregates the verbatim raw NTEE code per EIN across all 114 vintages, cleans the distinct codes once with the current NTEE transform, and exposes the full history so you pick the resolution rule that fits your use — it takes no opinionated single pick (per ADR 0016, consumer-composes). It is not a column on the Unified BMF: join it onto the BMF or CORE by ein (XX-XXXXXXX) and apply the rule you want.
The four resolution views (each EIN carries all of them):
ntee_current— the code in the latest current vintage. May beNAby design — this is the IRS’s current answer (CMU’s state today).ntee_most_recent— the newest vintage with a non-null code, from either pipeline (CMU →B43). This is the view that recovers IRS-nulled codes.ntee_modal— the most-observed code across vintages (resistant to a one-off miscode; ties broken by recency).ntee_code_distribution— the full per-code history as JSON, for your own custom rule.
Each of the first three carries _subsector (NTEEv2 subsector, e.g. UNI/HOS/EDU) and _nteev2 (full NTEEv2 code) derivatives, plus n_distinct_codes, n_vintages_with_ntee, and ntee_agreement (single/unanimous/mixed) as a confidence signal. To filter for universities, for example, use ntee_most_recent_subsector == 'UNI' — not a substring guess.
Scale & recovery. 3,613,958 EINs (one row per EIN with an NTEE in ≥1 vintage). Of 2,054,414 EINs whose ntee_current is null/blank, 2,031,485 (98.9%) recover a usable code via ntee_most_recent. Agreement across vintages: unanimous 71.5% / mixed 21.5% / single 7.0%.
| File | Format | Size | Download |
|---|---|---|---|
ntee_resolved_crosswalk.parquet |
Parquet (zstd) — machine contract, recommended | ~78 MB | Parquet |
ntee_resolved_crosswalk.csv |
CSV mirror | ~640 MB | CSV |
_manifest.json |
Provenance (ADR 0014) | — | manifest.json |
The 640 MB CSV is not Excel-friendly — it is far larger than a spreadsheet can open, and Excel strips leading zeros and mangles the JSON
ntee_code_distributioncolumn. Prefer the parquet (the machine contract); reach for the CSV only for a streaming/awk-style read where parquet tooling isn’t available.
Column dictionary
One row per EIN, 20 columns. NTEE codes are strings (NTEE-CC) — never cast them numeric.
| Column | Type | Description |
|---|---|---|
ein |
string | Formatted EIN (XX-XXXXXXX) — the join key (never null); unchanged |
ein_prefixed |
string | ein-XX-XXXXXXX — coercion-safe lowercase-prefixed rendering of ein (ADR 0036) |
EIN2 |
string | EIN-XX-XXXXXXX — legacy-compatibility alias of ein (matches the older Unified BMF / harmonized CORE join format) |
ntee_current |
string | Cleaned NTEE-CC from the latest current vintage; NA if never in current or IRS-nulled |
ntee_current_subsector |
string | NTEEv2 subsector (e.g. UNI/HOS/EDU) for the current code |
ntee_current_nteev2 |
string | Full NTEEv2 code for the current code |
current_vintage |
string | YYYY_MM of the latest current vintage observed for the EIN |
ntee_most_recent |
string | Cleaned NTEE-CC from the newest vintage carrying a non-null code (any source) |
ntee_most_recent_subsector |
string | NTEEv2 subsector for the most-recent code |
ntee_most_recent_nteev2 |
string | Full NTEEv2 code for the most-recent code |
ntee_most_recent_vintage |
string | YYYY_MM that supplied ntee_most_recent |
ntee_most_recent_source |
string | current | legacy — pipeline that supplied ntee_most_recent |
ntee_modal |
string | Most-observed cleaned code across vintages (ties broken by recency) |
ntee_modal_subsector |
string | NTEEv2 subsector for the modal code |
ntee_modal_nteev2 |
string | Full NTEEv2 code for the modal code |
ntee_modal_n |
int | Vintage-observations supporting the modal code |
ntee_code_distribution |
string | JSON keyed on cleaned NTEE-CC: {code:{n,first,last}} — full history |
n_distinct_codes |
int | Count of distinct cleaned codes ever observed for the EIN |
n_vintages_with_ntee |
int | Total vintage-observations carrying an NTEE |
ntee_agreement |
string | single (one obs) | unanimous (all agree) | mixed |
There is no separate data-dictionary CSV for this artifact — the contracted truth is the parquet/CSV plus _manifest.json, and the column docs above come from the crosswalk contract.
Provenance
The _manifest.json (ADR 0014 shape) records the published provenance — use its sha256 to detect changes. As of first publish:
| Field | Value |
|---|---|
vintage |
2026_06 (newest current BMF vintage at build) |
built_at |
2026-06-24T19:54:22Z |
git_sha |
1e1290d |
row_count |
3,613,958 |
| Inputs | current + legacy intermediate parquets (ntee_code_raw), plus the sha256 of transform_ntee_code.R and the legacy 5-char lookup |
The crosswalk is rebuilt monthly after each new current BMF lands, so ntee_current tracks the newest vintage (the legacy half is static); uploads are idempotent (unchanged files skipped via the manifest sha256). Always read the live _manifest.json for the current vintage/git_sha/built_at.
Access via S3
s3://nccsdata/crosswalks/ntee-resolved/ # .parquet (machine contract) + .csv mirror + _manifest.json
The prefix is flat — the vintage is carried in _manifest.json, not in the path. Rationale: ADR 0034.
Raw Archives
Show raw IRS and NCCS files (for reproducibility only — most users want the products above)
Raw Monthly BMF
Untouched IRS monthly releases. Use these when you need to replicate analysis built on a specific raw file or verify upstream NCCS transformations.
URL pattern:
https://nccsdata.s3.us-east-1.amazonaws.com/raw/bmf/{YYYY-MM}-BMF.csv
Replace {YYYY-MM} with the desired vintage (e.g. 2026-01). See the IRS BMF documentation for the original schema.
Raw Legacy BMF
Original NCCS 501CX-NONPROFIT-PX vintages. Each row links the unmodified file and its profile (data dictionary). Most users should prefer the harmonized legacy BMF above — it has the same schema as the transformed monthly product.
| Year | Month | File | Download | Profile | Size |
|---|---|---|---|---|---|
| 2022 | 08 | BMF-2022-08-501CX-NONPROFIT-PX.csv | Download | Profile | 345.8 mb |
| 2022 | 01 | BMF-2022-01-501CX-NONPROFIT-PX.csv | Download | Profile | 377.1 mb |
| 2020 | 04 | BMF-2020-04-501CX-NONPROFIT-PX.csv | Download | Profile | 375.9 mb |
| 2019 | 08 | BMF-2019-08-501CX-NONPROFIT-PX.csv | Download | Profile | 374.9 mb |
| 2018 | 12 | BMF-2018-12-501CX-NONPROFIT-PX.csv | Download | Profile | 330.5 mb |
| 2017 | 12 | BMF-2017-12-501CX-NONPROFIT-PX.csv | Download | Profile | 339.5 mb |
| 2017 | 09 | BMF-2017-09-501CX-NONPROFIT-PX.csv | Download | Profile | 344.8 mb |
| 2016 | 08 | BMF-2016-08-501CX-NONPROFIT-PX.csv | Download | Profile | 368.3 mb |
| 2016 | 04 | BMF-2016-04-501CX-NONPROFIT-PX.csv | Download | Profile | 368.4 mb |
| 2016 | 03 | BMF-2016-03-501CX-NONPROFIT-PX.csv | Download | Profile | 367.7 mb |
| 2016 | 02 | BMF-2016-02-501CX-NONPROFIT-PX.csv | Download | Profile | 366.4 mb |
| 2015 | 12 | BMF-2015-12-501CX-NONPROFIT-PX.csv | Download | Profile | 363.7 mb |
| 2015 | 11 | BMF-2015-11-501CX-NONPROFIT-PX.csv | Download | Profile | 363.5 mb |
| 2015 | 09 | BMF-2015-09-501CX-NONPROFIT-PX.csv | Download | Profile | 359.9 mb |
| 2015 | 07 | BMF-2015-07-501CX-NONPROFIT-PX.csv | Download | Profile | 361.1 mb |
| 2015 | 05 | BMF-2015-05-501CX-NONPROFIT-PX.csv | Download | Profile | 358.5 mb |
| 2015 | 04 | BMF-2015-04-501CX-NONPROFIT-PX.csv | Download | Profile | 356.7 mb |
| 2015 | 02 | BMF-2015-02-501CX-NONPROFIT-PX.csv | Download | Profile | 353.5 mb |
| 2014 | 12 | BMF-2014-12-501CX-NONPROFIT-PX.csv | Download | Profile | 351.1 mb |
| 2014 | 11 | BMF-2014-11-501CX-NONPROFIT-PX.csv | Download | Profile | 349.5 mb |
| 2014 | 09 | BMF-2014-09-501CX-NONPROFIT-PX.csv | Download | Profile | 343.2 mb |
| 2014 | 06 | BMF-2014-06-501CX-NONPROFIT-PX.csv | Download | Profile | 337.5 mb |
| 2014 | 04 | BMF-2014-04-501CX-NONPROFIT-PX.csv | Download | Profile | 336.3 mb |
| 2014 | 02 | BMF-2014-02-501CX-NONPROFIT-PX.csv | Download | Profile | 334.5 mb |
| 2013 | 12 | BMF-2013-12-501CX-NONPROFIT-PX.csv | Download | Profile | 331.7 mb |
| 2013 | 10 | BMF-2013-10-501CX-NONPROFIT-PX.csv | Download | Profile | 339.7 mb |
| 2013 | 09 | BMF-2013-09-501CX-NONPROFIT-PX.csv | Download | Profile | 331.2 mb |
| 2013 | 08 | BMF-2013-08-501CX-NONPROFIT-PX.csv | Download | Profile | 330.7 mb |
| 2013 | 07 | BMF-2013-07-501CX-NONPROFIT-PX.csv | Download | Profile | 335.3 mb |
| 2013 | 06 | BMF-2013-06-501CX-NONPROFIT-PX.csv | Download | Profile | 334.7 mb |
| 2013 | 05 | BMF-2013-05-501CX-NONPROFIT-PX.csv | Download | Profile | 334.2 mb |
| 2013 | 04 | BMF-2013-04-501CX-NONPROFIT-PX.csv | Download | Profile | 333.9 mb |
| 2013 | 03 | BMF-2013-03-501CX-NONPROFIT-PX.csv | Download | Profile | 332.3 mb |
| 2013 | 02 | BMF-2013-02-501CX-NONPROFIT-PX.csv | Download | Profile | 337 mb |
| 2012 | 12 | BMF-2012-12-501CX-NONPROFIT-PX.csv | Download | Profile | 339.4 mb |
| 2012 | 11 | BMF-2012-11-501CX-NONPROFIT-PX.csv | Download | Profile | 338.9 mb |
| 2012 | 10 | BMF-2012-10-501CX-NONPROFIT-PX.csv | Download | Profile | 338.7 mb |
| 2012 | 08 | BMF-2012-08-501CX-NONPROFIT-PX.csv | Download | Profile | 338.7 mb |
| 2012 | 07 | BMF-2012-07-501CX-NONPROFIT-PX.csv | Download | Profile | 338.4 mb |
| 2012 | 06 | BMF-2012-06-501CX-NONPROFIT-PX.csv | Download | Profile | 339.2 mb |
| 2012 | 04 | BMF-2012-04-501CX-NONPROFIT-PX.csv | Download | Profile | 310 mb |
| 2012 | 03 | BMF-2012-03-501CX-NONPROFIT-PX.csv | Download | Profile | 336.1 mb |
| 2012 | 02 | BMF-2012-02-501CX-NONPROFIT-PX.csv | Download | Profile | 308.2 mb |
| 2011 | 12 | BMF-2011-12-501CX-NONPROFIT-PX.csv | Download | Profile | 342.6 mb |
| 2011 | 11 | BMF-2011-11-501CX-NONPROFIT-PX.csv | Download | Profile | 342.2 mb |
| 2011 | 10 | BMF-2011-10-501CX-NONPROFIT-PX.csv | Download | Profile | 341.4 mb |
| 2011 | 09 | BMF-2011-09-501CX-NONPROFIT-PX.csv | Download | Profile | 340.8 mb |
| 2011 | 08 | BMF-2011-08-501CX-NONPROFIT-PX.csv | Download | Profile | 342.1 mb |
| 2011 | 07 | BMF-2011-07-501CX-NONPROFIT-PX.csv | Download | Profile | 340.9 mb |
| 2011 | 06 | BMF-2011-06-501CX-NONPROFIT-PX.csv | Download | Profile | 338.5 mb |
| 2010 | 11 | BMF-2010-11-501CX-NONPROFIT-PX.csv | Download | Profile | 374.9 mb |
| 2010 | 08 | BMF-2010-08-501CX-NONPROFIT-PX.csv | Download | Profile | 382.1 mb |
| 2010 | 07 | BMF-2010-07-501CX-NONPROFIT-PX.csv | Download | Profile | 415.5 mb |
| 2010 | 05 | BMF-2010-05-501CX-NONPROFIT-PX.csv | Download | Profile | 411.6 mb |
| 2010 | 04 | BMF-2010-04-501CX-NONPROFIT-PX.csv | Download | Profile | 410.8 mb |
| 2010 | 01 | BMF-2010-01-501CX-NONPROFIT-PX.csv | Download | Profile | 380.4 mb |
| 2009 | 10 | BMF-2009-10-501CX-NONPROFIT-PX.csv | Download | Profile | 382.5 mb |
| 2009 | 07 | BMF-2009-07-501CX-NONPROFIT-PX.csv | Download | Profile | 306.7 mb |
| 2009 | 04 | BMF-2009-04-501CX-NONPROFIT-PX.csv | Download | Profile | 303.4 mb |
| 2009 | 01 | BMF-2009-01-501CX-NONPROFIT-PX.csv | Download | Profile | 323.3 mb |
| 2008 | 12 | BMF-2008-12-501CX-NONPROFIT-PX.csv | Download | Profile | 299.1 mb |
| 2008 | 10 | BMF-2008-10-501CX-NONPROFIT-PX.csv | Download | Profile | 304.9 mb |
| 2008 | 06 | BMF-2008-06-501CX-NONPROFIT-PX.csv | Download | Profile | 293.3 mb |
| 2008 | 04 | BMF-2008-04-501CX-NONPROFIT-PX.csv | Download | Profile | 291.1 mb |
| 2008 | 01 | BMF-2008-01-501CX-NONPROFIT-PX.csv | Download | Profile | 286.1 mb |
| 2007 | 09 | BMF-2007-09-501CX-NONPROFIT-PX.csv | Download | Profile | 297.7 mb |
| 2007 | 04 | BMF-2007-04-501CX-NONPROFIT-PX.csv | Download | Profile | 304.6 mb |
| 2007 | 01 | BMF-2007-01-501CX-NONPROFIT-PX.csv | Download | Profile | 311 mb |
| 2006 | 11 | BMF-2006-11-501CX-NONPROFIT-PX.csv | Download | Profile | 316.3 mb |
| 2006 | 05 | BMF-2006-05-501CX-NONPROFIT-PX.csv | Download | Profile | 316.8 mb |
| 2006 | 01 | BMF-2006-01-501CX-NONPROFIT-PX.csv | Download | Profile | 318.4 mb |
| 2005 | 11 | BMF-2005-11-501CX-NONPROFIT-PX.csv | Download | Profile | 314.2 mb |
| 2005 | 07 | BMF-2005-07-501CX-NONPROFIT-PX.csv | Download | Profile | 306.7 mb |
| 2004 | 12 | BMF-2004-12-501CX-NONPROFIT-PX.csv | Download | Profile | 300.3 mb |
| 2004 | 04 | BMF-2004-04-501CX-NONPROFIT-PX.csv | Download | Profile | 308.9 mb |
| 2003 | 11 | BMF-2003-11-501CX-NONPROFIT-PX.csv | Download | Profile | 309.3 mb |
| 2003 | 07 | BMF-2003-07-501CX-NONPROFIT-PX.csv | Download | Profile | 314.2 mb |
| 2003 | 01 | BMF-2003-01-501CX-NONPROFIT-PX.csv | Download | Profile | 285.5 mb |
| 2002 | 07 | BMF-2002-07-501CX-NONPROFIT-PX.csv | Download | Profile | 286.7 mb |
| 2002 | 01 | BMF-2002-01-501CX-NONPROFIT-PX.csv | Download | Profile | 289.3 mb |
| 2001 | 07 | BMF-2001-07-501CX-NONPROFIT-PX.csv | Download | Profile | 272.2 mb |
| 2000 | 05 | BMF-2000-05-501CX-NONPROFIT-PX.csv | Download | Profile | 262.5 mb |
| 1999 | 12 | BMF-1999-12-501CX-NONPROFIT-PX.csv | Download | Profile | 253 mb |
| 1998 | 09 | BMF-1998-09-501CX-NONPROFIT-PX.csv | Download | Profile | 249 mb |
| 1997 | 10 | BMF-1997-10-501CX-NONPROFIT-PX.csv | Download | Profile | 242.2 mb |
| 1996 | 06 | BMF-1996-06-501CX-NONPROFIT-PX.csv | Download | Profile | 236.6 mb |
| 1995 | 08 | BMF-1995-08-501CX-NONPROFIT-PX.csv | Download | Profile | 223.4 mb |
| 1989 | 06 | BMF-1989-06-501CX-NONPROFIT-PX.csv | Download | Profile | 123.3 mb |
Documentation & Support
- BMF Processing Guide — how NCCS cleans and harmonizes BMF data
- Quality Reports Index — every per-month and per-product quality report
- Source repository — pipeline code and issue tracker
- Contact — questions, corrections, data requests
Last verified: 2026-07-01