A random sample of 10,000 nonprofit organizations drawn from the 2023 IRS 990
efile database, combining financial data from Form 990 Parts I, VIII, IX, and X
with organizational metadata from the IRS Business Master File (BMF). The
sample carries every efile field that the get_*() metric functions use by
default, so compute_all() runs the full battery offline.
Format
A data frame with 10,000 rows. The dataset includes both full 990
filers and 990-EZ filers; the RETURN_TYPE column identifies which form each
organization filed. Dollar amounts are whole dollars stored as plain doubles
(never bit64 integer64). Variables are organized into the following groups:
Organization identifiers
EIN2: Employer Identification Number ("EIN-XX-XXXXXXX")OBJECTID: Efile record identifierORG_EIN: Organization EIN (integer)ORG_NAME_L1: Organization name (line 1)ORG_NAME_L2: Organization name (line 2, if present)
BMF classification and geography
As returned by retrieve_efile_data( include_bmf = TRUE ).
ntee_code_clean: Normalized three-character NTEE codentee_code_major_group: NTEE major group labelnteev2: NTEE version 2 code,[SUBSECTOR]-[NTEE]-[ORGTYPE]nteev2_subsector: NTEE v2 subsector (e.g."HEL","EDU","UNU")nteev2_org_type: NTEE v2 organization type (e.g."RG"for regular)subsection_code: IRS 501(c) subsection codefoundation_code: IRS foundation type coderuling_year: Year of the IRS exemption rulingfiling_requirement_code: IRS 990 filing requirement codeasset_amount,income_amount,revenue_amount: Most recent asset, income, and revenue amounts reported to the BMF (stored as character)geo_state_abbr: Two-letter state abbreviationgeo_county: County namegeo_metro_area: Metropolitan area name (blank outside metro areas)bmf_vintage_ym: BMF release used for the merge ("YYYY-MM")
Return header fields (Part 00)
RETURN_AMENDED_X: Amended return indicatorRETURN_GROUP_X: Group return indicatorRETURN_PARTIAL_X: Partial return indicatorRETURN_TAXPER_DAYS: Length of tax period in daysRETURN_TIME_STAMP: Return timestampRETURN_TYPE: Form type filed:"990"or"990EZ"TAX_PERIOD_BEGIN_DATE: Start of tax periodTAX_PERIOD_END_DATE: End of tax periodTAX_YEAR: Tax year (fiscal year start)URL: URL of the source XML filing on AWSVERSION: 990 form schema versionF9_00_EXEMPT_STAT_4947A1_X: 4947(a)(1) trust indicatorF9_00_EXEMPT_STAT_501C_X: 501(c) exempt status indicatorF9_00_EXEMPT_STAT_501C3_X: 501(c)(3) indicatorF9_00_TYPE_ORG_ASSOC_X: Association type indicatorF9_00_TYPE_ORG_CORP_X: Corporation type indicatorF9_00_TYPE_ORG_OTH_X: Other type indicatorF9_00_TYPE_ORG_TRUST_X: Trust type indicatorF9_00_YEAR_FORMATION: Year of formation
Part I - Summary
F9_01_EXP_REV_LESS_EXP_CY: Revenues less expenses, current year (Part I, line 19)F9_01_EXP_TOT_CY: Total expenses, current year (Part I, line 18)F9_01_NAFB_ASSET_TOT_EOY: Total assets, EOY (Part I, line 20)F9_01_NAFB_LIAB_TOT_EOY: Total liabilities, EOY (Part I, line 21)F9_01_NAFB_TOT_BOY: Net assets or fund balances, BOY (Part I, line 22)F9_01_NAFB_TOT_EOY: Net assets or fund balances, EOY (Part I, line 22)F9_01_REV_PROG_TOT_CY: Program service revenue, current year (Part I, line 9)F9_01_REV_TOT_CY: Total revenue, current year (Part I, line 12)
Part VIII - Revenue
F9_08_REV_CONTR_FED_CAMP: Federated campaigns (Part VIII, line 1a)F9_08_REV_CONTR_MEMBSHIP_DUE: Membership dues (Part VIII, line 1b)F9_08_REV_CONTR_FUNDR_EVNT: Fundraising events (Part VIII, line 1c)F9_08_REV_CONTR_RLTD_ORG: Related organizations (Part VIII, line 1d)F9_08_REV_CONTR_GOVT_GRANT: Government grants (Part VIII, line 1e)F9_08_REV_CONTR_TOT: Total contributions (Part VIII, line 1h)F9_08_REV_PROG_TOT_TOT: Program service revenue total (Part VIII, line 2g)F9_08_REV_OTH_INVEST_INCOME_TOT: Investment income (Part VIII, line 3)F9_08_REV_OTH_INVEST_BOND_TOT: Income from investment of tax-exempt bond proceeds (Part VIII, line 4)F9_08_REV_OTH_ROY_TOT: Royalties (Part VIII, line 5)F9_08_REV_OTH_RENT_NET_TOT: Net rental income (Part VIII, line 6d)F9_08_REV_OTH_SALE_GAIN_NET_TOT: Net gain or (loss) from sales of assets other than inventory (Part VIII, line 7d)F9_08_REV_OTH_FUNDR_NET_TOT: Net income from fundraising events (Part VIII, line 8c)F9_08_REV_MISC_OTH_TOT: Other miscellaneous revenue (Part VIII, line 11d)F9_08_REV_TOT_TOT: Total revenue (Part VIII, line 12A)
Part IX - Expenses (column A, total, unless noted)
F9_09_EXP_GRANT_US_ORG_TOT: Grants to domestic organizations and governments (Part IX, line 1)F9_09_EXP_GRANT_US_INDIV_TOT: Grants and assistance to domestic individuals (Part IX, line 2)F9_09_EXP_GRANT_FRGN_TOT: Grants to foreign organizations, governments, and individuals (Part IX, line 3)F9_09_EXP_BEN_PAID_MEMB_TOT: Benefits paid to or for members (Part IX, line 4)F9_09_EXP_COMP_DTK_TOT: Compensation of current officers, directors, trustees, and key employees (Part IX, line 5)F9_09_EXP_COMP_DSQ_PERS_TOT: Compensation of disqualified persons (Part IX, line 6)F9_09_EXP_OTH_SAL_WAGE_TOT: Other salaries and wages (Part IX, line 7)F9_09_EXP_PENSION_CONTR_TOT: Pension plan accruals and contributions (Part IX, line 8)F9_09_EXP_OTH_EMPL_BEN_TOT: Other employee benefits (Part IX, line 9)F9_09_EXP_PAYROLL_TAX_TOT: Payroll taxes (Part IX, line 10)F9_09_EXP_FEE_SVC_MGMT_TOT: Fees for services - management (Part IX, line 11a)F9_09_EXP_FEE_SVC_LEGAL_TOT: Fees for services - legal (Part IX, line 11b)F9_09_EXP_FEE_SVC_ACC_TOT: Fees for services - accounting (Part IX, line 11c)F9_09_EXP_FEE_SVC_LOB_TOT: Fees for services - lobbying (Part IX, line 11d)F9_09_EXP_FEE_SVC_FUNDR_TOT: Professional fundraising services (Part IX, line 11e)F9_09_EXP_FEE_SVC_INVEST_TOT: Investment management fees (Part IX, line 11f)F9_09_EXP_FEE_SVC_OTH_TOT: Fees for services - other (Part IX, line 11g)F9_09_EXP_PAY_AFFIL_TOT: Payments to affiliates (Part IX, line 21)F9_09_EXP_DEPREC_TOT: Depreciation, depletion, and amortization (Part IX, line 22A)F9_09_EXP_TOT_FUNDR: Fundraising expenses (Part IX, line 25D)F9_09_EXP_TOT_MGMT: Management and general expenses (Part IX, line 25C)F9_09_EXP_TOT_PROG: Program service expenses (Part IX, line 25B)F9_09_EXP_TOT_TOT: Total functional expenses (Part IX, line 25A)
Part X - Balance Sheet
F9_10_ASSET_CASH_BOY: Cash, beginning of year (Part X, line 1A)F9_10_ASSET_CASH_EOY: Cash, end of year (Part X, line 1B)F9_10_ASSET_SAVING_EOY: Savings and temporary cash investments, EOY (Part X, line 2B)F9_10_ASSET_PLEDGE_NET_EOY: Net pledges and grants receivable, EOY (Part X, line 3B)F9_10_ASSET_ACC_NET_EOY: Accounts receivable, net, EOY (Part X, line 4B)F9_10_ASSET_INV_SALE_EOY: Inventories for sale or use, EOY (Part X, line 8B)F9_10_ASSET_EXP_PREPAID_EOY: Prepaid expenses and deferred charges, EOY (Part X, line 9B)F9_10_ASSET_LAND_BLDG: Land, buildings, and equipment, cost or other basis (Part X, line 10a)F9_10_ASSET_LAND_BLDG_NET_EOY: Net land, buildings, and equipment, EOY (Part X, line 10C)F9_10_ASSET_INVEST_SEC_EOY: Investments - publicly traded securities, EOY (Part X, line 11B)F9_10_ASSET_INVEST_SEC_OTH_EOY: Investments - other securities, EOY (Part X, line 12B)F9_10_ASSET_TOT_EOY: Total assets, EOY (Part X, line 16B)F9_10_LIAB_ACC_PAYABLE_EOY: Accounts payable and accrued expenses, EOY (Part X, line 17B)F9_10_LIAB_GRANT_PAYABLE_EOY: Grants and similar amounts payable, EOY (Part X, line 18B)F9_10_LIAB_MTG_NOTE_EOY: Secured mortgages and notes payable, EOY (Part X, line 23B)F9_10_LIAB_NOTE_UNSEC_EOY: Unsecured notes and loans payable, EOY (Part X, line 24B)F9_10_LIAB_TOT_EOY: Total liabilities, EOY (Part X, line 26B)F9_10_NAFB_FOLLOW_SFAS117_X: Organization follows SFAS 117 / ASC 958 (Part X, check box above line 27)F9_10_NAFB_NO_FOLLOW_SFAS117_X: Organization does not follow SFAS 117 / ASC 958 (Part X, check box above line 30)F9_10_NAFB_UNRESTRICT_BOY: Net assets without donor restrictions, beginning of year (Part X, line 27A)F9_10_NAFB_UNRESTRICT_EOY: Net assets without donor restrictions, end of year (Part X, line 27B)F9_10_NAFB_RESTRICT_EOY: Net assets with donor restrictions, end of year (Part X, line 28B)F9_10_NAFB_CAP_STCK_EOY: Capital stock or trust principal, or current funds, EOY (Part X, line 30B)F9_10_NAFB_CAP_SURPLUS_EOY: Paid-in or capital surplus, EOY (Part X, line 31B)F9_10_NAFB_EARNING_RETAINED_EOY: Retained earnings, endowment, accumulated income, or other funds, EOY (Part X, line 32B)F9_10_NAFB_TOT_BOY: Total net assets, beginning of year (Part X, line 33A)F9_10_NAFB_TOT_EOY: Total net assets, end of year (Part X, line 33B)
Source
IRS 990 efile data (2023 tax year) via the Nonprofit Open Data Collective. https://nonprofit-open-data-collective.github.io/irs990efile/
Details
The dataset was built from the 2023 tax-year efile tables
(F9-P00-T00-HEADER, F9-P01-T00-SUMMARY, F9-P08-T00-REVENUE,
F9-P09-T00-EXPENSES, and F9-P10-T00-BALANCE-SHEET) with BMF fields
(NTEE codes, geographic identifiers, and organizational metadata) merged on
EIN, using retrieve_efile_data(). Filings were deduplicated to one per
organization with deduplicate() before 10,000 organizations were sampled at
random from filings with non-negative total revenue and a usable NTEE code. The
BMF marks organizations without one as "UNDEFINED", "INVALID", or "Z99";
those are excluded, so every row has a valid ntee_code_clean and no
nteev2_subsector is "UNU". The sample includes a mix of full 990 and 990EZ
filers; see RETURN_TYPE to distinguish them.
Most Part VIII, IX, and X detail exists only on the full 990 (PC scope; see
get_pc_fields()), so 990EZ filers have NA in those columns. Part I summary
fields (F9_01_*) and the lines that have a 990EZ counterpart, such as total
assets and total net assets (PZ scope; see get_pz_fields()), are populated
for both forms. Use sanitize_financials() to impute zero for genuine
zero-value fields before computing ratios.
Examples
data( dat10k )
dim( dat10k )
#> [1] 10000 113
table( dat10k$RETURN_TYPE )
#>
#> 990 990EZ
#> 6051 3949
# Compute the government grant ratio for all organizations
d <- get_grants_govt_ratio( df = dat10k )
#> :: Total revenue equal to zero :: 64 case(s) replaced with NaN
summary( d$grants_govt )
#> Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
#> 0.0000 0.0000 0.0000 0.1193 0.0349 24.7852 4013
# Sanitize first, then compute a batch of ratios
dat_clean <- sanitize_financials( dat10k )
dat_clean <- get_grants_govt_ratio( dat_clean )
#> :: Total revenue equal to zero :: 64 case(s) replaced with NaN
dat_clean <- get_program_expenses_ratio( dat_clean )
#> :: Total expenses equal to zero :: 206 case(s) replaced with NaN
dat_clean <- get_debt_assets_ratio( dat_clean )
#> :: Assets equal to zero :: 346 case(s) replaced with NaN