Fixed-price project tracking
Stay inside scope on flat-fee work. Set an internal hours budget. Watch it burn down in real time. Catch scope creep at 80%, not the day before delivery. Protect the margin you priced for.
Free plan. No credit card.
The burn-down is your real-time margin indicator.
Fixed price is fine until the scope moves
Flat-fee projects are simple to invoice and easy to sell. They are also where service businesses quietly lose money, because nobody is tracking the cost side.
Tracking hours on a fixed-price job does not change the price you charge. It changes how soon you notice the scope problem.
- The $15k website ran 230 hours. Nobody noticed until invoice day.
- "One small tweak" turns out to be 8 hours of work and nobody invoiced for it.
- The change-request arrived as a line in an email and was never recognised as one.
- Next year you quote a similar project at the same price, because you have no idea what the last one cost.
- Team morale dips because the project that "should be done" keeps grinding on.
Fixed-price projects, with the visibility of a retainer
A budget that does not reset, a warning while you can still act on it, and real cost data when the job closes.
A budget that doesn't reset
Set the total hours for the project once. Track time against it. The burn-down is your real-time margin indicator.
- One-off hours budget per project
- Burns down across the whole project, with no period reset
- Visual progress bar the team sees every time they log
Catch scope creep at 80%
The alert threshold flags when you are heading for overrun while there is still time to renegotiate scope, sequence work differently, or have the conversation with the client.
- Configurable threshold per project, with 80% as the sensible default
- The dashboard makes the at-risk projects obvious
- Overrun hours are still tracked, never silently dropped
Globex · Website rebuild. 34 of 40 hours used, with 6 hours of budget remaining.
Estimated to complete based on velocity: 8.5 more hours. Likely 2.5h overrun.
Real margin data, project to project
When the project closes, you know what it actually cost. Use that to price the next one properly. Stop quoting from memory.
- Total hours by member, total revenue, effective rate
- Project-level revenue report, exportable for finance
- Compare projects, so you can see which clients are profitable
Next quote: probably price the next one closer to $8k.
Scope creep arrives by email
Scope rarely changes in a meeting. It changes in a message that begins "while you are in there, could you also". Nobody calls that a change-request, so nobody prices it, and eight hours later it is part of the job.
Client requests land in a shared inbox next to the project they affect, with the remaining budget visible beside them. A change-request gets recognised as one before somebody starts work on it.
- Requests arrive filed against the client and the project
- The remaining budget sits beside the conversation
- Time answering the request lands on the same project budget
Loving the new logo. While you're in there, could you also do the email signatures and the deck template? Should be quick I imagine.
Happy to take both on. They are outside the brand refresh scope, so I have priced them as a small add-on and sent it through for approval before we start.
How to run a fixed-price project
Turn the fee into hours, watch those hours, and let the closed project price the next one.
-
Budget
Convert the fee into hours
Divide the agreed price by your blended team rate. That is the internal budget. Create the project, enter it, and set the alert threshold to 80%.
-
Watch
Glance at the burn-down weekly
The amber projects are this week's conversations. Requests that would move the scope are visible as they arrive, rather than as an unexplained jump in the meter.
-
Close
Learn what it actually cost
Review the hours, the internal cost and the margin. That number is what you should be quoting from next time, instead of the number you charged last time.
What changes on the next flat-fee job
Common questions
How do I track a fixed-price project?
Convert the agreed fee into an internal hours budget based on the rates of the people doing the work. Track time against the project as normal. Watch the budget burn down in real time. If you hit 80% with too much scope left to deliver, you know to renegotiate or eat the cost; you do not find out a week before the deadline.
What is the difference between a fixed-price budget and a retainer?
A retainer is recurring with a per-period cap that resets, such as 8 hours every month. A fixed-price project is a one-off budget for a defined scope that does not reset. Hour Cap handles both: retainers for ongoing work, fixed-price budgets for project-based scopes.
Why track hours on a fixed-price project at all?
Two reasons. First, profitability: you can only price next year's projects accurately if you know what this year's actually cost in hours. Second, scope: tracking shows when an apparently small change-request is, in fact, a third of the original budget.
How do I catch scope creep that arrives by email?
This is the usual shape of it. Scope rarely changes in a meeting; it changes in a message that starts "while you are in there, could you also". The Customer Support Inbox add-on puts those requests in front of the project they affect, with the remaining budget visible beside them, so a change-request is recognised as one before somebody starts work on it.
Can I bill milestones on a fixed-price project through Xero?
Yes. Create the milestone invoices in Hour Cap and push to Xero as drafts. Line items can be fixed-fee chunks rather than per-hour. The hours tracked against the project remain internal data for margin tracking and do not have to appear on the invoice.
What happens when a fixed-price project overruns?
Hour Cap keeps tracking the hours and shows the overrun against budget. The decision of what to do is yours: have the scope conversation with the client, write off the overrun, or convert remaining work to time and materials. The data supports any of those conversations.
Why I built Hour Cap
I'm Jonathan, a freelance web developer in Brisbane, Australia. After 15 years, I wanted my client work to run on one system instead of separate tools that didn't handle retainers or Xero, copy/paste errors, and time that never got invoiced. I needed one tool that handled retainers, fixed-price, and hourly projects, let me write proper multi-line descriptions, showed me what was actually profitable, and pushed straight to Xero as invoices. Nothing did all of it, so I built one. Today it is pivotal to my business: all my time tracking, invoice drafting, and profitability runs through Hour Cap, and it scales the same way for agencies and teams.
Independent and self-funded. When you email support, you reach the person who built it.
More about JonathanDefend the margin you priced for
Track every fixed-price job from quote to close, including the requests that quietly change the scope.