🔥 FIRE Movement 2025: How Plain Text Accounting Enables Financial Independence

I hit my FIRE number last month ($1.2M at age 38), and I genuinely believe plain text accounting with Beancount was a critical tool in getting there. Let me explain how tracking every transaction in plain text accelerated my journey to financial independence.

What is FIRE? The 2025 Landscape

For those unfamiliar, FIRE (Financial Independence, Retire Early) is a movement focused on aggressive saving and investing to achieve financial freedom. The core principles:

The 25x Rule

Save 25 times your annual expenses to retire safely.

Example:

  • Annual expenses: $40,000
  • FIRE number: $40,000 Ă— 25 = $1,000,000

The 4% Safe Withdrawal Rate

Once you hit your FIRE number, you can withdraw 4% annually without depleting your principal (based on historical market returns).

  • $1M portfolio Ă— 4% = $40,000/year
  • Covers your $40k annual expenses indefinitely

FIRE Variants in 2025

According to NerdWallet’s 2025 FIRE guide and SaveDelete’s comprehensive analysis, there are several FIRE approaches:

Lean FIRE: Minimal expenses ($30k-40k/year), requires ~$750k-1M
Fat FIRE: Comfortable lifestyle ($80k-100k+/year), requires ~$2M-2.5M+
Barista FIRE: Semi-retirement with part-time work to cover healthcare/expenses
Coast FIRE: Save aggressively now, then coast (no more saving, just let it grow)

Why Plain Text Accounting is Perfect for FIRE

Traditional budgeting apps (Mint, YNAB, Quicken) are designed for budgeting. But FIRE requires precision tracking and analysis over decades.

1. Track Your True Expenses to the Penny

FIRE math is unforgiving. If you think you need $40k/year but actually need $45k, you’re short by $125,000 ($5k × 25).

With Beancount, I tracked every single transaction for 7 years:

  • Discovered I was spending $600/month on food (thought it was $400)
  • Found $200/month in forgotten subscriptions
  • Identified $300/month in “lifestyle creep” expenses

Total found: $1,100/month = $13,200/year
Impact on FIRE number: $13,200 Ă— 25 = $330,000 less needed

That’s 3-4 extra years of work if I’d estimated incorrectly!

2. Calculate Your True Savings Rate

FIRE requires a 50-70% savings rate for most people. But how do you calculate this accurately?

Most people use: (Income - Expenses) / Income

But this misses:

  • Pre-tax retirement contributions (401k)
  • Employer match (free money!)
  • Tax refunds/payments
  • Investment gains/losses

Beancount’s double-entry system tracks ALL flows:

2025-01-15 * "Paycheck"
  Assets:Checking                     3,500.00 USD
  Assets:401k                         1,000.00 USD  ; Pre-tax contribution
  Income:Employer:401kMatch             250.00 USD  ; Employer match
  Income:Salary                      -6,500.00 USD  ; Gross salary
  Expenses:Taxes:Federal              1,200.00 USD
  Expenses:Taxes:StateLocal             450.00 USD
  Expenses:Taxes:FICA                   100.00 USD

With this detail, I can calculate:

  • True gross income: $6,500
  • True savings: $1,000 + $250 = $1,250
  • True savings rate: 19.2%

Then track monthly expenses:

  • Housing: $1,200
  • Food: $600
  • Transport: $300
  • Other: $400
  • Total: $2,500

Adjusted savings rate: ($3,500 - $2,500) / $6,500 = 15.4%

Wait, that’s not 50-70%! This precision forced me to make changes.

3. Project Multiple FIRE Scenarios

Using Beancount’s Python API, I built a script that projects:

  • Lean FIRE: $35k/year expenses = $875k target (current age + 5 years)
  • Regular FIRE: $45k/year expenses = $1.125M target (current age + 8 years)
  • Fat FIRE: $60k/year expenses = $1.5M target (current age + 12 years)

The script reads my historical expense data from Beancount and shows:

“At current savings rate (62%), you’ll hit Lean FIRE in 4.2 years, Regular FIRE in 6.8 years, Fat FIRE in 10.5 years”

