FY 2026 Federal Budget Proposes 55% NSF Cuts and 41% NIH Cuts—How Do Nonprofits Model Revenue Uncertainty When Grant Funding Disappears?

FY 2026 Federal Budget Proposes 55% NSF Cuts and 41% NIH Cuts—How Do Nonprofits Model Revenue Uncertainty When Grant Funding Disappears?

I work with three nonprofits that depend heavily on federal grants—two are NSF-funded research organizations, one relies on NIH grants for health education programs. The FY 2026 budget proposals have them in complete crisis mode, and I’m trying to help them model revenue scenarios that don’t make everyone panic.

The Numbers Are Alarming

The initial Trump administration proposal in May 2025 included $3.9 billion for NSF (a 56% cut from FY25) and $27.5 billion for NIH (a 41.9% cut from FY25). Even though Congress pushed back and rejected the harshest cuts in January-February 2026, the damage was already done. Over 7,800 grants were cancelled or suspended mid-cycle—5,844 NIH grants and 1,996 NSF grants—representing over $3 billion in unspent funds frozen or terminated.

For nonprofits, this isn’t just about future funding uncertainty. Grants were terminated after work had already begun. Organizations spent money they’ll never recover because grants typically reimburse expenses after you’ve incurred them.

The Modeling Challenge

My clients need to build financial models when 30-50% of expected revenue might vanish with 30-60 days notice. Traditional budgeting doesn’t handle this—you need scenario planning with multiple parallel ledgers.

Here’s what I’m trying to model:

  1. Optimistic scenario: All pending grants get funded, existing grants complete normally
  2. Realistic scenario: 30% revenue cut, delayed grant awards, stretched payment cycles
  3. Pessimistic scenario: 50% revenue cut, mid-cycle terminations, reimbursement clawbacks

For each scenario, they need corresponding expense reduction plans: Which staff to furlough? Which programs to suspend? Which overhead costs to cut? What’s the cash runway?

Can Beancount Handle Scenario Modeling?

I’m trying to figure out if Beancount can maintain these parallel scenarios without creating three completely separate ledgers. My current thinking:

  • Tag system for revenue risk: #revenue-federal-pending, #revenue-federal-confirmed, #revenue-diversified
  • Query-based scenario views: Use different queries to show balance sheet under each funding scenario
  • Tracking “at-risk expenses”: Money spent on grant work that might not get reimbursed
  • Restricted fund allocation: When partial grant termination happens, you return unused restricted funds but keep your overhead allocation

Has anyone used Beancount (or hledger, ledger) for multi-scenario nonprofit budgeting? How do you structure accounts and tags to show management three different financial realities simultaneously?

The Bigger Strategic Question

Beyond just modeling, this crisis forces the strategic question: How do you diversify away from federal funding dependency?

85% of nonprofits report being impacted by federal funding changes, and 82% are now pursuing more private and corporate grants. But that’s not a quick fix—foundation grants take 6-12 months to secure, and corporate partnerships require relationship building.

For my clients, I’m recommending:

  • Build 6-month cash reserves (easier said than done when you’re grant-funded)
  • Diversify to foundations (but application cycles don’t match federal disappearance speed)
  • Increase individual donor cultivation (requires upfront marketing investment)
  • Document “unreimbursed expenses at risk” (critical for emergency fundraising asks)

The accounting challenge is that you need to model cash flow through the transition period—when federal money dries up but alternative funding hasn’t materialized yet.

Practical Beancount Question

For those who work with nonprofits or do complex scenario planning:

  1. How do you structure Beancount accounts to show multiple budget scenarios without duplicating the entire chart of accounts?
  2. What’s your approach to tagging revenue by certainty level (committed, probable, possible)?
  3. Can you run queries that show “balance sheet if 30% of tagged revenue disappears”?
  4. How do you track restricted vs unrestricted when partial grant terminations require fund returns?

I’m comfortable with Beancount for historical accounting, but using it for forward-looking scenario modeling is new territory. The nonprofits need this analysis for board presentations in two weeks—help?


For context: 92% of nonprofits have adjusted strategies in response to federal funding volatility. This isn’t a theoretical exercise—it’s 2026 survival planning for organizations doing critical research and community health work.

I’ve been using Beancount for multi-scenario modeling for about 18 months now, and it absolutely can handle what you’re describing—but you need to think about it differently than traditional budgeting software.

Tag-Based Scenario Filtering

Your instinct about using tags is exactly right. Here’s my approach:

2026-03-15 * "NSF Grant Award - Pending" ^grant-nsf-2026-q2
  #funding-scenario-optimistic
  #funding-scenario-realistic
  Assets:GrantsReceivable:NSF    250000.00 USD
  Income:Grants:Federal:NSF     -250000.00 USD

