I’ve been thinking about this a lot lately, especially after reading that 70% of SMBs hold less than four months of cash reserves heading into 2026. That stat alone should terrify anyone running a small business.
Here’s the uncomfortable reality I see across my client base: most small business owners I work with can tell you their revenue last month, maybe their profit margin. But almost none of them can answer the simple question: “How many weeks of runway do I have if revenue drops 30% tomorrow?”
The Cash Flow Problem Nobody’s Solving Well
The SCORE data is brutal—82% of small businesses that fail do so because of cash flow problems. Not because the product was bad, not because the market disappeared, but because they literally ran out of money to make payroll or pay vendors.
And the macro picture isn’t reassuring. U.S. household debt hit $18.8 trillion by Q4 2025, delinquencies climbed to 4.8% of outstanding debt (highest since 2017), and consumer confidence surveys show 33% of Americans don’t feel they could financially withstand a recession. When your customers are stressed, your cash flow suffers.
Meanwhile, 63% of small business owners plan to seek additional capital in 2026—but banks are only approving 27% of small business loan applications. So “I’ll just get a loan” isn’t a plan.
What I’ve Built in Beancount
I started building a cash runway dashboard for my own clients about 6 months ago. The core idea is simple:
Step 1: Calculate fixed monthly burn
SELECT sum(amount) WHERE
account ~ "Expenses:(Rent|Payroll|Insurance|LoanPayments|Utilities)"
AND year = 2025 AND month = 12
Step 2: Calculate current liquid assets
SELECT sum(amount) WHERE
account ~ "Assets:(Checking|Savings|MoneyMarket)"
Step 3: Runway = Liquid Assets / Monthly Fixed Expenses
For one client, the numbers were sobering: $47K liquid assets / $18.2K monthly fixed expenses = 2.6 months of runway. That’s it. Less than 3 months if all revenue stops tomorrow.
The Three-Scenario Model
What I really want to build (and where I’m stuck) is automated scenario modeling:
- Base case: Current revenue trends continue
- Moderate recession: Revenue drops 20%, two clients delay payment by 60+ days
- Severe recession: Revenue drops 40%, one major client churns entirely
For each scenario, I want Beancount to project: when does cash hit zero, and what expenses could be cut to extend the runway by 30/60/90 days?
I’ve been doing this manually in spreadsheets alongside Beancount, which defeats the purpose. Has anyone built proper forecasting within Beancount itself? I know BQL has limits for forward-looking projections, but I’ve seen people use custom Python scripts reading from their Beancount ledger to generate projections.
The Advisory Angle
Here’s what makes this really valuable for those of us serving small business clients: a monthly “Cash Runway Report” is the kind of advisory deliverable that justifies premium pricing. Clients who can present their bank with a document showing “here’s our runway under three scenarios, here’s our cost-cutting plan for each” are in a fundamentally different negotiating position than those who say “trust me, we’re fine.”
Questions for the community:
- Has anyone built automated cash flow forecasting with Beancount data? Python scripts, custom Fava plugins, anything?
- How do you handle the forward-looking limitation of BQL—do you use pad/budget entries, or external scripts?
- For those serving small business clients: are you running this kind of analysis, and what do clients actually pay for it?
- How often do you update projections? Weekly feels right but it’s a lot of work.
The recession may or may not come, but the businesses that survive will be the ones that saw their runway clearly. I’d rather have the dashboard and not need it than need it and not have it.