← All studies · askamerica.ai

NIH budget volatility rarely appears same-year in publication counts — it shows up amplified (~4x) in what new grants and new researchers get funded

NIH RePORTER award/publication microdata, FY2015-2025 institute-level funding; published literature on funding-shock effects

NIH budget volatility rarely shows up directly in same-year publication counts — it shows up amplified in ne… NIH RePORTER award/publication microdata (FY2015-2025), NIH institutes; literature on funding-shock effects Total NIH award funding across all Institutes/Centers, FY2015-2025 0 10 20 30 40 50 Fiscal year $ billions 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 Year-over-year swings of +11.2% (FY2019) to -2.0% (FY2023) around a rising trend; std dev of YoY change = 4.2%. 10 most budget-volatile NIH Institutes/Centers, FY2015-2025 0 5 10 15 20 25 30 Institute/Center Std dev of YoY % chg OD NIDA NIAMS NIMHD NIAID NCATS NIA NHLBI FIC NCCIH OD (Office of the Director, largely one-time/earmarked initiatives) is far more volatile than the median IC (5.7%). Structural amplification into new grants (Larson/Ghaffarzadegan 'Rule of τ') ~4x X% budget change -> ~4X% swing in new-grant $ NIH R01s run ~4 years; ~75% of any year's budget is already committed to continuing grants, so the whole swing lands on the ~25% left for… Documented output effect of a major funding shock (>=40% cut) -15% publications -18% high-tech spinoffs; 4+ yr recovery Babina et al., funding-shock study of federal grantees (arXiv:2402.07235). This corpus's own same-year test (NIH IC funding chg -> pub-count chg, FE) coef -0.13, p=0.95 n=47, 24 ICs x FY23-25 No detectable contemporaneous relationship once IC and year effects are removed — consistent with output effects operating on a multi-yea… nih_publications' fiscal_year is the funding year of the grant, not the paper's actual publication year, and NCATS/NLM/NCI show FY2025 publication-link counts implausibly higher than FY2023 in ways that look like an artifact of RePORTER crediting a renewed grant's full history to its newest appl_id — flagged as a data-quality gap, not treated as a real output surge. AskAmerica · askamerica.ai
SVG

Summary

Budget volatility barely shows up in same-year publication counts, but it shows up hard in a different, better-documented place: how many new grants (and therefore new investigators, postdocs, and projects) an agency can fund that year. NIH institute budgets moved by a median of about 5.7% year-over-year (std dev) from FY2015-2025, with some units (the Office of the Director, driven by one-time/earmarked initiatives like the BRAIN Initiative and All of Us) swinging by 26%. Because the bulk of any year's budget is already locked into multi-year continuing grants, a well-established mathematical result (the "Rule of τ") shows that an X% change in total budget produces roughly a 4X% swing in the funds actually available for new awards — the volatility is mechanically amplified at the margin where new researchers and new projects get funded or don't. Separately, empirical studies of real funding shocks (federal grant cuts of 40%+) find measurable output damage: about 15% fewer publications and 18% fewer high-tech spinoffs from affected grantees, with recovery taking 4+ years. We also ran our own direct test in this corpus — NIH institute funding change vs. linked publication-count change, FY2023-2025, with institute and year fixed effects — and found no detectable same-year relationship (coefficient -0.13, p=0.95, n=47). That null result is not evidence against the literature; it is consistent with the output effect operating on a multi-year lag the corpus's short publication-linkage window (FY2022-2026) cannot capture, compounded by a data-quality issue in how the corpus's own publication-linkage table attributes papers to funding years (detailed below).

1. How volatile are agency research budgets, really?

Using NIH award-level data (research.nih_award_projects) summed to the Institute/Center (IC) level, FY2015-2025:

Disclosure on filtering: the query behind these figures (SELECT agency_ic, fiscal_year, SUM(award_amount) ... WHERE fiscal_year BETWEEN 2015 AND 2025 AND agency_ic IS NOT NULL) included a defensive agency_ic IS NOT NULL clause, but this excluded zero rows in practice — a direct check (SELECT COUNT(*) FROM research.nih_award_projects WHERE fiscal_year BETWEEN 2015 AND 2025 AND agency_ic IS NULL) returns 0. Every one of the 1,235,272+ rows in research.nih_award_projects for this window carries a non-null Institute/Center code, so no award, institute, or dollar was actually dropped from the funding totals or volatility figures above; the headline statistics are identical with or without that clause.