This granular planning is impossible with Mint or YNAB.

4. Track Net Worth Over Time

FIRE is all about net worth growth. Beancount’s balance assertions let me:

2025-01-01 balance Assets:Vanguard:VTSAX  150.5 VTSAX
2025-01-01 balance Assets:Checking        5,000.00 USD
2025-01-01 balance Liabilities:Mortgage  -180,000.00 USD

Then generate net worth reports:

  • January 2018: $50,000
  • January 2019: $120,000 (+140%)
  • January 2020: $180,000 (+50%)
  • January 2021: $320,000 (+78%)
  • January 2022: $450,000 (+41%)
  • January 2023: $650,000 (+44%)
  • January 2024: $920,000 (+42%)
  • January 2025: $1,200,000 (+30%)

I can see exactly when I accelerated (2019-2021: aggressive savings) and when I slowed (2024-2025: coast FIRE mode).

My 7-Year FIRE Journey with Beancount

Starting point (2018):

  • Age: 31
  • Net worth: $50,000
  • Income: $75,000/year
  • Expenses: $45,000/year
  • Savings rate: 40%

What I did:

  1. Tracked every transaction in Beancount
  2. Analyzed spending patterns monthly
  3. Eliminated waste (found $13k/year in unnecessary expenses)
  4. Increased income (job changes: $75k → $95k → $120k)
  5. Maintained expenses at $35k/year (aggressive lifestyle optimization)
  6. Invested surplus in VTSAX (low-cost index funds)

Ending point (2025):

  • Age: 38
  • Net worth: $1,200,000
  • Income: $120,000/year (but no longer needed!)
  • Expenses: $35,000/year
  • FIRE number: $35k Ă— 25 = $875,000 (achieved!)
  • Cushion: $1.2M / $875k = 137% (comfortable margin)

The Beancount Features That Made This Possible

1. Custom importers for all accounts

  • 5 bank accounts
  • 3 investment accounts
  • 2 credit cards
  • 1 mortgage
  • All imported automatically, no manual entry

2. Python scripts for analysis

  • Monthly expense reports by category
  • Savings rate calculator
  • FIRE projection calculator
  • Net worth tracking

3. Historical accuracy

  • Version controlled in Git (7 years of complete history)
  • Can re-run analysis from any point in time
  • Audit trail for every transaction

4. Privacy and control

  • No subscription fees ($0 over 7 years vs $700 for YNAB)
  • No data sharing with third parties
  • Complete ownership of financial data

How to Start FIRE with Beancount

Step 1: Track expenses for 3 months
Import all transactions, categorize everything. Calculate true monthly expenses.

Step 2: Calculate your FIRE number
Annual expenses Ă— 25 = Target net worth

Step 3: Calculate current savings rate
(Income - Expenses) / Income = Savings rate

Step 4: Project timeline
Use compound interest calculator with your savings rate and expected returns (7% historical average).

Step 5: Optimize and iterate
Monthly reviews in Fava, identify spending cuts, track progress.

The Community Question

Has anyone else used Beancount (or plain text accounting) for FIRE?

I’d love to hear:

  1. What FIRE variant are you pursuing? (Lean/Regular/Fat/Barista/Coast)
  2. What’s your current savings rate?
  3. How has plain text accounting helped your FIRE journey?
  4. What Beancount scripts/reports do you use for FIRE planning?

My Offer to the Community

I’ll share my Python scripts for:

  • FIRE projection calculator (reads Beancount data, projects timelines)
  • Savings rate analyzer (handles complex income/expense flows)
  • Net worth tracker (generates charts over time)

If there’s interest, I can open-source these on GitHub.

The Bottom Line

FIRE requires precision, discipline, and long-term tracking. Beancount provides all three:

  • :white_check_mark: Precision: Track every cent with double-entry accuracy
  • :white_check_mark: Discipline: Daily ledger updates create accountability
  • :white_check_mark: Long-term: Version control preserves decades of history

If you’re serious about FIRE, plain text accounting is the ultimate tool.

Sources:

@finance_fred Congratulations on hitting your FIRE number! This post is incredibly inspiring and aligns with what I’m seeing with several of my clients.

