Savings Rate Tracking: Complete Beginner Needs Help with Beancount Setup

Hey everyone! Sarah here (newbie_accountant). I’m a DevOps engineer who recently stumbled onto the FIRE community and this idea of tracking your savings rate as the key metric for financial independence. Mind. Blown.

But I’m completely overwhelmed trying to set this up in Beancount. I’ve been using spreadsheets for 3 years, and I keep hearing that savings rate is THE number that matters most—not your income, not your investment returns, but the percentage you save.

What I Understand (I Think?)

From what I’ve read:

  • 50% savings rate = 17 years to financial independence
  • 70% savings rate = 8-9 years to financial independence
  • Formula is simple: (Savings / Income) × 100
  • The higher your savings rate, the less you need to retire (because lower expenses) AND the faster you save

This makes total sense conceptually. But implementing it in Beancount? That’s where I’m stuck.

My Confusion Points

1. Gross vs. Net Income?
Some people say use gross income (before taxes) for standardization. Others say use net (take-home) because that’s what you actually control. Which should I use as a beginner?

2. What Counts as “Savings”?
Obviously my 401(k) contributions and transfers to my savings account count. But what about:

  • Extra mortgage principal payments?
  • HSA contributions?
  • Paying down student loans?
  • Increasing my investment account?

3. Handling Irregular Income
I’m a full-time W-2 employee, but I also do occasional freelance consulting (maybe $500-2000/month, very sporadic). Do I:

  • Average it out over 3 months?
  • Only count it when it hits my account?
  • Track it separately from my main salary?

4. Historical Data vs. Fresh Start?
Should I go back and import 6-12 months of transactions to establish a baseline? Or just start fresh from today and track going forward?

What I’m Hoping to Achieve

My goal is to track my savings rate monthly in Beancount and see if I can gradually improve it. I’m probably around 40-45% right now (based on rough spreadsheet math), but I want precision.

I’d love to eventually have:

  • A Fava dashboard that shows my savings rate automatically
  • Monthly tracking to see if I’m improving
  • Visibility into which spending categories are hurting my rate most
  • Confidence that I’m calculating this correctly

Questions for the Community

  1. Where do I start? Should I focus on getting my account structure right first, or just start tracking and refine later?

  2. Simple query example? Can someone share a basic BQL query for calculating monthly savings rate? I’m comfortable with SQL, but Beancount’s query language is new to me.

  3. What’s realistic for a beginner? If I’m at 40-45% now, is 50% achievable in 6 months? Or should I target smaller increments?

  4. Tools or plugins? Are there any Beancount plugins or Fava extensions specifically for tracking savings rate and FIRE metrics?

I know I’m asking a lot of questions, but I’m excited to get this right. The idea that I could potentially retire in 12-15 years instead of 30-40 years just by optimizing this one metric is incredibly motivating.

Any guidance from folks who’ve been doing this longer would be hugely appreciated. Thanks for reading this essay of confusion!

Sarah, welcome to the community! I’m Mike (helpful_veteran), and I’ve been using Beancount for 4+ years to track exactly what you’re describing. Let me answer your questions based on my own journey from 40% to 60% savings rate.

Start Simple, Refine Later

To answer your first question: Start tracking NOW with your current account structure, refine later. I made the mistake of spending 3 weeks perfecting my account hierarchy before entering a single transaction. Wasted time. Your current structure is fine to begin with.

Here’s what I’d add to your setup:

Income:Salary:W2
Income:Freelance  

Assets:Checking
Assets:Savings:Emergency
Assets:Retirement:401k
Assets:Retirement:IRA (if you have one)
Assets:Investment:Taxable

Expenses:Housing:Rent
Expenses:Food:Groceries
Expenses:Food:DiningOut
Expenses:Transportation
Expenses:Subscriptions
Expenses:Healthcare
Expenses:Discretionary

You can always restructure later. Beancount makes it easy to rename accounts retroactively.

Gross vs. Net: Use Net for Personal Tracking

I use net (take-home) income and here’s why: taxes are outside my control and vary wildly month to month (especially when I have rental property income). What matters for my personal decision-making is the money that actually hits my account.

Gross income is useful for comparing yourself to others or benchmarking against national averages, but for day-to-day tracking and optimization, net is more practical and actionable.

What Counts as Savings? Everything That Increases Net Worth

Yes to all of these:

  • 401(k) contributions → savings
  • Transfers to savings account → savings
  • Extra mortgage principal → savings (reduces debt = increases net worth)
  • HSA contributions → savings (especially if you’re investing it)
  • Student loan payments beyond minimum → savings
  • Investment account contributions → savings

The key principle: anything that increases your net worth is savings. Anything that doesn’t is spending.

Handling Irregular Income: 3-Month Rolling Average

For your freelance income, I recommend the 3-month rolling average approach. Track when money hits your account (cash basis, not accrual), then calculate savings rate using a 3-month window.

In Beancount, tag your freelance income separately:

2026-03-15 * "Freelance project payment"
  Assets:Checking          1500.00 USD
  Income:Freelance

Then when you calculate savings rate, sum the last 3 months of all income (W2 + freelance) and divide by savings over the same period.

Historical Data: Start Fresh

Start fresh from today. Don’t torture yourself importing 12 months of history right now. You need momentum, not perfection.

Track forward for 2-3 months to establish your baseline, THEN if you’re motivated, go back and import historical data for comparison. Most people never go back, and that’s fine.

A Simple Query to Get You Started

Here’s the basic query I run monthly (adjust dates as needed):

SELECT 
  account, 
  SUM(position) 
WHERE 
  account ~ 'Income:' 
  AND date >= 2026-03-01 
  AND date < 2026-04-01

Run the same query for accounts matching Assets:(Savings|Retirement|Investment): to get your savings. Divide the two, multiply by 100. That’s your savings rate.

Eventually you can write a Python script to automate this, but start manual. You need to understand the data before automating it.

What’s Realistic? 50% in 6 Months is Ambitious But Possible

You’re at 40-45% now. Hitting 50% in 6 months is achievable if:

  • You identify 1-2 major spending categories to optimize (usually dining out, subscriptions, or transportation)
  • You get a raise or bonus (increase income side of equation)
  • You’re disciplined about tracking and reviewing monthly

But honestly? Target 1% improvement per month. That’s sustainable and won’t feel like deprivation. 40% → 46% over 6 months is a huge win. Don’t let perfect be the enemy of good.

No Special Plugins Needed

You don’t need special plugins for this. Beancount + Fava + basic queries will get you 95% of the way there. If you want fancier visualizations, you can export data to a spreadsheet or write custom Python scripts, but start with the basics.

My Biggest Advice

  1. Track for 3 months without judgment. Just observe. Don’t restrict yourself yet. You need an honest baseline.

  2. Review monthly. Set a calendar reminder. Look at your spending by category. Ask: “Does this align with my goals?”

  3. Optimize incrementally. Pick ONE category per month to improve. Compound small wins.

  4. Celebrate progress. Moving from 40% to 45% is MASSIVE. Most Americans save 5-10%. You’re already ahead.

  5. Remember why. Your “why” is early retirement in 12-15 years instead of 30-40. That’s incredibly motivating. Keep that front of mind when you’re tempted to overspend.

You’ve got this, Sarah. The fact that you’re here asking these questions means you’re already on the right path. This community helped me tremendously when I started—happy to answer follow-up questions as you go!

Sarah, Bob here from my bookkeeping practice in Washington. Mike gave you excellent tactical advice—I want to add the business/client perspective since I help people set up these exact workflows.

The Gross vs. Net Question Is More Important Than You Think

Mike’s right that net income is more practical for personal tracking. But let me add one critical nuance: if you’re comparing yourself to FIRE bloggers, savings rate calculators, or published benchmarks, those almost always use gross income.

So my recommendation: Track BOTH.

In your Beancount ledger, you can easily calculate both:

  • Net savings rate (for your personal decision-making)
  • Gross savings rate (for benchmarking and comparing to community standards)

The difference can be substantial. A 50% net savings rate might be 35-40% gross, depending on your tax situation. Both numbers are useful for different purposes.

What Counts as Savings: The Net Worth Test

Mike nailed this. The simple test: Does this transaction increase my net worth?

  • Paying down debt principal → Yes (reduces liabilities)
  • 401(k) contribution → Yes (increases assets)
  • Buying a latte → No (decreases assets for consumption)
  • Buying investment property → Yes (though the cash flow matters too)

One thing people often forget: employer 401(k) match is income AND savings. If your employer contributes $3,000/year, that’s $3,000 more income and $3,000 more savings. Include it in both sides of the equation.

Account Structure Recommendation for Beginners

Since I set these up professionally, here’s the structure I recommend for someone in your situation:

Income:Salary:Gross
Income:Salary:Employer401k
Income:Freelance

Expenses:Taxes:Federal
Expenses:Taxes:State  
Expenses:Taxes:FICA
Expenses:Housing
Expenses:Food
Expenses:Transportation
Expenses:Healthcare
Expenses:Discretionary

Assets:Checking
Assets:Savings:Emergency
Assets:Retirement:401k:Employee
Assets:Retirement:401k:Employer
Assets:Investment:Taxable

Liabilities:StudentLoan (if applicable)

This structure lets you track:

  • Gross income (for gross savings rate)
  • Net income (salary minus taxes)
  • Employer contributions (often forgotten but significant)
  • Debt paydown (if applicable)

The 40-45% Starting Point is Actually Great

Context matters here. You’re a DevOps engineer in Portland saving 40-45%. That’s significantly above average:

  • National average savings rate: 5-10%
  • Average college-educated professional: 15-25%
  • FIRE community target: 50-70%+

You’re already in the top quartile. Don’t beat yourself up. Focus on incremental improvement.

Irregular Income: The Rolling Average Works

Mike’s 3-month rolling average is exactly what I recommend to my freelance clients. It smooths out the volatility and gives you a more accurate picture of sustainable spending.

One additional tip: set aside a percentage of freelance income immediately for taxes. Open a separate savings account called Assets:Savings:TaxReserve and put 25-30% of every freelance payment there. This keeps you honest about your true take-home income.

Historical Data: My Contrarian Take

I slightly disagree with Mike on this one. If you can get 3-6 months of transaction history quickly (bank CSV exports), I’d do it. Here’s why:

You need a baseline to know if you’re improving.

Without historical data, you won’t know if your March 2026 spending is normal or an anomaly. But—and this is critical—don’t let perfect historical data block you from starting. If importing history takes more than 2 hours, skip it and start fresh.

A Practical First Month Plan

Here’s what I tell clients on Day 1:

Week 1: Set up your account structure (spend 1 hour max, don’t overthink)
Week 2: Enter all transactions manually for one week (yes, manually—you need to feel the pain)
Week 3: Set up importers for your bank accounts (use existing tools, don’t write from scratch)
Week 4: Run your first monthly savings rate calculation

By the end of Month 1, you’ll have:

  • A working Beancount setup
  • One month of complete data
  • Your first baseline savings rate number
  • Identified your biggest spending categories

Then in Month 2, you start optimizing.

The Motivation Question

You asked what’s realistic. Here’s the truth: your motivation matters more than your income.

I have clients making $200k saving 30% and clients making $60k saving 55%. The difference isn’t income—it’s intentionality.

You’re here asking these questions, which means you’re intentional. That’s 80% of the battle. The remaining 20% is just execution, which Beancount makes easier.

One Final Tip: Automate Savings First

The easiest way to increase savings rate: automate it before you see the money.

  • Max out 401(k) contributions (it never hits your checking account)
  • Set up automatic transfers to savings on payday
  • Direct deposit a percentage of paycheck to investment account

What you don’t see, you don’t spend. Then track what’s left in Beancount to optimize discretionary spending.

You’re On the Right Path

The fact that you’re thinking about savings rate at all puts you ahead of 90% of Americans. The fact that you’re implementing systematic tracking puts you ahead of 99%.

Beancount will give you the visibility to make smart decisions. But remember: it’s a tool, not the goal. The goal is financial independence and the life you want to live. Tracking is just the mechanism.

Happy to answer follow-up questions—feel free to tag me if you get stuck on account structure or workflow design!