Savings Rate 50%+: Calculating Your True FIRE Savings Rate

In the FIRE community, your savings rate is the single most important metric. More than investment returns, more than side hustles—your savings rate determines how fast you reach financial independence.

The math is simple: save 50% of your income, and you can retire in about 17 years. Save 70%, and it drops to roughly 8.5 years.

But calculating your true savings rate is trickier than it seems. Let’s dig in.

The Basic Formula

At its core:

Savings Rate = (Income - Expenses) / Income

Or alternatively:

Savings Rate = Savings / Income

Both should give the same result, but using both formulas is a good sanity check.

The Messy Details

Here’s where it gets complicated. What counts as “income” and what counts as “savings”?

Income Questions

  • Gross or net income? (I use net after taxes)
  • Include employer 401k match? (Yes, it’s compensation)
  • Include HSA employer contributions? (Yes)
  • What about rental income or side hustle revenue?

Savings Questions

  • Does 401k contribution count? (Yes—it’s not spent)
  • What about paying down mortgage principal? (Debatable)
  • HSA contributions? (Yes, especially if invested)
  • Does paying extra on debt count as savings? (I say yes)

How I Calculate It in Beancount

Here’s my approach. First, I tag income sources:

2026-01-15 * "Employer" "Salary"
  Income:Salary:Base           -6500.00 USD
  Income:Salary:401k-Match      -325.00 USD
  Assets:Checking               4800.00 USD
  Assets:Investments:401k       2025.00 USD

Then I query for the full picture:

SELECT 
  abs(sum(position) FILTER WHERE account ~ "Income") as gross_income,
  sum(position) FILTER WHERE account ~ "Expenses" as expenses,
  sum(position) FILTER WHERE account ~ "Assets:(Investments|Savings)" as savings
WHERE year = 2026

My formula: savings_rate = savings / gross_income

My Numbers (Transparency Time)

Current 2026 year-to-date:

  • Gross income: $8,500/month (including employer match)
  • Expenses: $4,350/month
  • Savings: $4,150/month
  • Savings rate: 48.8%

I’m aiming for 55%+ this year by reducing food delivery expenses (my weak point).

Common Pitfalls

  1. Double-counting: Don’t count 401k both as “savings” and as “reduced expenses”
  2. Forgetting employer contributions: That 401k match is real money
  3. Tax confusion: Be consistent about pre-tax vs post-tax
  4. Mortgage principal: Decide once and stick with it

What’s Your Savings Rate?

How do you calculate yours? And more importantly—are you hitting your target? Would love to see how others structure their Beancount files for savings rate tracking.

This is really helpful! I’ve been struggling with the exact issue of what counts as “savings.”

Quick question: should I include my emergency fund contributions as savings?

My thinking is yes, but my emergency fund just sits in a HYSA earning 4.5%. It’s not really growing toward FIRE—it’s insurance against job loss. But it’s also not being spent…

Here’s how I currently have it structured:

Assets:Emergency-Fund      ; 6 months expenses
Assets:Investments:401k    ; FIRE assets
Assets:Investments:IRA     ; FIRE assets
Assets:Savings:Goals       ; Car, vacation, etc

Do you count Assets:Emergency-Fund in your savings rate? Or just the investment accounts?

Also—food delivery is my weakness too! I’ve started tracking it separately:

Expenses:Food:Delivery    ; The expensive habit
Expenses:Food:Groceries   ; The cheaper option

Seeing the comparison monthly is… motivating.

@newbie_accountant The emergency fund question is a classic!

My take: include emergency fund contributions in your savings rate, but exclude the emergency fund balance from your FIRE number.

Here’s why this makes sense:

  1. Savings rate: Measures flow, not stock. Emergency fund contributions are money not spent = savings.

  2. FIRE number: Measures the portfolio that generates income. Your emergency fund isn’t for that—it’s insurance.

So you might have:

  • Savings rate: 50% (includes EF contributions)
  • FIRE progress: 40% (only investment accounts)

I actually track two totals in Beancount:

; Total saved (for savings rate)
SELECT sum(position) as total_saved
WHERE account ~ "Assets:(Investments|Emergency|Savings)"
  AND year = 2026

; FIRE assets only (for progress tracking)  
SELECT sum(position) as fire_assets
WHERE account ~ "Assets:Investments"

Once your emergency fund is fully funded (6 months expenses), those contributions shift to investments anyway, so the distinction matters less over time.

On Food Delivery

Your tracking approach is spot-on. I did the same and discovered I was spending $380/month on delivery vs $320 on groceries. The visual comparison was the wake-up call I needed. Still not perfect, but I’ve got it down to about $200/month now.

That clarification really helps @helpful_veteran! The flow vs stock distinction makes it click for me.

One more thing I’m wrestling with: how do you handle irregular income?

I get an annual bonus in March (usually 10-15% of salary) and occasional consulting gigs. Including those in monthly savings rate calculations makes some months look amazing and others terrible.

Do you:

  1. Calculate monthly savings rate anyway and just accept the variance?
  2. Use a trailing 12-month average?
  3. Annualize everything and only look at yearly totals?

My DevOps brain wants to build a moving average calculation, but maybe I’m overcomplicating it…

@newbie_accountant I use option 2—trailing 12-month average. Here’s why:

Monthly is too noisy (bonus months, big expense months). Annual is too slow to see trends. Trailing 12-month smooths things out while still being responsive.

My approach in Beancount:

; Trailing 12-month savings rate
SELECT 
  abs(sum(position) FILTER WHERE account ~ "Income") as income,
  sum(position) FILTER WHERE account ~ "Assets:(Investments|Savings)" as savings
WHERE date >= today() - 365

Then: savings_rate = savings / income

I update this monthly and track the trend. Here’s my actual progression:

  • Jan 2025: 42%
  • Apr 2025: 44%
  • Jul 2025: 47%
  • Oct 2025: 48%
  • Jan 2026: 49%

The gradual increase tells a better story than monthly spikes. And it’s more honest—that 70% savings rate month after your bonus isn’t sustainable.

Pro tip: set up a custom Beancount plugin or Fava extension to show this automatically. Or just run the query monthly and log it somewhere.