The Zero-Based Budgeting Revival: Why 2026's Economic Uncertainty Makes Every Dollar a Decision

I’ve been tracking every dollar in Beancount for the past 5 years on my journey to FIRE. Somewhere around year 3, I got comfortable. My budget became autopilot: rent stays the same, groceries fluctuate a bit, subscriptions… well, they just kept accumulating. I was still tracking everything religiously, but I stopped questioning anything.

Then 2026 hit. Inflation isn’t behaving predictably. The tech job market feels unstable. My investment returns are choppy. Suddenly, incremental budgeting—taking last year’s numbers and adding 3% for inflation—feels dangerously naive.

Enter zero-based budgeting. I know it’s not new (Peter Pyhrr introduced it in the 1970s), but it’s having a major revival. Recent CFO surveys show over 60% of finance leaders prioritize cost optimization in 2026—and ZBB is their weapon of choice.

What is Zero-Based Budgeting?

Unlike incremental budgeting (last year’s budget + adjustments), zero-based budgeting starts from zero. Every single expense must be justified from scratch. There are no sacred cows, no “we’ve always spent $X on this” assumptions.

If you couldn’t see last year’s numbers, would you still allocate the same amounts? That’s the ZBB question.

Why Now?

2026’s economic environment is characterized by elevated uncertainty: persistent inflation, geopolitical tensions disrupting trade, and rapid AI disruption changing career landscapes. When stability is gone, every spending decision deserves fresh scrutiny.

For FIRE folks like me, this is doubly important. We’re optimizing for a 30-40 year retirement horizon. Cutting $500/month in unnecessary expenses at age 35 isn’t just $6,000/year—it’s potentially $500K+ in opportunity cost over retirement (assuming 7% real returns over 40 years).

My Beancount ZBB Implementation

Here’s my workflow for doing ZBB with Beancount:

1. Generate 12-month expense report

bean-query main.beancount "SELECT account, SUM(position) WHERE account ~ 'Expenses:' GROUP BY account ORDER BY SUM(position) DESC"

2. Export to spreadsheet, add “Keep/Cut/Reduce” column

Every line over $50/month gets interrogated:

  • Does this align with my 2026 priorities?
  • Would I sign up for this again today?
  • What would I lose if I cut this?

3. Use Beancount metadata for priority tiers

2026-01-15 * "Spotify" "Family plan subscription"
  Expenses:Entertainment:Streaming  17.99 USD
    priority: "keep"
    zbb-review: "2026-Q1"
  Assets:Checking  -17.99 USD

4. Track budget iterations with version control

This is where Beancount’s plain text + Git shines. I can see exactly when I added that $19.99/month SaaS tool that I’ve used twice in 18 months.

5. Use budget directives to model ZBB allocations

After the review, I update my budget file:

2026-01-01 budget Expenses:Entertainment:Streaming "Monthly streaming max"
  2026-01-01 17.99 USD

My Results (So Far)

After my first 2026 ZBB review (took about 8 hours), I found:

  • Cut entirely: $340/month in subscriptions I barely used (3 SaaS tools, 2 media subscriptions, 1 app bundle)
  • Downgraded: $185/month (switched to cheaper cell plan, dropped insurance riders I didn’t need)
  • Kept but now mindful: $275/month that I almost cut but realized brought disproportionate value

Total monthly savings: $525

That’s $6,300/year, or ~$350K toward my FIRE goal over time.

The Emotional Challenge

Here’s what surprised me: the hardest cuts weren’t the big ones—they were the $9.99/month subscriptions that I felt guilty canceling. “What if I need this later?” “This company’s founder seems nice.” “I’ve been a customer for 3 years.”

ZBB forces you to confront sunk cost fallacy and loyalty bias. Prophix’s research on ZBB confirms this is a common challenge—managers build in extra budget out of inertia, not necessity.

