We're 3 Weeks from Q1 Deadline: Is Your Beancount Setup Tax-Ready?

Hey everyone,

I just looked at the calendar and had a mini panic attack — we’re only 3 weeks away from the April 15 deadline for sole proprietors, C-corps, AND the Q1 estimated tax payment deadline. If you have an S-Corp or partnership, your deadline already passed on March 16. For those of you who made it through that one, congrats! For the rest of us… time to get real about our tax prep.

As someone who’s spent the last 12 years helping people navigate tax season (including 3 years as an IRS auditor — yes, I’ve seen it all), I wanted to share a quick checklist specifically for Beancount users. This is crunch time, and if you’re not ready, NOW is when you fix it.

Your 3-Week Tax Prep Checklist

Balance Assertions: Are they current?
When’s the last time you ran bean-check on your ledger? If your balance assertions aren’t up to date through at least March 15, you could have errors lurking that will bite you during tax prep. Run your checks NOW and fix any discrepancies before they snowball.

Expense Categorization: Is it complete?
This is where I see the most mistakes. That Expenses:Uncategorized account better be empty or close to it. Common categories people miss:

  • Home office deductions (utilities, internet, rent/mortgage portion)
  • Mileage (the IRS standard mileage rate is /bin/zsh.70/mile for 2026)
  • Estimated tax payments themselves (yes, these are deductible from state taxes in some states)
  • Business meals (still 50% deductible for most, 100% for some restaurant meals through 2025)

Receipt Documentation: Can you prove it?
Here’s where Beancount shines — use transaction metadata to link to receipt files or photos. The IRS doesn’t care how pretty your ledger is if you can’t back it up. For any expense over , you need documentation. Period.

2026-02-15 * "Office Depot" "Printer toner and paper"
  Expenses:Office:Supplies    127.89 USD
  Liabilities:CreditCard:Chase
  receipt: "receipts/2026/02-15-office-depot.pdf"

Quarterly Estimates: Did you calculate Q1 2026 correctly?
This April 15 payment needs to cover January-March 2026 income. If your income is up from last year, you CANNOT just divide last year’s tax by 4. That’s how you end up with underpayment penalties. Use your Beancount data to calculate actual Q1 income and estimate the tax accordingly.

Why Beancount Makes Tax Prep Better

After working with clients using everything from shoeboxes to QuickBooks to Beancount, I can tell you: plain text accounting with transaction-level documentation is the gold standard. When a CPA (or worse, an IRS auditor) asks “Can you explain this deduction?”, you can:

  1. Show the exact transaction with notes
  2. Provide the Git history proving the date
  3. Pull up the receipt metadata
  4. Run a custom query showing the full context

Try doing that with a spreadsheet or a black-box SaaS tool.

Common Tax Season Mistakes (Don’t Do These!)

:cross_mark: Filing for extension and thinking you don’t owe yet — Extensions extend time to FILE, not time to PAY. You still owe by April 15.

:cross_mark: Forgetting to document cash transactions — IRS assumes unreported income if you can’t prove expenses.

:cross_mark: Missing deductions because categorization is messy — Clean books find more deductions. Period.

:cross_mark: Not tracking business use percentage for mixed-use items — Your phone/internet/car aren’t 100% deductible unless they’re 100% business. Track the split.

What’s Your Workflow?

I’m curious — how are you all handling the final stretch? Are you:

  • DIYing with TurboTax and pulling Beancount reports?
  • Working with a CPA and exporting data?
  • Using Beancount queries to generate tax forms directly?

And for the procrastinators (no judgment, I see you): what’s blocking you from being ready? Let’s troubleshoot together.

We’ve got 3 weeks. Let’s make them count. :flexed_biceps:

— Tina
Washington Tax Services
Phoenix, AZ

This is EXACTLY the thread I needed to see today, Tina! :folded_hands:

I run a bookkeeping service for 23 small businesses here in Austin, and let me tell you — the difference between clients who do monthly reconciliation vs. those who show up in March with a shoebox full of receipts is night and day.

Monthly Reconciliation = Tax Season Sanity

I’ve been preaching this for years: if you reconcile monthly, tax season is just another month. But if you wait until March? You’re going to find errors from January that cascade through the entire year. I had a client last year who discovered a ,200 duplicate charge from a vendor… in their November books. By the time we caught it (March), the vendor had gone out of business. That mistake cost them real money.

