How to estimate how long a freelance project will take (and check it against your real hours)
Most freelance estimates run short, and not because freelancers are bad at their jobs. People in general underestimate how long their own tasks will take. Here's a simple way to estimate that leans on your own logged hours instead of your memory: break the job into tasks, give a range, track hours against the estimate while you work, and use the gap to make the next estimate better.
General information. The method, the steps, the example, the checklist and the wording to copy are ours (general practice). There's no official rule for estimating freelance work. The research quoted below is about people in general (mostly students and everyday tasks), not freelancers specifically; see Where the sources differ.
The short answer
- List every task, including the ones that aren't "the work": calls, emails, review rounds, handover and admin.
- Look up what similar jobs actually took in your hours log, and relate each one to the task in front of you. Don't rely on memory.
- Give each task a range (low, likely, high) and write down the unknowns that would push it to the high end.
- Pick the budget hours you'll track against, then price it with our fixed price vs hourly guide and quote guide.
- Log hours as you go and check them against the budget at set points. Tell the client early if it's running over.
- Compare estimate and actual afterwards, task by task, and adjust how you estimate the next one.
On this page
- 1. Why estimates run short
- 2. Break the job into tasks
- 3. Use your logged hours, not your memory
- 4. Give a range, not one number
- 5. A made-up example
- 6. From estimate to budget hours and a quote
- 7. Track hours against the estimate while you work
- 8. Review it afterwards
- 9. A worksheet and emails to copy
- 10. Checklist
1. Why estimates run short
Psychologists call it the planning fallacy. In a 1994 paper, Buehler and colleagues (1994) put it this way: "The tendency to hold a confident belief that one's own project will proceed as planned, even while knowing that the vast majority of similar projects have run late, has been termed the planning fallacy" (Buehler, Griffin, Ross, 1994).
- We picture the plan, not the past. In their studies, "Think-aloud procedures revealed that Ss focused primarily on future scenarios when predicting their completion times." ("Ss" means the people taking part.)
- Our memory of past jobs is short too. A 2005 review by Roy and colleagues (2005) starts: "People frequently underestimate how long it will take them to complete a task." It argues that "People base predictions of future duration on their memories of how long past events have taken, but these memories are systematic underestimates of past duration." (Roy, Christenfeld, McKenzie, 2005; abstract on PubMed, PMID 16187856).
- Big tasks hide small ones. The title of a 2004 paper by Kruger and Evans (2004) sums up its argument: "If you don't want to be late, enumerate: Unpacking reduces the planning fallacy" (Kruger and Evans, 2004).
Practical reading (ours): the fixes are to list the parts of the job, check what similar jobs really took in a written log, and keep checking during the job. The rest of this page does exactly that.
2. Break the job into tasks
Write the job down as tasks you could each finish in a sitting or two. If you've written a statement of work or a proposal, start from its deliverables. Then go through the tasks people often leave out (our list):
| Often missed | What it includes |
|---|---|
| Getting started | Kickoff call, reading the brief, setting up files, access and tools. |
| Talking to the client | Emails, calls, status updates and waiting for answers you need before you can go on. |
| Review rounds | Each round of feedback you agreed to, and the changes that come with it. |
| Content or input from the client | Chasing, checking and fitting in what the client sends, often late or in a different form. |
| Checking your own work | Testing, proofreading, fixing what you find. |
| Handover | Final files, formats, a short handover note and the sign-off. |
| Admin for this job | The quote, the invoice, logging hours, a change order if the scope moves. |
| Learning something new | A tool, a platform or a subject you haven't worked with before. |
Not every job has all of them. The point is to decide, task by task, rather than leave them inside one big number.
3. Use your logged hours, not your memory
Buehler and his co-authors found that "people make more realistic completion estimates when they use their past experiences to inform their predictions." But "leading people to remember past experiences did not, in itself, reduce the optimistic bias." "The bias was attenuated only when subjects were induced both to consider their past experiences and to relate the experiences to the task at hand." (Study 4, Buehler and colleagues, 1994).
Practical reading (ours):
- Keep a written log of hours on every job, fixed-price ones included. Our free timesheet works for that, or the hours log in a project tracking spreadsheet.
- Find one or two similar past jobs for each task and write their logged hours next to your estimate.
- Then say how this job is different: bigger, smaller, a new kind of client, a tool you haven't used. That's the "relate it to the task at hand" step.
- No log yet? Start one now. Until then, estimate as below and treat your first few jobs as the data for the next ones.
4. Give a range, not one number
For each task, write three numbers of hours (ours):
- Low: it goes smoothly, the client answers quickly.
- Likely: what your log says similar tasks usually took.
- High: the things you listed as unknowns happen.
Add up each column. The gap between the likely and high totals is your honest picture of the risk. Write down the unknowns behind it; that list is what you'll use when you choose a price or talk to the client about changes. We don't suggest a standard percentage to add, because it depends on your own log.
5. A made-up example
A small design job, in hours only. The numbers are invented to show the method, not typical figures.
| Task | Low | Likely | High | Logged after the job |
|---|---|---|---|---|
| Kickoff and brief | 1 | 2 | 3 | 2.5 |
| First draft | 6 | 8 | 12 | 10 |
| Two review rounds | 2 | 4 | 6 | 5.5 |
| Client emails and calls | 1 | 2 | 4 | 3.5 |
| Final files and handover | 1 | 1.5 | 3 | 2 |
| Total | 11 | 17.5 | 28 | 23.5 |
In this example the job took 23.5 hours: more than the likely total of 17.5, inside the high total of 28. The review afterwards shows where the gap came from (the draft and the client emails), so next time those tasks start from the logged hours, not the old guess.
6. From estimate to budget hours and a quote
Pick the number of hours you'll track against (the budget hours). Then the pricing step is covered elsewhere, so we don't repeat it here:
- Turning hour ranges into a fixed price with a named contingency, or an hourly estimate with a cap: our fixed price vs hourly guide.
- Your hourly rate from your costs and the hours you can bill: the hourly rate calculator.
- What to put on the quote, with a valid-until date: how to write a freelance quote and the free quote and estimate generator.
If you quote hourly, say it's an estimate, show the range and say what it assumes. Lines to copy are in section 9.
7. Track hours against the estimate while you work
- Log hours the same day, against the project and, if you can, the task.
- Check at set points (ours): for example when about half the budget hours are used, and again near the end. Compare hours used with how much of the work is done, not just with the calendar.
- Tell the client early if it's running ahead. An early note with options is easier for both sides than a surprise on the invoice. There's an email for this in section 9.
- Extra work the client asks for is a change, not an estimating error. Agree it and add the hours to the budget; our scope creep guide has a change order to copy.
Our project tracking guide shows the columns and formulas for budget hours, hours logged and hours left if you'd rather build the spreadsheet yourself.
8. Review it afterwards
When you wrap up the project, take ten minutes (ours):
- Put the logged hours next to the low, likely and high numbers for each task.
- Mark the tasks that went over and write one line on why: unclear brief, extra review round, late content, a new tool.
- Note whether you'd estimate those tasks differently next time, and how.
- Keep the sheet with the project, so the next estimate for a similar job starts from it.
Over a few jobs this gives you your own pattern (which tasks you tend to underestimate, and by roughly how much), which is more useful than any general rule.
9. A worksheet and emails to copy
Replace everything in [brackets]. These are ours.
Estimate worksheet
Project: [project name] Client: [client]
Estimated by: [you] Date: [date]
Task Low Likely High Similar past job (logged hours)
[first task] [ ] [ ] [ ] [job and hours from your log]
[second task] [ ] [ ] [ ] [job and hours from your log]
[review rounds agreed] [ ] [ ] [ ] [ ]
[client emails and calls] [ ] [ ] [ ] [ ]
[handover and admin] [ ] [ ] [ ] [ ]
Total [ ] [ ] [ ]
Unknowns that could push it to the high end: [list them]
Assumptions: [what the client sends, by when; how many review rounds]
Budget hours I'll track against: [number]
Check-in points: [e.g. when half the budget hours are used]
Estimate lines for a quote
Estimate: [low] to [high] hours for [the work], based on [what you assumed].
This assumes [what the client provides, by when] and [number] review rounds.
If it looks like going past [the high end / an agreed limit], I'll check with you before doing the extra work.
Hours update to the client
Subject: [project] — hours update
Hi [name],
A quick update on [project]. We've used [hours used] of the [budget hours] hours we planned, and [what's done] is done.
What's left: [remaining work]. My current estimate for that is [low]–[high] hours, because [one honest reason, e.g. a third review round / content arrived late / the integration needed more work].
Options:
— Keep to the original scope and finish within the plan by [what you'd drop or simplify].
— Go ahead with the extra work, as a change to the [quote / estimate] (I'll send the details).
Which would you prefer? I'll hold off on the extra work until I hear from you.
Thanks,
[your name]
10. Checklist
- Every task listed, including calls, emails, review rounds, handover and admin.
- Logged hours from similar past jobs next to each task, and how this job differs.
- Low, likely and high hours for each task; totals added up.
- Unknowns and assumptions written down.
- Budget hours chosen; price worked out; the quote says what's assumed.
- Hours logged the same day; check-in points set.
- Client told early if hours run ahead; agreed changes added to the budget.
- Estimate vs actual reviewed at the end and kept for the next job.
Free tools and kits
- Free timesheet: log hours by client or project in your browser, download a CSV.
- How to track multiple client projects: build your own tracker with budget hours and hours left.
- Free quote and estimate generator: turn the estimate into a quote with a valid-until date.
- Our paid Client & Project Tracker by Small Rows (US$12, one-time) keeps the budget hours for each project, adds up the hours you log against it, and shows the hours left and the share of the budget hours used; the dashboard counts projects that have gone over their budget hours. The budget is per project, not per task, and it doesn't make the estimate for you.
- Our paid Quote & Proposal Kit by Small Rows (US$12, one-time) turns the estimate into a quote or proposal from your own price list (each service priced by the hour, day or item), with a valid-until date and a log of every quote you send. It doesn't estimate the hours for you.
- Our paid Freelance Billing Kit by Small Rows (US$12, one-time) bills the hours once the work is done.
- All three kits together: the All-Kits Bundle by Small Rows (US$24, one-time).
Where the sources differ
- Who was studied. The studies quoted here are about people in general, mostly students and everyday or academic tasks. We didn't find research on freelancers' estimates in particular, so the steps on this page are our reading, not a finding.
- Why estimates run short. Buehler and colleagues (1994) put the weight on people focusing on future plans and setting their past aside. Roy and colleagues (2005) argue that our memories of how long past tasks took are themselves too short; the two views aren't exclusive, and a comment on the 2005 review was published in the same issue (Psychol Bull. 2005 Sep;131(5):757-60.). Either way, a written log helps.
- Breaking tasks down. We quote only the title of Kruger and Evans (2004): the publisher's page blocks automated reading, so we haven't checked its abstract or results ourselves and don't claim more than the title says.
- What we did not check: estimation methods from project management standards (for example three-point or PERT formulas); research on teams or software projects; whether any particular buffer size works.
Related
- Fixed price vs hourly: how to price a freelance project
- How to write a freelance quote or estimate
- How to track multiple client projects
- Scope creep and change requests
- How to write a freelance statement of work
- How to wrap up a freelance project
- Free timesheet template
- Freelance hourly rate calculator
Sources
- Buehler, Griffin, Ross (1994). Exploring the "planning fallacy": Why people underestimate their task completion times. Journal of Personality and Social Psychology, 67(3), 366–381. doi:10.1037/0022-3514.67.3.366
- Roy, Christenfeld, McKenzie (2005). Underestimating the Duration of Future Events: Memory Incorrectly Used or Memory Bias?. Psychological Bulletin, 131(5), 738–756. doi:10.1037/0033-2909.131.5.738 Abstract on PubMed, PMID 16187856.
- Kruger, Evans (2004). If you don't want to be late, enumerate: Unpacking reduces the planning fallacy. Journal of Experimental Social Psychology, 40(5), 586–598. doi:10.1016/j.jesp.2003.11.001
Checked . Found a mistake? Tell us via Support.