Questions for the Community

  1. Have you tried ZBB with Beancount? What workflow worked for you?

  2. What got cut that surprised you? Things you thought were essential but weren’t?

  3. How often do you repeat ZBB? Monthly seems exhausting, annually seems too infrequent—quarterly?

  4. Beancount-specific tips? Queries, plugins, or workflows that make ZBB easier?

  5. For business users: How do you apply ZBB to client budgeting? Any Beancount approaches?

I’m planning to do full ZBB reviews quarterly in 2026, with monthly spot checks on my top 10 expense categories. The economic uncertainty isn’t going away, and I’d rather be intentional than reactive.

Who else is reconsidering their budgeting approach in 2026?


Tracking toward $1.5M FIRE goal with Beancount since 2021. Current savings rate: 48% of gross income.

This resonates deeply with what I’m seeing across my client base right now. I’m a CPA with 15 years in practice, and 2026 has brought a noticeable shift—CFOs and business owners are demanding cost justification for everything. The “we’ve always done it this way” excuse doesn’t fly anymore.

Professional Validation: ZBB is Back

Your timing is perfect. In Q4 2025 and Q1 2026, I’ve helped three different clients implement zero-based budgeting reviews. The cost optimization pressure is real—one client’s board explicitly required ZBB after two quarters of margin compression.

The results mirror what you found: $45K in annual savings for a small business with 25 employees. The biggest cuts? Vendor contracts that were on autopilot renewal, redundant software licenses (turned out 3 different departments bought similar tools), and overstaffed positions that could be handled with fractional resources.

Why Beancount + ZBB is a Perfect Match

Here’s what I love about your approach: Beancount’s transaction-level detail makes ZBB much easier than traditional accounting systems.

In QuickBooks or Xero, you see monthly totals and maybe category breakdowns. But in Beancount, you can query:

  • Exact transaction history with timestamps
  • Who authorized each expense (if you use metadata)
  • When a subscription started (version control shows the git commit)
  • Cost per usage (if you track metadata like “used: 2 times”)

This granularity is what makes ZBB actionable instead of just a theoretical exercise.

The Time Investment Question

You mentioned 8 hours for your first ZBB review. That’s consistent with what I see. Here’s the reality:

  • First ZBB review: 8-12 hours (you’re learning the process, questioning everything)
  • Second review: 4-6 hours (you know what to look for)
  • Ongoing reviews: 2-3 hours quarterly (spot-checking categories that drift)

My recommendation: Don’t do ZBB monthly—you’ll burn out. Do it:

  1. Annually: Full zero-based review of everything
  2. Quarterly: Spot checks on top 20% of expenses (80/20 rule applies)
  3. Monthly: Only if major life changes (job loss, move, etc.)

The CPA’s Perspective on Frequency

One advantage Beancount gives you: historical query data makes annual ZBB much more effective than monthly. You can run:

bean-query main.beancount "SELECT YEAR(date) as year, account, SUM(position) WHERE account ~ 'Expenses:Subscriptions' GROUP BY year, account ORDER BY year DESC"

This shows you trends not just snapshots. Is that $19.99/month SaaS tool usage increasing or flat? Historical context makes cut/keep decisions easier.

Question for You

How do you handle the “investment vs expense” boundary in your ZBB review? For example, if you’re paying for a course that might increase your income, does that get scrutinized the same way as a Netflix subscription?

I ask because this is where my business clients struggle—cutting training budgets feels like cutting future revenue.

Great post. I’m sharing this with clients who keep asking “is there a better way than Excel budgets?”

I’m right in the middle of this with my clients—helping 3 small businesses implement ZBB in Q1 2026. Your post captures the why perfectly, and Alice covered the professional validation. Let me share the messy ground-level reality of actually doing this work.

What ZBB Looks Like in Practice

I walk clients through a simple (but emotionally hard) process:

Step 1: Pull every expense category from the last 12 months
(Your bean-query approach is exactly right)

Step 2: Ask the brutal question
“If we were starting this business today, would we buy this service/hire this person/sign this contract?”

Not “is this nice to have?” but “would we START with this?”

