990-PF Efile Data Catalog

Private foundations · release efilepf_v3_1

The NCCS 990-PF Efile database turns the Form 990-PF returns that private foundations file electronically with the IRS into 80 relational tables, one or more for each Part of the form and its attached statements. Every table is published for each tax year in two formats, CSV and Parquet.

Release efilepf_v3_1 (published 2026-10-09)
Returns Form 990-PF (private foundations and section 4947(a)(1) charitable trusts)
Tax years 2009–2025 (2025 is a partial year)
Tables 80 tables, 1,351 table-year files
Filings 1,234,785 returns
Labels concordance990 02de916
Public charities Form 990 and 990-EZ returns are a separate database: efile_v3_1 catalog

About this release

Data sources and processing

The Taxpayer First Act of 2019 made electronic filing mandatory for Form 990-PF for tax years beginning after July 1, 2019, so recent waves cover nearly every private foundation; earlier years include only foundations that chose to e-file. NCCS builds the database from the XML files indexed by the Giving Tuesday 990 Data Commons, supplemented with returns the IRS e-file index lists but the Data Commons index never picked up (see the release notes below).

Each XML element (xpath) is assigned to a research variable and a table by the Master Concordance (concordance990), and the tables are built with the ef2 package. A table holds one Part of the form: either one row per filing (1:1), or several rows per filing for repeating groups such as officers, grants paid, or capital gains (1:M). Tables in Part 99 hold the statements foundations attach to the return (accounting fees, depreciation, other investments, and so on).

The database also carries the two tables shared by every e-filed return: the filing header (F9-P00-T00-HEADER) and the signature block (F9-P02-T00-SIGNATURE). Here they hold 990-PF filings only. F9_00_ORG_EXEMPT_TYPE in the header is empty for 990-PF returns.

Efile data are organized by tax year, the year in which the foundation’s fiscal year begins (TAX_PERIOD_BEGIN_DATE). The IRS releases returns in monthly batches, so the most recent tax year is always incomplete. Form 990-PF was renumbered in 2023 (Part VI became Part V, and so on); the tables follow the pre-2023 numbering, and the part titles below give both.

Every table carries the keys needed to join tables to each other and to the BMF: OBJECTID (OID- followed by 18 digits, one per filing), EIN2, and TAX_YEAR. One-to-many tables add TABLE_ID (TID-NNN-NNN-NNN, one per row). Every row also carries URL, a link to the source XML return.

R packages

  • ef2 Parses IRS 990 e-file XML into the relational tables published here.
  • concordance990 The Master Concordance: maps XML xpaths to variables and tables; holds the data dictionaries.
  • panel990 Downloads efile tables and builds longitudinal panels, with BMF fields attached.
  • fiscal Fiscal health accounting metrics from 990 data.
  • governance Governance scores for nonprofits from Part VI.
  • peopleparser Splits officer and director names into parts and infers gender.
  • titleclassifier Classifies officer titles into standard roles.

Data dictionaries

Variable names, labels, descriptions, data types, and form locations for every table are documented in the concordance990 data dictionaries. Each table below links to its own section of the 990-PF dictionary.

Coverage

E-filed returns by tax year and return type (efile_v3_1 and efilepf_v3_1)

Stacked bar chart of e-filed returns per tax year, 2009 to 2025, split into Form 990, 990-EZ and 990-PF. 990-PF returns rise from about 2 thousand in 2009 to about 125 thousand in 2023; 2025 is a partial year.

Tax year 990 990-EZ 990-PF Total
2009 33,311 15,470 2,345 51,126
2010 123,025 63,326 25,249 211,600
2011 159,504 82,048 34,597 276,149
2012 179,688 93,750 39,933 313,371
2013 198,855 104,375 45,887 349,117
2014 218,619 116,417 53,442 388,478
2015 233,519 124,894 58,815 417,228
2016 243,903 130,484 62,988 437,375
2017 261,612 139,145 68,950 469,707
2018 271,442 149,384 80,138 500,964
2019 283,694 152,623 87,789 524,106
2020 320,343 169,865 114,957 605,165
2021 336,489 202,729 119,354 658,572
2022 349,396 206,375 122,914 678,685
2023 359,351 208,863 125,565 693,779
2024 360,911 207,825 124,337 693,073
2025 102,869 103,732 67,525 274,126

Table and file names

Table names follow the pattern FF-PPP-TTT-NAME, and each file appends the tax year: PF-P15-T01-SUPPLEMENTARY-INFO-GRANT-PAID-2023.parquet.

  • FF is the form: PF = Form 990-PF; F9 marks the two shared header tables.
  • PPP is the part: P01 = Part I, P02 = Part II, and so on. P00 is the heading and P99 holds attached statements.
  • TTT is the table: T00 holds the one-to-one fields of the part, and T01, T02, … are its one-to-many tables.

Each table-year is published as CSV (readable anywhere) and Parquet (smaller and much faster in R with arrow or duckdb; panel990 reads Parquet by default). Both files hold the same rows and columns. Table-years with no filings are omitted from the listings below.

Release notes

Changes from efilepf_v2_3 to efilepf_v3_1. Generated by ef2::write_release_notes() on 2026-10-09.

Notes

  • New filings. This release adds filings that the Giving Tuesday Data Commons (GTDC) index never listed. The IRS e-file index lists 184,165 such filings (990, 990-EZ and 990-PF; IRS batches 2025_09A, 2025_10A, the second half of 2026_05A, and 2026_08A). Their XML is re-hosted at https://nccs-efile.s3.us-east-1.amazonaws.com/xml2/v2_3_patch/<OBJECT_ID>_public.xml, with PATCH-INDEX-v2_3-2026-10-07.csv beside them. The build index combined the GTDC index of 2026-08-25 with that patch, one row per filing.
  • TY2025 is new: built from the combined index. Many TY2025 returns are not filed yet, so expect it to grow.
  • Labels follow concordance990 2.0.1 (commit 02de916). Relabelling moved some xpaths between tables; where the builders already selected those cells by xpath, the published tables are unchanged.
  • Keys. OBJECTID is OID- + 18 digits, and TABLE_ID is the fixed-width TID-NNN-NNN-NNN (EF2-17), in every table.
  • Record. dev/UPSTREAM-ISSUES.md (EF2-18) in the ef2 repository documents how this release was built and checked.
  • Also added: 5,298 GTDC-indexed 990-PF filings for TY2016-2019 that the September 2026 PF build missed.
  • Header table. The shared F9-P00-T00-HEADER gains F9_00_ORG_EXEMPT_TYPE, which is empty for 990-PF filings (it is derived from 990 and 990-EZ paths only).
  • multi_value variables are still joined with ; in filing order (EF2-13 fix 2); the concordance changed which variables are multi-valued (see below).

Summary

  • Tax years: 2009-2025 (previously 2009-2024).
  • Tables: 1 added, 2 dropped.
  • Table-years in both releases: 1,256; row counts changed in 457, column counts in 32; rows fell in 0.
  • Columns: 11 added and 0 removed, across 2 tables.
  • Filings: 1,234,785, previously 1,151,314 (+83,471).
  • Concordance: 7 xpaths newly mapped, 0 dropped, 26 moved between tables, 0 variables renamed, 6 multi_value changes.

Filings by tax year

Tax year efilepf_v2_3 efilepf_v3_1 Change
2009 2,345 2,345 0
2010 25,249 25,249 0
2011 34,597 34,597 0
2012 39,933 39,933 0
2013 45,887 45,887 0
2014 53,442 53,442 0
2015 58,815 58,815 0
2016 62,979 62,988 +9
2017 68,260 68,950 +690
2018 75,540 80,138 +4,598
2019 87,788 87,789 +1
2020 114,957 114,957 0
2021 119,354 119,354 0
2022 122,819 122,914 +95
2023 124,529 125,565 +1,036
2024 114,820 124,337 +9,517
2025 0 67,525 +67,525

By return type:

Tax year Return type efilepf_v2_3 efilepf_v3_1 Change
2016 990PF 62,979 62,988 +9
2017 990PF 68,260 68,950 +690
2018 990PF 75,540 80,138 +4,598
2019 990PF 87,788 87,789 +1
2022 990PF 122,819 122,914 +95
2023 990PF 124,529 125,565 +1,036
2024 990PF 114,820 124,337 +9,517
2025 990PF 0 67,525 +67,525

Tables added and dropped

Added:

Table Years
PF-P09-T00-CHARITABLE-ACTIVITIES 2009-2025

Dropped:

Table Years
PF-P09-T01-CHARITABLE-ACTIVITIES 2009-2024
PF-P09-T02-PROG-RELATED-INVESTMENTS 2009-2024

Column changes

Columns added or removed in tables present in both releases, with the tax years affected.

Table Change Column Years
F9-P00-T00-HEADER added F9_00_IRS_SEC_ACTIVE_PREP_TIME 2020
F9-P00-T00-HEADER added F9_00_IRS_SEC_AUTH_REVIEW_TXT 2020
F9-P00-T00-HEADER added F9_00_IRS_SEC_PREP_SUBMIT_TIME 2020
F9-P00-T00-HEADER added F9_00_IRS_SEC_VENDOR_CTRL_NUM 2020
F9-P00-T00-HEADER added F9_00_IRS_TRUST_PAY_DECLINED_CD 2020
F9-P00-T00-HEADER added F9_00_ORG_EXEMPT_TYPE 2009-2024
PF-P09-T00-PROG-RELATED-INVESTMENTS added PF_09_PROG_RLTD_INVEST_AMT_1 2009-2024
PF-P09-T00-PROG-RELATED-INVESTMENTS added PF_09_PROG_RLTD_INVEST_AMT_2 2009-2024
PF-P09-T00-PROG-RELATED-INVESTMENTS added PF_09_PROG_RLTD_INVEST_AMT_3 2009-2024
PF-P09-T00-PROG-RELATED-INVESTMENTS added PF_09_PROG_RLTD_INVEST_DESC_1 2009-2024
PF-P09-T00-PROG-RELATED-INVESTMENTS added PF_09_PROG_RLTD_INVEST_DESC_2 2009-2024

Row-count changes

Tables whose row counts changed, summed over the years that changed.

Table Years efilepf_v2_3 efilepf_v3_1 Change
PF-P04-T01-INVEST-INCOME-TAX-CAPITAL-GAINLOSS 2016-2019, 2022-2024 15,833,012 16,170,687 +337,675
PF-P09-T00-PROG-RELATED-INVESTMENTS 2009-2024 455,640 678,164 +222,524
PF-P15-T01-SUPPLEMENTARY-INFO-GRANT-PAID 2016-2019, 2022-2024 9,308,389 9,484,858 +176,469
PF-P99-T24-INVEST-CORP-STOCK 2016-2018, 2022-2024 4,943,725 5,090,967 +147,242
PF-P08-T01-COMPENSATION 2016-2019, 2022-2024 2,115,747 2,168,344 +52,597
PF-P99-T36-EXP-OTH 2016-2019, 2022-2024 1,623,799 1,665,882 +42,083
PF-P99-T27-INVEST-OTH 2016-2019, 2022-2024 2,158,440 2,193,989 +35,549
PF-P99-T23-INVEST-CORP-BOND 2016-2018, 2022-2024 776,858 797,899 +21,041
PF-P99-T49-TAXES 2016-2019, 2022-2024 870,283 891,018 +20,735
PF-P99-T11-DEPREC 2017-2018, 2022-2024 500,014 518,498 +18,484
F9-P00-T00-HEADER 2016-2019, 2022-2024 656,735 672,681 +15,946
F9-P02-T00-SIGNATURE 2016-2019, 2022-2024 656,735 672,681 +15,946
PF-P00-T00-HEADER 2016-2019, 2022-2024 656,735 672,681 +15,946
PF-P01-T00-REVENUE-EXPENSE 2016-2019, 2022-2024 656,735 672,681 +15,946
PF-P02-T00-BALANCE-SHEET 2016-2019, 2022-2024 656,735 672,681 +15,946
PF-P07-T00-ACTIVITIES 2016-2019, 2022-2024 656,733 672,679 +15,946
PF-P12-T00-QUALIFYING-DISTRIBUTIONS 2016-2019, 2022-2024 656,717 672,663 +15,946
PF-P11-T00-DISTRIBUTABLE-AMOUNT 2016-2019, 2022-2024 656,611 672,553 +15,942
PF-P17-T00-RELATIONSHIPS 2016-2019, 2022-2024 652,065 667,882 +15,817
PF-P17-T00-TRANSFERS-TRANSACTIONS 2016-2019, 2022-2024 652,065 667,882 +15,817
PF-P06-T00-INVEST-INCOME-EXCISE-TAX 2016-2019, 2022-2024 652,913 668,724 +15,811
PF-P07-T00-ACTIVITIES-4720 2016-2019, 2022-2024 648,331 664,085 +15,754
PF-P10-T00-MINIMUM-INVESTMENT-RETURN 2016-2019, 2022-2024 645,951 661,527 +15,576
PF-P03-T00-NET-ASSET-FUND-BALANCE-CHANGE 2016-2019, 2022-2024 643,067 658,566 +15,499
PF-P13-T00-UNDISTRIBUTED-INCOME 2016-2019, 2022-2024 621,308 636,314 +15,006
PF-P08-T00-COMPENSATION-CONTRACTORS 2016-2019, 2022-2024 590,583 604,976 +14,393
PF-P08-T00-COMPENSATION-HIGHEST 2016-2019, 2022-2024 589,896 604,233 +14,337
PF-P16-T00-INCOME-PRODUCING-ACTS 2016-2019, 2022-2024 579,624 593,301 +13,677
PF-P15-T00-SUPPLEMENTARY-INFO-GRANT-PAID 2016-2019, 2022-2024 571,686 585,159 +13,473
PF-P15-T00-SUPPLEMENTARY-INFO 2016-2019, 2022-2024 524,044 536,623 +12,579
SB-P01-T01-CONTRIBUTORS 2017-2018, 2022-2024 290,068 300,441 +10,373
PF-P99-T01-ACC-FEES 2016-2019, 2022-2024 411,681 421,572 +9,891
PF-P99-T28-LAND-ETC 2017-2018, 2022-2024 274,267 283,826 +9,559
PF-P04-T00-INVEST-INCOME-TAX-CAPITAL-GAINLOSS 2016-2019, 2022-2024 396,282 405,176 +8,894
PF-P99-T42-PROF-FEES-OTH 2016-2019, 2022-2024 312,547 320,112 +7,565
PF-P99-T37-INCOME-OTH 2016-2018, 2022-2024 300,593 307,807 +7,214
PF-P15-T00-SUPPLEMENTARY-INFO-GRANT-FUTURE 2016-2019, 2022-2024 274,739 281,412 +6,673
PF-P99-T35-DECREASE-OTH 2016-2018, 2022-2024 248,940 255,387 +6,447
PF-P99-T33-ASSET-OTH 2016-2018, 2022-2024 184,387 190,471 +6,084
PF-P99-T20-SALE-OTH-ASSET 2017-2018, 2022-2024 213,455 219,340 +5,885
PF-P99-T38-INCREASE-OTH 2016-2018, 2022-2024 194,566 200,258 +5,692
PF-P16-T02-INCOME-PRODUCING-ACTS 2017-2018, 2022-2024 200,837 205,921 +5,084
PF-P05-T00-NET-INVEST-INCOME-TAX-4940E 2016-2019 264,106 268,808 +4,702
SB-P00-T00-HEADER 2017-2018, 2022-2024 131,615 135,846 +4,231
PF-P16-T03-ACTS-RELATIONSHIP-EXEMPT-PURPOSE 2016-2018, 2022-2024 138,859 142,819 +3,960
SB-P02-T01-NONCASH-PROPERTY 2017-2018, 2022-2024 111,513 115,363 +3,850
PF-P15-T03-SUPPLEMENTARY-INFO-GRANT-APP 2016-2018, 2022-2024 144,188 148,033 +3,845
PF-P16-T01-INCOME-PRODUCING-ACTS 2017-2018, 2022-2024 136,404 140,126 +3,722
PF-P15-T02-SUPPLEMENTARY-INFO-GRANT-FUTURE 2017-2018, 2022-2024 195,180 198,511 +3,331
PF-P99-T29-LEGAL-FEES 2017-2018, 2022-2024 84,874 87,524 +2,650
PF-P99-T39-LIAB-OTH 2017-2018, 2022-2024 70,142 72,418 +2,276
PF-P14-T00-PRIVATE-OPERATING-FOUNDATIONS 2017-2018, 2022-2024 53,397 55,274 +1,877
PF-P99-T26-INVEST-LAND 2017-2018, 2022-2024 47,297 49,147 +1,850
PF-P99-T22-SUPPLEMENTAL-INFO 2016-2018, 2022-2024 38,146 39,700 +1,554
PF-P99-T48-CONTRIBUTOR 2016-2018, 2022-2024 61,551 63,094 +1,543
PF-P99-T00-AUXILLIARY 2016-2018, 2022-2024 51,339 52,804 +1,465
PF-P08-T03-COMPENSATION-CONTRACTORS 2017-2018, 2022-2024 40,605 41,920 +1,315
PF-P99-T25-INVEST-GOVT-SEC 2016-2018, 2022-2024 42,200 43,357 +1,157
PF-P99-T16-EXP-RESPONSIBILITY 2017-2018, 2022-2024 59,939 61,034 +1,095
PF-P08-T02-COMPENSATION-HIGHEST 2017-2018, 2022-2024 31,631 32,651 +1,020

… and 19 more.

Concordance changes

Xpaths moved between tables:

From To Xpaths
PF-P09-T01-CHARITABLE-ACTIVITIES PF-P09-T00-CHARITABLE-ACTIVITIES 16
PF-P09-T02-PROG-RELATED-INVESTMENTS PF-P09-T00-PROG-RELATED-INVESTMENTS 10

Newly mapped xpaths, by table:

Table Xpaths
F9-P00-T00-HEADER 7

Renamed variables:

None.

multi_value changes:

Variable From To
PF_AX02_ACT_NEW_EXPLANATION (blank) TRUE
PF_AX44_CAUSE_EXPLANATION (blank) TRUE
PF_AX45_REDUCT_EXPLANATION (blank) TRUE

Release notes on S3

Version history

Every release stays on S3 and keeps its catalog page, so earlier analyses can be reproduced. Interim releases were built and posted but not announced as full public releases.

Release Returns Published Status Tax years Tables Filings Notes
efile_v3_1 990, 990-EZ 2026-10-09 Current 2009–2025 136 6,307,836 Release notes
efilepf_v3_1 this page 990-PF 2026-10-09 Current 2009–2025 83 1,234,785 Release notes
efile_v2_3 990, 990-EZ 2026-10-07 Interim 2009–2024 136 5,981,036 —
efilepf_v2_3 990-PF 2026-10-07 Interim 2009–2024 84 1,151,314 —
efile_v2_2 990, 990-EZ 2026-08-11 Interim 2009–2024 112 5,675,704 —
efile_v2_1 990, 990-EZ 2025-10-28 Archived 2009–2024 112 5,675,704 —
efile_v2_0 990, 990-EZ 2025-03-22 Archived 2009–2023 111 5,159,432 —
efile_v1 990, 990-EZ 2023-03-21 Archived — — — —

Available tables

Each table lists its files by tax year. The code below each table uses panelize() from panel990 to download a multi-year panel of the table with BMF organization fields (NTEE codes, geography, subsection) attached.

Anchor your code to a release. panelize() reads the current release (efile_version()) unless told otherwise, so the same code returns different data after the next release. For reproducible results, name the release explicitly:

panel <- 
  panelize( tables = "PF-P01-T00-REVENUE-EXPENSE",
            years = 2020:2024,
            source = data_source( version = "v3_1", form = "990PF" ),
            bmf = TRUE )

BMF fields come from the current NCCS master BMF. To fix those as well, save the BMF once and pass the data frame or file path to bmf =.

Shared tables (every e-filed return)

P00 Heading (items A-O)

F9-P00-T00-HEADER

1:1 one row per filing · tax years 2009–2025 · 1,234,785 rows · Data dictionary

Year Table CSV Parquet Rows
2025 F9-P00-T00-HEADER-2025 CSV Parquet 67,525
2024 F9-P00-T00-HEADER-2024 CSV Parquet 124,337
2023 F9-P00-T00-HEADER-2023 CSV Parquet 125,565
2022 F9-P00-T00-HEADER-2022 CSV Parquet 122,914
2021 F9-P00-T00-HEADER-2021 CSV Parquet 119,354
2020 F9-P00-T00-HEADER-2020 CSV Parquet 114,957
2019 F9-P00-T00-HEADER-2019 CSV Parquet 87,789
2018 F9-P00-T00-HEADER-2018 CSV Parquet 80,138
2017 F9-P00-T00-HEADER-2017 CSV Parquet 68,950
2016 F9-P00-T00-HEADER-2016 CSV Parquet 62,988
2015 F9-P00-T00-HEADER-2015 CSV Parquet 58,815
2014 F9-P00-T00-HEADER-2014 CSV Parquet 53,442
2013 F9-P00-T00-HEADER-2013 CSV Parquet 45,887
2012 F9-P00-T00-HEADER-2012 CSV Parquet 39,933
2011 F9-P00-T00-HEADER-2011 CSV Parquet 34,597
2010 F9-P00-T00-HEADER-2010 CSV Parquet 25,249
2009 F9-P00-T00-HEADER-2009 CSV Parquet 2,345
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "F9-P00-T00-HEADER",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

