Wow, I step away for a few hours and come back to this incredibly thoughtful discussion. Thank you all for the responses—this is exactly the kind of community support I was hoping for.
“This is your last one. Welcome home.”
That line gave me chills because it’s exactly what I needed to hear. You’re right—I wouldn’t be asking if I wasn’t already decided. The fact that I’ve spent 2 weekends writing importers means I’m past the decision phase. I’m just looking for validation that this crazy text-file accounting thing isn’t a mistake.
Your FIRE queries are gold. I’m definitely going to DM you about the actual BQL syntax because I want to replicate exactly what you’re doing:
- Net worth by account type (I need that taxable vs. tax-advantaged breakdown for Roth conversion ladder planning)
- Savings rate tracking (mine’s at 48% and I want to push it to 55% like yours)
- Years to FI countdown (this is the metric that keeps me motivated)
The “parallel systems for 1-2 months” advice is perfect. I’m already doing this without realizing it—Monarch is my safety net while I build Beancount confidence. Once I trust the numbers match, I’ll cut Monarch loose.
@accountant_alice - The “Permanence vs. Convenience” Tradeoff
Your CPA perspective crystallized something I’ve been feeling but couldn’t articulate: commercial tools are optimized for acquisition, not retention.
That’s exactly it. Mint didn’t shut down because users were unhappy—it shut down because Intuit’s acquisition strategy changed. My 9 years of loyalty meant nothing to their quarterly earnings targets. The incentives are fundamentally misaligned.
The house-buying vs. renting analogy is perfect. I’m done renting financial infrastructure from landlords who can evict me on 30 days’ notice. Beancount is my mortgage payment (upfront learning investment) for permanent ownership.
Your parallel system roadmap (Month 1: current month only, Month 2: bulk-import historical, Month 3: commit fully) is now my migration plan. I’m currently in Month 1, and I’ll follow your script for Months 2-3.
One specific question: you mentioned helping FIRE clients with Beancount workflows. Do you have any example ledger structures you’d be willing to share? I’m particularly interested in:
- How to structure taxable vs. tax-advantaged accounts (separate top-level accounts vs. subaccounts?)
- Best practices for tracking cost basis on investments (especially for tax-loss harvesting)
- Handling 401k employer match (is this income or direct asset increase?)
@newbie_accountant - Let Me Answer Your Questions from My Experience So Far
Your questions are exactly the ones I had 1 month ago. Let me share what I’ve learned (and @helpful_veteran and @accountant_alice can correct me if I’m wrong):
1. Bank imports aren’t automatic like Mint, but they’re not as manual as you fear:
You don’t need to download CSVs weekly. Here’s my workflow:
- I download CSVs once per month (end of month)
- My importers are Python scripts that process those CSVs (took 2 weekends to set up, now I just run them)
- Once configured, importing is literally: put CSV in folder, run command, done
Is it as seamless as Mint’s auto-sync? No. But it’s also not “manually download 9 files and hand-categorize 500 transactions.” The importers do the heavy lifting.
Some people use tools like Plaid or bank APIs to automate downloads. I haven’t gone there yet, but it’s possible if you want true automation.
2. Mobile: Fava works on mobile browsers
I run Fava on my laptop and access it via my phone’s browser when I’m out. It’s not a native app, but it works. The UI is responsive enough to check balances and recent transactions.
For checking “did X transaction clear?” I honestly still use my bank’s mobile app. Beancount is my single source of truth for analysis, not for real-time transaction monitoring.
3. Investment tracking: Beancount handles this natively
You don’t manually enter stock prices daily. Beancount has a “bean-price” tool that fetches current prices from Yahoo Finance (or other sources). I run it once per month when I update my ledger.
For your ETFs (VTI, VXUS, BND), Beancount can pull prices automatically. For your 401k funds, you might need to manually enter prices (depends on whether they have ticker symbols).
Unrealized gains/losses? Beancount calculates this automatically once you have prices. The “holdings” report in Fava shows exactly what Mint showed: cost basis, current value, gain/loss.
4. Minimum viable setup for FIRE tracking:
Here’s what I started with (and it works):
1990-01-01 open Assets:Checking
1990-01-01 open Assets:Savings
1990-01-01 open Assets:Brokerage
1990-01-01 open Assets:IRA
1990-01-01 open Assets:_401k_
1990-01-01 open Liabilities:CreditCard
1990-01-01 open Income:Salary
1990-01-01 open Expenses:Groceries
1990-01-01 open Expenses:Rent
1990-01-01 open Expenses:Utilities
That’s literally it. 10 accounts. Start there. Add granularity later (split Expenses:Groceries into Expenses:Food:Groceries vs. Expenses:Food:Restaurants).
5. Resources for non-technical users:
Honestly, the beancount.io docs ARE technical. But here’s what helped me:
- Plain Text Accounting website (plaintextaccounting.org): Has beginner-friendly guides
- This forum: Search for “getting started” posts
- YouTube: There are a few Beancount tutorial videos (not many, but helpful)
For “how to run a Python script”:
- On Mac: Open Terminal app, type
python3 script.py, press Enter
- On Windows: Open Command Prompt, type
python script.py, press Enter
That’s it. Scary at first, but it’s literally typing one line and pressing Enter.
My 1-Month Progress Update
Since I posted this, I’ve made more progress:
What’s working:
- 3 bank accounts importing cleanly (Chase, Ally, Vanguard)
- 9 years of Mint historical data loaded (took 8 hours to reconcile, but it’s done)
- Fava dashboard showing net worth trends (SO satisfying to see my FIRE progress visualized)
- Basic FIRE queries working (net worth, savings rate, income vs. expenses)
What I’m still figuring out:
- Investment cost basis tracking (I have the shares, but cost basis calculations for tax-loss harvesting aren’t perfect yet)
- Credit card rewards (how do you account for cash back? Income? Expense reduction? I’m overthinking this)
- Employer 401k match (same question as above—is this Income or direct Assets increase?)
Biggest win:
I wrote a custom query to answer: “If I maintain current savings rate, when do I hit my FI number?”
Answer: 12.4 years (I’m 32 now, FI at 44.4 years old)
Mint could never tell me that. Monarch can’t tell me that. Beancount can, because I control the calculation.
Biggest frustration:
The learning curve is real. I’ve spent probably 15-20 hours total over the past month (setup, import configuration, historical data reconciliation, learning BQL). That’s a lot of weekend time.
But @accountant_alice’s framing helps: this is my down payment on 30 years of permanence. 20 hours now saves me 3-4 future migrations.
Your questions tell me you’re more prepared than you think. You understand double-entry accounting. You know what debits/credits are. That’s 70% of the battle.
The technical stuff (running Python scripts, using CLI) sounds scarier than it is. If I can do it (I’m a financial analyst, not a programmer), you can too.
Start with one account. Just one. Pick your checking account, download last month’s CSV, manually create 10 Beancount transactions. See if they balance. That’s your “minimum viable setup.”
Once you prove to yourself you can do it for one account, add a second. Then a third. Build confidence incrementally.
Final Thought: This Community Sold Me
I came to this thread to ask “is Beancount worth it?” and got three thoughtful, generous responses that:
- Validated my decision (helpful_veteran)
- Explained the professional why (accountant_alice)
- Asked the questions I was too nervous to ask (newbie_accountant)
This is the community I want to be part of for the next 30 years of my FIRE journey. Not a VC-backed company that might pivot or get acquired. A community of people who care about permanent solutions and helping each other succeed.
I’m all in. Mint → Empower → YNAB → Monarch → Beancount was the journey. Beancount is the destination.
Thanks for welcoming me home.