
The Client Who Paid Per Deliverable, Not Per Hour
Deliverable-based pricing feels clean until you realize you never tracked what each deliverable actually costs you to produce.
The deal looked great on paper. Five deliverables, fixed price per piece, clean invoicing. No hour tracking required. You just ship the work and get paid.
For the first two months, it felt like freedom.
Then you started noticing something. Deliverable three always took longer than deliverable one. Deliverable five sometimes ballooned into three days of work. But the invoice stayed the same every time. You shipped it. You got paid. You moved on.
What you never did was count.
The Problem With Skipping the Clock
When you price by deliverable, it is tempting to stop tracking time entirely. The rate is set. The invoice is fixed. What does it matter how long it took?
It matters because you need to know if the price is still right.
Deliverable-based pricing works when your time per unit stays roughly consistent. The moment it starts drifting, you are either making more money per hour or losing it. Without data, you have no idea which one is happening.
Most freelancers in this situation find out the hard way. A client renews. You quote the same rate because it worked before. But the deliverables have gotten more complex, the feedback rounds have multiplied, and you are now spending twice the time for the same fee.
What Happened When I Finally Started Tracking
I had a client who paid per article. I quoted based on roughly two hours per piece. It felt reasonable. I renewed the contract three times.
About eight months in, I started running Time-Trak on every session out of habit. Not to bill differently. Just to see.
The first article that month took four hours. The second took three and a half. One took six because the brief kept changing mid-draft.
My per-article rate was based on two hours of work. I was delivering the same invoice while doing triple the time.
I was not being underpaid by my client. I was underpaying myself and not noticing.
The Deliverable Rate Is Just an Hourly Rate in Disguise
Every fixed price for a unit of work has an implied hourly rate underneath it. If you charge $300 per report and it takes three hours, your effective rate is $100 per hour. If it starts taking six hours, your effective rate just dropped to $50.
You can only protect that implied rate if you track the time.
This is not about switching to hourly billing. Deliverable pricing is great. Clients like the predictability. You can earn more if you get faster. But you have to audit it regularly.
Every quarter, look at your time logs for each deliverable type. Calculate the average hours. Calculate the effective rate. If it has dropped below where you want it, either the price needs to go up or something in your process needs to get faster.
What to Do Before the Next Renewal
When a deliverable-based contract comes up for renewal, do not just agree to the same rate. Pull your time data first.
Look at how many hours you actually spent per unit over the life of the contract. Average them. Multiply by your target hourly rate. That is what each deliverable should cost the client.
If the current price matches, great. If it does not, you have real numbers to support a rate increase. Not a gut feeling. Not a complaint. Actual data.
Clients who ask why you are raising rates respond better to this than you expect. You are not saying the work got harder. You are showing them what it actually takes.
The Track-Everything Rule
Even when billing is fixed, track anyway. The timer is not just for invoicing. It is how you find out whether the deal still makes sense.
Deliverable pricing is one of the easiest ways to accidentally work for less than you should. It does not feel like it is happening. The invoices go out. The payments come in. Everything looks fine.
Until you look at the hours.
Track your time, bill every minute.
Time-Trak is a native Mac and Windows time tracker with a floating timer, automatic screenshots, and one-click invoicing.
Free during beta.
Download Time-Trak →macOS + Windows · Floating widget · Auto screenshots