P02 Part II - Signature Block

F9-P02-T00-SIGNATURE

1:1 one row per filing · tax years 2009–2025 · 1,234,785 rows · Data dictionary

Year Table CSV Parquet Rows
2025 F9-P02-T00-SIGNATURE-2025 CSV Parquet 67,525
2024 F9-P02-T00-SIGNATURE-2024 CSV Parquet 124,337
2023 F9-P02-T00-SIGNATURE-2023 CSV Parquet 125,565
2022 F9-P02-T00-SIGNATURE-2022 CSV Parquet 122,914
2021 F9-P02-T00-SIGNATURE-2021 CSV Parquet 119,354
2020 F9-P02-T00-SIGNATURE-2020 CSV Parquet 114,957
2019 F9-P02-T00-SIGNATURE-2019 CSV Parquet 87,789
2018 F9-P02-T00-SIGNATURE-2018 CSV Parquet 80,138
2017 F9-P02-T00-SIGNATURE-2017 CSV Parquet 68,950
2016 F9-P02-T00-SIGNATURE-2016 CSV Parquet 62,988
2015 F9-P02-T00-SIGNATURE-2015 CSV Parquet 58,815
2014 F9-P02-T00-SIGNATURE-2014 CSV Parquet 53,442
2013 F9-P02-T00-SIGNATURE-2013 CSV Parquet 45,887
2012 F9-P02-T00-SIGNATURE-2012 CSV Parquet 39,933
2011 F9-P02-T00-SIGNATURE-2011 CSV Parquet 34,597
2010 F9-P02-T00-SIGNATURE-2010 CSV Parquet 25,249
2009 F9-P02-T00-SIGNATURE-2009 CSV Parquet 2,345
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "F9-P02-T00-SIGNATURE",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

Schedule B: Schedule of Contributors

P00 Heading - Organization Type and Filing Rules

SB-P00-T00-HEADER

1:1 one row per filing · tax years 2009–2025 · 324,714 rows · Data dictionary

Year Table CSV Parquet Rows
2025 SB-P00-T00-HEADER-2025 CSV Parquet 15,891
2024 SB-P00-T00-HEADER-2024 CSV Parquet 32,322
2023 SB-P00-T00-HEADER-2023 CSV Parquet 31,947
2022 SB-P00-T00-HEADER-2022 CSV Parquet 31,247
2021 SB-P00-T00-HEADER-2021 CSV Parquet 32,035
2020 SB-P00-T00-HEADER-2020 CSV Parquet 29,219
2019 SB-P00-T00-HEADER-2019 CSV Parquet 22,642
2018 SB-P00-T00-HEADER-2018 CSV Parquet 20,751
2017 SB-P00-T00-HEADER-2017 CSV Parquet 19,579
2016 SB-P00-T00-HEADER-2016 CSV Parquet 17,917
2015 SB-P00-T00-HEADER-2015 CSV Parquet 16,412
2014 SB-P00-T00-HEADER-2014 CSV Parquet 14,795
2013 SB-P00-T00-HEADER-2013 CSV Parquet 12,640
2012 SB-P00-T00-HEADER-2012 CSV Parquet 11,176
2011 SB-P00-T00-HEADER-2011 CSV Parquet 8,941
2010 SB-P00-T00-HEADER-2010 CSV Parquet 6,620
2009 SB-P00-T00-HEADER-2009 CSV Parquet 580
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "SB-P00-T00-HEADER",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

P01 Part I - Contributors

SB-P01-T01-CONTRIBUTORS

1:M many rows per filing · tax years 2009–2025 · 690,552 rows · Data dictionary

Year Table CSV Parquet Rows
2025 SB-P01-T01-CONTRIBUTORS-2025 CSV Parquet 29,136
2024 SB-P01-T01-CONTRIBUTORS-2024 CSV Parquet 74,131
2023 SB-P01-T01-CONTRIBUTORS-2023 CSV Parquet 73,477
2022 SB-P01-T01-CONTRIBUTORS-2022 CSV Parquet 70,168
2021 SB-P01-T01-CONTRIBUTORS-2021 CSV Parquet 70,850
2020 SB-P01-T01-CONTRIBUTORS-2020 CSV Parquet 61,894
2019 SB-P01-T01-CONTRIBUTORS-2019 CSV Parquet 48,270
2018 SB-P01-T01-CONTRIBUTORS-2018 CSV Parquet 42,215
2017 SB-P01-T01-CONTRIBUTORS-2017 CSV Parquet 40,450
2016 SB-P01-T01-CONTRIBUTORS-2016 CSV Parquet 35,875
2015 SB-P01-T01-CONTRIBUTORS-2015 CSV Parquet 32,649
2014 SB-P01-T01-CONTRIBUTORS-2014 CSV Parquet 30,990
2013 SB-P01-T01-CONTRIBUTORS-2013 CSV Parquet 25,225
2012 SB-P01-T01-CONTRIBUTORS-2012 CSV Parquet 22,586
2011 SB-P01-T01-CONTRIBUTORS-2011 CSV Parquet 18,287
2010 SB-P01-T01-CONTRIBUTORS-2010 CSV Parquet 12,895
2009 SB-P01-T01-CONTRIBUTORS-2009 CSV Parquet 1,454
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "SB-P01-T01-CONTRIBUTORS",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

P02 Part II - Noncash Property

SB-P02-T01-NONCASH-PROPERTY

1:M many rows per filing · tax years 2009–2025 · 265,800 rows · Data dictionary

Year Table CSV Parquet Rows
2025 SB-P02-T01-NONCASH-PROPERTY-2025 CSV Parquet 13,949
2024 SB-P02-T01-NONCASH-PROPERTY-2024 CSV Parquet 29,610
2023 SB-P02-T01-NONCASH-PROPERTY-2023 CSV Parquet 30,185
2022 SB-P02-T01-NONCASH-PROPERTY-2022 CSV Parquet 26,131
2021 SB-P02-T01-NONCASH-PROPERTY-2021 CSV Parquet 34,872
2020 SB-P02-T01-NONCASH-PROPERTY-2020 CSV Parquet 24,978
2019 SB-P02-T01-NONCASH-PROPERTY-2019 CSV Parquet 20,376
2018 SB-P02-T01-NONCASH-PROPERTY-2018 CSV Parquet 14,555
2017 SB-P02-T01-NONCASH-PROPERTY-2017 CSV Parquet 14,882
2016 SB-P02-T01-NONCASH-PROPERTY-2016 CSV Parquet 12,648
2015 SB-P02-T01-NONCASH-PROPERTY-2015 CSV Parquet 10,180
2014 SB-P02-T01-NONCASH-PROPERTY-2014 CSV Parquet 10,073
2013 SB-P02-T01-NONCASH-PROPERTY-2013 CSV Parquet 7,178
2012 SB-P02-T01-NONCASH-PROPERTY-2012 CSV Parquet 7,281
2011 SB-P02-T01-NONCASH-PROPERTY-2011 CSV Parquet 5,541
2010 SB-P02-T01-NONCASH-PROPERTY-2010 CSV Parquet 3,116
2009 SB-P02-T01-NONCASH-PROPERTY-2009 CSV Parquet 245
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "SB-P02-T01-NONCASH-PROPERTY",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

P03 Part III - Exclusively Religious, Charitable, etc., Contributions to Organizations Described in Section 501(c)(7), (8), or (10)

SB-P03-T01-EXCLUSIVELY-RELIGIOUS

1:M many rows per filing · tax years 2009–2025 · 1,491 rows · Data dictionary

Year Table CSV Parquet Rows
2025 SB-P03-T01-EXCLUSIVELY-RELIGIOUS-2025 CSV Parquet 111
2024 SB-P03-T01-EXCLUSIVELY-RELIGIOUS-2024 CSV Parquet 179
2023 SB-P03-T01-EXCLUSIVELY-RELIGIOUS-2023 CSV Parquet 209
2022 SB-P03-T01-EXCLUSIVELY-RELIGIOUS-2022 CSV Parquet 148
2021 SB-P03-T01-EXCLUSIVELY-RELIGIOUS-2021 CSV Parquet 162
2020 SB-P03-T01-EXCLUSIVELY-RELIGIOUS-2020 CSV Parquet 135
2019 SB-P03-T01-EXCLUSIVELY-RELIGIOUS-2019 CSV Parquet 70
2018 SB-P03-T01-EXCLUSIVELY-RELIGIOUS-2018 CSV Parquet 102
2017 SB-P03-T01-EXCLUSIVELY-RELIGIOUS-2017 CSV Parquet 58
2016 SB-P03-T01-EXCLUSIVELY-RELIGIOUS-2016 CSV Parquet 41
2015 SB-P03-T01-EXCLUSIVELY-RELIGIOUS-2015 CSV Parquet 70
2014 SB-P03-T01-EXCLUSIVELY-RELIGIOUS-2014 CSV Parquet 52
2013 SB-P03-T01-EXCLUSIVELY-RELIGIOUS-2013 CSV Parquet 61
2012 SB-P03-T01-EXCLUSIVELY-RELIGIOUS-2012 CSV Parquet 58
2011 SB-P03-T01-EXCLUSIVELY-RELIGIOUS-2011 CSV Parquet 26
2010 SB-P03-T01-EXCLUSIVELY-RELIGIOUS-2010 CSV Parquet 7
2009 SB-P03-T01-EXCLUSIVELY-RELIGIOUS-2009 CSV Parquet 2
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "SB-P03-T01-EXCLUSIVELY-RELIGIOUS",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

SB-P03-T00-EXCLUSIVELY-RELIGIOUS

1:1 one row per filing · tax years 2009–2025 · 142 rows · Data dictionary

Year Table CSV Parquet Rows
2025 SB-P03-T00-EXCLUSIVELY-RELIGIOUS-2025 CSV Parquet 9
2024 SB-P03-T00-EXCLUSIVELY-RELIGIOUS-2024 CSV Parquet 7
2023 SB-P03-T00-EXCLUSIVELY-RELIGIOUS-2023 CSV Parquet 8
2022 SB-P03-T00-EXCLUSIVELY-RELIGIOUS-2022 CSV Parquet 8
2021 SB-P03-T00-EXCLUSIVELY-RELIGIOUS-2021 CSV Parquet 12
2020 SB-P03-T00-EXCLUSIVELY-RELIGIOUS-2020 CSV Parquet 8
2019 SB-P03-T00-EXCLUSIVELY-RELIGIOUS-2019 CSV Parquet 8
2018 SB-P03-T00-EXCLUSIVELY-RELIGIOUS-2018 CSV Parquet 9
2017 SB-P03-T00-EXCLUSIVELY-RELIGIOUS-2017 CSV Parquet 1
2016 SB-P03-T00-EXCLUSIVELY-RELIGIOUS-2016 CSV Parquet 4
2015 SB-P03-T00-EXCLUSIVELY-RELIGIOUS-2015 CSV Parquet 4
2013 SB-P03-T00-EXCLUSIVELY-RELIGIOUS-2013 CSV Parquet 2
2012 SB-P03-T00-EXCLUSIVELY-RELIGIOUS-2012 CSV Parquet 3
2011 SB-P03-T00-EXCLUSIVELY-RELIGIOUS-2011 CSV Parquet 32
2010 SB-P03-T00-EXCLUSIVELY-RELIGIOUS-2010 CSV Parquet 25
2009 SB-P03-T00-EXCLUSIVELY-RELIGIOUS-2009 CSV Parquet 2
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "SB-P03-T00-EXCLUSIVELY-RELIGIOUS",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

Form 990-PF: Return of Private Foundation

P00 Heading (items A-J)

PF-P00-T00-HEADER

1:1 one row per filing · tax years 2009–2025 · 1,234,785 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P00-T00-HEADER-2025 CSV Parquet 67,525
2024 PF-P00-T00-HEADER-2024 CSV Parquet 124,337
2023 PF-P00-T00-HEADER-2023 CSV Parquet 125,565
2022 PF-P00-T00-HEADER-2022 CSV Parquet 122,914
2021 PF-P00-T00-HEADER-2021 CSV Parquet 119,354
2020 PF-P00-T00-HEADER-2020 CSV Parquet 114,957
2019 PF-P00-T00-HEADER-2019 CSV Parquet 87,789
2018 PF-P00-T00-HEADER-2018 CSV Parquet 80,138
2017 PF-P00-T00-HEADER-2017 CSV Parquet 68,950
2016 PF-P00-T00-HEADER-2016 CSV Parquet 62,988
2015 PF-P00-T00-HEADER-2015 CSV Parquet 58,815
2014 PF-P00-T00-HEADER-2014 CSV Parquet 53,442
2013 PF-P00-T00-HEADER-2013 CSV Parquet 45,887
2012 PF-P00-T00-HEADER-2012 CSV Parquet 39,933
2011 PF-P00-T00-HEADER-2011 CSV Parquet 34,597
2010 PF-P00-T00-HEADER-2010 CSV Parquet 25,249
2009 PF-P00-T00-HEADER-2009 CSV Parquet 2,345
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P00-T00-HEADER",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

P01 Part I - Analysis of Revenue and Expenses

PF-P01-T00-REVENUE-EXPENSE

1:1 one row per filing · tax years 2009–2025 · 1,234,785 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P01-T00-REVENUE-EXPENSE-2025 CSV Parquet 67,525
2024 PF-P01-T00-REVENUE-EXPENSE-2024 CSV Parquet 124,337
2023 PF-P01-T00-REVENUE-EXPENSE-2023 CSV Parquet 125,565
2022 PF-P01-T00-REVENUE-EXPENSE-2022 CSV Parquet 122,914
2021 PF-P01-T00-REVENUE-EXPENSE-2021 CSV Parquet 119,354
2020 PF-P01-T00-REVENUE-EXPENSE-2020 CSV Parquet 114,957
2019 PF-P01-T00-REVENUE-EXPENSE-2019 CSV Parquet 87,789
2018 PF-P01-T00-REVENUE-EXPENSE-2018 CSV Parquet 80,138
2017 PF-P01-T00-REVENUE-EXPENSE-2017 CSV Parquet 68,950
2016 PF-P01-T00-REVENUE-EXPENSE-2016 CSV Parquet 62,988
2015 PF-P01-T00-REVENUE-EXPENSE-2015 CSV Parquet 58,815
2014 PF-P01-T00-REVENUE-EXPENSE-2014 CSV Parquet 53,442
2013 PF-P01-T00-REVENUE-EXPENSE-2013 CSV Parquet 45,887
2012 PF-P01-T00-REVENUE-EXPENSE-2012 CSV Parquet 39,933
2011 PF-P01-T00-REVENUE-EXPENSE-2011 CSV Parquet 34,597
2010 PF-P01-T00-REVENUE-EXPENSE-2010 CSV Parquet 25,249
2009 PF-P01-T00-REVENUE-EXPENSE-2009 CSV Parquet 2,345
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P01-T00-REVENUE-EXPENSE",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

P02 Part II - Balance Sheets

PF-P02-T00-BALANCE-SHEET

1:1 one row per filing · tax years 2009–2025 · 1,234,785 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P02-T00-BALANCE-SHEET-2025 CSV Parquet 67,525
2024 PF-P02-T00-BALANCE-SHEET-2024 CSV Parquet 124,337
2023 PF-P02-T00-BALANCE-SHEET-2023 CSV Parquet 125,565
2022 PF-P02-T00-BALANCE-SHEET-2022 CSV Parquet 122,914
2021 PF-P02-T00-BALANCE-SHEET-2021 CSV Parquet 119,354
2020 PF-P02-T00-BALANCE-SHEET-2020 CSV Parquet 114,957
2019 PF-P02-T00-BALANCE-SHEET-2019 CSV Parquet 87,789
2018 PF-P02-T00-BALANCE-SHEET-2018 CSV Parquet 80,138
2017 PF-P02-T00-BALANCE-SHEET-2017 CSV Parquet 68,950
2016 PF-P02-T00-BALANCE-SHEET-2016 CSV Parquet 62,988
2015 PF-P02-T00-BALANCE-SHEET-2015 CSV Parquet 58,815
2014 PF-P02-T00-BALANCE-SHEET-2014 CSV Parquet 53,442
2013 PF-P02-T00-BALANCE-SHEET-2013 CSV Parquet 45,887
2012 PF-P02-T00-BALANCE-SHEET-2012 CSV Parquet 39,933
2011 PF-P02-T00-BALANCE-SHEET-2011 CSV Parquet 34,597
2010 PF-P02-T00-BALANCE-SHEET-2010 CSV Parquet 25,249
2009 PF-P02-T00-BALANCE-SHEET-2009 CSV Parquet 2,345
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P02-T00-BALANCE-SHEET",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

P03 Part III - Analysis of Changes in Net Assets or Fund Balances

PF-P03-T00-NET-ASSET-FUND-BALANCE-CHANGE

1:1 one row per filing · tax years 2009–2025 · 1,210,594 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P03-T00-NET-ASSET-FUND-BALANCE-CHANGE-2025 CSV Parquet 65,910
2024 PF-P03-T00-NET-ASSET-FUND-BALANCE-CHANGE-2024 CSV Parquet 121,337
2023 PF-P03-T00-NET-ASSET-FUND-BALANCE-CHANGE-2023 CSV Parquet 122,449
2022 PF-P03-T00-NET-ASSET-FUND-BALANCE-CHANGE-2022 CSV Parquet 120,011
2021 PF-P03-T00-NET-ASSET-FUND-BALANCE-CHANGE-2021 CSV Parquet 116,777
2020 PF-P03-T00-NET-ASSET-FUND-BALANCE-CHANGE-2020 CSV Parquet 112,779
2019 PF-P03-T00-NET-ASSET-FUND-BALANCE-CHANGE-2019 CSV Parquet 86,259
2018 PF-P03-T00-NET-ASSET-FUND-BALANCE-CHANGE-2018 CSV Parquet 78,728
2017 PF-P03-T00-NET-ASSET-FUND-BALANCE-CHANGE-2017 CSV Parquet 67,827
2016 PF-P03-T00-NET-ASSET-FUND-BALANCE-CHANGE-2016 CSV Parquet 61,955
2015 PF-P03-T00-NET-ASSET-FUND-BALANCE-CHANGE-2015 CSV Parquet 57,896
2014 PF-P03-T00-NET-ASSET-FUND-BALANCE-CHANGE-2014 CSV Parquet 52,668
2013 PF-P03-T00-NET-ASSET-FUND-BALANCE-CHANGE-2013 CSV Parquet 45,257
2012 PF-P03-T00-NET-ASSET-FUND-BALANCE-CHANGE-2012 CSV Parquet 39,379
2011 PF-P03-T00-NET-ASSET-FUND-BALANCE-CHANGE-2011 CSV Parquet 34,116
2010 PF-P03-T00-NET-ASSET-FUND-BALANCE-CHANGE-2010 CSV Parquet 24,929
2009 PF-P03-T00-NET-ASSET-FUND-BALANCE-CHANGE-2009 CSV Parquet 2,317
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P03-T00-NET-ASSET-FUND-BALANCE-CHANGE",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

P04 Part IV - Capital Gains and Losses for Tax on Investment Income

PF-P04-T00-INVEST-INCOME-TAX-CAPITAL-GAINLOSS

