Methods for Funding Curves

NIH

Data Processing:

For the NIH funding curves, we use a combination of historical ExPORTER data for the fiscal years (FY) 2021–2025 and the RePORTER API to scrape awards that were active 2023–2026, to avoid API rate limits on RePORTER data. Consequently, RePORTER data informs the latest 2026 curves, while historical ExPORTER downloads are needed for the 2021–2025 curves. It’s important to note that in both the ExPORTER and RePORTER data, counts from FY25 seem to not have stabilized yet. In general, NIH retrospectively changes data in the ExPORTER datasets from prior years due to wrap-up accounting or more recently when they changed the spending categorization. For example, the ExPORTER data we are currently using for FY 2025 was last updated on 03/09, while previous iterations of our curves used data that was last updated on 02/09.

We then process all the data and ensure there are no duplicated grants by keeping all the records (application IDs) in the 2023–2026 RePORTER scrape that are not already included in the historical 2021–2025 ExPORTER data. The goal is to capture all of the 2026 funding data from the RePORTER API scrape and any other updates to previous FY grants that are not yet included in ExPORTER.

After processing the data, we filter to NIH Administering ICs of interest, since ExPORTER and RePORTER data includes other agency grants (like FDA, AHRQ, etc). Note that we filter by Administering IC rather than Funding IC, because Funding IC data is not available for subprojects in ExPORTER and there are multiple ICs that can be listed in Funding IC. The following are the Administering ICs that we include in our NIH funding data: NIAAA, NIA, NIAMS, NIAID, NCCIH, NCI, NIDA, NIDCD, NIDCR, NIDDK, NIBIB, NIEHS, NEI, NIGMS, NICHD, NHGRI, NHLBI, NLM, NIMHD, NIMH, NINR, NINDS, NIH OD, NCATS, FIC.

To visualize “Award Notice Date” (NoAs) across fiscal years, including those that are leap years, we normalize these dates by moving any actions on Feb 29 to Feb 28, so that we can view all the grants across FY. Note that grants which do not have a NoA will not be included in the funding curves, since we need these dates to generate the graphs. We also found that the majority of projects that are missing NoAs are actually contracts and/or other non-standard grant types which we do not track yet. The activity codes for these non-standard grant types include research conducted within the NIH’s own laboratories and clinics by NIH employees (ZIA, ZIC, ZII, ZID, ZIE, ZIG, ZIH, ZIJ, ZIB, ZIK, ZIF), contracts (N02, N01, N43, N44), and interagency agreements (Y01).

Additionally, we exclude subprojects from the summarizations for the obligation visualizations. This is because the parent project total award value typically includes all of the subprojects’ award values, so this filtering avoids double counting project and subproject funding. However, all projects and subprojects are included in the data summaries used for visualizations of the number of grants.

Finally, a cumulative sum of the number of awards and respective obligations is calculated for a given fiscal year (along with the respective award type, IC, mechanism and/or activity, depending on which graph the summary is calculated for).

Graphing:

“New and Competitive Renewal” awards are filtered by the following types: 1, 2, 4, 9. Comparatively, “Non-competitive Renewal” awards are filtered to the following types: 5, 6, 7, 8.

More information about the different types of NIH grants can be found (here)[https://grants.nih.gov/grants-process/plan-to-apply/find-your-opportunity-contacts-and-due-dates/types-of-applications].

To calculate the “Fraction of Total FY Awards”, we calculate the fraction of grants provided so far out of the total number of grants awarded for that fiscal year. For the FY 2026 curves, we normalize by the total grant number from FY 2025, since the full 2026 data is not available.

For the visualizations by “Grant Activity”, we categorized the following activity codes, 7 of which are currently included in our visualizations as specified:

  • C: C06
  • D: D43, D71, DP1, DP2, DP5
  • F: F30, F31, F32, F99, FM1
  • G: G08, G11, G13, G20
  • K: K00, K01, K02, K07, K08, K12, K18, K22, K23, K24, K25, K38, K43, K76, K99, KL2, K26
  • O: OT2, OT3
  • P: P01, P20, P2C, P30, P40, P41, P42, P50, P51, P60, PL1
  • R: R00, R01, R03, R13, R15, R18, R21, R24, R25, R28, R33, R34, R35, R36, R37, R38, R50, R56, R61, R90, RC2, RF1, RL1, RL5, RM1, R16
  • S: S06, S10, S21, SB1, SC1, SC2, SC3, S15
  • T: T15, T32, T34, T35, T37, T90, TL1, TL4
  • U: U01, U10, U13, U18, U19, U24, U2C, U2R, U34, U3R, U41, U42, U44, U45, U54, UB1, UC2, UC7, UE5, UF1, UG1, UG3, UG4, UH2, UH3, UH4, UL1, UM1, UM2, UT2, U43, UT1

NSF

Data Processing and Graphing:

For the NSF Funding curves, we use a combination of historical NSF award data available and the obligations/deobligations data available from USASpending for FY 2021-2026.

We then process the NSF awards data by excluding grants that are transfers to new institutions or PIs, since these transfers duplicate the associated counts of a grant and affect the total number of grants awarded. This filtering out of transfer grants is not necessary for the obligation visualizations, because we get both the de-obligation and re-obligation of a grant that is transferred from USAspending. We identify transfer grants by looking at the “fundsObligated” variable from the NSF data downloads and see if the FY that a grant was first obligated is listed in the “fundsObligated” variable. If the FY it was first obligated is prior to the start date of the grant, then the grant is a transfer and filtered out of the data used for visualizing the funding curves.

To visualize the grant awarded date across fiscal years, including those that are leap years, we normalize the dates “period_of_performance_start_date” (for grant number visualizations) and “date_obligated” (for obligation visualizations). This is done by moving any actions on Feb 29 to Feb 28, so that we can view all the grants across FY.

To calculate the “Fraction of Total FY Awards”, we calculate the fraction of grants provided so far out of the total number of grants awarded for that fiscal year. For the FY 2026 curves, we normalize by the total grant number from FY 2025, since the full 2026 data is not available.

Finally, a cumulative sum of the number of awards and respective obligations is calculated for a given fiscal year (along with the directorate, depending on which graph the summary is calculated for).