2. The real mechanism: volatility is amplified into new-grant capacity, not absorbed evenly

The clearest, most rigorous answer to "how does budget volatility show up in output" comes from Larson, Ghaffarzadegan & Gomez Diaz (2012, Service Science, PMC3908662), who model the NIH's grant-funding mechanics directly. Because NIH's flagship R01 grants are flat-funded over roughly 4 years, in any steady-state year about 75% of the total budget is already obligated to continuing grants from the prior 3 years — leaving only ~25% free for new awards. Their key result, the "Rule of τ" (τ = mean grant duration, ≈4 years for NIH): starting from steady state, an X% change in this year's total budget produces roughly a τX% (≈4X%) swing in the funding available for new grants that same year. A modest-looking 5% budget cut can nearly zero out new-grant funding in a given year; a comparable increase can double it — and the effect echoes forward on a τ-year cycle as that cohort's obligations recur. This is the primary channel through which agency budget instability reaches researchers: not by trimming existing grants evenly, but by disproportionately squeezing (or flooding) the pipeline for new investigators, new postdocs, and new projects.

3. What documented funding shocks actually did to output

Two real-world bodies of evidence corroborate the mechanism above with measured outcomes:

4. Our own direct test in this corpus — and why it came back null

To check this against the corpus's own funding-to-output linkage, we built an NIH institute-year panel joining research.nih_award_projects (funding) to research.nih_publications (papers linked back to funded projects via appl_id), for FY2023-2025 (the only years both series overlap with enough data to compute year-over-year change). Running a two-way fixed-effects panel regression (institute effects + year effects, so any economy-wide trend or artifact common to a given year is absorbed) of year-over-year publication-count change on year-over-year funding change gave: coefficient = -0.13 (SE 2.00, t = -0.06, p = 0.95, n = 47 institute-years across 24 institutes) — no detectable relationship.

Disclosure on filtering: this regression's underlying query joined research.nih_publications to research.nih_award_projects with a WHERE a.agency_ic IS NOT NULL clause on the joined award table. As with the query in section 1, this excluded zero real rows — a direct check (SELECT COUNT(*) FROM research.nih_publications p JOIN research.nih_award_projects a ON p.appl_id = a.appl_id WHERE p.fiscal_year BETWEEN 2022 AND 2025 AND a.agency_ic IS NULL) returns 0. Every publication-to-award link in this window resolves to a non-null institute code, so the null a.agency_ic IS NOT NULL filter dropped no publications, institutes, or award-years; the n=47 panel and the regression coefficient are identical with or without that clause.

We do not read this null result as contradicting the literature above, for three concrete reasons, all worth stating plainly: (1) the funding swings in this specific window were modest (single digits for most institutes) — nothing near the 40%+ shock threshold the arXiv study used to find an effect, or the 6.7% sequester-era cut; a same-year test over a mild-volatility window is underpowered to detect a lagged, shock-sized effect. (2) research.nih_publications links a paper to the funding fiscal year of the grant slice queried, not the paper's actual publication year — so "this year's output" in this table is not really this year's output; the true lag structure the literature describes (funding this year showing up in papers 1-4+ years later) cannot be modeled correctly against this column. (3) We noticed what looks like a genuine data-quality artifact: several institutes (NCATS, NLM, NCI) show FY2025 linked-publication counts that are implausibly higher than FY2023 (e.g. NCI: 24,713 → 25,480 → 40,131), in a pattern common across most institutes regardless of whether their funding rose or fell that year — consistent with RePORTER crediting a continuing, multi-year project's full accumulated publication list to its newest appl_id rather than splitting it cleanly by the year each paper was actually produced. That is a table-design limitation, not a finding about real output growth, and we are logging it as a sourcing/defect gap rather than treating the null regression result as a disproof of the literature.

Bottom line

