When I started my FIRE journey five years ago, I tracked everything in Mint. It was simple, automated, and free. Then Mint shut down in 2024, forcing me to evaluate alternatives. I tried Personal Capital (now Empower), YNAB, and Monarch Money—all great tools, but they all shared the same fundamental limitation: I was constrained by whatever metrics the vendor decided to build.
Want to calculate your Coast FIRE number? Hope your tool supports it. Need to model Roth conversion ladders? Better find a different app. Want to track withdrawal rate readiness across 7 different account types? Good luck.
That’s when I discovered Beancount and its powerful query language (BQL). After 18 months of using it daily, I’ve built a library of FIRE-specific queries that commercial tools simply can’t match. Here’s what I’ve learned.
The Power of Custom Queries
Commercial FIRE tools like Fireleap and My Financial Freedom Tracker offer built-in dashboards, but you’re limited to their feature set. Beancount’s query language gives you SQL-like flexibility to calculate anything—not just what a product manager decided you needed.
Here are the five essential FIRE queries I run monthly:
1. Net Worth by Account Type (Taxable vs Tax-Advantaged)
This is crucial for early retirement planning because you need taxable assets to bridge the gap until you can access retirement accounts penalty-free at 59.5.
SELECT
CASE
WHEN account ~ 'Assets:Brokerage' THEN 'Taxable'
WHEN account ~ 'Assets:(401k|IRA|Roth)' THEN 'Tax-Advantaged'
WHEN account ~ 'Assets:RealEstate' THEN 'Real Estate'
ELSE 'Other'
END as account_type,
sum(position) as balance
WHERE account ~ 'Assets|Liabilities'
GROUP BY account_type
ORDER BY balance DESC;
My current breakdown:
- Tax-Advantaged: $287,000 (401k + IRA)
- Taxable Brokerage: $143,000
- Real Estate Equity: $95,000
- Total Net Worth: $525,000
This tells me I need to shift more savings to taxable accounts since I’m targeting retirement at 45 (14 years before penalty-free 401k access).
2. Savings Rate Percentage
The most important FIRE metric. Every 10% increase in savings rate can cut years off your timeline.
-- Income for year
SELECT sum(position) as total_income
WHERE account ~ 'Income' AND year = 2025;
-- Expenses for year
SELECT sum(position) as total_expenses
WHERE account ~ 'Expenses' AND year = 2025;
-- Calculate: (Income - Expenses) / Income * 100
My 2025 numbers:
- Income: $135,000
- Expenses: $54,000
- Savings Rate: 60%
At 60% savings rate, I’m about 12 years from FI (started tracking in 2021, so 8 years remaining).
3. Withdrawal Rate Readiness
Are you ready to retire today? This query tells you.
-- Annual expenses (trailing 12 months)
SELECT sum(position) as annual_expenses
WHERE account ~ 'Expenses'
AND date >= 2025-01-01
AND date < 2026-01-01;
-- Portfolio value
SELECT sum(position) as portfolio
WHERE account ~ 'Assets:(Brokerage|401k|IRA|Roth)';
-- Withdrawal rate = Annual Expenses / Portfolio * 100
-- Target: 4% or lower for "safe" retirement
My current status:
- Annual Expenses: $54,000
- Portfolio: $430,000 (excluding real estate)
- Withdrawal Rate: 12.6%
I need $1.35M to hit the 4% rule ($54k ÷ 0.04). Still a ways to go!
4. Coast FIRE Number
This is my favorite metric. Coast FIRE means you’ve saved enough that compound growth alone will reach your FI number—even if you never invest another dollar.
Formula:
Coast FIRE Number = FIRE Target ÷ (1 + Return Rate)^Years Remaining
-- I calculate this manually since BQL doesn't have exponential functions
-- FIRE Target: $1.35M (25x expenses)
-- Current Age: 33
-- Retirement Age: 65 (conservative Coast FIRE target)
-- Years Remaining: 32
-- Expected Return: 7% annually
-- Coast FIRE Number = 1,350,000 / (1.07^32) = 1,350,000 / 8.72 = $154,817
-- Current portfolio: $430,000
-- Coast FIRE target: $154,817
-- Status: Already achieved Coast FIRE! 🎉
Discovering I’d already reached Coast FIRE was life-changing. It means even if I quit my tech job tomorrow and worked as a barista just covering expenses, I’d still retire a millionaire at 65. The pressure is off.
5. Tax-Advantaged Ratio
For early retirement, you need enough taxable assets to bridge the gap until 59.5 when you can access retirement accounts penalty-free (or use a Roth conversion ladder, but that takes planning).
SELECT
sum(CASE WHEN account ~ 'Assets:Brokerage' THEN position ELSE 0 END) as taxable,
sum(CASE WHEN account ~ 'Assets:(401k|IRA|Roth)' THEN position ELSE 0 END) as tax_advantaged,
sum(CASE WHEN account ~ 'Assets:Brokerage' THEN position ELSE 0 END) /
sum(CASE WHEN account ~ 'Assets:(401k|IRA|Roth)' THEN position ELSE 0 END) * 100 as taxable_ratio
WHERE account ~ 'Assets:(Brokerage|401k|IRA|Roth)';
My ratio:
- Taxable: $143,000
- Tax-Advantaged: $287,000
- Ratio: 50% taxable
I’m aiming for 60-70% taxable to ensure I have enough liquid assets in early retirement.
The Learning Curve Is Worth It
I won’t sugarcoat it: BQL has a learning curve. I spent probably 15-20 hours over 3 months building these queries. But compare that to:
- Mint shutting down: Lost 9 years of data, spent 40 hours migrating
- YNAB subscription: $99/year forever
- Monarch Money: $99/year with features I don’t need
- Personal Capital: “Free” but aggressively upsells wealth management
Beancount queries are permanent. I control my data. These queries will work in 10 years, 20 years, 30 years—regardless of what companies shut down or change pricing.
Tips for Getting Started
- Start with one query: Don’t try to build all five at once. Master net worth first.
- Save queries as .bql files: I have a folder with reusable templates.
- Use metadata liberally: Tags like make queries more flexible.
- Test in small increments: Run queries on one month of data first, then expand.
- Join the community: People here have solved problems you’ll encounter.
What FIRE Metrics Do You Track?
I’m curious what other FIRE folks are tracking in Beancount:
- Anyone modeling Roth conversion ladders?
- Tracking geographic arbitrage scenarios (moving to lower cost-of-living area)?
- Calculating true “time to FI” accounting for market volatility?
- Building Monte Carlo simulations for success probability?
I’m happy to share my full query library on GitHub if there’s interest. These five queries have transformed how I think about my FIRE journey—no longer constrained by what a vendor decides to build.
What queries do you wish existed but haven’t built yet? Let’s crowdsource the ultimate FIRE query library.
Tools mentioned: Beancount query language, Coast FIRE calculator principles, Trinity Study (4% rule)