With Beancount, monthly reconciliation is even easier because balance assertions force you to deal with discrepancies immediately. No sweeping problems under the rug.

Tag Strategy for Tax Categories

One thing I’ve found super helpful: using consistent tags for tax-specific tracking. For example:

Then at tax time, I can run a query to pull everything by tax-category and generate reports by category. Makes it SO much easier to hand off to CPAs or export to TurboTax.

Git History as Proof

This might sound paranoid, but I actually have clients where we’ve used Git commit history to prove transaction dates to the IRS. One client got audited for 2024 and the IRS questioned whether certain expenses were actually paid when claimed. We pulled up the Git log showing:

  • Initial transaction entry (date of transaction)
  • Balance assertion passing (proof of reconciliation)
  • Receipt file committed same day

The auditor literally said “I’ve never seen documentation this thorough.” Case closed in our favor.

My Tax Season Checklist for Clients

Here’s what I’m asking all 23 clients to verify by April 1:

:white_check_mark: All bank/credit card accounts reconciled through March 31
:white_check_mark: All transactions categorized (no Expenses:Uncategorized)
:white_check_mark: All receipts > linked in metadata or filed in receipts/ directory
:white_check_mark: Mileage logs complete (if applicable)
:white_check_mark: Home office calculation worksheet filled out (I use a spreadsheet for this)
:white_check_mark: Q1 estimated tax payment recorded if already made

Anyone who’s not done by April 1 gets a “crisis surcharge” because I’ll be working weekends to catch them up. :sweat_smile:

Great post, Tina. You’ve motivated me to send this thread to all my procrastinating clients!

— Bob
Martinez Bookkeeping Services
Austin, TX

Perfect timing for this thread! I’ve been obsessing over my Q1 estimated tax calculation for the past week. :bar_chart:

Calculating Q1 Estimated Taxes with Beancount

One thing I love about Beancount for tax planning: I can run queries to compare my current Q1 income against last year’s Q1 income to see if I’m on track or need to adjust my estimated payment.

Here’s my query for Q1 income comparison:

SELECT
  account,
  SUM(position) AS amount
WHERE
  account ~ 'Income'
  AND date >= 2026-01-01
  AND date <= 2026-03-31
GROUP BY account
ORDER BY amount DESC

Then I run the same query for 2025-01-01 to 2025-03-31 to compare. This year I’m up 18% YoY, which means my estimated taxes need to be adjusted accordingly. If I just divided last year’s total tax by 4, I’d be way underpaid and hit with penalties.

Avoiding Underpayment Penalties

The IRS safe harbor rule: pay either 90% of current year tax OR 100% of prior year tax (110% if AGI >k). Most people use the 100% prior year method because it’s predictable.

But here’s the thing: if your income is growing (which mine is, thanks to some consulting gigs taking off), you need to track quarterly to avoid a nasty surprise in April. Beancount makes this SO easy because I can:

  1. Query my actual Q1 income
  2. Estimate tax liability based on brackets
  3. Track what I’ve already paid
  4. Calculate the delta

I built a little Python script that pulls from my Beancount ledger and calculates estimated tax owed. It’s saved me from underpayment penalties two years running.

Tax Optimization Opportunities

One of my favorite things about having clean Beancount data: I can spot tax optimization opportunities before the deadline.

For example, I realized last week that I had some equipment purchases I’d been putting off. Since I’m in a higher tax bracket this year, accelerating those purchases into Q1 gives me a better deduction ROI. Made three purchases totaling ,800 that will save me about ,140 in taxes (effective ~30% rate for me).

My Workflow

My current tax workflow:

  1. Weekly: Quick reconciliation, categorize transactions
  2. Monthly: Run income/expense reports, update net worth tracking
  3. Quarterly: Calculate estimated tax, review deductions, adjust withholding if needed
  4. Annually: Pull full-year reports, export to TurboTax, cross-reference with 1099s/W-2s

The weekly and monthly work makes the quarterly and annual work trivial. It’s like compound interest for record-keeping.

Question for the Group

Anyone else tracking marginal vs effective tax rate in Beancount? I’m trying to figure out the best way to model my effective rate by quarter so I can make better decisions about income timing and deduction acceleration. Would love to see how others approach this!

And Tina, your point about extensions not extending time to PAY is so crucial. I see people on r/personalfinance making this mistake constantly. Even with an extension, you need to estimate and pay by April 15, or you’re accruing interest on the balance.

Thanks for the motivation to double-check my Q1 payment calculation! :rocket:

— Fred
Seattle, WA
FIRE Blogger @ FredsFIREJourney.com

Great discussion, everyone! This brings back memories of my first few tax seasons with Beancount. :sweat_smile:

Lessons from Past Tax Seasons

I’ve been using Beancount for 4+ years now, and I’ll be honest: my first tax season was rough. I thought I had everything organized, but when I actually sat down to file, I discovered:

  • 3 months of transactions I’d forgotten to categorize
  • A whole checking account I’d stopped reconciling in July
  • Receipt files with names like “IMG_2847.jpg” that I couldn’t match to transactions

That year I filed an extension (and yes, I paid my estimated tax by April 15 — learned that lesson the hard way in 2019 when I didn’t).

The next year? Completely different story. Because I’d kept up with monthly reconciliation and categorization, tax season took me about 3 hours total. It was glorious.

The Extension Trap

Fred and Tina both mentioned this, but I want to emphasize it again because this mistake costs people thousands:

Filing an extension ≠ getting extra time to pay

When you file Form 4868 (extension), you’re asking for more time to FILE your return (until October 15). But you still need to:

  1. Estimate what you owe by April 15
  2. Pay that amount by April 15
  3. File the actual return by October 15

If you don’t pay by April 15, the IRS charges:

  • Failure-to-pay penalty: 0.5% per month on unpaid balance
  • Interest: Current rate is around 8% annually (compounds daily)

So if you owe ,000 and don’t pay until October, that’s roughly:

  • Penalty: (0.5% × 6 months)
  • Interest: (8% × 6/12 years)
  • Total extra cost: **** just for waiting

Not worth it. Estimate and pay by April 15, then take your time filing.

My Backup Documentation Strategy

One thing that’s saved me multiple times: consistent metadata in Beancount. I have a simple rule:

Any transaction over gets a receipt file link.

Here’s my template:

2026-03-10 * "Amazon" "Standing desk for home office"
  Expenses:HomeOffice:Furniture    479.99 USD
  Liabilities:CreditCard:Chase
  receipt: "receipts/2026/03-amazon-desk.pdf"
  business-use: "100%"
  notes: "Primary work location, exclusive business use"

That business-use field is gold during an audit. The IRS loves clear, documented percentages.

For receipts under , I still keep them (digitized in a “receipts/” folder), but I don’t always link them in metadata. The IRS says you need documentation for everything, but practically speaking, they’re not going to audit your Staples purchase. (Disclaimer: I’m not a CPA, just sharing what works for me.)

Balance Between Detail and Practical Completion

Here’s something I wish someone had told me in year one: perfect is the enemy of done.

When you’re 3 weeks from the deadline (like we are now), you need to prioritize:

:white_check_mark: Must do:

  • Balance assertions current through March 31
  • All accounts reconciled
  • Major expenses categorized (anything >)
  • Receipts for big purchases linked

:warning: Should do (if time allows):

  • All expenses categorized (including small stuff)
  • Receipt metadata for transactions -
  • Detailed notes on business use percentages

:cross_mark: Don’t stress about:

  • Perfect category granularity (Office:Supplies:Pens vs Office:Supplies is fine)
  • Metadata for every tiny transaction
  • Obsessing over coffee expenses

The goal is substantial compliance, not perfection. Get your taxes filed accurately and on time, then improve your system for next year.

Question for Bob

Bob, you mentioned your “crisis surcharge” for clients who aren’t ready by April 1. What percentage increase do you typically charge? I’m curious because I’ve been thinking about doing some freelance bookkeeping on the side, and I’m trying to figure out fair pricing for rush work.

Question for Fred

Fred, would you be willing to share that Python script for estimated tax calculation? Even just the logic/pseudocode would be super helpful. I’ve been doing mine manually in a spreadsheet and I’d love to automate it.

Great thread, Tina. Exactly the kick in the pants I needed to finish my March reconciliation this weekend! :flexed_biceps:

— Mike
San Francisco, CA
4+ years with Beancount

This thread is fantastic! As a CPA, I’m sending this to every single one of my clients. :paperclip:

What CPAs Actually Need from Clients

Let me pull back the curtain on what makes tax prep smooth vs painful from a CPA’s perspective. When clients come to me with well-organized Beancount data, my job becomes SO much easier.

The dream client brings me:

