Hey everyone,
I hope this finds you all well! I’ve been meaning to post about this topic for a while, and with 2026’s significant 529 rule changes, I figured now is the perfect time to discuss how we’re tracking these accounts in Beancount.
The Big 2026 Changes
If you haven’t caught up on the news yet:
- K-12 withdrawal limit DOUBLED from $10,000 to $20,000 per student (thanks to the One Big Beautiful Bill Act of 2025)
- Qualified K-12 expenses expanded (effective July 2025) to include curriculum materials, textbooks, tutoring services, educational therapies, and standardized test fees
- This is a game-changer for families considering private school or supplemental education
Why I’m Posting This
I’ve been tracking my kids’ 529 plans in Beancount for about 3 years now, and I’ve learned a lot through trial and error. But with these new 2026 rules, I’m rethinking my structure. More importantly, I see a lot of new parents joining our community, and I want to help them avoid the mistakes I made when I started.
The Core Tracking Challenge
Managing 529 accounts in Beancount involves juggling several dimensions:
Investment Tracking:
- Contributions (with gift tax considerations - $19,000/person limit in 2026)
- Investment returns and market value updates
- State tax deduction eligibility (varies widely by state)
- Multiple beneficiaries (if you have multiple kids)
Expense & Tax Compliance:
- Qualified education expenses with proper documentation
- The new $20,000 annual K-12 limit per student
- Reconciliation with Form 1099-Q and Form 1098-T at tax time
- 7-year record retention requirement for audit protection
My Current (Evolved) Account Structure
After several iterations, here’s what I’ve settled on:
Assets:Investments:529:KidName
Assets:Investments:529:KidName:Cash
Assets:Investments:529:KidName:Funds
Income:Investments:529:KidName:Gains
Expenses:Education:KidName:Tuition
Expenses:Education:KidName:Curriculum
Expenses:Education:KidName:Tutoring
Expenses:Education:KidName:TestFees
Key lessons from my journey:
- Start simple. I initially tried to model every tax implication in the account structure and it was a nightmare. Metadata is your friend for that.
- One account per child. Don’t try to track multiple beneficiaries in one account - you’ll regret it at tax time.
- Separate cash from investments. Makes it easier to track purchase/sale activity and reconcile with provider statements.
Metadata That Actually Matters
Here’s what I tag on transactions:
On contributions:
2026-03-15 * "529 Contribution"
Assets:Checking -5000 USD
Assets:Investments:529:Child1 5000 USD
gift-tax-year: "2026"
contributor: "Parent1"
state-deductible: "TRUE"
On qualified expenses:
2026-02-10 * "Private School Tuition - Spring Semester"
Assets:Investments:529:Child1 -8000 USD
Expenses:Education:Child1:Tuition 8000 USD
qualified: "K12-tuition"
receipt: "receipts/2026/tuition-spring.pdf"
academic-year: "2025-2026"
Questions for Discussion
1. How are you handling the NEW 2026 K-12 qualified expenses?
- Tutoring is now explicitly qualified - are you tracking it separately?
- Curriculum materials - how granular do you get? (Every workbook vs just major purchases?)
- Standardized test fees - AP exams, SAT, ACT all count now
2. Investment price tracking - automated or manual?
- I’ve been using beans.price with Yahoo Finance integration - works great
- Anyone built importers for specific 529 providers? (I’m with Vanguard)
3. State tax quirks
- Some states DON’T recognize federal K-12 qualified expense rules
- Some states recapture deductions if you withdraw for K-12
- How are you tracking state-specific rules in your ledger?
4. Form 1099-Q reconciliation workflow
- What queries do you run to make sure withdrawals = qualified expenses?
- Any tips for making tax season less painful?
Mistakes I Made (So You Don’t Have To)
-
Over-engineering early on. I tried to track every possible tax scenario and ended up with 20+ accounts I never used. Start simple!
-
Not linking receipts. I thought I’d “remember” what expenses were for. Nope. Link those PDFs/images in metadata from day one.
-
Ignoring price updates. I manually entered prices… until I had 3 months of stale data and my net worth was way off. Automate this!
-
Not reconciling quarterly. Waiting until tax season to reconcile is a recipe for stress. Do it every 3 months.
Why This Matters (Especially in 2026)
529 accounts can grow substantially over 18 years. Getting the tracking right means:
- Audit-proof documentation (IRS can request records going back 7 years)
- Confidence you’re on track for college cost projections
- No tax season panic trying to reconstruct qualified expenses
- Clean data for state tax deduction claims
- Peace of mind
With the 2026 K-12 expansion to $20,000 and new qualified expenses, more families will be using these accounts earlier. That means MORE transactions to track and MORE complexity.
Let’s Learn Together
I know I don’t have all the answers - I’m still learning! I’d love to hear:
- What’s working for your 529 tracking setup?
- Anyone dealt with beneficiary changes? (e.g., one kid gets scholarship, transfer to sibling)
- Tax pros: what do you wish your clients tracked better?
- Parents of multiple kids: how do you keep it all organized?
Looking forward to the discussion!
— Mike