Step 3: Categorize everything

  • Green (Keep): Mission-critical, can’t operate without it
  • Yellow (Reduce): Useful but overpriced or overused
  • Red (Cut): Legacy spending that doesn’t serve current goals

Real Cuts I’ve Seen This Quarter

Client A (Restaurant, $850K annual revenue):

  • Cut: $280/month in duplicate payment processing (had Square AND Toast, only needed Toast)
  • Cut: $190/month in unused Yelp advertising
  • Reduced: $420/month → $180/month in food delivery commissions (renegotiated contracts)
  • Total: $5,100/year savings

Client B (Marketing Agency, 8 employees):

  • Cut: 3 SaaS subscriptions for tools they’d replaced but forgot to cancel ($197/month)
  • Cut: Premium Slack plan when free tier had all features they used ($96/month)
  • Reduced: Adobe Creative Cloud seats from 8 to 4 (rest used Canva)
  • Total: $8,640/year savings

Client C (Nonprofit, $1.2M budget):

  • This one’s still in progress, but we’re finding duplicate donor database subscriptions and unused fundraising platform features

The Emotional Challenge (This is the Hard Part)

You mentioned guilt about canceling $9.99 subscriptions. With business clients, it’s 10x worse:

  • Vendor loyalty: “We’ve worked with this bookkeeping service for 5 years” (even though they’re overcharging by 40%)
  • Fear of regret: “What if we need this tool later?” (Spoiler: you can always re-subscribe)
  • Sunk cost fallacy: “We already paid for the annual plan” (but you can cancel renewal RIGHT NOW)
  • Staff resistance: Employees resist giving up tools they like, even if they barely use them

The breakthrough moment: When I show them the ZBB savings in terms of time. That $8,640 in SaaS cuts = 86 hours of billable work they DON’T have to do this year. That reframes it from “deprivation” to “freedom.”

My Beancount Workflow for Client ZBB

Here’s what works:

1. Create a separate budget file for the ZBB exercise

include "main.beancount"
; ZBB Review 2026-Q1
; Status: In Progress

2. Use tags to mark expenses under review

2025-09-15 * "Adobe Creative Cloud" "Monthly subscription - 8 seats"
  Expenses:Software:Design  599.88 USD
    zbb-status: "reduce-to-4-seats"
    decision-date: "2026-03-15"
  Assets:Checking  -599.88 USD

3. Track the decision timeline

This is key: ZBB isn’t one-and-done. You make decisions, implement them over 2-3 months, then track whether savings materialize.

Beancount’s version control lets me show clients: “On March 15, we decided to cut X. Here’s the transaction history before and after.”

Biggest Surprise from ZBB

Misalignment between spending and stated priorities.

Every business says “customer experience is everything” but one client was spending 8x more on internal perks than customer service tools. ZBB exposed that disconnect.

Similarly, every FIRE person says they value “freedom and flexibility” but then pays for subscriptions that lock them into specific platforms or annual commitments. The spending doesn’t match the values.

Question for Alice and Fred

How do you handle the “we’ll save money later” trap?

Clients often resist ZBB cuts by saying “but we’re planning to use this tool more next quarter” or “we’ll need this when we scale.”

I’m struggling with whether to:

  • Cut it now (force them to prove they need it by re-subscribing)
  • Give it one more quarter with a hard deadline
  • Create a “trial” category where we actively track usage

What’s worked for you?

One More Thing: Change Fatigue is Real

Don’t implement all ZBB cuts at once. We learned this the hard way.

One client got so overwhelmed by switching tools, renegotiating contracts, and training staff on new workflows that they burned out and stopped tracking entirely for 6 weeks.

Better approach: Phased implementation

  • Week 1-2: Cancel the obvious waste (unused subscriptions)
  • Week 3-6: Renegotiate contracts (takes negotiation time)
  • Week 7-12: Implement process changes (switching tools, new workflows)

Beancount’s transaction history is perfect for tracking this: you can literally see the phase-in timeline in your ledger.

