How to estimate task time as a freelancer without guessing
How to estimate task time as a freelancer using past work, not gut feeling. A practical fix for the planning fallacy that keeps eating your evenings.
6 min read

It's 9am on Monday and a client just asked how long the new landing page will take. You type "about 4 hours" because saying "I don't know" feels unprofessional and saying "12 hours" feels expensive. By Thursday afternoon you're at nine hours, the page is 70% done, and you're deciding whether to eat the overage or write an awkward email.
Most freelancers I've watched lose money this way. Not on bad clients. On their own estimates.
Why freelancers underestimate, and it isn't a discipline problem
There's a name for it: the planning fallacy. Plainly: when we picture a future task, we picture the version where everything goes right. The brief is clear, the client knows what they want, the asset is where you saved it, the code compiles. We then estimate against that imagined day. The actual day always has more friction. So the gap between estimate and reality isn't a character flaw. It's how brains work when they're asked to forecast their own behaviour. The fix is structural, not motivational.
Estimate from past work, not from future hope
The trick is called reference class forecasting, and it's less fancy than it sounds. Instead of imagining the new task, find a handful of similar tasks you already finished, and look at how long they actually took.
Take Lars, a copywriter in Utrecht. He quoted "a day" for a SaaS landing page rewrite. Day five he's still in revisions because the founder keeps sending Slack voice notes. If Lars had scrolled back through his last three landing pages, he'd have seen 11, 14, and 9 hours. He should have quoted 12 to 16, not "a day".
The data is already there. Your time log, your invoices, your calendar. The work is one search and ten minutes of honesty.
Break the task into S, M, L, not into hours
Hours feel false because they pretend to be exact. Buckets are honest. A 30-minute email is small. A 90-minute draft is medium. A three-hour proposal is large. The math is rougher but the answer is closer to true, because you're not pretending to know whether something will take 2.5 hours or 3.
This is why TaskBerry uses S, M, L, XL, XXL on every task instead of a free-text minute field. You can check whether today's list fits in today at a glance, without doing arithmetic on numbers you made up anyway.
Add a buffer for the part you forget
The estimate is for the work. The day is for the work plus everything else.
Things that get left out of the gut number:
- Context switching between this task and the other three things in your week
- The second pass, after you've stared at it overnight
- The email back-and-forth confirming the small thing the client mentioned in passing
- Finding the brand assets, the right font file, the previous version of the contract
- Fixing the typo the client spotted on the live page
Take Noor, a brand designer working with a small bakery. She estimated two hours for a logo tweak. Real time: five hours, because the owner wanted to see three directions before picking one. Any task that touches client taste needs at least one extra round built into the estimate. That's not pessimism, that's how creative review works.
A buffer isn't padding to protect your ego. It's the line item for the part of the work you keep forgetting is part of the work.
Track actual time once, then stop guessing
If you log real time on a handful of projects of each type, you stop estimating from feeling and start estimating from your own history.
Tom, a developer building Shopify themes for a furniture shop, used to quote "around 30 hours" by feel. Two weeks of light tracking later, he could see themes actually take him 38 to 52 hours, depending on how custom the product page is. He now quotes a range and a paid discovery hour up front. His average rate per project went up. His Sunday-night anxiety went down.
Roos, a bookkeeper for a handful of small studios, thought her monthly close took "about a day" per client. The log said 4.5 to 7 hours, and the variance was entirely about how messy the receipts were. She switched to a base rate plus a receipts surcharge tier. Same work, more honest invoice.
You can log hours per task without a separate timer app inside the same board you already plan in, which removes the friction that usually kills tracking by week two.
Honest caveat: the first week of data is too thin to estimate from. You need a few weeks before patterns appear, and there is no shortcut around the boring middle part where you just log your hours. TaskBerry won't generate quotes for you, won't send invoices, and doesn't sync with your accounting tool. If you want estimate-to-invoice automation in one app, this isn't that tool.
How to quote when you genuinely don't know
Sometimes the work is genuinely new. The client wants something you've never built, or the scope is fog. Pretending you can estimate it is how you end up working for free.
For those, quote a discovery block. A fixed couple of hours, paid, where you scope the actual work. Then quote the rest. This keeps the relationship clean. The client gets a real number instead of a guess. You get to do an hour of thinking instead of inventing a figure in 30 seconds because the meeting is ending.
Most clients prefer this once you explain it. The ones who don't are usually the ones who'd have argued about the overage anyway.
What to do this week
Pick the next task you'd normally guess at. Before you send the quote, scroll back to the last three similar tasks and check what they actually took. If you don't have that data yet, start logging this week. In two weeks, you'll be quoting from your own life instead of from hope.
That's the whole shift. Not bigger numbers. Truer ones.
TaskBerry
TaskBerry is a freelancer-first day planner with an AI assistant that turns brain dumps into a clean plan.
About TaskBerry