2026-03-15 * "Foundation Grant - High Probability" ^grant-foundation-xyz
  #funding-scenario-optimistic
  #funding-scenario-realistic
  #funding-scenario-pessimistic
  Assets:GrantsReceivable:Foundation    75000.00 USD
  Income:Grants:Private:Foundation      -75000.00 USD

Then I use custom queries to show each scenario:

SELECT account, sum(position)
WHERE any_meta('funding-scenario-pessimistic')
GROUP BY account

This shows your balance sheet if only transactions tagged with pessimistic scenario exist. You can generate three reports instantly—same ledger, different filters.

The “Unreimbursed Expenses at Risk” Problem

This is critical and most accounting systems miss it. You need negative asset tracking:

2026-01-15 * "Research expenses on NSF grant" ^nsf-grant-2026-001
  #at-risk-reimbursement
  Expenses:Research:Salaries        45000.00 USD
  Assets:GrantsReceivable:NSF      -45000.00 USD  ; We expect reimbursement

2026-03-01 * "Grant terminated - convert to loss" ^nsf-grant-2026-001
  #grant-termination
  Expenses:Losses:GrantTerminations   45000.00 USD
  Assets:GrantsReceivable:NSF        -45000.00 USD

If the grant terminates mid-cycle, you spent real cash but the receivable vanishes. Query your #at-risk-reimbursement tags to see total exposure if all pending grants collapse.

Restricted Fund Mechanics

For partial grant terminations where you return unused restricted funds:

2026-02-10 * "Return unused restricted grant funds"
  Assets:Cash:Operating             -50000.00 USD
  Liabilities:RestrictedFunds:NSF    50000.00 USD

2026-02-10 * "Retain earned indirect cost recovery"
  Liabilities:RestrictedFunds:NSF   -12500.00 USD  ; 25% indirect rate
  Income:Grants:IndirectRecovery     12500.00 USD

This is where nonprofits often get confused—you keep your overhead allocation even when returning principal. Beancount’s double-entry clarity helps boards understand this.

Start Simple, Then Iterate

Don’t try to build all three scenarios perfectly on day one. Start with:

  1. Tag your current ledger with certainty levels (committed/probable/possible)
  2. Run one scenario query to prove the concept works
  3. Show your board the same historical ledger filtered three different ways
  4. Iterate based on their questions

The beauty of plain text is you can experiment with tagging schemes without breaking anything. Copy your ledger, try a different tag structure, see which queries answer board questions better.

Your two-week timeline is tight but doable—especially since you’re comfortable with historical Beancount. The mental shift is treating tags as scenario dimensions instead of just categorization.

This is exactly the kind of crisis where Beancount’s transparency becomes a professional liability defense, not just a nice-to-have feature.

The CPA Compliance Perspective

When nonprofits face 30-50% revenue uncertainty, your audit exposure changes dramatically. I’ve seen three situations in the past six months where CPAs got sued because:

  1. Going concern opinions weren’t early enough - Board said “why didn’t you warn us?”
  2. Restricted fund accounting was wrong - Returned grants incorrectly, kept money they shouldn’t have
  3. Revenue recognition timing was aggressive - Booked grant revenue before it was “probable”

Beancount’s audit trail helps with all three, but only if you structure it correctly.

Revenue Recognition for Uncertain Grants

Under ASC 958 (nonprofit accounting standards), you can’t recognize grant revenue until:

  • Grant is awarded (not just applied for)
  • Work is performed (expense-driven model for cost-reimbursement grants)
  • Collection is probable

In 2026’s environment, that third criterion—“probable”—just became much harder to justify. If NSF terminates 1,996 grants mid-cycle, is your pending NSF grant really “probable”?

Conservative approach in Beancount:

; DON'T recognize revenue until cash received
2026-03-15 * "NSF grant award notification"
  Assets:GrantsReceivable:NSF:Pending    250000.00 USD
  Equity:MemorandumAccounts:PendingGrants  -250000.00 USD

; ONLY recognize when reimbursement received
2026-04-15 * "NSF grant reimbursement - Q1 expenses"
  Assets:Cash:Operating                45000.00 USD
  Income:Grants:Federal:NSF          -45000.00 USD
  Assets:GrantsReceivable:NSF:Pending  -45000.00 USD
  Equity:MemorandumAccounts:PendingGrants   45000.00 USD

This way your income statement only shows cash you’ve actually received, not promises that might evaporate. Your board sees the real financial position.

Going Concern Documentation

With 85% of nonprofits impacted by federal funding changes, auditors are required to evaluate substantial doubt about your ability to continue. You need to document:

  • Cash runway calculation (months of operating reserves)
  • Liquidity analysis (can you pay bills in next 12 months?)
  • Management plans to address funding shortfalls

Beancount queries become your documentation:

-- Show cash runway at current burn rate
SELECT account, sum(position)
WHERE account ~ "^Assets:Cash" OR account ~ "^Liabilities"

-- Show expenses by program (to identify cut candidates)
SELECT payee, sum(position)
WHERE account ~ "^Expenses" AND year = 2026
GROUP BY payee

Generate these monthly, save them with your board packets, and your auditor has a clear trail of “management evaluated going concern risk throughout the year.”

Engagement Letter Language Update

I’ve updated my engagement letters for nonprofit clients to explicitly address federal funding volatility:

Client acknowledges that federal grant funding is subject to termination without notice as demonstrated by FY26 budget actions. Client is responsible for maintaining adequate cash reserves and diversified funding sources. Our scenario modeling is based on information provided by Client and does not constitute a guarantee of future funding.

This isn’t just CYA—it’s setting expectations that scenario planning is an ongoing discipline, not a one-time project.

Tax Implications for Terminations

Don’t forget: if you return restricted grant funds, you may need to amend prior year tax filings if you recognized that revenue. Beancount’s transaction links help trace this:

2025-06-15 * "NSF grant revenue - FY25" ^nsf-2025-grant
  Income:Grants:Federal:NSF  -100000.00 USD
  Assets:Cash:Operating       100000.00 USD

2026-02-10 * "Return FY25 grant - not completed" ^nsf-2025-grant
  Assets:Cash:Operating          -40000.00 USD
  Income:Grants:Federal:NSF       40000.00 USD

The ^nsf-2025-grant link lets you query “all transactions related to this grant” instantly. Critical when your tax preparer asks “which grants were returned this year?”

Your two-week deadline is aggressive, but focus on clean revenue recognition first, then scenarios second. Better to present one conservative scenario than three optimistic ones that expose you to audit risk.

I lost a nonprofit client last year because I couldn’t help them model cash flow through exactly this scenario. They moved to a firm with expensive scenario planning software, and I’ve been kicking myself ever since. Your post is making me realize I could have done this with Beancount.

The Cash Flow Crisis Is Worse Than Revenue Loss

What killed my former client wasn’t the grant termination—it was the timing mismatch:

  • Month 1: Spent $80K on program salaries (expecting grant reimbursement)
  • Month 2: Grant award delayed “pending review”
  • Month 3: Grant terminated, $80K unrecoverable
  • Month 4: Couldn’t make payroll, emergency board loan required

They needed to see three months forward under different funding scenarios. I gave them historical reports. They fired me.

Small Business Bookkeeping Doesn’t Prepare You For This

My other clients are restaurants, retail shops, service businesses. Revenue is unpredictable, but it’s not binary. A restaurant doesn’t have “$250K that might completely disappear in 30 days.”

Nonprofits face cliff-edge revenue risk: Grant either happens (100%) or doesn’t (0%). There’s no “partial NSF grant” where they fund 70% and you adjust.

This requires different thinking:

  1. Burn rate visibility: How much cash do you consume per month regardless of revenue?
  2. Trigger points: At what cash level do you furlough staff? Cut programs?
  3. Restricted cash tracking: Which dollars can you use for which purposes?
  4. Donor communication: When do you launch emergency fundraising?

Traditional monthly P&L statements don’t answer these questions. You need forward-looking cash flow scenarios.

Can Beancount Do Forward-Looking Projections?

Here’s where I’m stuck: Beancount is perfect for historical transaction recording, but nonprofits need future scenarios that haven’t happened yet.

Do you:

  • Create “what-if” transactions with a special flag?
  • Maintain separate forecast ledgers?
  • Use plugins for budgeting/forecasting?
  • Export to spreadsheets for scenario modeling?

I’ve been using Beancount for all my clients’ historical books, but when they ask “what happens if revenue drops 30%?” I’ve been opening Excel. That feels like I’m missing Beancount’s potential.

The Diversification Timeline Reality

You mentioned foundations take 6-12 months to secure. That’s optimistic. My nonprofit experience:

  • Foundation grants: 9-18 months from research to funding (including application cycles, site visits, board approvals)
  • Corporate partnerships: 12-24 months to build relationships
  • Individual donor programs: 6-12 months to see meaningful revenue (after marketing investment)
  • Emergency fundraising: 30-60 days for existing donors, but limited to small amounts

The math is brutal: Federal grants disappear in 30-60 days, replacements take 6-24 months. The gap is 4-23 months of operating on reserves you don’t have.

This is where scenario modeling becomes survival planning: “If we cut staff by 30%, can we survive 8 months until foundation grants materialize?”

What I Wish I’d Done Differently

For my lost client, I should have:

  1. Set up tags for revenue certainty (committed, probable, possible)
  2. Created custom queries for burn rate analysis
  3. Documented cash runway monthly in board reports
  4. Built trigger-point dashboards (“at $50K cash, we implement plan B”)
  5. Tracked restricted vs unrestricted with brutal clarity