Year-to-year agency budget volatility shows up in researcher output mainly through a structural amplification effect, not a same-year linear pass-through: modest swings in total budget translate into much larger swings (~4x, per the Rule of τ) in what's available to fund new researchers and new projects, because most of any year's money is already locked into continuing multi-year grants. When budget shocks are large enough (sequestration-level cuts, or the 40%+ shocks studied directly), the downstream output effect is real and measurable — roughly 15% fewer publications and 18% fewer high-tech spinoffs, with 4+ years to recover. Smaller, more typical year-to-year NIH funding swings (single digits, as most institutes actually experienced FY2023-2025) did not produce a detectable same-year signal in this corpus's own publication-linkage data — consistent with the lag structure the literature describes, and limited by a real gap in how this corpus's publication table is keyed to funding year rather than actual publication year.

Every query behind this report

7 warehouse calls ran in this session, in order. Each is reproducible against the same snapshot.

query — 264 rows — 1812 ms
SELECT agency_ic, fiscal_year, SUM(award_amount) AS total_funding, COUNT(*) AS n_awards
FROM research.nih_award_projects
WHERE fiscal_year BETWEEN 2015 AND 2025 AND agency_ic IS NOT NULL
GROUP BY agency_ic, fiscal_year
ORDER BY agency_ic, fiscal_year
query — 71 rows — 2584 ms
SELECT p.fiscal_year, a.agency_ic, COUNT(DISTINCT p.pmid) AS n_pubs
FROM research.nih_publications p
JOIN research.nih_award_projects a ON p.appl_id = a.appl_id
WHERE p.fiscal_year BETWEEN 2022 AND 2025 AND a.agency_ic IS NOT NULL
GROUP BY p.fiscal_year, a.agency_ic
ORDER BY a.agency_ic, p.fiscal_year
query — 71 rows — 2466 ms
WITH f AS (
  SELECT agency_ic, fiscal_year, SUM(award_amount) AS funding
  FROM research.nih_award_projects
  WHERE fiscal_year BETWEEN 2022 AND 2025 AND agency_ic IS NOT NULL
  GROUP BY agency_ic, fiscal_year
),
p AS (
  SELECT a.agency_ic, p.fiscal_year, COUNT(DISTINCT p.pmid) AS n_pubs
  FROM research.nih_publications p
  JOIN research.nih_award_projects a ON p.appl_id = a.appl_id
  WHERE p.fiscal_year BETWEEN 2022 AND 2025 AND a.agency_ic IS NOT NULL
  GROUP BY a.agency_ic, p.fiscal_year
)
SELECT f.agency_ic, f.fiscal_year, f.funding, p.n_pubs
FROM f JOIN p ON f.agency_ic = p.agency_ic AND f.fiscal_year = p.fiscal_year
ORDER BY f.agency_ic, f.fiscal_year
query — 47 rows — 2944 ms
WITH f AS (
  SELECT agency_ic, fiscal_year, SUM(award_amount) AS funding
  FROM research.nih_award_projects
  WHERE fiscal_year BETWEEN 2022 AND 2025 AND agency_ic IS NOT NULL
  GROUP BY agency_ic, fiscal_year
),
p AS (
  SELECT a.agency_ic, p.fiscal_year, COUNT(DISTINCT p.pmid) AS n_pubs
  FROM research.nih_publications p
  JOIN research.nih_award_projects a ON p.appl_id = a.appl_id
  WHERE p.fiscal_year BETWEEN 2022 AND 2025 AND a.agency_ic IS NOT NULL
  GROUP BY a.agency_ic, p.fiscal_year
),
j AS (
  SELECT f.agency_ic, f.fiscal_year, f.funding, p.n_pubs
  FROM f JOIN p ON f.agency_ic = p.agency_ic AND f.fiscal_year = p.fiscal_year
),
w AS (
  SELECT agency_ic, fiscal_year, funding, n_pubs,
    LAG(funding) OVER (PARTITION BY agency_ic ORDER BY fiscal_year) AS prev_funding,
    LAG(n_pubs) OVER (PARTITION BY agency_ic ORDER BY fiscal_year) AS prev_pubs
  FROM j
)
SELECT agency_ic, fiscal_year,
  (funding - prev_funding) / prev_funding * 100.0 AS funding_pct_change,
  (n_pubs - prev_pubs) / CAST(prev_pubs AS DOUBLE) * 100.0 AS pubs_pct_change