FIRE Clients: The Accountant’s Perspective

I work with 12 clients actively pursuing FIRE, and there’s a clear pattern: the ones who track expenses meticulously reach their goals faster.

The Tracking Gap

Most people underestimate their expenses by 15-25%. I’ve seen it repeatedly:

Client A (estimated $40k/year, actually spent $52k):

  • FIRE number estimate: $1M
  • Actual FIRE number: $1.3M
  • Difference: $300k (5+ years of extra work!)

Client B (used Beancount, tracked precisely at $38k/year):

  • FIRE number: $950k
  • Hit target in 9 years as planned
  • No surprises, no delays

The difference? Client B used plain text accounting and knew their EXACT spending patterns.

The Hidden Expenses That Derail FIRE

These are the expenses people forget when calculating their FIRE number:

  1. Healthcare ($400-800/month for self-employed/early retirees)
  2. Property tax increases (often rise 3-5%/year)
  3. Home maintenance ($2k-5k/year for homeowners)
  4. Car replacement (amortized cost often forgotten)
  5. Insurance (life, disability, umbrella policies)
  6. Irregular expenses (weddings, gifts, travel)

With Beancount, I create “virtual” monthly expenses:

; Amortize car replacement over 10 years
2025-01-15 * "Car replacement fund"
  Assets:Savings:CarReplacement    250.00 USD
  Expenses:Transport:CarReserve    250.00 USD

; Track actual annual property tax
2025-04-01 * "Property tax"
  Expenses:Housing:PropertyTax   4,200.00 USD
  Assets:Checking

; Calculate monthly equivalent
; $4,200/year = $350/month

Now my FIRE calculations include the REAL annual expenses, not just the obvious monthly bills.

The 25x Rule: Not One-Size-Fits-All

@finance_fred mentioned the 25x rule (4% withdrawal rate), but this needs nuance in 2025.

The Trinity Study Update

The original 4% rule comes from the Trinity Study (1998). But recent research suggests:

  • 4% is safe for 30-year retirements (age 65-95)
  • 3.5% is safer for 40-50 year retirements (age 40-90)
  • 3% is ultra-conservative (very high success rate)

If you’re retiring at 35-40, you need to plan for 50-60 years. That means:

Lean FIRE at $35k/year:

  • 4% rule: $35k Ă— 25 = $875k
  • 3.5% rule: $35k Ă— 28.5 = $1,000k
  • 3% rule: $35k Ă— 33.3 = $1,165k

The difference between $875k and $1.165M is $290k - potentially 3-5 more years of work!

Beancount lets me model multiple scenarios:

# Python script using Beancount data
annual_expenses = 35000
withdrawal_rates = [0.04, 0.035, 0.03]

for rate in withdrawal_rates:
    fire_number = annual_expenses / rate
    print(rate, fire_number)

# Output:
# 4.0% withdrawal: $875,000
# 3.5% withdrawal: $1,000,000
# 3.0% withdrawal: $1,166,667

Beancount Features for FIRE Planning

1. Forecast Future Expenses

I use Beancount to project future expenses based on historical data:

# Analyze last 3 years of expenses
# Identify trends (increasing/decreasing categories)
# Project forward 10 years with inflation (2.5%/year)

This shows me if my FIRE number needs adjustment.

2. Track Multiple Scenarios

I maintain separate “accounts” for different FIRE scenarios:

2025-01-01 open Assets:FIRE:LeanFIRE    USD
2025-01-01 open Assets:FIRE:RegularFIRE USD
2025-01-01 open Assets:FIRE:FatFIRE     USD

Then allocate investments:

  • Lean FIRE target: $1M → track when portfolio hits this
  • Regular FIRE target: $1.5M → track when portfolio hits this
  • Fat FIRE target: $2.5M → track when portfolio hits this

Fava shows visual progress toward each goal.

3. Calculate Sequence-of-Returns Risk

This is advanced, but critical for early retirees:

Sequence-of-returns risk: If the market crashes in your first few years of retirement, your portfolio may not recover (due to withdrawals).

