I need to share something that happened to a client last month – and honestly, it’s a scenario I see way too often.
A freelance graphic designer came to me in February, completely blindsided. She’d made about $85K in 2025, paid exactly $18,500 in taxes when she filed her return in early 2026… and then received a notice from the IRS for a $520 underpayment penalty.
“But I paid my taxes!” she told me, frustrated. “Why am I being penalized?”
Welcome to the quarterly estimated tax world, where the IRS doesn’t just care that you pay – they care when you pay.
The Quarterly Estimate Problem Nobody Explains
If you’re self-employed, freelancing, or running a small business without withholding, you’re supposed to pay estimated taxes quarterly. The deadlines for 2026 are April 15, June 15, September 15, and January 15, 2027.
But here’s the cruel irony: your income is probably not quarterly-predictable.
You land a big client in Q3. You have a slow Q1. A project gets delayed and payment hits Q4 instead of Q3. Meanwhile, the IRS expects you to somehow estimate your annual tax liability in advance and pay it in even installments.
Get it wrong? Underpayment penalty – even if you eventually pay the full amount owed.
The Safe Harbor Rules (Your Shield Against Penalties)
The good news: there ARE ways to avoid penalties, called “safe harbor” rules. You won’t owe penalties if you meet any of these:
- You owe less than $1,000 in tax after subtracting withholding/credits
- You paid 90% of current year tax through estimates/withholding
- You paid 100% of prior year tax (or 110% if your AGI was over $150K)
That third option is gold for people with variable income. If you made $60K last year and $90K this year, you can pay 100% of last year’s tax bill and avoid penalties – even though you’ll owe more when you file.
Where Beancount Becomes Your Secret Weapon
This is where plain text accounting saves your sanity. Here’s my recommended workflow for clients:
1. Track Quarterly Income in Real-Time
2026-01-15 * "Client payment - Logo design"
Assets:Bank:Checking 3500.00 USD
Income:Freelance:Design -3500.00 USD
quarter: "2026-Q1"
Use metadata to tag transactions by quarter. Then run queries to see exactly where you stand:
SELECT sum(position) as total
WHERE account ~ "Income"
AND metadata("quarter") = "2026-Q1"
2. Create a Tax Savings Account
Every payment received? Immediately transfer 25-30% to a dedicated tax savings account in Beancount:
2026-01-15 * "Tax set-aside for Q1 estimate"
Assets:Bank:Checking -875.00 USD
Assets:Bank:TaxSavings 875.00 USD
3. Run Monthly Projections
Don’t wait until the quarterly deadline. At month-end, I have clients run a simple query:
- YTD income × estimated tax rate = projected annual liability
- Compare to: prior year tax × 1.1 (if safe harbor applies)
- Difference = adjustment needed for next estimate
4. Track Estimate Payments vs. Liability
2026-04-15 * "Q1 estimated tax payment"
Assets:Bank:TaxSavings -4500.00 USD
Assets:IRS:EstimatedTaxPaid 4500.00 USD
Now you can query: “Am I on track for safe harbor?” at any time.
The Emotional Tax of Quarterly Estimates
Let’s be real: paying $4,000-$8,000 every 90 days is psychologically brutal. It’s way harder than paying $32,000 once a year, even though it’s the same money.
The stress cycle:
- Deadline approaching (panic)
- Calculate liability (anxiety)
- Check bank balance (stress)
- Make payment (pain)
- Hope you estimated correctly (worry)
- Repeat in 90 days
Beancount helps break this cycle because you’re tracking continuously, not scrambling quarterly. You know you have the money set aside. You know you’re hitting safe harbor. You know you won’t get surprised.
The Pay-Too-Much vs. Pay-Too-Little Dilemma
Here’s the paradox:
- Pay too little → underpayment penalty (IRS charged 7% in Q1 2026, 6% in Q2)
- Pay too much → interest-free loan to the IRS
My graphic designer client had paid $12K in estimates but owed $18.5K. She was hoping “good enough” would work. It didn’t.
Meanwhile, I have another client who intentionally overpays estimates by 10% because the “lost interest” on that money is worth the peace of mind.
There’s no perfect answer. It depends on your risk tolerance, cash flow needs, and sleep quality preferences.
What I Recommend
For most clients with variable income:
- Use the 110% prior year safe harbor if your income is growing (pay 110% of last year’s tax, avoid penalties guaranteed)
- Set aside 30% of every payment received in real-time (better to have extra than scramble)
- Review projections monthly in Beancount, not quarterly in panic mode
- Adjust estimates mid-year if income significantly exceeds projections
And yes – don’t forget state estimated taxes. Many states have separate requirements and penalties.
Your Turn
How do you handle quarterly estimates?
- Do you use safe harbor or try to hit 90% of actual?
- How do you track quarterly income in Beancount?
- Any horror stories of underpayment penalties?
- Tips for explaining this to new self-employed clients?
I’m working on a Beancount template for quarterly tax tracking – would that be helpful for folks here?
Sources for 2026 safe harbor rules & penalty rates: