Job costing takes 5 numbers per job, and in our painting sample those 5 numbers turn a $3,400 job that was quoted to leave $950 into one that lost $373.50. The numbers are the quoted price, estimated hours, estimated materials, actual hours and actual materials. Multiply the hours by your break-even rate, subtract, and you know if the job made money.
The examples below are the sample Job Log rows that ship with our calculators for 8 trades, worked out with each trade's own break-even rate. They are made-up jobs built to show how the log works. The reasons they ran over are modelled on problems owners we studied described in their own businesses.
The five numbers, and the one rate that turns them into profit
Two of the five numbers come from the quote and three come after the job; the rate that ties them together is your break-even rate, not the wage you pay.
| Number | When you write it | Where it comes from |
|---|---|---|
| Quoted price | When you send the quote | The quote the customer accepted |
| Estimated hours | When you send the quote | Total crew hours, not days (2 people x 8 hours = 16) |
| Estimated materials and outside costs | When you send the quote | Materials, dump fees, rentals, subs, permits |
| Actual hours | The day the job ends | Timesheets, a notebook, a phone clock |
| Actual materials and outside costs | The day the job ends | That job's receipts, including the second supply run |
The formula is left over = price - actual materials - (actual hours x break-even rate). The break-even rate is what each billable hour has to bring in to cover wages, payroll costs and overhead. It is explained step by step in the true hourly rate guide, and the free calculator works yours out.
Use the wage instead and every job looks better than it was. The painting sample's break-even rate is $49.25 an hour; its best-paid person earns $35.
Worked example: a $3,400 painting job that lost $373.50
The job was quoted at 40 hours and took 62, so the $950 it was meant to leave became a $373.50 loss. This is the losing row in the sample Job Log of the Painting Pricing Calculator: an exterior trim repaint, break-even rate $49.25.
| Estimate | Actual | Difference | |
|---|---|---|---|
| Quoted price | $3,400 | $3,400 | none |
| Hours | 40 | 62 | +22 (55% over) |
| Labour at $49.25 an hour | $1,970 | $3,053.50 | +$1,083.50 |
| Materials | $480 | $720 | +$240 |
| Left over | $950 | minus $373.50 | $1,323.50 gone |
The extra hours cost 4.5 times more than the extra materials. That is the usual shape of a losing job, as the next section shows.
The row is modelled on a common painting problem: the same part of the work, like soffits and fascia, runs over on job after job. Job costing tells you by how much, so you can raise that one line instead of guessing. Here the trim job took 55% more hours than quoted, so if that happens again, the hours on the trim line of the price list need to go up by about that much. Rot found mid-job should also have been priced as a change order before it was fixed.
A normal row from the same log for comparison: a $1,900 job estimated at 20 hours and $310 took 21 hours and $300, leaving $565.75 against the $605 planned.
Losing jobs from 8 trades: hours, not materials, did the damage
In every losing or thin row across the 8 sample logs, the extra hours cost more than the extra materials, usually several times more. Left over is worked out the same way in each: price minus actual materials minus actual hours at that trade's break-even rate.
| Trade (sample row) | Quoted | Hours: est. to actual | Left over: planned to actual | Extra hours cost | Extra materials |
|---|---|---|---|---|---|
| House cleaning | $255 | 5 to 7.5 (+50%) | $18.20 to minus $94.20 | $110.40 | $2 |
| Lawn care, per month | $195 | 2.6 to 3.9 (+50%) | $32.89 to minus $42.67 | $75.56 | $0 |
| Pressure washing | $250 | 2 to 5 (+150%) | $116.38 to minus $61.55 | $162.93 | $15 |
| Painting | $3,400 | 40 to 62 (+55%) | $950 to minus $373.50 | $1,083.50 | $240 |
| Plumbing | $2,150 | 14 to 24 (+71%) | $530.70 to minus $218.80 | $699.50 | $50 |
| Fencing | $4,300 | 30 to 49 (+63%) | $991.90 to minus $288.23 | $1,050.13 | $230 |
| Drywall | $14,200 | 120 to 162 (+35%) | $2,664 to minus $668.60 | $2,532.60 | $800 |
| Roofing | $14,200 | 80 to 118 (+48%) | $3,416 to $211.10 (thin) | $2,604.90 | $600 |
Break-even rates used: cleaning $44.16, lawn $58.12, pressure washing $54.31, painting $49.25, plumbing $69.95, fencing $55.27, drywall $60.30, roofing $68.55. The winning rows in the same logs mostly finished within about 6% of their estimated hours.
Why jobs run over: four common causes
Each of the sample losses is modelled on a problem owners we studied described, and in each one the fix came from writing the hours next to the estimate.
- Cleaning, a flat price too low for the house. A clean quoted as a short visit turns into a full day once the crew is inside a house that is dirtier or bigger than it looked. The sample row planned 5 hours and took 7.5. One cleaning owner we studied fixed this by moving to hourly pricing with a four-hour minimum.
- Lawn, a yard that changed. A yard that was quick when you priced it gets new trees, beds or fencing, and every visit now takes longer at the same price. If your route averages a healthy rate per man-hour but two lawns earn half of it, time those two and raise them, instead of raising everyone.
- Pressure washing, a minimum job that grew. A small job at a minimum price is planned for about an hour. The sample row, at $250, took 5 hours, so it paid about $50 an hour before materials against a $54.31 break-even rate.
- Drywall, walls taller than the plans. Prints show 8 ft walls, but the house has 9 to 10 ft walls and vaults. That is 12% to 25% more board and finishing on every wall before counting the vaults, and on one drywall owner's job it took a $17,000 price to about $26,000 to $27,000 of work.
The sample rows for fencing, roofing and plumbing have no cause written on them, so we don't give one.
Read the log monthly for patterns, not single jobs
One job over is noise; the same job type over three times is a wrong production rate on your price list. A useful job costing sheet shows three things: how accurate your estimates were, which jobs, customers and crews make money, and where materials are wasted.
What to check once a month:
| Check | What it tells you | Example |
|---|---|---|
| Average hours over | If most jobs run 15% long, your hours per unit are too low | The sample logs show average hours over at the top |
| The job type that loses | Which work to reprice or stop chasing | Tall walls on drywall, second-storey trim on painting |
| Steps missing from the quote | A task that keeps showing up in actuals belongs on the price list | A machined part quoted at 7 hours takes days because deburring was never on the quote |
| The finish stage | Close-out time is the most underestimated | Split each job into prep, build and finish; finish is where most estimates come up short |
Compare against the estimate, not the bank balance. Say a job is estimated at 33 hours and runs to 40. If the crew costs $60 an hour, those 7 extra hours are $420, which can wipe out a 10% profit on a $4,000 job. The bank account can still look fine, because overhead money for next month is sitting in it. Where that overhead money should go is covered in overhead and profit.
Turn the log into better estimates
Change the production rate on your price list, not just the next quote, because that is where the 55% overrun came from. If jobs you priced at 40 hours take 62, your hours per room, per square or per linear foot are too low.
- Hours per unit. Divide actual hours by the job's units (rooms, squares, feet) and use the average of your last several jobs.
- Minimums. The cleaning and pressure washing rows show small jobs lose on drive and setup. The log tells you the job size below which a minimum charge has to apply.
- Which work to chase. After a year or two of rows, you can give a new customer a realistic number from similar past jobs in minutes, and you can see which job types earn the most per hour and go after more of them.
- Profit you add. If the log shows your profit is thinner than planned, check the percentage you add with markup vs margin.
The log also records quotes you lost. What your win rate says about your prices is in quote vs estimate.
A job costing template you can copy
Ten columns are enough; log every quote when you send it, including the ones you lose.
| Quote # | Customer | Quoted price | Est. hours | Est. materials | Won / Lost | Actual hours | Actual materials | Left over | Hours over |
|---|---|---|---|---|---|---|---|---|---|
| PT-162 | (sample) | $3,400 | 40 | $480 | Won | 62 | $720 | minus $373.50 | 55% |
- Left over = quoted price - actual materials - (actual hours x break-even rate).
- Hours over = actual hours / estimated hours - 1.
Each of our trade calculators has this built in as the Job Log tab. It uses your own break-even rate from the Shop Setup tab and marks each job MADE MONEY, THIN (under half the profit you expected) or LOST MONEY, with your win rate, average hours over and number of losing jobs at the top.
Start with the next job you finish: five numbers, about two minutes.