1:1 one row per filing · tax years 2009–2025 · 747,432 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P04-T00-INVEST-INCOME-TAX-CAPITAL-GAINLOSS-2025 CSV Parquet 41,241
2024 PF-P04-T00-INVEST-INCOME-TAX-CAPITAL-GAINLOSS-2024 CSV Parquet 73,930
2023 PF-P04-T00-INVEST-INCOME-TAX-CAPITAL-GAINLOSS-2023 CSV Parquet 73,805
2022 PF-P04-T00-INVEST-INCOME-TAX-CAPITAL-GAINLOSS-2022 CSV Parquet 73,044
2021 PF-P04-T00-INVEST-INCOME-TAX-CAPITAL-GAINLOSS-2021 CSV Parquet 73,837
2020 PF-P04-T00-INVEST-INCOME-TAX-CAPITAL-GAINLOSS-2020 CSV Parquet 71,991
2019 PF-P04-T00-INVEST-INCOME-TAX-CAPITAL-GAINLOSS-2019 CSV Parquet 55,284
2018 PF-P04-T00-INVEST-INCOME-TAX-CAPITAL-GAINLOSS-2018 CSV Parquet 49,576
2017 PF-P04-T00-INVEST-INCOME-TAX-CAPITAL-GAINLOSS-2017 CSV Parquet 41,713
2016 PF-P04-T00-INVEST-INCOME-TAX-CAPITAL-GAINLOSS-2016 CSV Parquet 37,824
2015 PF-P04-T00-INVEST-INCOME-TAX-CAPITAL-GAINLOSS-2015 CSV Parquet 35,575
2014 PF-P04-T00-INVEST-INCOME-TAX-CAPITAL-GAINLOSS-2014 CSV Parquet 32,621
2013 PF-P04-T00-INVEST-INCOME-TAX-CAPITAL-GAINLOSS-2013 CSV Parquet 27,552
2012 PF-P04-T00-INVEST-INCOME-TAX-CAPITAL-GAINLOSS-2012 CSV Parquet 23,247
2011 PF-P04-T00-INVEST-INCOME-TAX-CAPITAL-GAINLOSS-2011 CSV Parquet 20,381
2010 PF-P04-T00-INVEST-INCOME-TAX-CAPITAL-GAINLOSS-2010 CSV Parquet 14,479
2009 PF-P04-T00-INVEST-INCOME-TAX-CAPITAL-GAINLOSS-2009 CSV Parquet 1,332
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P04-T00-INVEST-INCOME-TAX-CAPITAL-GAINLOSS",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P04-T01-INVEST-INCOME-TAX-CAPITAL-GAINLOSS

1:M many rows per filing · tax years 2009–2025 · 29,342,711 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P04-T01-INVEST-INCOME-TAX-CAPITAL-GAINLOSS-2025 CSV Parquet 2,312,334
2024 PF-P04-T01-INVEST-INCOME-TAX-CAPITAL-GAINLOSS-2024 CSV Parquet 3,684,296
2023 PF-P04-T01-INVEST-INCOME-TAX-CAPITAL-GAINLOSS-2023 CSV Parquet 3,636,605
2022 PF-P04-T01-INVEST-INCOME-TAX-CAPITAL-GAINLOSS-2022 CSV Parquet 4,121,828
2021 PF-P04-T01-INVEST-INCOME-TAX-CAPITAL-GAINLOSS-2021 CSV Parquet 3,796,237
2020 PF-P04-T01-INVEST-INCOME-TAX-CAPITAL-GAINLOSS-2020 CSV Parquet 4,116,608
2019 PF-P04-T01-INVEST-INCOME-TAX-CAPITAL-GAINLOSS-2019 CSV Parquet 1,721,239
2018 PF-P04-T01-INVEST-INCOME-TAX-CAPITAL-GAINLOSS-2018 CSV Parquet 1,361,608
2017 PF-P04-T01-INVEST-INCOME-TAX-CAPITAL-GAINLOSS-2017 CSV Parquet 855,227
2016 PF-P04-T01-INVEST-INCOME-TAX-CAPITAL-GAINLOSS-2016 CSV Parquet 789,884
2015 PF-P04-T01-INVEST-INCOME-TAX-CAPITAL-GAINLOSS-2015 CSV Parquet 697,521
2014 PF-P04-T01-INVEST-INCOME-TAX-CAPITAL-GAINLOSS-2014 CSV Parquet 625,829
2013 PF-P04-T01-INVEST-INCOME-TAX-CAPITAL-GAINLOSS-2013 CSV Parquet 467,081
2012 PF-P04-T01-INVEST-INCOME-TAX-CAPITAL-GAINLOSS-2012 CSV Parquet 420,578
2011 PF-P04-T01-INVEST-INCOME-TAX-CAPITAL-GAINLOSS-2011 CSV Parquet 418,115
2010 PF-P04-T01-INVEST-INCOME-TAX-CAPITAL-GAINLOSS-2010 CSV Parquet 289,586
2009 PF-P04-T01-INVEST-INCOME-TAX-CAPITAL-GAINLOSS-2009 CSV Parquet 28,135
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P04-T01-INVEST-INCOME-TAX-CAPITAL-GAINLOSS",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

P05 Part V - Qualification Under Section 4940(e) for Reduced Tax on Net Investment Income (removed after 2019)

PF-P05-T00-NET-INVEST-INCOME-TAX-4940E

1:1 one row per filing · tax years 2009–2019 · 502,793 rows · Data dictionary

Year Table CSV Parquet Rows
2019 PF-P05-T00-NET-INVEST-INCOME-TAX-4940E-2019 CSV Parquet 78,736
2018 PF-P05-T00-NET-INVEST-INCOME-TAX-4940E-2018 CSV Parquet 71,949
2017 PF-P05-T00-NET-INVEST-INCOME-TAX-4940E-2017 CSV Parquet 61,784
2016 PF-P05-T00-NET-INVEST-INCOME-TAX-4940E-2016 CSV Parquet 56,339
2015 PF-P05-T00-NET-INVEST-INCOME-TAX-4940E-2015 CSV Parquet 52,602
2014 PF-P05-T00-NET-INVEST-INCOME-TAX-4940E-2014 CSV Parquet 47,907
2013 PF-P05-T00-NET-INVEST-INCOME-TAX-4940E-2013 CSV Parquet 41,241
2012 PF-P05-T00-NET-INVEST-INCOME-TAX-4940E-2012 CSV Parquet 35,968
2011 PF-P05-T00-NET-INVEST-INCOME-TAX-4940E-2011 CSV Parquet 31,196
2010 PF-P05-T00-NET-INVEST-INCOME-TAX-4940E-2010 CSV Parquet 22,919
2009 PF-P05-T00-NET-INVEST-INCOME-TAX-4940E-2009 CSV Parquet 2,152
Download with panel990
library( panel990 )

# Panel of tax years 2015-2019
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P05-T00-NET-INVEST-INCOME-TAX-4940E",
            years = 2015:2019,
            source = data_source( form = "990PF" ),
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

P06 Part VI - Excise Tax Based on Investment Income (2023: Part V)

PF-P06-T00-INVEST-INCOME-EXCISE-TAX

1:1 one row per filing · tax years 2009–2025 · 1,228,411 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P06-T00-INVEST-INCOME-EXCISE-TAX-2025 CSV Parquet 66,904
2024 PF-P06-T00-INVEST-INCOME-EXCISE-TAX-2024 CSV Parquet 123,083
2023 PF-P06-T00-INVEST-INCOME-EXCISE-TAX-2023 CSV Parquet 124,200
2022 PF-P06-T00-INVEST-INCOME-EXCISE-TAX-2022 CSV Parquet 121,576
2021 PF-P06-T00-INVEST-INCOME-EXCISE-TAX-2021 CSV Parquet 117,641
2020 PF-P06-T00-INVEST-INCOME-EXCISE-TAX-2020 CSV Parquet 114,874
2019 PF-P06-T00-INVEST-INCOME-EXCISE-TAX-2019 CSV Parquet 87,789
2018 PF-P06-T00-INVEST-INCOME-EXCISE-TAX-2018 CSV Parquet 80,138
2017 PF-P06-T00-INVEST-INCOME-EXCISE-TAX-2017 CSV Parquet 68,950
2016 PF-P06-T00-INVEST-INCOME-EXCISE-TAX-2016 CSV Parquet 62,988
2015 PF-P06-T00-INVEST-INCOME-EXCISE-TAX-2015 CSV Parquet 58,815
2014 PF-P06-T00-INVEST-INCOME-EXCISE-TAX-2014 CSV Parquet 53,442
2013 PF-P06-T00-INVEST-INCOME-EXCISE-TAX-2013 CSV Parquet 45,887
2012 PF-P06-T00-INVEST-INCOME-EXCISE-TAX-2012 CSV Parquet 39,933
2011 PF-P06-T00-INVEST-INCOME-EXCISE-TAX-2011 CSV Parquet 34,597
2010 PF-P06-T00-INVEST-INCOME-EXCISE-TAX-2010 CSV Parquet 25,249
2009 PF-P06-T00-INVEST-INCOME-EXCISE-TAX-2009 CSV Parquet 2,345
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P06-T00-INVEST-INCOME-EXCISE-TAX",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

P07 Part VII-A - Statements Regarding Activities; Part VII-B - Activities for Which Form 4720 May Be Required (2023: Part VI-A, VI-B)

PF-P07-T00-ACTIVITIES

1:1 one row per filing · tax years 2009–2025 · 1,234,783 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P07-T00-ACTIVITIES-2025 CSV Parquet 67,525
2024 PF-P07-T00-ACTIVITIES-2024 CSV Parquet 124,337
2023 PF-P07-T00-ACTIVITIES-2023 CSV Parquet 125,564
2022 PF-P07-T00-ACTIVITIES-2022 CSV Parquet 122,913
2021 PF-P07-T00-ACTIVITIES-2021 CSV Parquet 119,354
2020 PF-P07-T00-ACTIVITIES-2020 CSV Parquet 114,957
2019 PF-P07-T00-ACTIVITIES-2019 CSV Parquet 87,789
2018 PF-P07-T00-ACTIVITIES-2018 CSV Parquet 80,138
2017 PF-P07-T00-ACTIVITIES-2017 CSV Parquet 68,950
2016 PF-P07-T00-ACTIVITIES-2016 CSV Parquet 62,988
2015 PF-P07-T00-ACTIVITIES-2015 CSV Parquet 58,815
2014 PF-P07-T00-ACTIVITIES-2014 CSV Parquet 53,442
2013 PF-P07-T00-ACTIVITIES-2013 CSV Parquet 45,887
2012 PF-P07-T00-ACTIVITIES-2012 CSV Parquet 39,933
2011 PF-P07-T00-ACTIVITIES-2011 CSV Parquet 34,597
2010 PF-P07-T00-ACTIVITIES-2010 CSV Parquet 25,249
2009 PF-P07-T00-ACTIVITIES-2009 CSV Parquet 2,345
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P07-T00-ACTIVITIES",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P07-T00-ACTIVITIES-4720

1:1 one row per filing · tax years 2009–2025 · 1,221,124 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P07-T00-ACTIVITIES-4720-2025 CSV Parquet 67,334
2024 PF-P07-T00-ACTIVITIES-4720-2024 CSV Parquet 123,862
2023 PF-P07-T00-ACTIVITIES-4720-2023 CSV Parquet 123,535
2022 PF-P07-T00-ACTIVITIES-4720-2022 CSV Parquet 121,199
2021 PF-P07-T00-ACTIVITIES-4720-2021 CSV Parquet 117,865
2020 PF-P07-T00-ACTIVITIES-4720-2020 CSV Parquet 113,431
2019 PF-P07-T00-ACTIVITIES-4720-2019 CSV Parquet 86,544
2018 PF-P07-T00-ACTIVITIES-4720-2018 CSV Parquet 78,922
2017 PF-P07-T00-ACTIVITIES-4720-2017 CSV Parquet 67,796
2016 PF-P07-T00-ACTIVITIES-4720-2016 CSV Parquet 62,227
2015 PF-P07-T00-ACTIVITIES-4720-2015 CSV Parquet 58,259
2014 PF-P07-T00-ACTIVITIES-4720-2014 CSV Parquet 53,000
2013 PF-P07-T00-ACTIVITIES-4720-2013 CSV Parquet 45,588
2012 PF-P07-T00-ACTIVITIES-4720-2012 CSV Parquet 39,688
2011 PF-P07-T00-ACTIVITIES-4720-2011 CSV Parquet 34,348
2010 PF-P07-T00-ACTIVITIES-4720-2010 CSV Parquet 25,184
2009 PF-P07-T00-ACTIVITIES-4720-2009 CSV Parquet 2,342
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P07-T00-ACTIVITIES-4720",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

P08 Part VIII - Information About Officers, Directors, Trustees, Foundation Managers, Highly Paid Employees, and Contractors (2023: Part VII)

PF-P08-T00-COMPENSATION-CONTRACTORS

1:1 one row per filing · tax years 2009–2025 · 1,107,842 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P08-T00-COMPENSATION-CONTRACTORS-2025 CSV Parquet 61,506
2024 PF-P08-T00-COMPENSATION-CONTRACTORS-2024 CSV Parquet 114,205
2023 PF-P08-T00-COMPENSATION-CONTRACTORS-2023 CSV Parquet 110,939
2022 PF-P08-T00-COMPENSATION-CONTRACTORS-2022 CSV Parquet 109,182
2021 PF-P08-T00-COMPENSATION-CONTRACTORS-2021 CSV Parquet 105,038
2020 PF-P08-T00-COMPENSATION-CONTRACTORS-2020 CSV Parquet 102,549
2019 PF-P08-T00-COMPENSATION-CONTRACTORS-2019 CSV Parquet 79,310
2018 PF-P08-T00-COMPENSATION-CONTRACTORS-2018 CSV Parquet 72,518
2017 PF-P08-T00-COMPENSATION-CONTRACTORS-2017 CSV Parquet 62,205
2016 PF-P08-T00-COMPENSATION-CONTRACTORS-2016 CSV Parquet 56,617
2015 PF-P08-T00-COMPENSATION-CONTRACTORS-2015 CSV Parquet 53,029
2014 PF-P08-T00-COMPENSATION-CONTRACTORS-2014 CSV Parquet 48,112
2013 PF-P08-T00-COMPENSATION-CONTRACTORS-2013 CSV Parquet 41,306
2012 PF-P08-T00-COMPENSATION-CONTRACTORS-2012 CSV Parquet 35,046
2011 PF-P08-T00-COMPENSATION-CONTRACTORS-2011 CSV Parquet 31,326
2010 PF-P08-T00-COMPENSATION-CONTRACTORS-2010 CSV Parquet 22,787
2009 PF-P08-T00-COMPENSATION-CONTRACTORS-2009 CSV Parquet 2,167
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P08-T00-COMPENSATION-CONTRACTORS",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P08-T00-COMPENSATION-HIGHEST

1:1 one row per filing · tax years 2009–2025 · 1,109,293 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P08-T00-COMPENSATION-HIGHEST-2025 CSV Parquet 61,533
2024 PF-P08-T00-COMPENSATION-HIGHEST-2024 CSV Parquet 113,739
2023 PF-P08-T00-COMPENSATION-HIGHEST-2023 CSV Parquet 110,680
2022 PF-P08-T00-COMPENSATION-HIGHEST-2022 CSV Parquet 109,236
2021 PF-P08-T00-COMPENSATION-HIGHEST-2021 CSV Parquet 104,988
2020 PF-P08-T00-COMPENSATION-HIGHEST-2020 CSV Parquet 102,421
2019 PF-P08-T00-COMPENSATION-HIGHEST-2019 CSV Parquet 79,243
2018 PF-P08-T00-COMPENSATION-HIGHEST-2018 CSV Parquet 72,494
2017 PF-P08-T00-COMPENSATION-HIGHEST-2017 CSV Parquet 62,196
2016 PF-P08-T00-COMPENSATION-HIGHEST-2016 CSV Parquet 56,645
2015 PF-P08-T00-COMPENSATION-HIGHEST-2015 CSV Parquet 53,142
2014 PF-P08-T00-COMPENSATION-HIGHEST-2014 CSV Parquet 48,255
2013 PF-P08-T00-COMPENSATION-HIGHEST-2013 CSV Parquet 41,450
2012 PF-P08-T00-COMPENSATION-HIGHEST-2012 CSV Parquet 36,074
2011 PF-P08-T00-COMPENSATION-HIGHEST-2011 CSV Parquet 31,783
2010 PF-P08-T00-COMPENSATION-HIGHEST-2010 CSV Parquet 23,248
2009 PF-P08-T00-COMPENSATION-HIGHEST-2009 CSV Parquet 2,166
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P08-T00-COMPENSATION-HIGHEST",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P08-T01-COMPENSATION

1:M many rows per filing · tax years 2009–2025 · 3,981,135 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P08-T01-COMPENSATION-2025 CSV Parquet 197,150
2024 PF-P08-T01-COMPENSATION-2024 CSV Parquet 400,691
2023 PF-P08-T01-COMPENSATION-2023 CSV Parquet 403,853
2022 PF-P08-T01-COMPENSATION-2022 CSV Parquet 395,909
2021 PF-P08-T01-COMPENSATION-2021 CSV Parquet 384,572
2020 PF-P08-T01-COMPENSATION-2020 CSV Parquet 370,946
2019 PF-P08-T01-COMPENSATION-2019 CSV Parquet 280,149
2018 PF-P08-T01-COMPENSATION-2018 CSV Parquet 253,993
2017 PF-P08-T01-COMPENSATION-2017 CSV Parquet 225,919
2016 PF-P08-T01-COMPENSATION-2016 CSV Parquet 207,830
2015 PF-P08-T01-COMPENSATION-2015 CSV Parquet 194,046
2014 PF-P08-T01-COMPENSATION-2014 CSV Parquet 175,819
2013 PF-P08-T01-COMPENSATION-2013 CSV Parquet 153,025
2012 PF-P08-T01-COMPENSATION-2012 CSV Parquet 133,519
2011 PF-P08-T01-COMPENSATION-2011 CSV Parquet 112,718
2010 PF-P08-T01-COMPENSATION-2010 CSV Parquet 82,055
2009 PF-P08-T01-COMPENSATION-2009 CSV Parquet 8,941
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P08-T01-COMPENSATION",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P08-T02-COMPENSATION-HIGHEST

1:M many rows per filing · tax years 2009–2025 · 69,085 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P08-T02-COMPENSATION-HIGHEST-2025 CSV Parquet 1,493
2024 PF-P08-T02-COMPENSATION-HIGHEST-2024 CSV Parquet 8,759
2023 PF-P08-T02-COMPENSATION-HIGHEST-2023 CSV Parquet 8,582
2022 PF-P08-T02-COMPENSATION-HIGHEST-2022 CSV Parquet 8,189
2021 PF-P08-T02-COMPENSATION-HIGHEST-2021 CSV Parquet 7,842
2020 PF-P08-T02-COMPENSATION-HIGHEST-2020 CSV Parquet 7,463
2019 PF-P08-T02-COMPENSATION-HIGHEST-2019 CSV Parquet 4,984
2018 PF-P08-T02-COMPENSATION-HIGHEST-2018 CSV Parquet 3,826
2017 PF-P08-T02-COMPENSATION-HIGHEST-2017 CSV Parquet 3,295
2016 PF-P08-T02-COMPENSATION-HIGHEST-2016 CSV Parquet 2,860
2015 PF-P08-T02-COMPENSATION-HIGHEST-2015 CSV Parquet 2,596
2014 PF-P08-T02-COMPENSATION-HIGHEST-2014 CSV Parquet 2,207
2013 PF-P08-T02-COMPENSATION-HIGHEST-2013 CSV Parquet 2,974
2012 PF-P08-T02-COMPENSATION-HIGHEST-2012 CSV Parquet 1,557
2011 PF-P08-T02-COMPENSATION-HIGHEST-2011 CSV Parquet 1,238
2010 PF-P08-T02-COMPENSATION-HIGHEST-2010 CSV Parquet 1,008
2009 PF-P08-T02-COMPENSATION-HIGHEST-2009 CSV Parquet 212
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P08-T02-COMPENSATION-HIGHEST",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P08-T03-COMPENSATION-CONTRACTORS

1:M many rows per filing · tax years 2009–2025 · 83,907 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P08-T03-COMPENSATION-CONTRACTORS-2025 CSV Parquet 2,425
2024 PF-P08-T03-COMPENSATION-CONTRACTORS-2024 CSV Parquet 11,818
2023 PF-P08-T03-COMPENSATION-CONTRACTORS-2023 CSV Parquet 11,353
2022 PF-P08-T03-COMPENSATION-CONTRACTORS-2022 CSV Parquet 10,708
2021 PF-P08-T03-COMPENSATION-CONTRACTORS-2021 CSV Parquet 9,990
2020 PF-P08-T03-COMPENSATION-CONTRACTORS-2020 CSV Parquet 9,074
2019 PF-P08-T03-COMPENSATION-CONTRACTORS-2019 CSV Parquet 5,863
2018 PF-P08-T03-COMPENSATION-CONTRACTORS-2018 CSV Parquet 4,298
2017 PF-P08-T03-COMPENSATION-CONTRACTORS-2017 CSV Parquet 3,743
2016 PF-P08-T03-COMPENSATION-CONTRACTORS-2016 CSV Parquet 3,209
2015 PF-P08-T03-COMPENSATION-CONTRACTORS-2015 CSV Parquet 2,891
2014 PF-P08-T03-COMPENSATION-CONTRACTORS-2014 CSV Parquet 2,496
2013 PF-P08-T03-COMPENSATION-CONTRACTORS-2013 CSV Parquet 1,981
2012 PF-P08-T03-COMPENSATION-CONTRACTORS-2012 CSV Parquet 1,592
2011 PF-P08-T03-COMPENSATION-CONTRACTORS-2011 CSV Parquet 1,328
2010 PF-P08-T03-COMPENSATION-CONTRACTORS-2010 CSV Parquet 946
2009 PF-P08-T03-COMPENSATION-CONTRACTORS-2009 CSV Parquet 192
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P08-T03-COMPENSATION-CONTRACTORS",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

