Unified BMF Quality Report

Generated: 2026-07-01T17:21:33+0000 Quality gate: PASSED Total rows (unique EINs): 3,687,435 Source files stacked: 118 Vintages contributing rows: 114

Summary

The Unified BMF is a single-row-per-EIN consolidation drawn from the most-recent vintage in which each EIN appears across both the current monthly BMF pipeline and the legacy 501CX-NONPROFIT-PX pipeline. See chapter 11 for the full design.

Metric Value
Total rows 3,687,435
Distinct EINs 3,687,435
Rows == distinct EINs (uniqueness gate) ✅ yes
Input CSV files 118
Vintages with at least one surviving row 114

Rows by source pipeline

Source Rows Percent
current 2,208,124 59.88
legacy 1,479,311 40.12

First / last year coverage

Metric Year
Earliest first_year_in_bmf 1989
Latest first_year_in_bmf 2026
Earliest last_year_in_bmf 1989
Latest last_year_in_bmf 2026

Vintages observed per EIN

How many distinct BMF vintages did each EIN appear in?

Metric Value
Minimum 1
Average 50.1
Maximum 214
EINs that appear in only one vintage 255,547

Vintage histogram

Number of surviving Unified BMF rows contributed by each vintage. A vintage with many rows contributed many EINs whose latest sighting was in that month.

Vintage (YYYY-MM) Source Rows contributed
2026-06 current 1,966,267
1989-06 legacy 193,984
2010-11 legacy 135,474
2016-08 legacy 97,784
2020-04 legacy 94,113
2022-01 legacy 54,697
2024-08 current 46,346
2019-08 legacy 42,702
1996-06 legacy 42,534
2011-06 legacy 42,412
2025-08 current 37,147
1998-09 legacy 34,539
2000-05 legacy 32,319
2023-08 current 28,300
2011-12 legacy 26,577
2022-08 legacy 25,074
1995-08 legacy 23,316
1997-10 legacy 22,987
2007-09 legacy 22,463
2014-06 legacy 20,208
2007-04 legacy 20,010
2012-12 legacy 19,602
2016-04 legacy 19,375
2013-07 legacy 18,728
2004-12 legacy 18,217
2003-11 legacy 18,166
2003-01 legacy 18,141
2004-04 legacy 16,696
2013-02 legacy 16,384
2018-12 legacy 16,293
1999-12 legacy 15,077
2015-07 legacy 13,427
2006-05 legacy 12,673
2023-07 current 12,471
2026-01 current 12,095
2010-08 legacy 11,730
2008-01 legacy 10,789
2002-07 legacy 10,687
2008-10 legacy 10,670
2009-10 legacy 10,532
2001-07 legacy 9,980
2026-03 current 9,574
2024-03 current 9,042
2010-07 legacy 8,989
2006-01 legacy 8,963
2010-05 legacy 8,946
2012-08 legacy 8,893
2008-04 legacy 8,790
2007-01 legacy 8,769
2002-01 legacy 8,568
2024-04 current 8,426
2024-02 current 8,276
2015-02 legacy 8,236
2009-04 legacy 8,046
2025-03 current 7,991
2012-06 legacy 7,987
2003-07 legacy 7,964
2014-02 legacy 7,690
2014-12 legacy 7,538
2023-12 current 6,971
2010-04 legacy 6,933
2015-09 legacy 6,894
2009-01 legacy 6,613
2008-06 legacy 6,585
2011-09 legacy 6,501
2025-02 current 6,347
2012-04 legacy 6,301
2015-05 legacy 6,221
2014-04 legacy 6,137
2015-12 legacy 6,056
2006-11 legacy 6,009
2009-07 legacy 5,812
2011-08 legacy 5,752
2005-07 legacy 5,634
2024-12 current 5,540
2005-11 legacy 5,423
2013-12 legacy 5,396
2016-03 legacy 5,020
2014-09 legacy 4,652
2011-07 legacy 4,607
2023-11 current 4,561
2013-05 legacy 4,528
2008-12 legacy 4,224
2025-06 current 4,102
2012-07 legacy 4,070
2013-09 legacy 3,742
2013-10 legacy 3,740
2012-02 legacy 3,626
2025-12 current 3,624
2010-01 legacy 3,578
2015-11 legacy 3,540
2024-06 current 3,532
2025-11 current 3,472
2013-06 legacy 3,408
2012-10 legacy 3,378
2025-04 current 3,338
2015-04 legacy 3,259
2025-07 current 3,142
2013-08 legacy 3,110
2025-05 current 3,093
2013-03 legacy 3,078
2011-10 legacy 3,052
2011-11 legacy 2,966
2012-03 legacy 2,874
2012-11 legacy 2,767
2026-05 current 2,738
2023-10 current 2,674
2024-11 current 2,442
2023-09 current 2,435
2013-04 legacy 2,433
2025-09 current 2,119
2024-07 current 2,059
2014-11 legacy 2,058
2016-02 legacy 1,595

Column completeness

Top 30 most-complete columns (highest non-null fraction):

Column Non-null %
ein_raw 100.00
ein 100.00
org_name_raw 100.00
org_name_join 100.00
org_name_display 100.00
org_addr_zip_raw 100.00
org_addr_state_invalid 100.00
ntee_code_clean 100.00
ntee_common_code 100.00
ntee_common_code_definition 100.00
ntee_code_major_group 100.00
naics_code 100.00
ntee_code_definition 100.00
nteev2_code 100.00
nteev2_subsector 100.00
nteev2_org_type 100.00
nteev2 100.00
bmf_source 100.00
bmf_vintages_observed 100.00
ein_prefixed 100.00
EIN2 100.00
first_vintage_ym 100.00
last_vintage_ym 100.00
bmf_vintage_ym 100.00
first_year_in_bmf 100.00
last_year_in_bmf 100.00
org_addr_city_raw 99.92
org_addr_city 99.92
org_addr_state_raw 99.88
org_addr_state 99.81

Bottom 30 least-complete columns:

Column Non-null %
org_parent_name 3.07
activity_code_definitions 20.87
activity_code_categories 20.87
dba_name_raw 25.01
dba_name 25.01
org_legal_suffix 36.40
in_care_of_name_clean 38.50
in_care_of_name_raw 38.58
revenue_amount 52.41
all_classifications_string 59.86
in_care_of_name_provided 59.88
org_addr_street_raw 59.88
org_addr_has_special_chars 59.88
org_addr_is_po_box 59.88
org_addr_is_rural_route 59.88
org_addr_street 59.88
org_addr_zip4 59.88
org_addr_full 59.88
org_addr_is_missing 59.88
org_addr_missing_number 59.88
classification_code 59.88
affiliation_code 59.88
affiliation_code_definition 59.88
deductibility_code 59.88
deductibility_code_definition 59.88
organization_code 59.88
organization_code_definition 59.88
status_code 59.88
status_code_definition 59.88
activity_code 59.88

Notes

  • All output columns are VARCHAR. The master build forces every column to string type so DuckDB’s UNION ALL BY NAME can combine the legacy slim per-vintage schema with the current full schema without per-column type-mismatch errors. Cast in your downstream tool: as.numeric(asset_amount) in R, pd.to_numeric(df['asset_amount'], errors='coerce') in pandas, etc. Lat/lon in the geocoded master output are explicitly cast to DOUBLE.
  • Legacy-only EINs have sparse columns. EINs whose latest appearance is in a pre-2014 legacy vintage carry only the legacy slim schema; current-pipeline-only columns (e.g. NTEEv2 fields, modern address quality flags) are NULL. The bmf_source column flags the source of each surviving row.