Charging only by the hour is not a neutral choice. It means your invoice grows every time you are slow, and your margin shrinks the first dozen times you do a job of that type. On top of that, a job priced as "we'll see how it goes" has no agreed end, and the person arguing with you at handover is usually the person who agreed to it.
What is actually wrong with charging only by the hour?
- The first few jobs of any new type earn you nothing. You are learning on your own clock, and the customer is watching the meter.
- An hourly rate makes your income depend on how efficiently you personally work, which is not a thing you control on someone else's roof.
- The customer cannot see what they are paying for, so they resist every hour, which makes the job slower and the argument louder.
- It quietly rewards doing the work twice. Nobody invoices for the mistake they made, and nobody should, but the customer still feels it.
- The rate stops being your rate and becomes the only visible number, so when you need to raise it you are arguing with a stranger's memory of it.
None of that means hourly is wrong. It means hourly is a choice that has to be made, and it has to be made on purpose.
Which pricing model fits which kind of job?
| Model | Honestly good for | Weak when | What protects you |
|---|---|---|---|
| Hourly | Work that cannot be scoped in advance: fault-finding, breakdowns, anything unknown until you open it up | The customer cannot see what they are getting for the money | A written estimate of hours up front and a stop-and-call rule at that figure |
| Fixed price | Repeatable work you have done many times and can describe in a list | The scope is vague, or the site has not been seen | Inclusions, exclusions and a variation trigger |
| Per unit or per job | Anything countable: per metre, per point, per door, per unit fitted, per callout with a cap | The units are not actually identical from job to job | A written definition of what counts as one unit |
Most businesses need two of these, not one. Fault-finding hourly and the replacement fixed. A callout fee per visit and the repair priced per job. A fixed price for the standard installation and an hourly rate for anything outside it.
How do you turn your hourly rate into a fixed price?
You do it from your own records, not from a formula somebody else invented. Pull the last three or four jobs of the same type that you have already completed, and read the actual hours off each one.
Fixed price = your real hours on comparable past jobs × your rate,
plus a stated allowance
Use the highest number you have recorded, not the average. The average is what happens on a normal day. The highest is what happens on the day you send the customer an invoice they were not expecting, and you need to be able to survive that day.
Here is the shape of it, using a fictional company. Sample Plumbing Co have done four bathroom re-pipes in the last year and recorded fourteen, sixteen, thirteen and nineteen hours. Their rate is R480 an hour, and they allow three hours for something they cannot see yet.
19 hours (the highest recorded) × R480 = R9 120
3 hours allowance × R480 = R1 440
Fixed price before rounding = R10 560
Quoted = R10 600
If they had used the average of fifteen and a half hours, the quote would have been R7 440, and the job that ran to nineteen would have eaten the profit on the other three. Nobody would have noticed until the end of the year, when the money was simply not there.
What about the rate itself?
Check it before you build a price on top of it. Divide your gross profit for the last twelve months by the actual hours you or your staff worked, including the hours that were not billable. That number is your real rate. If it is materially lower than the rate on your quote, the fixed price is not the problem — the rate is.
What has to go inside a fixed price so the scope cannot creep?
A fixed price is not a number. It is a number attached to a list of things, and the list is what stops the argument. Include all of the following:
- The scope, line by line, in language the customer can check
- What you supply, including the make, model or specification level
- What you remove, and where it goes
- The specific finishes, so "finishing" never means something different to you
- Commissioning, testing and a demonstration to the customer
- Clean-up and the removal of your own waste
- How many people, and for how many days
- Whether the price includes VAT, stated either way rather than left ambiguous
- The validity period of the price
Then put an exclusions block underneath it, using the same discipline as any other quote. The inclusions and the exclusions are one document. If they are on two, one of them will be missing on the day.
What is a variation trigger, and where does it belong?
A variation trigger is a sentence, written before the job starts, that says what will change the price and what happens when it does. Without one, every extra is treated as a favour the customer has to argue for. With one, every extra is a line item that nobody minds.
- "If the existing pipework is galvanised and needs replacing, that is a variation and I will price it before we start on it."
- "If we find hazardous material when we open the wall, we stop, make good, and requote that part."
- "If safe access needs scaffolding, that is a variation, charged at cost plus your standard rate."
Put it in the quote. Not in your head, and not in the conversation where you mentioned it while pointing at something. A trigger that is not written down is a trigger that does not exist.
What do you charge when the scope changes mid-job?
Five steps, in this order.
- Stop before you do the extra work, not after. Doing it first turns a variation into a favour you have already given.
- Write one line: what was found, what it needs, and what it costs in rand.
- Get it approved in writing before anyone touches anything. A WhatsApp "yes, go ahead" is writing.
- Then do the work.
- Record it against the job, so the next quote for the same type is built on better information.
Variation = what was found + what it needs + what it costs, approved before work starts
A variation raised on day two is a change of scope. A variation raised on the final day, with the van already loaded and the customer already irritated, is a complaint with a price tag on it.
A price with no variation trigger is not a fixed price. It is an argument about the word "extra", waiting to happen.
When should you stay on hourly, even knowing all of this?
- Fault-finding, where the fault has not been located yet and nobody can say what the repair is.
- Anything unsafe or unknown until it is opened up.
- Small jobs where the effort of writing a fixed scope costs more than the job is worth. A R600 job does not need a variation trigger.
- Work where the customer genuinely wants to control their own spend, in which case give them an estimate of hours and a call at the halfway point.
In that last case, write it down properly. "I expect eight hours, and if it looks like it is heading past twelve I will call you before carrying on" is not a weak price. It is an honest one, and it is the difference between a customer who feels informed and a customer who feels ambushed.
Where do you start?
- Pull your last ten completed jobs of your most common type, and write the actual hours on each one. This is the step everything else depends on.
- Take the highest figure, multiply by your real rate, and add a stated allowance. Write it on the worksheet.
- Add a variation trigger to your quote template, using wording you would be happy to read out loud.
- Build your inclusions list once, and stop rebuilding it from memory on every job.
- Decide which of your job types genuinely must stay hourly, and write an estimate rule for those instead of a shrug.
The companion checklist works out whether your rate is real and your hours are recorded, and the templates include a fixed-price build-up worksheet, an inclusions lock list, and the wording for variations and variation records.
Not sure where to start? Book a free 30-minute strategy session and we will name the one gap worth fixing first: https://agentcy.co.za/#book-audit