P09 Part IX-A - Summary of Direct Charitable Activities; Part IX-B - Summary of Program-Related Investments (2023: Part VIII-A, VIII-B)

PF-P09-T00-CHARITABLE-ACTIVITIES

1:1 one row per filing · tax years 2009–2025 · 361,888 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P09-T00-CHARITABLE-ACTIVITIES-2025 CSV Parquet 18,457
2024 PF-P09-T00-CHARITABLE-ACTIVITIES-2024 CSV Parquet 35,744
2023 PF-P09-T00-CHARITABLE-ACTIVITIES-2023 CSV Parquet 36,589
2022 PF-P09-T00-CHARITABLE-ACTIVITIES-2022 CSV Parquet 35,650
2021 PF-P09-T00-CHARITABLE-ACTIVITIES-2021 CSV Parquet 34,823
2020 PF-P09-T00-CHARITABLE-ACTIVITIES-2020 CSV Parquet 33,762
2019 PF-P09-T00-CHARITABLE-ACTIVITIES-2019 CSV Parquet 24,997
2018 PF-P09-T00-CHARITABLE-ACTIVITIES-2018 CSV Parquet 22,197
2017 PF-P09-T00-CHARITABLE-ACTIVITIES-2017 CSV Parquet 20,194
2016 PF-P09-T00-CHARITABLE-ACTIVITIES-2016 CSV Parquet 18,704
2015 PF-P09-T00-CHARITABLE-ACTIVITIES-2015 CSV Parquet 16,808
2014 PF-P09-T00-CHARITABLE-ACTIVITIES-2014 CSV Parquet 15,304
2013 PF-P09-T00-CHARITABLE-ACTIVITIES-2013 CSV Parquet 15,116
2012 PF-P09-T00-CHARITABLE-ACTIVITIES-2012 CSV Parquet 13,341
2011 PF-P09-T00-CHARITABLE-ACTIVITIES-2011 CSV Parquet 11,381
2010 PF-P09-T00-CHARITABLE-ACTIVITIES-2010 CSV Parquet 7,954
2009 PF-P09-T00-CHARITABLE-ACTIVITIES-2009 CSV Parquet 867
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P09-T00-CHARITABLE-ACTIVITIES",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

P10 Part X - Minimum Investment Return (2023: Part IX)

PF-P10-T00-MINIMUM-INVESTMENT-RETURN

1:1 one row per filing · tax years 2009–2025 · 1,216,452 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P10-T00-MINIMUM-INVESTMENT-RETURN-2025 CSV Parquet 66,507
2024 PF-P10-T00-MINIMUM-INVESTMENT-RETURN-2024 CSV Parquet 122,001
2023 PF-P10-T00-MINIMUM-INVESTMENT-RETURN-2023 CSV Parquet 123,143
2022 PF-P10-T00-MINIMUM-INVESTMENT-RETURN-2022 CSV Parquet 120,792
2021 PF-P10-T00-MINIMUM-INVESTMENT-RETURN-2021 CSV Parquet 117,262
2020 PF-P10-T00-MINIMUM-INVESTMENT-RETURN-2020 CSV Parquet 113,056
2019 PF-P10-T00-MINIMUM-INVESTMENT-RETURN-2019 CSV Parquet 86,465
2018 PF-P10-T00-MINIMUM-INVESTMENT-RETURN-2018 CSV Parquet 78,953
2017 PF-P10-T00-MINIMUM-INVESTMENT-RETURN-2017 CSV Parquet 67,957
2016 PF-P10-T00-MINIMUM-INVESTMENT-RETURN-2016 CSV Parquet 62,216
2015 PF-P10-T00-MINIMUM-INVESTMENT-RETURN-2015 CSV Parquet 58,234
2014 PF-P10-T00-MINIMUM-INVESTMENT-RETURN-2014 CSV Parquet 52,961
2013 PF-P10-T00-MINIMUM-INVESTMENT-RETURN-2013 CSV Parquet 45,514
2012 PF-P10-T00-MINIMUM-INVESTMENT-RETURN-2012 CSV Parquet 39,614
2011 PF-P10-T00-MINIMUM-INVESTMENT-RETURN-2011 CSV Parquet 34,329
2010 PF-P10-T00-MINIMUM-INVESTMENT-RETURN-2010 CSV Parquet 25,109
2009 PF-P10-T00-MINIMUM-INVESTMENT-RETURN-2009 CSV Parquet 2,339
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P10-T00-MINIMUM-INVESTMENT-RETURN",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

P11 Part XI - Distributable Amount (2023: Part X)

PF-P11-T00-DISTRIBUTABLE-AMOUNT

1:1 one row per filing · tax years 2009–2025 · 1,234,570 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P11-T00-DISTRIBUTABLE-AMOUNT-2025 CSV Parquet 67,498
2024 PF-P11-T00-DISTRIBUTABLE-AMOUNT-2024 CSV Parquet 124,324
2023 PF-P11-T00-DISTRIBUTABLE-AMOUNT-2023 CSV Parquet 125,530
2022 PF-P11-T00-DISTRIBUTABLE-AMOUNT-2022 CSV Parquet 122,876
2021 PF-P11-T00-DISTRIBUTABLE-AMOUNT-2021 CSV Parquet 119,332
2020 PF-P11-T00-DISTRIBUTABLE-AMOUNT-2020 CSV Parquet 114,935
2019 PF-P11-T00-DISTRIBUTABLE-AMOUNT-2019 CSV Parquet 87,776
2018 PF-P11-T00-DISTRIBUTABLE-AMOUNT-2018 CSV Parquet 80,125
2017 PF-P11-T00-DISTRIBUTABLE-AMOUNT-2017 CSV Parquet 68,939
2016 PF-P11-T00-DISTRIBUTABLE-AMOUNT-2016 CSV Parquet 62,983
2015 PF-P11-T00-DISTRIBUTABLE-AMOUNT-2015 CSV Parquet 58,808
2014 PF-P11-T00-DISTRIBUTABLE-AMOUNT-2014 CSV Parquet 53,436
2013 PF-P11-T00-DISTRIBUTABLE-AMOUNT-2013 CSV Parquet 45,885
2012 PF-P11-T00-DISTRIBUTABLE-AMOUNT-2012 CSV Parquet 39,933
2011 PF-P11-T00-DISTRIBUTABLE-AMOUNT-2011 CSV Parquet 34,596
2010 PF-P11-T00-DISTRIBUTABLE-AMOUNT-2010 CSV Parquet 25,249
2009 PF-P11-T00-DISTRIBUTABLE-AMOUNT-2009 CSV Parquet 2,345
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P11-T00-DISTRIBUTABLE-AMOUNT",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

P12 Part XII - Qualifying Distributions (2023: Part XI)

PF-P12-T00-QUALIFYING-DISTRIBUTIONS

1:1 one row per filing · tax years 2009–2025 · 1,234,756 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P12-T00-QUALIFYING-DISTRIBUTIONS-2025 CSV Parquet 67,524
2024 PF-P12-T00-QUALIFYING-DISTRIBUTIONS-2024 CSV Parquet 124,331
2023 PF-P12-T00-QUALIFYING-DISTRIBUTIONS-2023 CSV Parquet 125,559
2022 PF-P12-T00-QUALIFYING-DISTRIBUTIONS-2022 CSV Parquet 122,908
2021 PF-P12-T00-QUALIFYING-DISTRIBUTIONS-2021 CSV Parquet 119,350
2020 PF-P12-T00-QUALIFYING-DISTRIBUTIONS-2020 CSV Parquet 114,956
2019 PF-P12-T00-QUALIFYING-DISTRIBUTIONS-2019 CSV Parquet 87,789
2018 PF-P12-T00-QUALIFYING-DISTRIBUTIONS-2018 CSV Parquet 80,138
2017 PF-P12-T00-QUALIFYING-DISTRIBUTIONS-2017 CSV Parquet 68,950
2016 PF-P12-T00-QUALIFYING-DISTRIBUTIONS-2016 CSV Parquet 62,988
2015 PF-P12-T00-QUALIFYING-DISTRIBUTIONS-2015 CSV Parquet 58,814
2014 PF-P12-T00-QUALIFYING-DISTRIBUTIONS-2014 CSV Parquet 53,441
2013 PF-P12-T00-QUALIFYING-DISTRIBUTIONS-2013 CSV Parquet 45,884
2012 PF-P12-T00-QUALIFYING-DISTRIBUTIONS-2012 CSV Parquet 39,933
2011 PF-P12-T00-QUALIFYING-DISTRIBUTIONS-2011 CSV Parquet 34,597
2010 PF-P12-T00-QUALIFYING-DISTRIBUTIONS-2010 CSV Parquet 25,249
2009 PF-P12-T00-QUALIFYING-DISTRIBUTIONS-2009 CSV Parquet 2,345
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P12-T00-QUALIFYING-DISTRIBUTIONS",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

P13 Part XIII - Undistributed Income (2023: Part XII)

PF-P13-T00-UNDISTRIBUTED-INCOME

1:1 one row per filing · tax years 2009–2025 · 1,169,629 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P13-T00-UNDISTRIBUTED-INCOME-2025 CSV Parquet 63,953
2024 PF-P13-T00-UNDISTRIBUTED-INCOME-2024 CSV Parquet 116,721
2023 PF-P13-T00-UNDISTRIBUTED-INCOME-2023 CSV Parquet 118,342
2022 PF-P13-T00-UNDISTRIBUTED-INCOME-2022 CSV Parquet 116,128
2021 PF-P13-T00-UNDISTRIBUTED-INCOME-2021 CSV Parquet 113,003
2020 PF-P13-T00-UNDISTRIBUTED-INCOME-2020 CSV Parquet 109,149
2019 PF-P13-T00-UNDISTRIBUTED-INCOME-2019 CSV Parquet 83,365
2018 PF-P13-T00-UNDISTRIBUTED-INCOME-2018 CSV Parquet 76,365
2017 PF-P13-T00-UNDISTRIBUTED-INCOME-2017 CSV Parquet 65,562
2016 PF-P13-T00-UNDISTRIBUTED-INCOME-2016 CSV Parquet 59,831
2015 PF-P13-T00-UNDISTRIBUTED-INCOME-2015 CSV Parquet 55,804
2014 PF-P13-T00-UNDISTRIBUTED-INCOME-2014 CSV Parquet 50,766
2013 PF-P13-T00-UNDISTRIBUTED-INCOME-2013 CSV Parquet 43,576
2012 PF-P13-T00-UNDISTRIBUTED-INCOME-2012 CSV Parquet 37,891
2011 PF-P13-T00-UNDISTRIBUTED-INCOME-2011 CSV Parquet 32,944
2010 PF-P13-T00-UNDISTRIBUTED-INCOME-2010 CSV Parquet 23,965
2009 PF-P13-T00-UNDISTRIBUTED-INCOME-2009 CSV Parquet 2,264
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P13-T00-UNDISTRIBUTED-INCOME",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

P14 Part XIV - Private Operating Foundations (2023: Part XIII)

PF-P14-T00-PRIVATE-OPERATING-FOUNDATIONS

1:1 one row per filing · tax years 2009–2025 · 124,745 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P14-T00-PRIVATE-OPERATING-FOUNDATIONS-2025 CSV Parquet 6,788
2024 PF-P14-T00-PRIVATE-OPERATING-FOUNDATIONS-2024 CSV Parquet 14,016
2023 PF-P14-T00-PRIVATE-OPERATING-FOUNDATIONS-2023 CSV Parquet 14,090
2022 PF-P14-T00-PRIVATE-OPERATING-FOUNDATIONS-2022 CSV Parquet 13,350
2021 PF-P14-T00-PRIVATE-OPERATING-FOUNDATIONS-2021 CSV Parquet 12,783
2020 PF-P14-T00-PRIVATE-OPERATING-FOUNDATIONS-2020 CSV Parquet 12,043
2019 PF-P14-T00-PRIVATE-OPERATING-FOUNDATIONS-2019 CSV Parquet 8,510
2018 PF-P14-T00-PRIVATE-OPERATING-FOUNDATIONS-2018 CSV Parquet 7,240
2017 PF-P14-T00-PRIVATE-OPERATING-FOUNDATIONS-2017 CSV Parquet 6,578
2016 PF-P14-T00-PRIVATE-OPERATING-FOUNDATIONS-2016 CSV Parquet 5,915
2015 PF-P14-T00-PRIVATE-OPERATING-FOUNDATIONS-2015 CSV Parquet 5,525
2014 PF-P14-T00-PRIVATE-OPERATING-FOUNDATIONS-2014 CSV Parquet 4,782
2013 PF-P14-T00-PRIVATE-OPERATING-FOUNDATIONS-2013 CSV Parquet 4,101
2012 PF-P14-T00-PRIVATE-OPERATING-FOUNDATIONS-2012 CSV Parquet 3,623
2011 PF-P14-T00-PRIVATE-OPERATING-FOUNDATIONS-2011 CSV Parquet 3,006
2010 PF-P14-T00-PRIVATE-OPERATING-FOUNDATIONS-2010 CSV Parquet 2,164
2009 PF-P14-T00-PRIVATE-OPERATING-FOUNDATIONS-2009 CSV Parquet 231
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P14-T00-PRIVATE-OPERATING-FOUNDATIONS",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

P15 Part XV - Supplementary Information (2023: Part XIV)

PF-P15-T00-SUPPLEMENTARY-INFO

1:1 one row per filing · tax years 2009–2025 · 985,936 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P15-T00-SUPPLEMENTARY-INFO-2025 CSV Parquet 53,589
2024 PF-P15-T00-SUPPLEMENTARY-INFO-2024 CSV Parquet 98,360
2023 PF-P15-T00-SUPPLEMENTARY-INFO-2023 CSV Parquet 98,775
2022 PF-P15-T00-SUPPLEMENTARY-INFO-2022 CSV Parquet 97,233
2021 PF-P15-T00-SUPPLEMENTARY-INFO-2021 CSV Parquet 94,969
2020 PF-P15-T00-SUPPLEMENTARY-INFO-2020 CSV Parquet 91,875
2019 PF-P15-T00-SUPPLEMENTARY-INFO-2019 CSV Parquet 71,120
2018 PF-P15-T00-SUPPLEMENTARY-INFO-2018 CSV Parquet 64,982
2017 PF-P15-T00-SUPPLEMENTARY-INFO-2017 CSV Parquet 55,487
2016 PF-P15-T00-SUPPLEMENTARY-INFO-2016 CSV Parquet 50,666
2015 PF-P15-T00-SUPPLEMENTARY-INFO-2015 CSV Parquet 47,363
2014 PF-P15-T00-SUPPLEMENTARY-INFO-2014 CSV Parquet 43,049
2013 PF-P15-T00-SUPPLEMENTARY-INFO-2013 CSV Parquet 36,883
2012 PF-P15-T00-SUPPLEMENTARY-INFO-2012 CSV Parquet 31,989
2011 PF-P15-T00-SUPPLEMENTARY-INFO-2011 CSV Parquet 27,636
2010 PF-P15-T00-SUPPLEMENTARY-INFO-2010 CSV Parquet 20,143
2009 PF-P15-T00-SUPPLEMENTARY-INFO-2009 CSV Parquet 1,817
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P15-T00-SUPPLEMENTARY-INFO",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P15-T03-SUPPLEMENTARY-INFO-GRANT-APP

1:M many rows per filing · tax years 2009–2025 · 322,652 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P15-T03-SUPPLEMENTARY-INFO-GRANT-APP-2025 CSV Parquet 14,954
2024 PF-P15-T03-SUPPLEMENTARY-INFO-GRANT-APP-2024 CSV Parquet 29,682
2023 PF-P15-T03-SUPPLEMENTARY-INFO-GRANT-APP-2023 CSV Parquet 30,301
2022 PF-P15-T03-SUPPLEMENTARY-INFO-GRANT-APP-2022 CSV Parquet 30,539
2021 PF-P15-T03-SUPPLEMENTARY-INFO-GRANT-APP-2021 CSV Parquet 30,406
2020 PF-P15-T03-SUPPLEMENTARY-INFO-GRANT-APP-2020 CSV Parquet 30,136
2019 PF-P15-T03-SUPPLEMENTARY-INFO-GRANT-APP-2019 CSV Parquet 22,903
2018 PF-P15-T03-SUPPLEMENTARY-INFO-GRANT-APP-2018 CSV Parquet 20,987
2017 PF-P15-T03-SUPPLEMENTARY-INFO-GRANT-APP-2017 CSV Parquet 18,974
2016 PF-P15-T03-SUPPLEMENTARY-INFO-GRANT-APP-2016 CSV Parquet 17,550
2015 PF-P15-T03-SUPPLEMENTARY-INFO-GRANT-APP-2015 CSV Parquet 16,566
2014 PF-P15-T03-SUPPLEMENTARY-INFO-GRANT-APP-2014 CSV Parquet 15,275
2013 PF-P15-T03-SUPPLEMENTARY-INFO-GRANT-APP-2013 CSV Parquet 13,520
2012 PF-P15-T03-SUPPLEMENTARY-INFO-GRANT-APP-2012 CSV Parquet 11,962
2011 PF-P15-T03-SUPPLEMENTARY-INFO-GRANT-APP-2011 CSV Parquet 10,338
2010 PF-P15-T03-SUPPLEMENTARY-INFO-GRANT-APP-2010 CSV Parquet 7,743
2009 PF-P15-T03-SUPPLEMENTARY-INFO-GRANT-APP-2009 CSV Parquet 816
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P15-T03-SUPPLEMENTARY-INFO-GRANT-APP",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P15-T00-SUPPLEMENTARY-INFO-GRANT-FUTURE

1:1 one row per filing · tax years 2009–2025 · 519,533 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P15-T00-SUPPLEMENTARY-INFO-GRANT-FUTURE-2025 CSV Parquet 26,060
2024 PF-P15-T00-SUPPLEMENTARY-INFO-GRANT-FUTURE-2024 CSV Parquet 53,298
2023 PF-P15-T00-SUPPLEMENTARY-INFO-GRANT-FUTURE-2023 CSV Parquet 52,127
2022 PF-P15-T00-SUPPLEMENTARY-INFO-GRANT-FUTURE-2022 CSV Parquet 50,604
2021 PF-P15-T00-SUPPLEMENTARY-INFO-GRANT-FUTURE-2021 CSV Parquet 49,352
2020 PF-P15-T00-SUPPLEMENTARY-INFO-GRANT-FUTURE-2020 CSV Parquet 47,429
2019 PF-P15-T00-SUPPLEMENTARY-INFO-GRANT-FUTURE-2019 CSV Parquet 36,114
2018 PF-P15-T00-SUPPLEMENTARY-INFO-GRANT-FUTURE-2018 CSV Parquet 32,963
2017 PF-P15-T00-SUPPLEMENTARY-INFO-GRANT-FUTURE-2017 CSV Parquet 29,534
2016 PF-P15-T00-SUPPLEMENTARY-INFO-GRANT-FUTURE-2016 CSV Parquet 26,772
2015 PF-P15-T00-SUPPLEMENTARY-INFO-GRANT-FUTURE-2015 CSV Parquet 24,801
2014 PF-P15-T00-SUPPLEMENTARY-INFO-GRANT-FUTURE-2014 CSV Parquet 22,602
2013 PF-P15-T00-SUPPLEMENTARY-INFO-GRANT-FUTURE-2013 CSV Parquet 21,580
2012 PF-P15-T00-SUPPLEMENTARY-INFO-GRANT-FUTURE-2012 CSV Parquet 17,820
2011 PF-P15-T00-SUPPLEMENTARY-INFO-GRANT-FUTURE-2011 CSV Parquet 15,674
2010 PF-P15-T00-SUPPLEMENTARY-INFO-GRANT-FUTURE-2010 CSV Parquet 11,516
2009 PF-P15-T00-SUPPLEMENTARY-INFO-GRANT-FUTURE-2009 CSV Parquet 1,287
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P15-T00-SUPPLEMENTARY-INFO-GRANT-FUTURE",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P15-T00-SUPPLEMENTARY-INFO-GRANT-PAID