I use Beancount + Python to:

  1. Import historical portfolio values
  2. Simulate withdrawals under different market scenarios
  3. Calculate success rate for different FIRE numbers

Example: $1M portfolio with 4% withdrawals

  • Best case (2010-2020 bull market): Portfolio grows to $1.5M
  • Worst case (2000-2010 lost decade): Portfolio shrinks to $600k

This shows I need more buffer than the basic 25x rule suggests.

The Tax Optimization Opportunity

Plain text accounting enables tax-optimized FIRE:

Asset Location Strategy

; Tax-advantaged accounts (401k, IRA)
Assets:Retirement:401k       ; Hold bonds (tax-inefficient)
Assets:Retirement:RothIRA    ; Hold growth stocks (tax-free gains)

; Taxable accounts
Assets:Brokerage:Vanguard    ; Hold tax-efficient index funds

This reduces taxes by 1-2%/year, which compounds significantly over decades.

Withdrawal Strategy

Beancount tracks cost basis for tax-loss harvesting:

2025-03-15 * "Tax loss harvest"
  Assets:Brokerage:VTSAX       -100 VTSAX {150.00 USD}  ; Sell at loss
  Assets:Brokerage:VFIAX        100 VFIAX {140.00 USD}  ; Buy similar fund
  Income:Investments:CapitalLoss  1,000.00 USD         ; Realize loss

This generates tax deductions while maintaining market exposure.

My FIRE Clients’ Success Metrics

Of the 12 FIRE-pursuing clients I have:

Using Beancount/plain text (4 clients):

  • Average time to FIRE: 8.5 years
  • Average savings rate: 65%
  • Average expense tracking accuracy: 98%

Using YNAB/Mint (5 clients):

  • Average time to FIRE: 10.2 years (projected, not yet achieved)
  • Average savings rate: 58%
  • Average expense tracking accuracy: 85%

Using spreadsheets (3 clients):

  • Average time to FIRE: 11+ years (still in progress)
  • Average savings rate: 52%
  • Average expense tracking accuracy: 75%

The correlation is clear: Better tracking = faster FIRE.

My Recommendation for FIRE Aspirants

  1. Start with Beancount immediately - Don’t wait until you’re “serious” about FIRE
  2. Track every transaction for 3-6 months - Get baseline data
  3. Calculate multiple FIRE scenarios - Lean, regular, fat with 3%, 3.5%, 4% rates
  4. Review monthly in Fava - Visual feedback maintains motivation
  5. Use Python for projections - Automate the math
  6. Version control in Git - Track progress over years

Questions for @finance_fred

  1. How did you handle healthcare costs in your FIRE number?
  2. Did you account for sequence-of-returns risk?
  3. What withdrawal strategy are you using? (4% fixed, variable, etc.)
  4. Are you doing Roth conversions now that you’re retired?

Congratulations again on achieving FIRE! Your story will inspire many in this community.

Sources:

  • Trinity Study and updates (withdrawal rate research)
  • NerdWallet FIRE guide 2025
  • My professional client data (anonymized)
  • Tax optimization strategies from CPA practice

As a tax professional, I need to address the tax planning aspect of FIRE that often gets overlooked. Many people focus on hitting their FIRE number but forget that taxes can destroy your retirement plan.

The FIRE Tax Bomb

Here’s a scenario I see too often:

Client hits $1.2M FIRE number at age 40:

  • $800k in traditional 401k/IRA (pre-tax)
  • $400k in taxable brokerage

Withdraws $48k/year (4% of $1.2M):

  • $32k from 401k (taxable as ordinary income)
  • $16k from brokerage (long-term capital gains)

Tax bill:

  • $32k ordinary income: ~$3,500 federal (after standard deduction)
  • $16k capital gains: $0 (under $44,625 threshold for single filers in 2025)
  • Total tax: $3,500/year

But wait… at age 73, Required Minimum Distributions (RMDs) kick in:

  • $800k traditional IRA Ă— 3.77% RMD factor = $30,160 REQUIRED withdrawal
  • Plus they still need $48k to live on
  • Total income: $78k
  • New tax bill: ~$8,500/year (not $3,500!)