Great discussion. Who else is doing ZBB work right now?

This thread is hitting at the perfect time for me. I did my first full ZBB review back in 2023 during a career transition (left tech job, went independent consultant). Did another one this month. Let me share what I’ve learned across two ZBB cycles.

My ZBB Story: 2023 vs 2026

2023 Context: Just quit W-2 job, income uncertainty, needed to cut expenses fast

Result: Cut $890/month in spending. Felt brutal at the time. Thought I was living in deprivation mode.

2026 Context: Income stable, but wanted to audit lifestyle inflation

Result: Cut another $420/month. This time it felt like optimization not desperation.

The difference? Mindset shift: ZBB isn’t about deprivation—it’s about intentionality.

Philosophy: ZBB as Values Alignment (Not Punishment)

Fred, you mentioned the emotional challenge of cutting subscriptions you feel guilty about. Bob, you talked about vendor loyalty and sunk costs.

Here’s the reframe that helped me:

ZBB is asking: “Does this expense align with my current priorities?”

Not “Can I afford this?” but “Is this serving who I want to be in 2026?”

Example: In 2023, I cut my $50/month climbing gym membership. It hurt—I’d been a member for 4 years. But I’d only gone twice in the last 6 months. Keeping it was loyalty to past me, not service to future me.

In 2026, I kept my $240/month Brazilian Jiu-Jitsu membership even though it’s expensive. Why? I go 3x/week, it’s my primary social connection, and it keeps me healthy. High cost, high value, perfect alignment.

ZBB reveals misalignment between spending and values.

My Beancount ZBB Workflow (Lessons from 2 Cycles)

Here’s what works after doing this twice:

Phase 1: Data Collection (Don’t skip this)

# Generate 12-month expense report by category
bean-query main.beancount \
  "SELECT account, SUM(position)
   WHERE account ~ 'Expenses:'
   GROUP BY account
   ORDER BY SUM(position) DESC" \
  > expenses_2025.csv

Export to spreadsheet. Add columns:

  • Category (already there)
  • Monthly Average
  • Annual Total
  • Priority (Keep/Reduce/Cut)
  • Justification (force yourself to write this)

Phase 2: Question Everything Over $50/month

I use these 3 questions (stolen from Marie Kondo, adapted for money):

  1. Does this bring value? (ROI, joy, health, relationships)
  2. Is this serving my 2026 priorities? (career, family, health, freedom)
  3. Would I buy this again today? (fresh start test)

If the answer to all three is “no” → Cut immediately.
If the answer to any two is “no” → Cut or reduce.
If the answer to one is “no” → Review in 3 months.

Phase 3: Gradual Implementation (Bob is right about change fatigue)

Don’t cut everything at once. I learned this the hard way in 2023.

Week 1-2: Cancel obvious waste

  • Subscriptions you haven’t used in 6+ months
  • Duplicate services (you don’t need Spotify AND Apple Music)
  • Free trial auto-renewals you forgot about

Week 3-6: Negotiate and downgrade

  • Call vendors, ask for discounts (success rate: 60%)
  • Switch to cheaper plans
  • Bundle services for savings

Week 7-12: Make workflow changes

  • Switch to alternative tools (if needed)
  • Adjust routines to match new budget
  • Track whether you actually miss what you cut

Phase 4: Track in Beancount with metadata

This is my secret weapon for the next ZBB cycle:

2026-03-15 * "Netflix" "Streaming subscription"
  Expenses:Entertainment:Streaming  15.99 USD
    zbb-review: "2026-Q1"
    decision: "keep"
    justification: "Family movie nights 2x/week, high usage"
    next-review: "2027-Q1"
  Assets:Checking  -15.99 USD

When I do ZBB in 2027, I can query: “What did I decide last time and why?”

bean-query main.beancount \
  "SELECT * WHERE 'zbb-review' = '2026-Q1'"

Unexpected Benefit: ZBB Revealed Lifestyle Inflation