1:1 one row per filing · tax years 2009–2025 · 1,079,945 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P15-T00-SUPPLEMENTARY-INFO-GRANT-PAID-2025 CSV Parquet 57,563
2024 PF-P15-T00-SUPPLEMENTARY-INFO-GRANT-PAID-2024 CSV Parquet 106,218
2023 PF-P15-T00-SUPPLEMENTARY-INFO-GRANT-PAID-2023 CSV Parquet 106,310
2022 PF-P15-T00-SUPPLEMENTARY-INFO-GRANT-PAID-2022 CSV Parquet 105,508
2021 PF-P15-T00-SUPPLEMENTARY-INFO-GRANT-PAID-2021 CSV Parquet 103,346
2020 PF-P15-T00-SUPPLEMENTARY-INFO-GRANT-PAID-2020 CSV Parquet 100,977
2019 PF-P15-T00-SUPPLEMENTARY-INFO-GRANT-PAID-2019 CSV Parquet 78,153
2018 PF-P15-T00-SUPPLEMENTARY-INFO-GRANT-PAID-2018 CSV Parquet 71,484
2017 PF-P15-T00-SUPPLEMENTARY-INFO-GRANT-PAID-2017 CSV Parquet 61,392
2016 PF-P15-T00-SUPPLEMENTARY-INFO-GRANT-PAID-2016 CSV Parquet 56,094
2015 PF-P15-T00-SUPPLEMENTARY-INFO-GRANT-PAID-2015 CSV Parquet 52,514
2014 PF-P15-T00-SUPPLEMENTARY-INFO-GRANT-PAID-2014 CSV Parquet 48,138
2013 PF-P15-T00-SUPPLEMENTARY-INFO-GRANT-PAID-2013 CSV Parquet 41,192
2012 PF-P15-T00-SUPPLEMENTARY-INFO-GRANT-PAID-2012 CSV Parquet 35,434
2011 PF-P15-T00-SUPPLEMENTARY-INFO-GRANT-PAID-2011 CSV Parquet 30,872
2010 PF-P15-T00-SUPPLEMENTARY-INFO-GRANT-PAID-2010 CSV Parquet 22,626
2009 PF-P15-T00-SUPPLEMENTARY-INFO-GRANT-PAID-2009 CSV Parquet 2,124
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P15-T00-SUPPLEMENTARY-INFO-GRANT-PAID",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P15-T01-SUPPLEMENTARY-INFO-GRANT-PAID

1:M many rows per filing · tax years 2009–2025 · 17,560,767 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P15-T01-SUPPLEMENTARY-INFO-GRANT-PAID-2025 CSV Parquet 660,956
2024 PF-P15-T01-SUPPLEMENTARY-INFO-GRANT-PAID-2024 CSV Parquet 1,576,516
2023 PF-P15-T01-SUPPLEMENTARY-INFO-GRANT-PAID-2023 CSV Parquet 2,047,052
2022 PF-P15-T01-SUPPLEMENTARY-INFO-GRANT-PAID-2022 CSV Parquet 2,052,042
2021 PF-P15-T01-SUPPLEMENTARY-INFO-GRANT-PAID-2021 CSV Parquet 2,031,798
2020 PF-P15-T01-SUPPLEMENTARY-INFO-GRANT-PAID-2020 CSV Parquet 1,962,611
2019 PF-P15-T01-SUPPLEMENTARY-INFO-GRANT-PAID-2019 CSV Parquet 1,151,964
2018 PF-P15-T01-SUPPLEMENTARY-INFO-GRANT-PAID-2018 CSV Parquet 983,450
2017 PF-P15-T01-SUPPLEMENTARY-INFO-GRANT-PAID-2017 CSV Parquet 876,766
2016 PF-P15-T01-SUPPLEMENTARY-INFO-GRANT-PAID-2016 CSV Parquet 797,068
2015 PF-P15-T01-SUPPLEMENTARY-INFO-GRANT-PAID-2015 CSV Parquet 790,979
2014 PF-P15-T01-SUPPLEMENTARY-INFO-GRANT-PAID-2014 CSV Parquet 711,162
2013 PF-P15-T01-SUPPLEMENTARY-INFO-GRANT-PAID-2013 CSV Parquet 613,008
2012 PF-P15-T01-SUPPLEMENTARY-INFO-GRANT-PAID-2012 CSV Parquet 559,962
2011 PF-P15-T01-SUPPLEMENTARY-INFO-GRANT-PAID-2011 CSV Parquet 409,242
2010 PF-P15-T01-SUPPLEMENTARY-INFO-GRANT-PAID-2010 CSV Parquet 301,258
2009 PF-P15-T01-SUPPLEMENTARY-INFO-GRANT-PAID-2009 CSV Parquet 34,933
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P15-T01-SUPPLEMENTARY-INFO-GRANT-PAID",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P15-T02-SUPPLEMENTARY-INFO-GRANT-FUTURE

1:M many rows per filing · tax years 2009–2025 · 465,280 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P15-T02-SUPPLEMENTARY-INFO-GRANT-FUTURE-2025 CSV Parquet 6,234
2024 PF-P15-T02-SUPPLEMENTARY-INFO-GRANT-FUTURE-2024 CSV Parquet 49,501
2023 PF-P15-T02-SUPPLEMENTARY-INFO-GRANT-FUTURE-2023 CSV Parquet 52,655
2022 PF-P15-T02-SUPPLEMENTARY-INFO-GRANT-FUTURE-2022 CSV Parquet 51,359
2021 PF-P15-T02-SUPPLEMENTARY-INFO-GRANT-FUTURE-2021 CSV Parquet 48,712
2020 PF-P15-T02-SUPPLEMENTARY-INFO-GRANT-FUTURE-2020 CSV Parquet 47,076
2019 PF-P15-T02-SUPPLEMENTARY-INFO-GRANT-FUTURE-2019 CSV Parquet 31,663
2018 PF-P15-T02-SUPPLEMENTARY-INFO-GRANT-FUTURE-2018 CSV Parquet 23,137
2017 PF-P15-T02-SUPPLEMENTARY-INFO-GRANT-FUTURE-2017 CSV Parquet 21,859
2016 PF-P15-T02-SUPPLEMENTARY-INFO-GRANT-FUTURE-2016 CSV Parquet 21,360
2015 PF-P15-T02-SUPPLEMENTARY-INFO-GRANT-FUTURE-2015 CSV Parquet 21,740
2014 PF-P15-T02-SUPPLEMENTARY-INFO-GRANT-FUTURE-2014 CSV Parquet 18,861
2013 PF-P15-T02-SUPPLEMENTARY-INFO-GRANT-FUTURE-2013 CSV Parquet 17,351
2012 PF-P15-T02-SUPPLEMENTARY-INFO-GRANT-FUTURE-2012 CSV Parquet 23,432
2011 PF-P15-T02-SUPPLEMENTARY-INFO-GRANT-FUTURE-2011 CSV Parquet 15,219
2010 PF-P15-T02-SUPPLEMENTARY-INFO-GRANT-FUTURE-2010 CSV Parquet 11,275
2009 PF-P15-T02-SUPPLEMENTARY-INFO-GRANT-FUTURE-2009 CSV Parquet 3,846
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P15-T02-SUPPLEMENTARY-INFO-GRANT-FUTURE",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

P16 Part XVI-A - Analysis of Income-Producing Activities; Part XVI-B - Relationship of Activities to the Accomplishment of Exempt Purposes (2023: Part XV)

PF-P16-T00-INCOME-PRODUCING-ACTS

1:1 one row per filing · tax years 2009–2025 · 1,096,253 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P16-T00-INCOME-PRODUCING-ACTS-2025 CSV Parquet 59,790
2024 PF-P16-T00-INCOME-PRODUCING-ACTS-2024 CSV Parquet 109,239
2023 PF-P16-T00-INCOME-PRODUCING-ACTS-2023 CSV Parquet 109,487
2022 PF-P16-T00-INCOME-PRODUCING-ACTS-2022 CSV Parquet 107,357
2021 PF-P16-T00-INCOME-PRODUCING-ACTS-2021 CSV Parquet 104,607
2020 PF-P16-T00-INCOME-PRODUCING-ACTS-2020 CSV Parquet 101,977
2019 PF-P16-T00-INCOME-PRODUCING-ACTS-2019 CSV Parquet 78,419
2018 PF-P16-T00-INCOME-PRODUCING-ACTS-2018 CSV Parquet 71,300
2017 PF-P16-T00-INCOME-PRODUCING-ACTS-2017 CSV Parquet 61,305
2016 PF-P16-T00-INCOME-PRODUCING-ACTS-2016 CSV Parquet 56,194
2015 PF-P16-T00-INCOME-PRODUCING-ACTS-2015 CSV Parquet 52,766
2014 PF-P16-T00-INCOME-PRODUCING-ACTS-2014 CSV Parquet 48,328
2013 PF-P16-T00-INCOME-PRODUCING-ACTS-2013 CSV Parquet 41,751
2012 PF-P16-T00-INCOME-PRODUCING-ACTS-2012 CSV Parquet 36,391
2011 PF-P16-T00-INCOME-PRODUCING-ACTS-2011 CSV Parquet 31,787
2010 PF-P16-T00-INCOME-PRODUCING-ACTS-2010 CSV Parquet 23,349
2009 PF-P16-T00-INCOME-PRODUCING-ACTS-2009 CSV Parquet 2,206
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P16-T00-INCOME-PRODUCING-ACTS",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P16-T01-INCOME-PRODUCING-ACTS

1:M many rows per filing · tax years 2009–2025 · 256,446 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P16-T01-INCOME-PRODUCING-ACTS-2025 CSV Parquet 31,290
2024 PF-P16-T01-INCOME-PRODUCING-ACTS-2024 CSV Parquet 46,054
2023 PF-P16-T01-INCOME-PRODUCING-ACTS-2023 CSV Parquet 45,000
2022 PF-P16-T01-INCOME-PRODUCING-ACTS-2022 CSV Parquet 40,223
2021 PF-P16-T01-INCOME-PRODUCING-ACTS-2021 CSV Parquet 30,597
2020 PF-P16-T01-INCOME-PRODUCING-ACTS-2020 CSV Parquet 27,776
2019 PF-P16-T01-INCOME-PRODUCING-ACTS-2019 CSV Parquet 8,079
2018 PF-P16-T01-INCOME-PRODUCING-ACTS-2018 CSV Parquet 4,781
2017 PF-P16-T01-INCOME-PRODUCING-ACTS-2017 CSV Parquet 4,068
2016 PF-P16-T01-INCOME-PRODUCING-ACTS-2016 CSV Parquet 3,657
2015 PF-P16-T01-INCOME-PRODUCING-ACTS-2015 CSV Parquet 3,398
2014 PF-P16-T01-INCOME-PRODUCING-ACTS-2014 CSV Parquet 3,041
2013 PF-P16-T01-INCOME-PRODUCING-ACTS-2013 CSV Parquet 2,705
2012 PF-P16-T01-INCOME-PRODUCING-ACTS-2012 CSV Parquet 2,235
2011 PF-P16-T01-INCOME-PRODUCING-ACTS-2011 CSV Parquet 1,927
2010 PF-P16-T01-INCOME-PRODUCING-ACTS-2010 CSV Parquet 1,399
2009 PF-P16-T01-INCOME-PRODUCING-ACTS-2009 CSV Parquet 216
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P16-T01-INCOME-PRODUCING-ACTS",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P16-T02-INCOME-PRODUCING-ACTS

1:M many rows per filing · tax years 2009–2025 · 424,532 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P16-T02-INCOME-PRODUCING-ACTS-2025 CSV Parquet 29,726
2024 PF-P16-T02-INCOME-PRODUCING-ACTS-2024 CSV Parquet 56,328
2023 PF-P16-T02-INCOME-PRODUCING-ACTS-2023 CSV Parquet 63,502
2022 PF-P16-T02-INCOME-PRODUCING-ACTS-2022 CSV Parquet 51,053
2021 PF-P16-T02-INCOME-PRODUCING-ACTS-2021 CSV Parquet 45,755
2020 PF-P16-T02-INCOME-PRODUCING-ACTS-2020 CSV Parquet 42,655
2019 PF-P16-T02-INCOME-PRODUCING-ACTS-2019 CSV Parquet 24,265
2018 PF-P16-T02-INCOME-PRODUCING-ACTS-2018 CSV Parquet 16,936
2017 PF-P16-T02-INCOME-PRODUCING-ACTS-2017 CSV Parquet 18,102
2016 PF-P16-T02-INCOME-PRODUCING-ACTS-2016 CSV Parquet 15,698
2015 PF-P16-T02-INCOME-PRODUCING-ACTS-2015 CSV Parquet 14,194
2014 PF-P16-T02-INCOME-PRODUCING-ACTS-2014 CSV Parquet 12,335
2013 PF-P16-T02-INCOME-PRODUCING-ACTS-2013 CSV Parquet 10,913
2012 PF-P16-T02-INCOME-PRODUCING-ACTS-2012 CSV Parquet 9,025
2011 PF-P16-T02-INCOME-PRODUCING-ACTS-2011 CSV Parquet 7,263
2010 PF-P16-T02-INCOME-PRODUCING-ACTS-2010 CSV Parquet 5,980
2009 PF-P16-T02-INCOME-PRODUCING-ACTS-2009 CSV Parquet 802
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P16-T02-INCOME-PRODUCING-ACTS",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P16-T03-ACTS-RELATIONSHIP-EXEMPT-PURPOSE

1:M many rows per filing · tax years 2009–2025 · 304,116 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P16-T03-ACTS-RELATIONSHIP-EXEMPT-PURPOSE-2025 CSV Parquet 12,549
2024 PF-P16-T03-ACTS-RELATIONSHIP-EXEMPT-PURPOSE-2024 CSV Parquet 28,140
2023 PF-P16-T03-ACTS-RELATIONSHIP-EXEMPT-PURPOSE-2023 CSV Parquet 31,000
2022 PF-P16-T03-ACTS-RELATIONSHIP-EXEMPT-PURPOSE-2022 CSV Parquet 30,605
2021 PF-P16-T03-ACTS-RELATIONSHIP-EXEMPT-PURPOSE-2021 CSV Parquet 29,659
2020 PF-P16-T03-ACTS-RELATIONSHIP-EXEMPT-PURPOSE-2020 CSV Parquet 29,125
2019 PF-P16-T03-ACTS-RELATIONSHIP-EXEMPT-PURPOSE-2019 CSV Parquet 22,760
2018 PF-P16-T03-ACTS-RELATIONSHIP-EXEMPT-PURPOSE-2018 CSV Parquet 19,944
2017 PF-P16-T03-ACTS-RELATIONSHIP-EXEMPT-PURPOSE-2017 CSV Parquet 17,144
2016 PF-P16-T03-ACTS-RELATIONSHIP-EXEMPT-PURPOSE-2016 CSV Parquet 15,986
2015 PF-P16-T03-ACTS-RELATIONSHIP-EXEMPT-PURPOSE-2015 CSV Parquet 14,937
2014 PF-P16-T03-ACTS-RELATIONSHIP-EXEMPT-PURPOSE-2014 CSV Parquet 13,551
2013 PF-P16-T03-ACTS-RELATIONSHIP-EXEMPT-PURPOSE-2013 CSV Parquet 11,938
2012 PF-P16-T03-ACTS-RELATIONSHIP-EXEMPT-PURPOSE-2012 CSV Parquet 10,542
2011 PF-P16-T03-ACTS-RELATIONSHIP-EXEMPT-PURPOSE-2011 CSV Parquet 8,902
2010 PF-P16-T03-ACTS-RELATIONSHIP-EXEMPT-PURPOSE-2010 CSV Parquet 6,545
2009 PF-P16-T03-ACTS-RELATIONSHIP-EXEMPT-PURPOSE-2009 CSV Parquet 789
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P16-T03-ACTS-RELATIONSHIP-EXEMPT-PURPOSE",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

P17 Part XVII - Information Regarding Transfers to and Transactions and Relationships With Noncharitable Exempt Organizations (2023: Part XVI)

PF-P17-T00-RELATIONSHIPS

1:1 one row per filing · tax years 2009–2025 · 1,226,797 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P17-T00-RELATIONSHIPS-2025 CSV Parquet 66,267
2024 PF-P17-T00-RELATIONSHIPS-2024 CSV Parquet 122,817
2023 PF-P17-T00-RELATIONSHIPS-2023 CSV Parquet 124,459
2022 PF-P17-T00-RELATIONSHIPS-2022 CSV Parquet 121,679
2021 PF-P17-T00-RELATIONSHIPS-2021 CSV Parquet 118,751
2020 PF-P17-T00-RELATIONSHIPS-2020 CSV Parquet 114,316
2019 PF-P17-T00-RELATIONSHIPS-2019 CSV Parquet 87,509
2018 PF-P17-T00-RELATIONSHIPS-2018 CSV Parquet 79,901
2017 PF-P17-T00-RELATIONSHIPS-2017 CSV Parquet 68,723
2016 PF-P17-T00-RELATIONSHIPS-2016 CSV Parquet 62,794
2015 PF-P17-T00-RELATIONSHIPS-2015 CSV Parquet 58,637
2014 PF-P17-T00-RELATIONSHIPS-2014 CSV Parquet 53,274
2013 PF-P17-T00-RELATIONSHIPS-2013 CSV Parquet 45,778
2012 PF-P17-T00-RELATIONSHIPS-2012 CSV Parquet 39,836
2011 PF-P17-T00-RELATIONSHIPS-2011 CSV Parquet 34,519
2010 PF-P17-T00-RELATIONSHIPS-2010 CSV Parquet 25,193
2009 PF-P17-T00-RELATIONSHIPS-2009 CSV Parquet 2,344
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P17-T00-RELATIONSHIPS",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P17-T00-TRANSFERS-TRANSACTIONS

1:1 one row per filing · tax years 2009–2025 · 1,226,797 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P17-T00-TRANSFERS-TRANSACTIONS-2025 CSV Parquet 66,267
2024 PF-P17-T00-TRANSFERS-TRANSACTIONS-2024 CSV Parquet 122,817
2023 PF-P17-T00-TRANSFERS-TRANSACTIONS-2023 CSV Parquet 124,459
2022 PF-P17-T00-TRANSFERS-TRANSACTIONS-2022 CSV Parquet 121,679
2021 PF-P17-T00-TRANSFERS-TRANSACTIONS-2021 CSV Parquet 118,751
2020 PF-P17-T00-TRANSFERS-TRANSACTIONS-2020 CSV Parquet 114,316
2019 PF-P17-T00-TRANSFERS-TRANSACTIONS-2019 CSV Parquet 87,509
2018 PF-P17-T00-TRANSFERS-TRANSACTIONS-2018 CSV Parquet 79,901
2017 PF-P17-T00-TRANSFERS-TRANSACTIONS-2017 CSV Parquet 68,723
2016 PF-P17-T00-TRANSFERS-TRANSACTIONS-2016 CSV Parquet 62,794
2015 PF-P17-T00-TRANSFERS-TRANSACTIONS-2015 CSV Parquet 58,637
2014 PF-P17-T00-TRANSFERS-TRANSACTIONS-2014 CSV Parquet 53,274
2013 PF-P17-T00-TRANSFERS-TRANSACTIONS-2013 CSV Parquet 45,778
2012 PF-P17-T00-TRANSFERS-TRANSACTIONS-2012 CSV Parquet 39,836
2011 PF-P17-T00-TRANSFERS-TRANSACTIONS-2011 CSV Parquet 34,519
2010 PF-P17-T00-TRANSFERS-TRANSACTIONS-2010 CSV Parquet 25,193
2009 PF-P17-T00-TRANSFERS-TRANSACTIONS-2009 CSV Parquet 2,344
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P17-T00-TRANSFERS-TRANSACTIONS",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P17-T01-TRANSFERS-TRANSACTIONS

1:M many rows per filing · tax years 2009–2025 · 12,181 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P17-T01-TRANSFERS-TRANSACTIONS-2025 CSV Parquet 499
2024 PF-P17-T01-TRANSFERS-TRANSACTIONS-2024 CSV Parquet 1,384
2023 PF-P17-T01-TRANSFERS-TRANSACTIONS-2023 CSV Parquet 1,328
2022 PF-P17-T01-TRANSFERS-TRANSACTIONS-2022 CSV Parquet 1,336
2021 PF-P17-T01-TRANSFERS-TRANSACTIONS-2021 CSV Parquet 1,265
2020 PF-P17-T01-TRANSFERS-TRANSACTIONS-2020 CSV Parquet 1,154
2019 PF-P17-T01-TRANSFERS-TRANSACTIONS-2019 CSV Parquet 802
2018 PF-P17-T01-TRANSFERS-TRANSACTIONS-2018 CSV Parquet 716
2017 PF-P17-T01-TRANSFERS-TRANSACTIONS-2017 CSV Parquet 646
2016 PF-P17-T01-TRANSFERS-TRANSACTIONS-2016 CSV Parquet 539
2015 PF-P17-T01-TRANSFERS-TRANSACTIONS-2015 CSV Parquet 500
2014 PF-P17-T01-TRANSFERS-TRANSACTIONS-2014 CSV Parquet 517
2013 PF-P17-T01-TRANSFERS-TRANSACTIONS-2013 CSV Parquet 477
2012 PF-P17-T01-TRANSFERS-TRANSACTIONS-2012 CSV Parquet 410
2011 PF-P17-T01-TRANSFERS-TRANSACTIONS-2011 CSV Parquet 336
2010 PF-P17-T01-TRANSFERS-TRANSACTIONS-2010 CSV Parquet 237
2009 PF-P17-T01-TRANSFERS-TRANSACTIONS-2009 CSV Parquet 35
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P17-T01-TRANSFERS-TRANSACTIONS",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P17-T02-RELATIONSHIPS