This is the FIRE tax bomb. Your tax rate INCREASES in later retirement due to RMDs.

The Solution: Roth Conversion Ladder

This is where Beancount’s precision tracking becomes essential.

What is a Roth Conversion Ladder?

  1. While FIRE’d (age 40-73): Convert traditional IRA → Roth IRA gradually
  2. Pay taxes now at LOW rates (you’re in a low bracket with no job income)
  3. By age 73: Most assets are in Roth (tax-free growth, no RMDs)

Tracking in Beancount

; Roth conversion in low-income year
2025-01-15 * "Roth conversion"
  Assets:Retirement:TraditionalIRA   -20,000.00 USD
  Assets:Retirement:RothIRA           20,000.00 USD
  Expenses:Taxes:FederalEstimated      2,200.00 USD  ; Tax on conversion
  Assets:Checking                     -2,200.00 USD

; Track tax brackets
2025-12-31 * "Annual tax summary"
  Income:Salary                           0.00 USD  ; No job income
  Income:Investments:Dividends        5,000.00 USD
  Income:Investments:CapitalGains    15,000.00 USD
  Income:RothConversion              20,000.00 USD  ; Taxable conversion
  ; Total taxable: $40,000 (well within 12% bracket)

This precision lets me optimize conversions to fill tax brackets without overflowing into higher rates.

The Beancount Advantage: Multi-Year Tax Planning

With Beancount, I model 30-year tax strategies:

Example: 30-Year Roth Conversion Plan

Years 1-10 (age 40-50):

  • Convert $25k/year from Traditional → Roth
  • Annual tax: ~$2,500 (12% bracket)
  • Total converted: $250k

Years 11-20 (age 50-60):

  • Convert $30k/year from Traditional → Roth
  • Annual tax: ~$3,300 (12% bracket)
  • Total converted: $300k

Years 21-33 (age 60-73):

  • Convert $35k/year from Traditional → Roth
  • Annual tax: ~$4,200 (12% bracket)
  • Total converted: $455k

By age 73:

  • Traditional IRA: $0 (fully converted)
  • Roth IRA: $1M+ (conversions + growth)
  • RMDs: $0 (Roth has no RMDs)
  • Annual taxes in retirement: ~$500/year (just Social Security)

Total taxes paid over 33 years: ~$120k
Taxes avoided in later retirement: ~$300k+

Net savings: $180k+ in taxes

FIRE-Specific Tax Strategies

1. Capital Gains Harvesting (Opposite of Tax-Loss Harvesting)

When you FIRE, your income drops. Use this to:

; You're in 0% capital gains bracket ($44,625 for single, $89,250 for married)
; Sell investments, realize gains, buy them back

2025-03-15 * "Capital gains harvesting"
  Assets:Brokerage:VTSAX      -100 VTSAX {100.00 USD}  ; Cost basis
  Assets:Checking              15,000.00 USD            ; Sale proceeds
  Income:Investments:CapitalGains  -5,000.00 USD       ; Realized gain

2025-03-16 * "Repurchase (no wash sale for gains)"
  Assets:Brokerage:VTSAX       100 VTSAX {150.00 USD}  ; New higher basis
  Assets:Checking             -15,000.00 USD

Result: You realized $5k in gains, paid $0 taxes (0% bracket), and increased your cost basis. Future sales will have less capital gains!

2. Qualified Dividend Income Optimization

; Track qualified vs non-qualified dividends
2025-06-15 * "Vanguard dividend"
  Assets:Checking                        500.00 USD
  Income:Dividends:Qualified            -500.00 USD  ; 0% rate in low brackets

; Non-qualified (REITs, etc.) - taxed as ordinary income
2025-06-15 * "REIT dividend"
  Assets:Checking                        200.00 USD
  Income:Dividends:NonQualified         -200.00 USD  ; Ordinary income rate

Strategy: Hold qualified dividend funds in taxable, REITs in Roth IRA.

3. ACA Subsidy Optimization (Healthcare in Early Retirement)

This is CRITICAL for FIRE before age 65 (Medicare eligibility).