:white_check_mark: Reconciled accounts through year-end (or at least through Q1 for quarterly filers)
:white_check_mark: Clean categorization — I don’t need perfection, but I need to understand where money went
:white_check_mark: Documentation for large or unusual expenses — that ,000 “business expense” better have a receipt and explanation
:white_check_mark: Clear separation of personal vs business — this is huge for Schedule C filers
:white_check_mark: Prior year comparison available — helps me spot anomalies quickly

The nightmare client brings me:

:cross_mark: Bank statements in PDF
:cross_mark: “I think I have most of my receipts somewhere”
:cross_mark: Mixed personal and business transactions with no way to separate
:cross_mark: Three months of uncategorized Venmo transactions
:cross_mark: “I’ll get you that info” (narrator: they never did)

Why Beancount Makes My Job Easier

Here’s the thing: I work with clients on QuickBooks, Xero, spreadsheets, and shoeboxes. But Beancount clients are consistently the easiest to work with. Why?

1. Transaction-level documentation
Every transaction can have notes, tags, receipts linked. When I ask “What was this ,400 payment to XYZ Corp?”, the answer is right there in the ledger. With other systems, I’m sending emails and waiting days for responses.

2. Plain text = easy review
I can open a Beancount file in any text editor and CTRL+F my way through it. Try doing that with a QuickBooks database. Plus, clients can send me their entire ledger as a single .beancount file. No export hassles, no version control nightmares.

3. Git history = audit trail
When a client makes changes, I can see what changed and when. This is invaluable when something doesn’t match their bank statements. We can trace back and find where the error happened.

4. Queries = instant reports
Instead of asking clients to generate reports in QuickBooks (which they usually do wrong), I can write my own Beancount queries for exactly what I need. Saves hours every tax season.

Real Example: Last Month

Last month I had two clients, both small business owners with ~K revenue:

Client A (QuickBooks):

  • Initial consult: 45 minutes
  • Back-and-forth emails: 12 exchanges over 2 weeks
  • Time to prep return: 6 hours
  • Charged: ,800

Client B (Beancount):

  • Initial consult: 20 minutes
  • Back-and-forth emails: 2 exchanges over 3 days
  • Time to prep return: 2.5 hours
  • Charged:

Client B’s Beancount file was so clean I barely had to ask questions. Everything I needed was either in the ledger or clearly documented with metadata.

Documentation Requirements

Mike mentioned the threshold for receipts — that’s correct for IRS substantiation rules. But here’s the practical CPA advice:

**Document everything over **
Yes, the rule is , but when you’re close to that threshold, just document it. Takes 30 seconds now, saves headaches during an audit.

Business use percentage for mixed-use items
This is where so many people mess up. Your phone, internet, car, home office — if they’re mixed personal/business use, you MUST track the business percentage. Guessing doesn’t cut it.

For home office, use the simplified method ($/sq ft) if your office is under 300 sq ft. Otherwise, calculate actual percentage and track:

  • Rent/mortgage interest (business %)
  • Utilities (business %)
  • Insurance (business %)
  • Maintenance (business %)

Put this in your Beancount metadata and I’ll love you forever.

Mileage logs
If you deduct mileage, you need contemporaneous records. That means logging trips when they happen, not reconstructing them in March from your calendar. Use an app or track in Beancount with transaction tags.

My Offer to This Community

If anyone here wants a “CPA review” of their Beancount setup before tax season, I’m happy to do a few free 30-minute consults for members of this forum. I’ll review your account structure, categorization, and documentation approach, and give feedback on what would make filing easier.

Just DM me. First 5 people who reach out get a slot.

Answering Mike’s Extension Math

Mike’s math on extension penalties is spot-on. I see this mistake ALL THE TIME. People think “Oh, I filed an extension, I have until October.” Then they get a penalty notice in November and they’re shocked.

The failure-to-pay penalty is cumulative. If you owe K and don’t pay:

  • By May 15 (1 month late): penalty
  • By June 15 (2 months):
  • By July 15 (3 months):
  • By August 15 (4 months):
  • By September 15 (5 months):
  • By October 15 (6 months):

Plus interest compounding DAILY at ~8% APR. That K debt becomes ,700 by October. Not worth it.

Always pay by April 15, even if you file an extension.

Great discussion, everyone. Now get back to reconciling those accounts! :grinning_face_with_smiling_eyes:

— Alice
Bay Area CPA
15+ years tax & advisory