1:M many rows per filing · tax years 2009–2025 · 20,236 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P17-T02-RELATIONSHIPS-2025 CSV Parquet 752
2024 PF-P17-T02-RELATIONSHIPS-2024 CSV Parquet 2,230
2023 PF-P17-T02-RELATIONSHIPS-2023 CSV Parquet 2,284
2022 PF-P17-T02-RELATIONSHIPS-2022 CSV Parquet 2,236
2021 PF-P17-T02-RELATIONSHIPS-2021 CSV Parquet 2,178
2020 PF-P17-T02-RELATIONSHIPS-2020 CSV Parquet 2,147
2019 PF-P17-T02-RELATIONSHIPS-2019 CSV Parquet 1,559
2018 PF-P17-T02-RELATIONSHIPS-2018 CSV Parquet 1,124
2017 PF-P17-T02-RELATIONSHIPS-2017 CSV Parquet 996
2016 PF-P17-T02-RELATIONSHIPS-2016 CSV Parquet 954
2015 PF-P17-T02-RELATIONSHIPS-2015 CSV Parquet 829
2014 PF-P17-T02-RELATIONSHIPS-2014 CSV Parquet 783
2013 PF-P17-T02-RELATIONSHIPS-2013 CSV Parquet 660
2012 PF-P17-T02-RELATIONSHIPS-2012 CSV Parquet 536
2011 PF-P17-T02-RELATIONSHIPS-2011 CSV Parquet 496
2010 PF-P17-T02-RELATIONSHIPS-2010 CSV Parquet 403
2009 PF-P17-T02-RELATIONSHIPS-2009 CSV Parquet 69
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P17-T02-RELATIONSHIPS",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

P99 Auxiliary schedules and attachments (statements filed with the 990-PF)

PF-P99-T00-AUXILLIARY

1:1 one row per filing · tax years 2009–2025 · 106,591 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P99-T00-AUXILLIARY-2025 CSV Parquet 6,879
2024 PF-P99-T00-AUXILLIARY-2024 CSV Parquet 12,633
2023 PF-P99-T00-AUXILLIARY-2023 CSV Parquet 12,404
2022 PF-P99-T00-AUXILLIARY-2022 CSV Parquet 11,588
2021 PF-P99-T00-AUXILLIARY-2021 CSV Parquet 11,208
2020 PF-P99-T00-AUXILLIARY-2020 CSV Parquet 10,732
2019 PF-P99-T00-AUXILLIARY-2019 CSV Parquet 7,270
2018 PF-P99-T00-AUXILLIARY-2018 CSV Parquet 6,351
2017 PF-P99-T00-AUXILLIARY-2017 CSV Parquet 5,270
2016 PF-P99-T00-AUXILLIARY-2016 CSV Parquet 4,558
2015 PF-P99-T00-AUXILLIARY-2015 CSV Parquet 4,214
2014 PF-P99-T00-AUXILLIARY-2014 CSV Parquet 3,627
2013 PF-P99-T00-AUXILLIARY-2013 CSV Parquet 3,157
2012 PF-P99-T00-AUXILLIARY-2012 CSV Parquet 2,830
2011 PF-P99-T00-AUXILLIARY-2011 CSV Parquet 2,297
2010 PF-P99-T00-AUXILLIARY-2010 CSV Parquet 1,425
2009 PF-P99-T00-AUXILLIARY-2009 CSV Parquet 148
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P99-T00-AUXILLIARY",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P99-T01-ACC-FEES

1:M many rows per filing · tax years 2009–2025 · 778,846 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P99-T01-ACC-FEES-2025 CSV Parquet 41,919
2024 PF-P99-T01-ACC-FEES-2024 CSV Parquet 75,808
2023 PF-P99-T01-ACC-FEES-2023 CSV Parquet 75,703
2022 PF-P99-T01-ACC-FEES-2022 CSV Parquet 73,713
2021 PF-P99-T01-ACC-FEES-2021 CSV Parquet 72,170
2020 PF-P99-T01-ACC-FEES-2020 CSV Parquet 70,276
2019 PF-P99-T01-ACC-FEES-2019 CSV Parquet 56,774
2018 PF-P99-T01-ACC-FEES-2018 CSV Parquet 52,429
2017 PF-P99-T01-ACC-FEES-2017 CSV Parquet 45,175
2016 PF-P99-T01-ACC-FEES-2016 CSV Parquet 41,970
2015 PF-P99-T01-ACC-FEES-2015 CSV Parquet 39,230
2014 PF-P99-T01-ACC-FEES-2014 CSV Parquet 35,329
2013 PF-P99-T01-ACC-FEES-2013 CSV Parquet 29,639
2012 PF-P99-T01-ACC-FEES-2012 CSV Parquet 26,795
2011 PF-P99-T01-ACC-FEES-2011 CSV Parquet 23,366
2010 PF-P99-T01-ACC-FEES-2010 CSV Parquet 16,858
2009 PF-P99-T01-ACC-FEES-2009 CSV Parquet 1,692
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P99-T01-ACC-FEES",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P99-T03-PROG-INVEST-OTH

1:M many rows per filing · tax years 2009–2025 · 40,440 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P99-T03-PROG-INVEST-OTH-2025 CSV Parquet 1,117
2024 PF-P99-T03-PROG-INVEST-OTH-2024 CSV Parquet 3,115
2023 PF-P99-T03-PROG-INVEST-OTH-2023 CSV Parquet 3,127
2022 PF-P99-T03-PROG-INVEST-OTH-2022 CSV Parquet 3,226
2021 PF-P99-T03-PROG-INVEST-OTH-2021 CSV Parquet 3,315
2020 PF-P99-T03-PROG-INVEST-OTH-2020 CSV Parquet 3,387
2019 PF-P99-T03-PROG-INVEST-OTH-2019 CSV Parquet 2,685
2018 PF-P99-T03-PROG-INVEST-OTH-2018 CSV Parquet 2,149
2017 PF-P99-T03-PROG-INVEST-OTH-2017 CSV Parquet 1,998
2016 PF-P99-T03-PROG-INVEST-OTH-2016 CSV Parquet 1,861
2015 PF-P99-T03-PROG-INVEST-OTH-2015 CSV Parquet 1,767
2014 PF-P99-T03-PROG-INVEST-OTH-2014 CSV Parquet 1,665
2013 PF-P99-T03-PROG-INVEST-OTH-2013 CSV Parquet 3,335
2012 PF-P99-T03-PROG-INVEST-OTH-2012 CSV Parquet 2,975
2011 PF-P99-T03-PROG-INVEST-OTH-2011 CSV Parquet 2,734
2010 PF-P99-T03-PROG-INVEST-OTH-2010 CSV Parquet 1,744
2009 PF-P99-T03-PROG-INVEST-OTH-2009 CSV Parquet 240
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P99-T03-PROG-INVEST-OTH",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P99-T04-AMORTIZATION

1:M many rows per filing · tax years 2009–2025 · 18,581 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P99-T04-AMORTIZATION-2025 CSV Parquet 295
2024 PF-P99-T04-AMORTIZATION-2024 CSV Parquet 1,799
2023 PF-P99-T04-AMORTIZATION-2023 CSV Parquet 1,977
2022 PF-P99-T04-AMORTIZATION-2022 CSV Parquet 2,155
2021 PF-P99-T04-AMORTIZATION-2021 CSV Parquet 2,188
2020 PF-P99-T04-AMORTIZATION-2020 CSV Parquet 1,861
2019 PF-P99-T04-AMORTIZATION-2019 CSV Parquet 1,429
2018 PF-P99-T04-AMORTIZATION-2018 CSV Parquet 1,207
2017 PF-P99-T04-AMORTIZATION-2017 CSV Parquet 1,112
2016 PF-P99-T04-AMORTIZATION-2016 CSV Parquet 913
2015 PF-P99-T04-AMORTIZATION-2015 CSV Parquet 891
2014 PF-P99-T04-AMORTIZATION-2014 CSV Parquet 791
2013 PF-P99-T04-AMORTIZATION-2013 CSV Parquet 663
2012 PF-P99-T04-AMORTIZATION-2012 CSV Parquet 525
2011 PF-P99-T04-AMORTIZATION-2011 CSV Parquet 397
2010 PF-P99-T04-AMORTIZATION-2010 CSV Parquet 320
2009 PF-P99-T04-AMORTIZATION-2009 CSV Parquet 58
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P99-T04-AMORTIZATION",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P99-T06-FUND-BORROWED

1:M many rows per filing · tax years 2011–2025 · 176 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P99-T06-FUND-BORROWED-2025 CSV Parquet 13
2024 PF-P99-T06-FUND-BORROWED-2024 CSV Parquet 24
2023 PF-P99-T06-FUND-BORROWED-2023 CSV Parquet 24
2022 PF-P99-T06-FUND-BORROWED-2022 CSV Parquet 27
2021 PF-P99-T06-FUND-BORROWED-2021 CSV Parquet 22
2020 PF-P99-T06-FUND-BORROWED-2020 CSV Parquet 17
2019 PF-P99-T06-FUND-BORROWED-2019 CSV Parquet 10
2018 PF-P99-T06-FUND-BORROWED-2018 CSV Parquet 7
2017 PF-P99-T06-FUND-BORROWED-2017 CSV Parquet 7
2016 PF-P99-T06-FUND-BORROWED-2016 CSV Parquet 6
2015 PF-P99-T06-FUND-BORROWED-2015 CSV Parquet 6
2014 PF-P99-T06-FUND-BORROWED-2014 CSV Parquet 5
2013 PF-P99-T06-FUND-BORROWED-2013 CSV Parquet 4
2012 PF-P99-T06-FUND-BORROWED-2012 CSV Parquet 2
2011 PF-P99-T06-FUND-BORROWED-2011 CSV Parquet 2
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P99-T06-FUND-BORROWED",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P99-T09-COMP

1:M many rows per filing · tax years 2009–2025 · 113,598 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P99-T09-COMP-2025 CSV Parquet 2,061
2024 PF-P99-T09-COMP-2024 CSV Parquet 3,347
2023 PF-P99-T09-COMP-2023 CSV Parquet 3,612
2022 PF-P99-T09-COMP-2022 CSV Parquet 3,046
2021 PF-P99-T09-COMP-2021 CSV Parquet 3,297
2020 PF-P99-T09-COMP-2020 CSV Parquet 3,216
2019 PF-P99-T09-COMP-2019 CSV Parquet 2,270
2018 PF-P99-T09-COMP-2018 CSV Parquet 2,086
2017 PF-P99-T09-COMP-2017 CSV Parquet 2,042
2016 PF-P99-T09-COMP-2016 CSV Parquet 2,053
2015 PF-P99-T09-COMP-2015 CSV Parquet 1,597
2014 PF-P99-T09-COMP-2014 CSV Parquet 1,295
2013 PF-P99-T09-COMP-2013 CSV Parquet 26,913
2012 PF-P99-T09-COMP-2012 CSV Parquet 22,994
2011 PF-P99-T09-COMP-2011 CSV Parquet 19,337
2010 PF-P99-T09-COMP-2010 CSV Parquet 14,396
2009 PF-P99-T09-COMP-2009 CSV Parquet 36
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P99-T09-COMP",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P99-T10-COMP-KONTR

1:M many rows per filing · tax years 2009–2025 · 5,490 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P99-T10-COMP-KONTR-2025 CSV Parquet 216
2024 PF-P99-T10-COMP-KONTR-2024 CSV Parquet 639
2023 PF-P99-T10-COMP-KONTR-2023 CSV Parquet 605
2022 PF-P99-T10-COMP-KONTR-2022 CSV Parquet 570
2021 PF-P99-T10-COMP-KONTR-2021 CSV Parquet 501
2020 PF-P99-T10-COMP-KONTR-2020 CSV Parquet 404
2019 PF-P99-T10-COMP-KONTR-2019 CSV Parquet 317
2018 PF-P99-T10-COMP-KONTR-2018 CSV Parquet 283
2017 PF-P99-T10-COMP-KONTR-2017 CSV Parquet 257
2016 PF-P99-T10-COMP-KONTR-2016 CSV Parquet 242
2015 PF-P99-T10-COMP-KONTR-2015 CSV Parquet 234
2014 PF-P99-T10-COMP-KONTR-2014 CSV Parquet 214
2013 PF-P99-T10-COMP-KONTR-2013 CSV Parquet 379
2012 PF-P99-T10-COMP-KONTR-2012 CSV Parquet 265
2011 PF-P99-T10-COMP-KONTR-2011 CSV Parquet 198
2010 PF-P99-T10-COMP-KONTR-2010 CSV Parquet 141
2009 PF-P99-T10-COMP-KONTR-2009 CSV Parquet 25
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P99-T10-COMP-KONTR",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P99-T11-DEPREC

1:M many rows per filing · tax years 2009–2025 · 1,241,487 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P99-T11-DEPREC-2025 CSV Parquet 31,650
2024 PF-P99-T11-DEPREC-2024 CSV Parquet 118,555
2023 PF-P99-T11-DEPREC-2023 CSV Parquet 122,729
2022 PF-P99-T11-DEPREC-2022 CSV Parquet 120,088
2021 PF-P99-T11-DEPREC-2021 CSV Parquet 120,366
2020 PF-P99-T11-DEPREC-2020 CSV Parquet 116,183
2019 PF-P99-T11-DEPREC-2019 CSV Parquet 86,983
2018 PF-P99-T11-DEPREC-2018 CSV Parquet 79,694
2017 PF-P99-T11-DEPREC-2017 CSV Parquet 77,432
2016 PF-P99-T11-DEPREC-2016 CSV Parquet 71,029
2015 PF-P99-T11-DEPREC-2015 CSV Parquet 68,860
2014 PF-P99-T11-DEPREC-2014 CSV Parquet 61,765
2013 PF-P99-T11-DEPREC-2013 CSV Parquet 52,983
2012 PF-P99-T11-DEPREC-2012 CSV Parquet 43,897
2011 PF-P99-T11-DEPREC-2011 CSV Parquet 37,291
2010 PF-P99-T11-DEPREC-2010 CSV Parquet 27,495
2009 PF-P99-T11-DEPREC-2009 CSV Parquet 4,487
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P99-T11-DEPREC",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P99-T12-DISSOLUTION

1:M many rows per filing · tax years 2009–2025 · 18,877 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P99-T12-DISSOLUTION-2025 CSV Parquet 1,365
2024 PF-P99-T12-DISSOLUTION-2024 CSV Parquet 2,330
2023 PF-P99-T12-DISSOLUTION-2023 CSV Parquet 2,449
2022 PF-P99-T12-DISSOLUTION-2022 CSV Parquet 1,980
2021 PF-P99-T12-DISSOLUTION-2021 CSV Parquet 1,901
2020 PF-P99-T12-DISSOLUTION-2020 CSV Parquet 1,882
2019 PF-P99-T12-DISSOLUTION-2019 CSV Parquet 1,152
2018 PF-P99-T12-DISSOLUTION-2018 CSV Parquet 1,141
2017 PF-P99-T12-DISSOLUTION-2017 CSV Parquet 1,004
2016 PF-P99-T12-DISSOLUTION-2016 CSV Parquet 744
2015 PF-P99-T12-DISSOLUTION-2015 CSV Parquet 708
2014 PF-P99-T12-DISSOLUTION-2014 CSV Parquet 590
2013 PF-P99-T12-DISSOLUTION-2013 CSV Parquet 636
2012 PF-P99-T12-DISSOLUTION-2012 CSV Parquet 468
2011 PF-P99-T12-DISSOLUTION-2011 CSV Parquet 280
2010 PF-P99-T12-DISSOLUTION-2010 CSV Parquet 237
2009 PF-P99-T12-DISSOLUTION-2009 CSV Parquet 10
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P99-T12-DISSOLUTION",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P99-T16-EXP-RESPONSIBILITY

1:M many rows per filing · tax years 2009–2025 · 137,686 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P99-T16-EXP-RESPONSIBILITY-2025 CSV Parquet 1,958
2024 PF-P99-T16-EXP-RESPONSIBILITY-2024 CSV Parquet 17,251
2023 PF-P99-T16-EXP-RESPONSIBILITY-2023 CSV Parquet 15,139
2022 PF-P99-T16-EXP-RESPONSIBILITY-2022 CSV Parquet 15,513
2021 PF-P99-T16-EXP-RESPONSIBILITY-2021 CSV Parquet 14,527
2020 PF-P99-T16-EXP-RESPONSIBILITY-2020 CSV Parquet 14,169
2019 PF-P99-T16-EXP-RESPONSIBILITY-2019 CSV Parquet 8,647
2018 PF-P99-T16-EXP-RESPONSIBILITY-2018 CSV Parquet 6,633
2017 PF-P99-T16-EXP-RESPONSIBILITY-2017 CSV Parquet 6,498
2016 PF-P99-T16-EXP-RESPONSIBILITY-2016 CSV Parquet 6,012
2015 PF-P99-T16-EXP-RESPONSIBILITY-2015 CSV Parquet 5,663
2014 PF-P99-T16-EXP-RESPONSIBILITY-2014 CSV Parquet 5,477
2013 PF-P99-T16-EXP-RESPONSIBILITY-2013 CSV Parquet 4,843
2012 PF-P99-T16-EXP-RESPONSIBILITY-2012 CSV Parquet 4,592
2011 PF-P99-T16-EXP-RESPONSIBILITY-2011 CSV Parquet 5,499
2010 PF-P99-T16-EXP-RESPONSIBILITY-2010 CSV Parquet 3,703
2009 PF-P99-T16-EXP-RESPONSIBILITY-2009 CSV Parquet 1,562
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P99-T16-EXP-RESPONSIBILITY",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P99-T20-SALE-OTH-ASSET

1:M many rows per filing · tax years 2009–2025 · 685,233 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P99-T20-SALE-OTH-ASSET-2025 CSV Parquet 16,850
2024 PF-P99-T20-SALE-OTH-ASSET-2024 CSV Parquet 39,453
2023 PF-P99-T20-SALE-OTH-ASSET-2023 CSV Parquet 42,583
2022 PF-P99-T20-SALE-OTH-ASSET-2022 CSV Parquet 46,727
2021 PF-P99-T20-SALE-OTH-ASSET-2021 CSV Parquet 42,168
2020 PF-P99-T20-SALE-OTH-ASSET-2020 CSV Parquet 48,559
2019 PF-P99-T20-SALE-OTH-ASSET-2019 CSV Parquet 44,964
2018 PF-P99-T20-SALE-OTH-ASSET-2018 CSV Parquet 46,930
2017 PF-P99-T20-SALE-OTH-ASSET-2017 CSV Parquet 43,647
2016 PF-P99-T20-SALE-OTH-ASSET-2016 CSV Parquet 53,631
2015 PF-P99-T20-SALE-OTH-ASSET-2015 CSV Parquet 54,723
2014 PF-P99-T20-SALE-OTH-ASSET-2014 CSV Parquet 51,968
2013 PF-P99-T20-SALE-OTH-ASSET-2013 CSV Parquet 47,701
2012 PF-P99-T20-SALE-OTH-ASSET-2012 CSV Parquet 42,587
2011 PF-P99-T20-SALE-OTH-ASSET-2011 CSV Parquet 34,258
2010 PF-P99-T20-SALE-OTH-ASSET-2010 CSV Parquet 24,860
2009 PF-P99-T20-SALE-OTH-ASSET-2009 CSV Parquet 3,624
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P99-T20-SALE-OTH-ASSET",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P99-T22-SUPPLEMENTAL-INFO

1:M many rows per filing · tax years 2009–2025 · 83,698 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P99-T22-SUPPLEMENTAL-INFO-2025 CSV Parquet 3,877
2024 PF-P99-T22-SUPPLEMENTAL-INFO-2024 CSV Parquet 7,479
2023 PF-P99-T22-SUPPLEMENTAL-INFO-2023 CSV Parquet 7,499
2022 PF-P99-T22-SUPPLEMENTAL-INFO-2022 CSV Parquet 7,722
2021 PF-P99-T22-SUPPLEMENTAL-INFO-2021 CSV Parquet 8,321
2020 PF-P99-T22-SUPPLEMENTAL-INFO-2020 CSV Parquet 8,328
2019 PF-P99-T22-SUPPLEMENTAL-INFO-2019 CSV Parquet 9,204
2018 PF-P99-T22-SUPPLEMENTAL-INFO-2018 CSV Parquet 7,369
2017 PF-P99-T22-SUPPLEMENTAL-INFO-2017 CSV Parquet 4,750
2016 PF-P99-T22-SUPPLEMENTAL-INFO-2016 CSV Parquet 4,881
2015 PF-P99-T22-SUPPLEMENTAL-INFO-2015 CSV Parquet 4,309
2014 PF-P99-T22-SUPPLEMENTAL-INFO-2014 CSV Parquet 3,973
2013 PF-P99-T22-SUPPLEMENTAL-INFO-2013 CSV Parquet 1,672
2012 PF-P99-T22-SUPPLEMENTAL-INFO-2012 CSV Parquet 1,682
2011 PF-P99-T22-SUPPLEMENTAL-INFO-2011 CSV Parquet 1,419
2010 PF-P99-T22-SUPPLEMENTAL-INFO-2010 CSV Parquet 1,073
2009 PF-P99-T22-SUPPLEMENTAL-INFO-2009 CSV Parquet 140
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P99-T22-SUPPLEMENTAL-INFO",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P99-T23-INVEST-CORP-BOND