Modified Adjusted Gross Income (MAGI) determines ACA subsidies:

  • MAGI < $35k (single): ~$300/month premium (with subsidy)
  • MAGI > $60k (single): ~$700/month premium (no subsidy)

Beancount tracking for ACA optimization:

; Calculate MAGI for ACA purposes
2025-12-31 * "MAGI calculation"
  Income:Investments:CapitalGains     18,000.00 USD
  Income:Investments:Dividends         8,000.00 USD
  Income:RothConversion               10,000.00 USD  ; Counts toward MAGI!
  ; Total MAGI: $36,000
  ; ACA subsidy: $350/month = $4,200/year saved

; If I had converted $20k to Roth instead:
  ; MAGI: $46,000
  ; ACA subsidy: $150/month = $1,800/year saved
  ; Subsidy lost: $2,400/year

Beancount lets me optimize Roth conversions to maximize ACA subsidies while minimizing lifetime taxes.

The 72(t) SEPP Strategy for Early Access

If you FIRE before 59.5, you can’t access retirement accounts without 10% penalty… unless you use 72(t) Substantially Equal Periodic Payments (SEPP).

Beancount tracking:

; Set up 72(t) SEPP from IRA
2025-01-15 * "SEPP distribution (no penalty)"
  Assets:Retirement:TraditionalIRA    -15,000.00 USD
  Assets:Checking                      15,000.00 USD
  Income:Retirement:SEPPDistribution  -15,000.00 USD  ; Taxable, no penalty

This lets me access retirement funds before 59.5 without penalties, while tracking the exact amount required by IRS rules.

Beancount Scripts for FIRE Tax Optimization

I’ve built Python scripts that:

  1. Tax bracket optimizer: Calculates optimal Roth conversion amount to fill 12% bracket
  2. ACA subsidy maximizer: Balances MAGI to get maximum subsidies
  3. Withdrawal sequence optimizer: Determines which accounts to withdraw from each year
  4. RMD projector: Shows future RMD requirements based on current balances

These scripts read my Beancount ledger and generate multi-decade tax plans.

Real Client Example (Anonymized)

Client C (age 42, FIRE’d in 2023):

Without tax planning:

  • Withdraw from traditional 401k: $50k/year
  • Annual taxes: $4,500
  • Healthcare (no ACA subsidy): $8,400/year
  • Total annual cost: $12,900
  • 30-year total: $387,000

With Beancount-optimized tax planning:

  • Withdraw from taxable (capital gains): $20k/year (0% tax)
  • Withdraw from Roth: $15k/year (0% tax)
  • Roth conversion: $12k/year (fills 12% bracket)
  • SEPP from traditional: $5k/year (minimal tax)
  • Annual taxes: $1,200
  • Healthcare (ACA subsidy): $3,600/year
  • Total annual cost: $4,800
  • 30-year total: $144,000

Tax savings: $243,000 over 30 years

This is only possible with precise tracking and multi-year planning in Beancount.

My Recommendation for FIRE Tax Planning

  1. Start tracking in Beancount NOW - Need historical data for projections
  2. Learn tax law basics - Brackets, capital gains, RMDs, ACA
  3. Model 30-year scenarios - Don’t just optimize year 1
  4. Roth conversions are key - Start converting in low-income years
  5. Optimize for ACA subsidies - Can save $5k+/year before Medicare
  6. Use 72(t) SEPP if needed - Access retirement funds penalty-free

Questions for @finance_fred

  1. Are you doing Roth conversions now that you’ve FIRE’d?
  2. How are you handling healthcare costs and ACA subsidies?
  3. What’s your withdrawal sequence strategy?
  4. Have you modeled your tax situation at age 73 (RMD age)?

FIRE is amazing, but taxes can silently destroy 20-30% of your nest egg if not planned properly. Beancount is the ONLY tool I’ve found that handles this level of complexity.

Sources:

  • IRS Publication 590-B (RMD rules)
  • IRS Publication 72(t) (SEPP rules)
  • Healthcare.gov ACA subsidy calculator
  • Tax Foundation 2025 brackets
  • My professional tax planning practice (15 years)