FROM w
WHERE prev_funding IS NOT NULL AND prev_pubs IS NOT NULL
ORDER BY agency_ic, fiscal_year
panel_fixed_effects — 2623 ms
WITH f AS (
  SELECT agency_ic, fiscal_year, SUM(award_amount) AS funding
  FROM research.nih_award_projects
  WHERE fiscal_year BETWEEN 2022 AND 2025 AND agency_ic IS NOT NULL
  GROUP BY agency_ic, fiscal_year
),
p AS (
  SELECT a.agency_ic, p.fiscal_year, COUNT(DISTINCT p.pmid) AS n_pubs
  FROM research.nih_publications p
  JOIN research.nih_award_projects a ON p.appl_id = a.appl_id
  WHERE p.fiscal_year BETWEEN 2022 AND 2025 AND a.agency_ic IS NOT NULL
  GROUP BY a.agency_ic, p.fiscal_year
),
j AS (
  SELECT f.agency_ic, f.fiscal_year, f.funding, p.n_pubs
  FROM f JOIN p ON f.agency_ic = p.agency_ic AND f.fiscal_year = p.fiscal_year
),
w AS (
  SELECT agency_ic, fiscal_year, funding, n_pubs,
    LAG(funding) OVER (PARTITION BY agency_ic ORDER BY fiscal_year) AS prev_funding,
    LAG(n_pubs) OVER (PARTITION BY agency_ic ORDER BY fiscal_year) AS prev_pubs
  FROM j
)
SELECT agency_ic, fiscal_year,
  (funding - prev_funding) / prev_funding * 100.0 AS funding_pct_change,
  (n_pubs - prev_pubs) / CAST(prev_pubs AS DOUBLE) * 100.0 AS pubs_pct_change
FROM w
WHERE prev_funding IS NOT NULL AND prev_pubs IS NOT NULL
query — 1 rows — 1220 ms
SELECT COUNT(*) AS n_null_ic, SUM(award_amount) AS total_null_ic_funding
FROM research.nih_award_projects
WHERE fiscal_year BETWEEN 2015 AND 2025 AND agency_ic IS NULL
query — 1 rows — 1853 ms
SELECT COUNT(*) AS n_null_ic
FROM research.nih_publications p
JOIN research.nih_award_projects a ON p.appl_id = a.appl_id
WHERE p.fiscal_year BETWEEN 2022 AND 2025 AND a.agency_ic IS NULL

Sources

  1. Larson, Ghaffarzadegan & Gomez Diaz, "Magnified Effects of Changes in NIH Research Funding Levels", Service Science 4(4), 2012 — Source of the 'Rule of τ' ~4x amplification model
  2. "Scientific Talent Leaks Out of Funding Gaps" (federal grant funding-shock study) — 15% fewer publications, 18% fewer high-tech spinoffs, 4+ yr recovery after a 40%+ funding shock
  3. AAAS / NIH sequestration commentary on 2013 budget cut and research paper trends — 2013 NIH sequester context (6.7% nominal cut)
  4. research.nih_award_projects — NIH award-level funding by Institute/Center, FY2015-2025
    Show tool call
    query(sql="SELECT agency_ic, fiscal_year, SUM(award_amount) AS total_funding FROM research.nih_award_projects WHERE fiscal_year BETWEEN 2015 AND 2025 AND agency_ic IS NOT NULL GROUP BY agency_ic, fiscal_year ORDER BY agency_ic, fiscal_year")
  5. research.nih_publications joined to research.nih_award_projects — institute-year publication counts, FY2022-2025
    Show tool call
    query(sql="SELECT p.fiscal_year, a.agency_ic, COUNT(DISTINCT p.pmid) AS n_pubs FROM research.nih_publications p JOIN research.nih_award_projects a ON p.appl_id = a.appl_id WHERE p.fiscal_year BETWEEN 2022 AND 2025 AND a.agency_ic IS NOT NULL GROUP BY p.fiscal_year, a.agency_ic")
  6. Panel fixed-effects test: NIH institute funding % change vs. publication-count % change, FY2023-2025
    Show tool call
    panel_fixed_effects(outcome="pubs_pct_change", predictors="funding_pct_change", entity_col="agency_ic", time_col="fiscal_year")