1:M many rows per filing · tax years 2009–2025 · 1,619,155 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P99-T23-INVEST-CORP-BOND-2025 CSV Parquet 88,573
2024 PF-P99-T23-INVEST-CORP-BOND-2024 CSV Parquet 197,382
2023 PF-P99-T23-INVEST-CORP-BOND-2023 CSV Parquet 184,433
2022 PF-P99-T23-INVEST-CORP-BOND-2022 CSV Parquet 176,516
2021 PF-P99-T23-INVEST-CORP-BOND-2021 CSV Parquet 178,673
2020 PF-P99-T23-INVEST-CORP-BOND-2020 CSV Parquet 172,938
2019 PF-P99-T23-INVEST-CORP-BOND-2019 CSV Parquet 111,116
2018 PF-P99-T23-INVEST-CORP-BOND-2018 CSV Parquet 97,778
2017 PF-P99-T23-INVEST-CORP-BOND-2017 CSV Parquet 81,448
2016 PF-P99-T23-INVEST-CORP-BOND-2016 CSV Parquet 60,342
2015 PF-P99-T23-INVEST-CORP-BOND-2015 CSV Parquet 52,136
2014 PF-P99-T23-INVEST-CORP-BOND-2014 CSV Parquet 48,146
2013 PF-P99-T23-INVEST-CORP-BOND-2013 CSV Parquet 44,021
2012 PF-P99-T23-INVEST-CORP-BOND-2012 CSV Parquet 43,005
2011 PF-P99-T23-INVEST-CORP-BOND-2011 CSV Parquet 44,371
2010 PF-P99-T23-INVEST-CORP-BOND-2010 CSV Parquet 33,438
2009 PF-P99-T23-INVEST-CORP-BOND-2009 CSV Parquet 4,839
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P99-T23-INVEST-CORP-BOND",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P99-T24-INVEST-CORP-STOCK

1:M many rows per filing · tax years 2009–2025 · 10,313,634 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P99-T24-INVEST-CORP-STOCK-2025 CSV Parquet 594,604
2024 PF-P99-T24-INVEST-CORP-STOCK-2024 CSV Parquet 1,196,031
2023 PF-P99-T24-INVEST-CORP-STOCK-2023 CSV Parquet 1,174,236
2022 PF-P99-T24-INVEST-CORP-STOCK-2022 CSV Parquet 1,210,191
2021 PF-P99-T24-INVEST-CORP-STOCK-2021 CSV Parquet 1,186,745
2020 PF-P99-T24-INVEST-CORP-STOCK-2020 CSV Parquet 1,059,120
2019 PF-P99-T24-INVEST-CORP-STOCK-2019 CSV Parquet 679,804
2018 PF-P99-T24-INVEST-CORP-STOCK-2018 CSV Parquet 591,961
2017 PF-P99-T24-INVEST-CORP-STOCK-2017 CSV Parquet 485,555
2016 PF-P99-T24-INVEST-CORP-STOCK-2016 CSV Parquet 432,993
2015 PF-P99-T24-INVEST-CORP-STOCK-2015 CSV Parquet 388,575
2014 PF-P99-T24-INVEST-CORP-STOCK-2014 CSV Parquet 355,949
2013 PF-P99-T24-INVEST-CORP-STOCK-2013 CSV Parquet 277,869
2012 PF-P99-T24-INVEST-CORP-STOCK-2012 CSV Parquet 244,243
2011 PF-P99-T24-INVEST-CORP-STOCK-2011 CSV Parquet 232,863
2010 PF-P99-T24-INVEST-CORP-STOCK-2010 CSV Parquet 178,181
2009 PF-P99-T24-INVEST-CORP-STOCK-2009 CSV Parquet 24,714
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P99-T24-INVEST-CORP-STOCK",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P99-T25-INVEST-GOVT-SEC

1:M many rows per filing · tax years 2009–2025 · 89,010 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P99-T25-INVEST-GOVT-SEC-2025 CSV Parquet 4,681
2024 PF-P99-T25-INVEST-GOVT-SEC-2024 CSV Parquet 9,850
2023 PF-P99-T25-INVEST-GOVT-SEC-2023 CSV Parquet 10,268
2022 PF-P99-T25-INVEST-GOVT-SEC-2022 CSV Parquet 9,388
2021 PF-P99-T25-INVEST-GOVT-SEC-2021 CSV Parquet 7,105
2020 PF-P99-T25-INVEST-GOVT-SEC-2020 CSV Parquet 7,192
2019 PF-P99-T25-INVEST-GOVT-SEC-2019 CSV Parquet 5,638
2018 PF-P99-T25-INVEST-GOVT-SEC-2018 CSV Parquet 5,094
2017 PF-P99-T25-INVEST-GOVT-SEC-2017 CSV Parquet 4,467
2016 PF-P99-T25-INVEST-GOVT-SEC-2016 CSV Parquet 4,290
2015 PF-P99-T25-INVEST-GOVT-SEC-2015 CSV Parquet 4,000
2014 PF-P99-T25-INVEST-GOVT-SEC-2014 CSV Parquet 3,901
2013 PF-P99-T25-INVEST-GOVT-SEC-2013 CSV Parquet 3,750
2012 PF-P99-T25-INVEST-GOVT-SEC-2012 CSV Parquet 3,394
2011 PF-P99-T25-INVEST-GOVT-SEC-2011 CSV Parquet 3,187
2010 PF-P99-T25-INVEST-GOVT-SEC-2010 CSV Parquet 2,516
2009 PF-P99-T25-INVEST-GOVT-SEC-2009 CSV Parquet 289
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P99-T25-INVEST-GOVT-SEC",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P99-T26-INVEST-LAND

1:M many rows per filing · tax years 2009–2025 · 108,039 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P99-T26-INVEST-LAND-2025 CSV Parquet 3,344
2024 PF-P99-T26-INVEST-LAND-2024 CSV Parquet 11,960
2023 PF-P99-T26-INVEST-LAND-2023 CSV Parquet 12,681
2022 PF-P99-T26-INVEST-LAND-2022 CSV Parquet 11,727
2021 PF-P99-T26-INVEST-LAND-2021 CSV Parquet 10,792
2020 PF-P99-T26-INVEST-LAND-2020 CSV Parquet 9,189
2019 PF-P99-T26-INVEST-LAND-2019 CSV Parquet 7,391
2018 PF-P99-T26-INVEST-LAND-2018 CSV Parquet 6,739
2017 PF-P99-T26-INVEST-LAND-2017 CSV Parquet 6,040
2016 PF-P99-T26-INVEST-LAND-2016 CSV Parquet 5,916
2015 PF-P99-T26-INVEST-LAND-2015 CSV Parquet 5,996
2014 PF-P99-T26-INVEST-LAND-2014 CSV Parquet 5,269
2013 PF-P99-T26-INVEST-LAND-2013 CSV Parquet 4,332
2012 PF-P99-T26-INVEST-LAND-2012 CSV Parquet 2,659
2011 PF-P99-T26-INVEST-LAND-2011 CSV Parquet 2,031
2010 PF-P99-T26-INVEST-LAND-2010 CSV Parquet 1,506
2009 PF-P99-T26-INVEST-LAND-2009 CSV Parquet 467
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P99-T26-INVEST-LAND",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P99-T27-INVEST-OTH

1:M many rows per filing · tax years 2009–2025 · 3,854,002 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P99-T27-INVEST-OTH-2025 CSV Parquet 257,421
2024 PF-P99-T27-INVEST-OTH-2024 CSV Parquet 465,403
2023 PF-P99-T27-INVEST-OTH-2023 CSV Parquet 481,117
2022 PF-P99-T27-INVEST-OTH-2022 CSV Parquet 466,726
2021 PF-P99-T27-INVEST-OTH-2021 CSV Parquet 469,788
2020 PF-P99-T27-INVEST-OTH-2020 CSV Parquet 492,477
2019 PF-P99-T27-INVEST-OTH-2019 CSV Parquet 309,393
2018 PF-P99-T27-INVEST-OTH-2018 CSV Parquet 239,610
2017 PF-P99-T27-INVEST-OTH-2017 CSV Parquet 125,222
2016 PF-P99-T27-INVEST-OTH-2016 CSV Parquet 106,518
2015 PF-P99-T27-INVEST-OTH-2015 CSV Parquet 98,271
2014 PF-P99-T27-INVEST-OTH-2014 CSV Parquet 89,974
2013 PF-P99-T27-INVEST-OTH-2013 CSV Parquet 79,770
2012 PF-P99-T27-INVEST-OTH-2012 CSV Parquet 70,095
2011 PF-P99-T27-INVEST-OTH-2011 CSV Parquet 57,932
2010 PF-P99-T27-INVEST-OTH-2010 CSV Parquet 40,019
2009 PF-P99-T27-INVEST-OTH-2009 CSV Parquet 4,266
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P99-T27-INVEST-OTH",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P99-T28-LAND-ETC

1:M many rows per filing · tax years 2009–2025 · 669,386 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P99-T28-LAND-ETC-2025 CSV Parquet 17,025
2024 PF-P99-T28-LAND-ETC-2024 CSV Parquet 67,007
2023 PF-P99-T28-LAND-ETC-2023 CSV Parquet 68,599
2022 PF-P99-T28-LAND-ETC-2022 CSV Parquet 66,225
2021 PF-P99-T28-LAND-ETC-2021 CSV Parquet 68,590
2020 PF-P99-T28-LAND-ETC-2020 CSV Parquet 63,617
2019 PF-P99-T28-LAND-ETC-2019 CSV Parquet 46,121
2018 PF-P99-T28-LAND-ETC-2018 CSV Parquet 41,756
2017 PF-P99-T28-LAND-ETC-2017 CSV Parquet 40,239
2016 PF-P99-T28-LAND-ETC-2016 CSV Parquet 36,297
2015 PF-P99-T28-LAND-ETC-2015 CSV Parquet 34,566
2014 PF-P99-T28-LAND-ETC-2014 CSV Parquet 30,600
2013 PF-P99-T28-LAND-ETC-2013 CSV Parquet 27,543
2012 PF-P99-T28-LAND-ETC-2012 CSV Parquet 23,100
2011 PF-P99-T28-LAND-ETC-2011 CSV Parquet 19,911
2010 PF-P99-T28-LAND-ETC-2010 CSV Parquet 15,494
2009 PF-P99-T28-LAND-ETC-2009 CSV Parquet 2,696
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P99-T28-LAND-ETC",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P99-T31-LOAN-OFF

1:M many rows per filing · tax years 2009–2025 · 8,517 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P99-T31-LOAN-OFF-2025 CSV Parquet 302
2024 PF-P99-T31-LOAN-OFF-2024 CSV Parquet 843
2023 PF-P99-T31-LOAN-OFF-2023 CSV Parquet 855
2022 PF-P99-T31-LOAN-OFF-2022 CSV Parquet 824
2021 PF-P99-T31-LOAN-OFF-2021 CSV Parquet 801
2020 PF-P99-T31-LOAN-OFF-2020 CSV Parquet 744
2019 PF-P99-T31-LOAN-OFF-2019 CSV Parquet 576
2018 PF-P99-T31-LOAN-OFF-2018 CSV Parquet 566
2017 PF-P99-T31-LOAN-OFF-2017 CSV Parquet 544
2016 PF-P99-T31-LOAN-OFF-2016 CSV Parquet 533
2015 PF-P99-T31-LOAN-OFF-2015 CSV Parquet 489
2014 PF-P99-T31-LOAN-OFF-2014 CSV Parquet 382
2013 PF-P99-T31-LOAN-OFF-2013 CSV Parquet 334
2012 PF-P99-T31-LOAN-OFF-2012 CSV Parquet 284
2011 PF-P99-T31-LOAN-OFF-2011 CSV Parquet 225
2010 PF-P99-T31-LOAN-OFF-2010 CSV Parquet 187
2009 PF-P99-T31-LOAN-OFF-2009 CSV Parquet 28
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P99-T31-LOAN-OFF",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P99-T32-MTG-NOTE

1:M many rows per filing · tax years 2009–2025 · 10,558 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P99-T32-MTG-NOTE-2025 CSV Parquet 227
2024 PF-P99-T32-MTG-NOTE-2024 CSV Parquet 837
2023 PF-P99-T32-MTG-NOTE-2023 CSV Parquet 950
2022 PF-P99-T32-MTG-NOTE-2022 CSV Parquet 973
2021 PF-P99-T32-MTG-NOTE-2021 CSV Parquet 1,033
2020 PF-P99-T32-MTG-NOTE-2020 CSV Parquet 1,121
2019 PF-P99-T32-MTG-NOTE-2019 CSV Parquet 824
2018 PF-P99-T32-MTG-NOTE-2018 CSV Parquet 711
2017 PF-P99-T32-MTG-NOTE-2017 CSV Parquet 732
2016 PF-P99-T32-MTG-NOTE-2016 CSV Parquet 659
2015 PF-P99-T32-MTG-NOTE-2015 CSV Parquet 584
2014 PF-P99-T32-MTG-NOTE-2014 CSV Parquet 519
2013 PF-P99-T32-MTG-NOTE-2013 CSV Parquet 458
2012 PF-P99-T32-MTG-NOTE-2012 CSV Parquet 338
2011 PF-P99-T32-MTG-NOTE-2011 CSV Parquet 322
2010 PF-P99-T32-MTG-NOTE-2010 CSV Parquet 228
2009 PF-P99-T32-MTG-NOTE-2009 CSV Parquet 42
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P99-T32-MTG-NOTE",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P99-T33-ASSET-OTH

1:M many rows per filing · tax years 2009–2025 · 387,944 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P99-T33-ASSET-OTH-2025 CSV Parquet 14,720
2024 PF-P99-T33-ASSET-OTH-2024 CSV Parquet 42,492
2023 PF-P99-T33-ASSET-OTH-2023 CSV Parquet 43,048
2022 PF-P99-T33-ASSET-OTH-2022 CSV Parquet 41,475
2021 PF-P99-T33-ASSET-OTH-2021 CSV Parquet 39,787
2020 PF-P99-T33-ASSET-OTH-2020 CSV Parquet 38,199
2019 PF-P99-T33-ASSET-OTH-2019 CSV Parquet 29,651
2018 PF-P99-T33-ASSET-OTH-2018 CSV Parquet 24,148
2017 PF-P99-T33-ASSET-OTH-2017 CSV Parquet 21,221
2016 PF-P99-T33-ASSET-OTH-2016 CSV Parquet 18,087
2015 PF-P99-T33-ASSET-OTH-2015 CSV Parquet 16,844
2014 PF-P99-T33-ASSET-OTH-2014 CSV Parquet 14,410
2013 PF-P99-T33-ASSET-OTH-2013 CSV Parquet 14,278
2012 PF-P99-T33-ASSET-OTH-2012 CSV Parquet 12,294
2011 PF-P99-T33-ASSET-OTH-2011 CSV Parquet 9,847
2010 PF-P99-T33-ASSET-OTH-2010 CSV Parquet 6,670
2009 PF-P99-T33-ASSET-OTH-2009 CSV Parquet 773
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P99-T33-ASSET-OTH",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P99-T35-DECREASE-OTH

1:M many rows per filing · tax years 2009–2025 · 498,290 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P99-T35-DECREASE-OTH-2025 CSV Parquet 30,778
2024 PF-P99-T35-DECREASE-OTH-2024 CSV Parquet 54,345
2023 PF-P99-T35-DECREASE-OTH-2023 CSV Parquet 53,988
2022 PF-P99-T35-DECREASE-OTH-2022 CSV Parquet 59,392
2021 PF-P99-T35-DECREASE-OTH-2021 CSV Parquet 51,030
2020 PF-P99-T35-DECREASE-OTH-2020 CSV Parquet 47,525
2019 PF-P99-T35-DECREASE-OTH-2019 CSV Parquet 36,295
2018 PF-P99-T35-DECREASE-OTH-2018 CSV Parquet 38,237
2017 PF-P99-T35-DECREASE-OTH-2017 CSV Parquet 26,829
2016 PF-P99-T35-DECREASE-OTH-2016 CSV Parquet 22,596
2015 PF-P99-T35-DECREASE-OTH-2015 CSV Parquet 22,787
2014 PF-P99-T35-DECREASE-OTH-2014 CSV Parquet 19,790
2013 PF-P99-T35-DECREASE-OTH-2013 CSV Parquet 10,266
2012 PF-P99-T35-DECREASE-OTH-2012 CSV Parquet 8,579
2011 PF-P99-T35-DECREASE-OTH-2011 CSV Parquet 9,603
2010 PF-P99-T35-DECREASE-OTH-2010 CSV Parquet 5,735
2009 PF-P99-T35-DECREASE-OTH-2009 CSV Parquet 515
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P99-T35-DECREASE-OTH",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P99-T36-EXP-OTH

1:M many rows per filing · tax years 2009–2025 · 2,987,395 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P99-T36-EXP-OTH-2025 CSV Parquet 132,892
2024 PF-P99-T36-EXP-OTH-2024 CSV Parquet 309,816
2023 PF-P99-T36-EXP-OTH-2023 CSV Parquet 307,837
2022 PF-P99-T36-EXP-OTH-2022 CSV Parquet 295,380
2021 PF-P99-T36-EXP-OTH-2021 CSV Parquet 279,900
2020 PF-P99-T36-EXP-OTH-2020 CSV Parquet 267,492
2019 PF-P99-T36-EXP-OTH-2019 CSV Parquet 217,231
2018 PF-P99-T36-EXP-OTH-2018 CSV Parquet 197,828
2017 PF-P99-T36-EXP-OTH-2017 CSV Parquet 175,967
2016 PF-P99-T36-EXP-OTH-2016 CSV Parquet 161,823
2015 PF-P99-T36-EXP-OTH-2015 CSV Parquet 152,614
2014 PF-P99-T36-EXP-OTH-2014 CSV Parquet 133,462
2013 PF-P99-T36-EXP-OTH-2013 CSV Parquet 113,144
2012 PF-P99-T36-EXP-OTH-2012 CSV Parquet 97,036
2011 PF-P99-T36-EXP-OTH-2011 CSV Parquet 80,913
2010 PF-P99-T36-EXP-OTH-2010 CSV Parquet 57,503
2009 PF-P99-T36-EXP-OTH-2009 CSV Parquet 6,557
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P99-T36-EXP-OTH",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P99-T37-INCOME-OTH

1:M many rows per filing · tax years 2009–2025 · 631,407 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P99-T37-INCOME-OTH-2025 CSV Parquet 18,633
2024 PF-P99-T37-INCOME-OTH-2024 CSV Parquet 61,299
2023 PF-P99-T37-INCOME-OTH-2023 CSV Parquet 69,663
2022 PF-P99-T37-INCOME-OTH-2022 CSV Parquet 60,138
2021 PF-P99-T37-INCOME-OTH-2021 CSV Parquet 61,082
2020 PF-P99-T37-INCOME-OTH-2020 CSV Parquet 58,464
2019 PF-P99-T37-INCOME-OTH-2019 CSV Parquet 49,512
2018 PF-P99-T37-INCOME-OTH-2018 CSV Parquet 40,776
2017 PF-P99-T37-INCOME-OTH-2017 CSV Parquet 40,027
2016 PF-P99-T37-INCOME-OTH-2016 CSV Parquet 35,904
2015 PF-P99-T37-INCOME-OTH-2015 CSV Parquet 33,040
2014 PF-P99-T37-INCOME-OTH-2014 CSV Parquet 30,021
2013 PF-P99-T37-INCOME-OTH-2013 CSV Parquet 24,004
2012 PF-P99-T37-INCOME-OTH-2012 CSV Parquet 19,668
2011 PF-P99-T37-INCOME-OTH-2011 CSV Parquet 15,668
2010 PF-P99-T37-INCOME-OTH-2010 CSV Parquet 11,907
2009 PF-P99-T37-INCOME-OTH-2009 CSV Parquet 1,601
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P99-T37-INCOME-OTH",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P99-T38-INCREASE-OTH