All of this was possible in Beancount, I just didn’t know how. I treated it as a bookkeeping tool instead of a financial modeling platform.

For those of you working with nonprofits: How do you position Beancount as a strategic planning tool, not just historical record-keeping? What queries do you show boards to demonstrate forward-looking value?

I want to win back nonprofit clients, but I need to prove Beancount can handle scenario complexity that QuickBooks + Excel currently owns.

The tax compliance angle on grant terminations is getting almost zero attention in the nonprofit panic, and it’s going to bite people hard at tax time.

IRS Treatment of Grant Returns

When a nonprofit returns restricted grant funds, the tax treatment depends on when you recognized the revenue:

Scenario 1: Revenue recognized in prior year, returned this year

  • Must file amended Form 990 for the prior year
  • Reduces prior year’s total revenue
  • May trigger amended state filings (CA, NY, etc.)
  • Potential penalties if original 990 showed inflated financial health

Scenario 2: Revenue never recognized (grant terminated before work performed)

  • No tax impact (never hit your books)
  • But you may have unreimbursed expenses that increased your operating deficit
  • This can actually benefit your nonprofit tax status (showing you’re not accumulating excess revenue)

Scenario 3: Partial grant completion

  • Revenue recognition up to completion percentage
  • Track earned vs unearned portions
  • Return unearned, keep overhead allocation
  • IRS cares about the substance, not the grant agreement language

Beancount for Form 990 Preparation

Form 990 Part VIII requires you to break down revenue sources. With 7,800 terminated grants in 2026, your revenue categories are going to look volatile year-over-year, and you need to explain this in the narrative.

Beancount query for Form 990 Line 1e (Government grants):

SELECT year, sum(position) AS government_grants
WHERE account ~ "^Income:Grants:Federal"
GROUP BY year

If this shows a 40% drop from FY25 to FY26, your Form 990 Part III (Mission Statement) needs to explain:

  • Which programs were suspended
  • How you’re replacing lost revenue
  • Whether service delivery changed

IRS is going to scrutinize nonprofits with major revenue drops because it signals potential distress or mission drift.

State Tax Nexus Complications

Don’t forget: if your nonprofit operates in multiple states and returns grant funds, you may trigger state charitable registration issues:

  • California: Must file amended Form RRF-1 if revenue changes by 20%+
  • New York: CHAR500 requires reporting grant terminations over $25K
  • Multi-state: Each state has different thresholds and reporting requirements

I track this in Beancount with state tags:

2026-02-15 * "NSF grant - CA research program" #state-ca
  Assets:Cash:Operating            50000.00 USD
  Income:Grants:Federal:NSF      -50000.00 USD

2026-03-10 * "Return CA grant funds" #state-ca #grant-termination
  Income:Grants:Federal:NSF       25000.00 USD
  Assets:Cash:Operating          -25000.00 USD

Then query by state to check reporting thresholds:

SELECT sum(position) AS ca_grant_impact
WHERE account ~ "^Income:Grants" AND any_meta('state-ca') AND year = 2026

If the impact exceeds your state’s threshold, you know you need amended filings.

The “Excess Reserves” Trap

Here’s a counterintuitive problem: Some nonprofits have been building cash reserves anticipating federal funding volatility. Smart, right?

Not if you accumulate too much. IRS can challenge your 501(c)(3) status if you’re hoarding reserves instead of spending on mission. There’s no bright-line rule, but generally:

  • Less than 1 year operating expenses: Safe
  • 1-2 years: Justifiable with documentation (future program plans, facility needs, etc.)
  • More than 3 years: Starts looking like private benefit, not charitable purpose

Beancount helps document your reserve justification:

2026-01-15 * "Designate board-restricted reserves for building fund"
  Assets:Cash:Operating           -200000.00 USD
  Assets:Cash:Restricted:Building  200000.00 USD

This shows IRS the reserves are designated for specific future use, not just accumulation.

What You Should Be Telling Your Clients NOW

If you work with nonprofits facing grant terminations:

  1. Don’t recognize revenue until cash received - Conservative in volatile times
  2. Tag all grant transactions for easy 990 preparation
  3. Track state-by-state if you operate nationally
  4. Document reserve designations before IRS asks
  5. Plan for amended filings if you’ve already recognized terminated grant revenue

The accounting cleanup from FY26’s grant chaos is going to dominate 2027 tax season. Better to structure your Beancount ledger correctly now than to reconstruct everything next January.

For those building scenario models: Don’t forget to run scenarios on tax filing complexity too. Three grant terminations = three amended 990s = three sets of state filings = accounting fees your budget didn’t anticipate.