In 2023, my monthly subscriptions totaled $215.
By 2026, they’d crept to $650.

How did this happen? One $9.99 subscription at a time.

  • 2023: Spotify ($9.99)
  • 2024: Added YouTube Premium ($11.99), ChatGPT Plus ($20), Notion ($10)
  • 2025: Added Copilot ($10), Midjourney ($30), Grammarly ($12), 3 more SaaS tools

None of these felt significant at the time. But together they added $435/month.

Beancount’s version control is perfect for catching this. I can git log my subscription adds and see exactly when lifestyle inflation started.

Warning: Don’t Over-Optimize

Alice asked about “investment vs expense” boundary. This is crucial.

In 2023, I cut too aggressively. I canceled:

  • $99/month gym membership (saved money, gained 15 pounds, lost energy)
  • $50/month professional association membership (saved money, lost networking opportunities)
  • $200/month continuing education budget (saved money, skills stagnated)

These cuts cost me MORE than they saved.

By 2025, I had to re-subscribe to all three and play catch-up. The “savings” was actually a loan against my future self.

Rule I use now: Don’t cut things with disproportionate ROI.

  • Health expenses (gym, therapy, quality food) = Usually keep
  • Education expenses (courses, books, conferences) = Keep if actively using
  • Relationship expenses (date nights, family activities) = Usually keep
  • Entertainment expenses (subscriptions, hobbies) = Scrutinize heavily

Recommendation: Annual ZBB, Not Monthly

Fred, you mentioned quarterly ZBB reviews. Here’s what I’d suggest instead:

Annual: Full zero-based review (8-12 hours)
Quarterly: Spot check top 10 expense categories (1-2 hours)
Monthly: Balance assertions catch drift automatically

Why annual? ZBB is cognitively exhausting. You’re questioning EVERYTHING. Doing that monthly burns you out.

But quarterly spot checks are valuable:

# Check subscription drift
bean-query main.beancount \
  "SELECT account, SUM(position)
   WHERE account ~ 'Expenses:Subscriptions'
   AND date >= 2026-01-01
   GROUP BY account"

If subscriptions jumped $50+/month → investigate immediately.

Starting Point: One Category First

If full ZBB feels overwhelming, start with subscriptions only.

Why?

  1. Easy to cancel (no contracts, usually)
  2. Often forgotten (autopay hides them)
  3. Quick wins (you’ll find $100-200/month easily)
  4. Builds momentum for bigger categories

After subscriptions, tackle:

  • Insurance (shop around, adjust coverage)
  • Telecom (negotiate, switch providers)
  • Food (meal plan, reduce delivery)

Response to Bob’s Question: “We’ll Save Money Later” Trap

How do you handle clients saying “we’ll use this tool more next quarter”?

Here’s what works for me (personally and consulting):

Option 1: Track usage for 90 days
Add metadata to EVERY transaction in that category:

2026-04-01 * "Fancy SaaS Tool" "Monthly subscription"
  Expenses:Software  99.00 USD
    usage-count: "0"  ; Update this monthly
    deadline: "2026-06-30"
  Assets:Checking  -99.00 USD

At deadline, if usage < threshold → Cancel.

Option 2: Cancel now, re-subscribe if needed
Most SaaS tools let you re-subscribe anytime. Friction of re-subscribing proves you actually need it.

Option 3: Downgrade to minimum tier
Keep account active but cut to free/basic tier. If you hit limits → you actually need it.

I prefer Option 1 for expensive tools ($50+/month), Option 2 for cheap ones.

Encouragement for Newcomers

If you’re reading this and feeling overwhelmed: Start small.

Don’t try to ZBB your entire financial life this weekend. Pick ONE expense category. Review it. Make cuts. See how it feels.

Then wait a month. Did you miss what you cut? Probably not.

Then tackle the next category.

Beancount’s transaction history means you can always look back and see: “Did cutting X actually improve my life?” The data doesn’t lie.

Great thread, Fred. Thanks for starting this discussion.