1:M many rows per filing · tax years 2009–2025 · 418,957 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P99-T38-INCREASE-OTH-2025 CSV Parquet 29,866
2024 PF-P99-T38-INCREASE-OTH-2024 CSV Parquet 47,748
2023 PF-P99-T38-INCREASE-OTH-2023 CSV Parquet 47,161
2022 PF-P99-T38-INCREASE-OTH-2022 CSV Parquet 40,793
2021 PF-P99-T38-INCREASE-OTH-2021 CSV Parquet 45,210
2020 PF-P99-T38-INCREASE-OTH-2020 CSV Parquet 43,694
2019 PF-P99-T38-INCREASE-OTH-2019 CSV Parquet 30,682
2018 PF-P99-T38-INCREASE-OTH-2018 CSV Parquet 25,969
2017 PF-P99-T38-INCREASE-OTH-2017 CSV Parquet 18,929
2016 PF-P99-T38-INCREASE-OTH-2016 CSV Parquet 19,658
2015 PF-P99-T38-INCREASE-OTH-2015 CSV Parquet 16,724
2014 PF-P99-T38-INCREASE-OTH-2014 CSV Parquet 15,836
2013 PF-P99-T38-INCREASE-OTH-2013 CSV Parquet 11,309
2012 PF-P99-T38-INCREASE-OTH-2012 CSV Parquet 9,141
2011 PF-P99-T38-INCREASE-OTH-2011 CSV Parquet 8,286
2010 PF-P99-T38-INCREASE-OTH-2010 CSV Parquet 7,252
2009 PF-P99-T38-INCREASE-OTH-2009 CSV Parquet 699
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P99-T38-INCREASE-OTH",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P99-T39-LIAB-OTH

1:M many rows per filing · tax years 2009–2025 · 166,703 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P99-T39-LIAB-OTH-2025 CSV Parquet 5,364
2024 PF-P99-T39-LIAB-OTH-2024 CSV Parquet 17,446
2023 PF-P99-T39-LIAB-OTH-2023 CSV Parquet 17,500
2022 PF-P99-T39-LIAB-OTH-2022 CSV Parquet 17,402
2021 PF-P99-T39-LIAB-OTH-2021 CSV Parquet 16,787
2020 PF-P99-T39-LIAB-OTH-2020 CSV Parquet 15,683
2019 PF-P99-T39-LIAB-OTH-2019 CSV Parquet 11,497
2018 PF-P99-T39-LIAB-OTH-2018 CSV Parquet 10,474
2017 PF-P99-T39-LIAB-OTH-2017 CSV Parquet 9,596
2016 PF-P99-T39-LIAB-OTH-2016 CSV Parquet 8,614
2015 PF-P99-T39-LIAB-OTH-2015 CSV Parquet 8,253
2014 PF-P99-T39-LIAB-OTH-2014 CSV Parquet 7,759
2013 PF-P99-T39-LIAB-OTH-2013 CSV Parquet 6,688
2012 PF-P99-T39-LIAB-OTH-2012 CSV Parquet 5,533
2011 PF-P99-T39-LIAB-OTH-2011 CSV Parquet 4,504
2010 PF-P99-T39-LIAB-OTH-2010 CSV Parquet 3,166
2009 PF-P99-T39-LIAB-OTH-2009 CSV Parquet 437
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P99-T39-LIAB-OTH",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P99-T40-NOTE-LOAN-OTH-LONG

1:M many rows per filing · tax years 2009–2025 · 19,746 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P99-T40-NOTE-LOAN-OTH-LONG-2025 CSV Parquet 519
2024 PF-P99-T40-NOTE-LOAN-OTH-LONG-2024 CSV Parquet 1,978
2023 PF-P99-T40-NOTE-LOAN-OTH-LONG-2023 CSV Parquet 2,107
2022 PF-P99-T40-NOTE-LOAN-OTH-LONG-2022 CSV Parquet 1,980
2021 PF-P99-T40-NOTE-LOAN-OTH-LONG-2021 CSV Parquet 2,014
2020 PF-P99-T40-NOTE-LOAN-OTH-LONG-2020 CSV Parquet 2,112
2019 PF-P99-T40-NOTE-LOAN-OTH-LONG-2019 CSV Parquet 1,616
2018 PF-P99-T40-NOTE-LOAN-OTH-LONG-2018 CSV Parquet 1,209
2017 PF-P99-T40-NOTE-LOAN-OTH-LONG-2017 CSV Parquet 973
2016 PF-P99-T40-NOTE-LOAN-OTH-LONG-2016 CSV Parquet 947
2015 PF-P99-T40-NOTE-LOAN-OTH-LONG-2015 CSV Parquet 923
2014 PF-P99-T40-NOTE-LOAN-OTH-LONG-2014 CSV Parquet 863
2013 PF-P99-T40-NOTE-LOAN-OTH-LONG-2013 CSV Parquet 672
2012 PF-P99-T40-NOTE-LOAN-OTH-LONG-2012 CSV Parquet 633
2011 PF-P99-T40-NOTE-LOAN-OTH-LONG-2011 CSV Parquet 629
2010 PF-P99-T40-NOTE-LOAN-OTH-LONG-2010 CSV Parquet 542
2009 PF-P99-T40-NOTE-LOAN-OTH-LONG-2009 CSV Parquet 29
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P99-T40-NOTE-LOAN-OTH-LONG",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P99-T41-NOTE-LOAN-OTH-SHORT

1:M many rows per filing · tax years 2009–2025 · 14,796 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P99-T41-NOTE-LOAN-OTH-SHORT-2025 CSV Parquet 439
2024 PF-P99-T41-NOTE-LOAN-OTH-SHORT-2024 CSV Parquet 1,272
2023 PF-P99-T41-NOTE-LOAN-OTH-SHORT-2023 CSV Parquet 1,268
2022 PF-P99-T41-NOTE-LOAN-OTH-SHORT-2022 CSV Parquet 1,290
2021 PF-P99-T41-NOTE-LOAN-OTH-SHORT-2021 CSV Parquet 1,360
2020 PF-P99-T41-NOTE-LOAN-OTH-SHORT-2020 CSV Parquet 1,366
2019 PF-P99-T41-NOTE-LOAN-OTH-SHORT-2019 CSV Parquet 1,067
2018 PF-P99-T41-NOTE-LOAN-OTH-SHORT-2018 CSV Parquet 1,161
2017 PF-P99-T41-NOTE-LOAN-OTH-SHORT-2017 CSV Parquet 910
2016 PF-P99-T41-NOTE-LOAN-OTH-SHORT-2016 CSV Parquet 856
2015 PF-P99-T41-NOTE-LOAN-OTH-SHORT-2015 CSV Parquet 826
2014 PF-P99-T41-NOTE-LOAN-OTH-SHORT-2014 CSV Parquet 763
2013 PF-P99-T41-NOTE-LOAN-OTH-SHORT-2013 CSV Parquet 719
2012 PF-P99-T41-NOTE-LOAN-OTH-SHORT-2012 CSV Parquet 588
2011 PF-P99-T41-NOTE-LOAN-OTH-SHORT-2011 CSV Parquet 505
2010 PF-P99-T41-NOTE-LOAN-OTH-SHORT-2010 CSV Parquet 394
2009 PF-P99-T41-NOTE-LOAN-OTH-SHORT-2009 CSV Parquet 12
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P99-T41-NOTE-LOAN-OTH-SHORT",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P99-T42-PROF-FEES-OTH

1:M many rows per filing · tax years 2009–2025 · 566,781 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P99-T42-PROF-FEES-OTH-2025 CSV Parquet 28,583
2024 PF-P99-T42-PROF-FEES-OTH-2024 CSV Parquet 63,124
2023 PF-P99-T42-PROF-FEES-OTH-2023 CSV Parquet 62,570
2022 PF-P99-T42-PROF-FEES-OTH-2022 CSV Parquet 60,405
2021 PF-P99-T42-PROF-FEES-OTH-2021 CSV Parquet 57,504
2020 PF-P99-T42-PROF-FEES-OTH-2020 CSV Parquet 54,758
2019 PF-P99-T42-PROF-FEES-OTH-2019 CSV Parquet 40,762
2018 PF-P99-T42-PROF-FEES-OTH-2018 CSV Parquet 34,838
2017 PF-P99-T42-PROF-FEES-OTH-2017 CSV Parquet 30,782
2016 PF-P99-T42-PROF-FEES-OTH-2016 CSV Parquet 27,631
2015 PF-P99-T42-PROF-FEES-OTH-2015 CSV Parquet 25,482
2014 PF-P99-T42-PROF-FEES-OTH-2014 CSV Parquet 22,601
2013 PF-P99-T42-PROF-FEES-OTH-2013 CSV Parquet 18,930
2012 PF-P99-T42-PROF-FEES-OTH-2012 CSV Parquet 15,735
2011 PF-P99-T42-PROF-FEES-OTH-2011 CSV Parquet 12,926
2010 PF-P99-T42-PROF-FEES-OTH-2010 CSV Parquet 9,196
2009 PF-P99-T42-PROF-FEES-OTH-2009 CSV Parquet 954
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P99-T42-PROF-FEES-OTH",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P99-T43-OFF-OTH

1:M many rows per filing · tax years 2009–2025 · 3,030 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P99-T43-OFF-OTH-2025 CSV Parquet 102
2024 PF-P99-T43-OFF-OTH-2024 CSV Parquet 306
2023 PF-P99-T43-OFF-OTH-2023 CSV Parquet 349
2022 PF-P99-T43-OFF-OTH-2022 CSV Parquet 288
2021 PF-P99-T43-OFF-OTH-2021 CSV Parquet 259
2020 PF-P99-T43-OFF-OTH-2020 CSV Parquet 222
2019 PF-P99-T43-OFF-OTH-2019 CSV Parquet 208
2018 PF-P99-T43-OFF-OTH-2018 CSV Parquet 200
2017 PF-P99-T43-OFF-OTH-2017 CSV Parquet 200
2016 PF-P99-T43-OFF-OTH-2016 CSV Parquet 206
2015 PF-P99-T43-OFF-OTH-2015 CSV Parquet 190
2014 PF-P99-T43-OFF-OTH-2014 CSV Parquet 110
2013 PF-P99-T43-OFF-OTH-2013 CSV Parquet 99
2012 PF-P99-T43-OFF-OTH-2012 CSV Parquet 108
2011 PF-P99-T43-OFF-OTH-2011 CSV Parquet 102
2010 PF-P99-T43-OFF-OTH-2010 CSV Parquet 78
2009 PF-P99-T43-OFF-OTH-2009 CSV Parquet 3
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P99-T43-OFF-OTH",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P99-T46-SALE-INV

1:M many rows per filing · tax years 2009–2025 · 11,710 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P99-T46-SALE-INV-2025 CSV Parquet 691
2024 PF-P99-T46-SALE-INV-2024 CSV Parquet 1,386
2023 PF-P99-T46-SALE-INV-2023 CSV Parquet 1,410
2022 PF-P99-T46-SALE-INV-2022 CSV Parquet 1,290
2021 PF-P99-T46-SALE-INV-2021 CSV Parquet 1,161
2020 PF-P99-T46-SALE-INV-2020 CSV Parquet 1,053
2019 PF-P99-T46-SALE-INV-2019 CSV Parquet 786
2018 PF-P99-T46-SALE-INV-2018 CSV Parquet 688
2017 PF-P99-T46-SALE-INV-2017 CSV Parquet 603
2016 PF-P99-T46-SALE-INV-2016 CSV Parquet 533
2015 PF-P99-T46-SALE-INV-2015 CSV Parquet 516
2014 PF-P99-T46-SALE-INV-2014 CSV Parquet 458
2013 PF-P99-T46-SALE-INV-2013 CSV Parquet 363
2012 PF-P99-T46-SALE-INV-2012 CSV Parquet 290
2011 PF-P99-T46-SALE-INV-2011 CSV Parquet 251
2010 PF-P99-T46-SALE-INV-2010 CSV Parquet 195
2009 PF-P99-T46-SALE-INV-2009 CSV Parquet 36
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P99-T46-SALE-INV",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P99-T48-CONTRIBUTOR

1:M many rows per filing · tax years 2009–2025 · 138,531 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P99-T48-CONTRIBUTOR-2025 CSV Parquet 6,108
2024 PF-P99-T48-CONTRIBUTOR-2024 CSV Parquet 13,003
2023 PF-P99-T48-CONTRIBUTOR-2023 CSV Parquet 13,114
2022 PF-P99-T48-CONTRIBUTOR-2022 CSV Parquet 13,153
2021 PF-P99-T48-CONTRIBUTOR-2021 CSV Parquet 13,711
2020 PF-P99-T48-CONTRIBUTOR-2020 CSV Parquet 12,330
2019 PF-P99-T48-CONTRIBUTOR-2019 CSV Parquet 9,196
2018 PF-P99-T48-CONTRIBUTOR-2018 CSV Parquet 8,570
2017 PF-P99-T48-CONTRIBUTOR-2017 CSV Parquet 7,964
2016 PF-P99-T48-CONTRIBUTOR-2016 CSV Parquet 7,290
2015 PF-P99-T48-CONTRIBUTOR-2015 CSV Parquet 7,127
2014 PF-P99-T48-CONTRIBUTOR-2014 CSV Parquet 7,254
2013 PF-P99-T48-CONTRIBUTOR-2013 CSV Parquet 6,317
2012 PF-P99-T48-CONTRIBUTOR-2012 CSV Parquet 5,427
2011 PF-P99-T48-CONTRIBUTOR-2011 CSV Parquet 4,512
2010 PF-P99-T48-CONTRIBUTOR-2010 CSV Parquet 3,242
2009 PF-P99-T48-CONTRIBUTOR-2009 CSV Parquet 213
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P99-T48-CONTRIBUTOR",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P99-T49-TAXES

1:M many rows per filing · tax years 2009–2025 · 1,637,199 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P99-T49-TAXES-2025 CSV Parquet 102,248
2024 PF-P99-T49-TAXES-2024 CSV Parquet 164,697
2023 PF-P99-T49-TAXES-2023 CSV Parquet 146,290
2022 PF-P99-T49-TAXES-2022 CSV Parquet 170,634
2021 PF-P99-T49-TAXES-2021 CSV Parquet 160,020
2020 PF-P99-T49-TAXES-2020 CSV Parquet 160,828
2019 PF-P99-T49-TAXES-2019 CSV Parquet 122,795
2018 PF-P99-T49-TAXES-2018 CSV Parquet 118,309
2017 PF-P99-T49-TAXES-2017 CSV Parquet 87,635
2016 PF-P99-T49-TAXES-2016 CSV Parquet 80,658
2015 PF-P99-T49-TAXES-2015 CSV Parquet 76,685
2014 PF-P99-T49-TAXES-2014 CSV Parquet 71,195
2013 PF-P99-T49-TAXES-2013 CSV Parquet 55,655
2012 PF-P99-T49-TAXES-2012 CSV Parquet 46,540
2011 PF-P99-T49-TAXES-2011 CSV Parquet 42,483
2010 PF-P99-T49-TAXES-2010 CSV Parquet 28,006
2009 PF-P99-T49-TAXES-2009 CSV Parquet 2,521
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P99-T49-TAXES",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P99-T51-TRANSFER-FROM-CE

1:M many rows per filing · tax years 2009–2025 · 2,884 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P99-T51-TRANSFER-FROM-CE-2025 CSV Parquet 19
2024 PF-P99-T51-TRANSFER-FROM-CE-2024 CSV Parquet 380
2023 PF-P99-T51-TRANSFER-FROM-CE-2023 CSV Parquet 377
2022 PF-P99-T51-TRANSFER-FROM-CE-2022 CSV Parquet 328
2021 PF-P99-T51-TRANSFER-FROM-CE-2021 CSV Parquet 342
2020 PF-P99-T51-TRANSFER-FROM-CE-2020 CSV Parquet 271
2019 PF-P99-T51-TRANSFER-FROM-CE-2019 CSV Parquet 219
2018 PF-P99-T51-TRANSFER-FROM-CE-2018 CSV Parquet 131
2017 PF-P99-T51-TRANSFER-FROM-CE-2017 CSV Parquet 117
2016 PF-P99-T51-TRANSFER-FROM-CE-2016 CSV Parquet 113
2015 PF-P99-T51-TRANSFER-FROM-CE-2015 CSV Parquet 111
2014 PF-P99-T51-TRANSFER-FROM-CE-2014 CSV Parquet 122
2013 PF-P99-T51-TRANSFER-FROM-CE-2013 CSV Parquet 93
2012 PF-P99-T51-TRANSFER-FROM-CE-2012 CSV Parquet 94
2011 PF-P99-T51-TRANSFER-FROM-CE-2011 CSV Parquet 76
2010 PF-P99-T51-TRANSFER-FROM-CE-2010 CSV Parquet 63
2009 PF-P99-T51-TRANSFER-FROM-CE-2009 CSV Parquet 28
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P99-T51-TRANSFER-FROM-CE",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P99-T52-TRANSFER-TO-CE

1:M many rows per filing · tax years 2009–2025 · 3,299 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P99-T52-TRANSFER-TO-CE-2025 CSV Parquet 34
2024 PF-P99-T52-TRANSFER-TO-CE-2024 CSV Parquet 426
2023 PF-P99-T52-TRANSFER-TO-CE-2023 CSV Parquet 400
2022 PF-P99-T52-TRANSFER-TO-CE-2022 CSV Parquet 403
2021 PF-P99-T52-TRANSFER-TO-CE-2021 CSV Parquet 370
2020 PF-P99-T52-TRANSFER-TO-CE-2020 CSV Parquet 365
2019 PF-P99-T52-TRANSFER-TO-CE-2019 CSV Parquet 214
2018 PF-P99-T52-TRANSFER-TO-CE-2018 CSV Parquet 156
2017 PF-P99-T52-TRANSFER-TO-CE-2017 CSV Parquet 156
2016 PF-P99-T52-TRANSFER-TO-CE-2016 CSV Parquet 116
2015 PF-P99-T52-TRANSFER-TO-CE-2015 CSV Parquet 125
2014 PF-P99-T52-TRANSFER-TO-CE-2014 CSV Parquet 151
2013 PF-P99-T52-TRANSFER-TO-CE-2013 CSV Parquet 108
2012 PF-P99-T52-TRANSFER-TO-CE-2012 CSV Parquet 112
2011 PF-P99-T52-TRANSFER-TO-CE-2011 CSV Parquet 88
2010 PF-P99-T52-TRANSFER-TO-CE-2010 CSV Parquet 63
2009 PF-P99-T52-TRANSFER-TO-CE-2009 CSV Parquet 12
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P99-T52-TRANSFER-TO-CE",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

PF-P99-T14-COMP-EMPL

1:M many rows per filing · tax years 2009–2025 · 1,630 rows · Data dictionary

Year Table CSV Parquet Rows
2025 PF-P99-T14-COMP-EMPL-2025 CSV Parquet 28
2024 PF-P99-T14-COMP-EMPL-2024 CSV Parquet 93
2023 PF-P99-T14-COMP-EMPL-2023 CSV Parquet 90
2022 PF-P99-T14-COMP-EMPL-2022 CSV Parquet 123
2021 PF-P99-T14-COMP-EMPL-2021 CSV Parquet 122
2020 PF-P99-T14-COMP-EMPL-2020 CSV Parquet 143
2019 PF-P99-T14-COMP-EMPL-2019 CSV Parquet 87
2018 PF-P99-T14-COMP-EMPL-2018 CSV Parquet 42
2017 PF-P99-T14-COMP-EMPL-2017 CSV Parquet 48
2016 PF-P99-T14-COMP-EMPL-2016 CSV Parquet 36
2015 PF-P99-T14-COMP-EMPL-2015 CSV Parquet 38
2014 PF-P99-T14-COMP-EMPL-2014 CSV Parquet 35
2013 PF-P99-T14-COMP-EMPL-2013 CSV Parquet 187
2012 PF-P99-T14-COMP-EMPL-2012 CSV Parquet 158
2011 PF-P99-T14-COMP-EMPL-2011 CSV Parquet 134
2010 PF-P99-T14-COMP-EMPL-2010 CSV Parquet 234
2009 PF-P99-T14-COMP-EMPL-2009 CSV Parquet 32
Download with panel990
library( panel990 )

# Panel of tax years 2020-2024
# with BMF fields appended

panel <- 
  panelize( tables = "PF-P99-T14-COMP-EMPL",
            years = 2020:2024,
            source = data_source( form = "990PF" ),
            include_many = TRUE,
            bmf = TRUE )

df <- panel_data( panel )
Back to contents

Table list and row counts: public/efilepf_v3_1/COUNT-OF-ROWS-BY-TABLE-AND-FORMTYPE-EFILEPF_V3_1.CSV. Table and part names: concordance990 02de916. Page rendered 2026-10-23.