Job costing means working out what each job really cost you and what it really earned, one job at a time. Most service companies only look at the month’s total. The total can look healthy while several jobs lose money, paid for by the ones that do very well.
Most job costing examples you will find online are about factories or building one house. The job costing examples below are service jobs: a house wash and a two-bedroom move, with the drive time, callbacks and overhead that textbook examples leave out. A callback is a return trip to fix or finish something on a job you thought was done.
What to record on every job
- Price charged, including any change made after the quote.
- Crew hours, from clock-in to clock-out, including drive time.
- Labor cost, using the full cost of each hour, not only the wage.
- Materials and supplies used.
- Vehicle and fuel for that job.
- Callbacks, added to the original job, not booked as a new one.
Subtract the costs from the price and you have what the job left behind. Divide by the price and you have its margin.
How to cost a job, step by step
- Count every crew hour. One crew hour here means one person working for one hour. Count the work on site, plus setup, loading, pack-up and the drive there and back. Two people for three hours is six crew hours.
- Multiply by the full cost of one crew hour. That is the wage plus payroll taxes, insurance and workers comp, not the wage alone. The labor burden calculator works out your own number.
- Add materials, and vehicle and fuel for that job.
- Subtract the total from the price. What is left is the job’s margin in dollars. Divide by the price to get it as a percent.
- Check that the margin covers its share of overhead. Overhead is the cost of running the company: the office, ads, software and your own pay. It is paid from the margin, so a job needs enough left to carry its share.
A simple way to find each job’s overhead share: take one month of overhead and divide it by the crew hours worked that month. With illustrative numbers, $10,000 of overhead over 400 crew hours is $25 for every crew hour. A job that used 7 crew hours should carry $175 of overhead. Work this out again each month with your own numbers.
Job costing examples
Both examples use illustrative numbers, not real customer data. Both use the same full cost of $32 per crew hour (wage plus payroll taxes, insurance and workers comp) and the same overhead share of $25 per crew hour. Swap in your own numbers to cost your jobs.
Example 1: a house wash and driveway that pays its way
A two-person crew washes a two-storey house and a double driveway. The quoted price is $650.
| Line | Hours or amount | Cost |
|---|---|---|
| Washing on site | 2 people x 2.5 hours = 5 crew hours | |
| Setup and pack-up | 2 people x 0.5 hours = 1 crew hour | |
| Drive there and back | 2 people x 0.5 hours = 1 crew hour | |
| Labor | 7 crew hours x $32 | $224 |
| Materials (cleaning mix, wear on equipment) | $35 | |
| Vehicle and fuel | $30 | |
| Job costs | $289 | |
| Price charged | $650 | |
| Left after job costs (margin) | $361 / $650 | $361 (55.5%) |
| Overhead share | 7 crew hours x $25 | $175 |
| Real profit after overhead | $186 / $650 | $186 (28.6%) |
This job is green, meaning it left a healthy margin. The drive was short, nothing went wrong, and the price covered every crew hour, the materials, the vehicle and its share of overhead. For how to build prices like this one, see how to price pressure washing jobs.
Example 2: a two-bedroom move that looked fine and lost money
A three-person crew moves a two-bedroom apartment for a flat $1,000. On the job sheet, the crew was on site for 5 hours, and the job looks healthy. Then you add the hours the job sheet did not show: the drive from the yard to the pickup and back from the drop-off, getting the truck ready, and a callback. Two movers had to go back the next week to rebuild a bed frame and patch a wall the crew scuffed.
| Line | On the job sheet | With drive time and the callback |
|---|---|---|
| Crew hours on site | 3 people x 5 hours = 15 | 15 |
| Drive from the yard and back | Not counted | 3 people x 1.5 hours = 4.5 |
| Getting the truck ready at the yard | Not counted | 3 people x 0.5 hours = 1.5 |
| Callback: rebuild bed frame, patch wall | None | 2 people x 2.5 hours = 5 |
| Total crew hours | 15 | 26 |
| Labor at $32 per crew hour | $480 | $832 |
| Materials (tape, wrap, wall patch) | $40 | $110 |
| Truck and fuel (including the callback trip) | $90 | $155 |
| Job costs | $610 | $1,097 |
| Price charged | $1,000 | $1,000 |
| Left after job costs (margin) | $390 (39%) | -$97 (-9.7%) |
| Overhead share at $25 per crew hour | Not counted | $650 |
| Real result after overhead | Looks like $390 profit | -$747 |
On its own, the job sheet says this move made 39%. Counted properly, it cost $97 more than it brought in before overhead, and it left nothing at all to pay for the office, the ads or the owner. Eleven crew hours that nobody wrote down turned a good-looking job into a loss.
Notice the margin math. A 45% margin means dividing costs by 0.55, not adding 45% on top. Adding 45% to $822 gives only $1,192, which is a 31% margin. Our guide to profit margin vs markup explains the difference. For moving quotes in full, see how to price moving jobs.
Why the average hides the problem (illustrative example)
Take ten example jobs that bring in $10,000 and leave $2,480 after job costs. That is close to a 25% average, which sounds fine. Look at the jobs one at a time and you might find:
| Group | Jobs | What they earned |
|---|---|---|
| Good (green) | 3 | Healthy margins |
| Barely profitable (yellow) | 4 | A thin margin that one slow day wipes out |
| Losing money (red) | 3 | Below zero after job costs |
These ten jobs are an example, not real customer data. They show how a decent average can sit on top of jobs that lose money. The home page chart uses a similar example.
The good jobs cancel out the losing ones, so the total looks fine and nothing seems wrong. Meanwhile you are sending a full crew to jobs that pay you nothing.
Sample job profitability report (10 jobs)
A job profitability report lists every job in a period, with its price, its job costs, what it left and its margin. Here are the same ten example jobs from an exterior-cleaning company, one row each. The numbers are illustrative. In this sample, green means a margin of 40% or more after job costs, yellow means above zero but under 40%, and red means below zero. Set your own cut-offs from your overhead.
| Job | Price | Job costs | Left after job costs | Margin | Group |
|---|---|---|---|---|---|
| 1. House wash and driveway | $1,400 | $700 | $700 | 50.0% | Green |
| 2. Roof soft wash | $1,600 | $800 | $800 | 50.0% | Green |
| 3. Storefront, monthly visit | $1,200 | $660 | $540 | 45.0% | Green |
| 4. Deck wash | $900 | $650 | $250 | 27.8% | Yellow |
| 5. House wash | $1,000 | $750 | $250 | 25.0% | Yellow |
| 6. Driveway | $450 | $360 | $90 | 20.0% | Yellow |
| 7. Fence wash | $700 | $580 | $120 | 17.1% | Yellow |
| 8. Apartment walkways, ran 3 hours over | $1,100 | $1,170 | -$70 | -6.4% | Red |
| 9. House wash with a callback | $1,250 | $1,330 | -$80 | -6.4% | Red |
| 10. Driveway, long drive out of town | $400 | $520 | -$120 | -30.0% | Red |
| Total | $10,000 | $7,520 | $2,480 | 24.8% |
What the report tells you that the total does not:
- The three red jobs cost $270. Without them, the other seven jobs left $2,750 on $7,250, a margin near 38%. The losing jobs pulled the whole month down.
- Each red job has a plain cause: a job that ran long, a callback, and a long drive for a small job. Each one points to a fix: a better estimate, a better process, or a trip charge for far-away work.
- The yellow jobs are the next red ones. The driveway at $450 left $90. Two slow hours for a two-person crew (4 crew hours at $32, or $128) turn it red.
Sort the report by margin, lowest first. The jobs at the top of the list are where your next price change or process fix should go.
How to read the results
- Green: the price is doing its job. Protect these customers and learn what they have in common.
- Yellow: the job made a little. One slow day, one long drive or one extra helper turns it red. These jobs need a higher price or a smaller scope.
- Red: the job cost more than it brought in. Find out why before you quote the next one like it.
What to change when a job loses money
- Reprice it. Raise the price on the next quote of the same kind, using the real hours.
- Change the job. Add a minimum charge, a travel fee, or a smaller crew for easy work.
- Say no. A customer who will only book at a price that loses money is a customer you can let go.
- Check again next month. One slow job is a fluke. Three of the same kind is a pricing problem.
Job cost tracking without extra paperwork
Job costing is only as good as the hours behind it. Most of the money lost in Example 2 was hours nobody wrote down. A few habits fix that:
- Clock in and out by job, not by day. A daily timecard tells you what to pay. It does not tell you which job the hours went to.
- Start the clock when the crew leaves the yard. Drive, loading and setup time are real costs. If they are not on the clock, they vanish from the job.
- Put callbacks on the original job. If a return trip is booked as a new job, the first job looks better than it was and the callback looks like free work.
- Log materials to the job they went on, even as a rough amount per job type.
- Compare estimated hours with real hours after each job. The gap is where your next quote is wrong. Our guide to estimating labor hours for a job shows how to close it.
In CrewBrain, crews clock in and out from the crew app, and hours are tracked by job. If crews clock in when they leave the yard, the real crew hours for each job are already recorded when you sit down to cost it.
More bookings, not fewer
Fixing a price you got wrong is not the same as raising every price. The goal is to price each job so it lands in a healthy range: not so low that you lose money, not so high that the customer says no. Pricing every job on its own costs, rather than one price for all of them, is how a company can earn more per job and still book well. Our pricing guide shows the formula.
Keep reading
Questions owners ask
What is job costing?
Job costing is working out what each job cost you (crew time, materials, vehicle and fuel) and what it earned, so you can see the profit or loss on every job instead of only the monthly total.
How do I know which jobs are losing money?
Record the price, the real crew hours (including drive time), materials and vehicle costs for each job, then subtract. A job with costs above its price is losing money. Software can do this for you from clock-in times and invoices.
How often should I review job profit?
Review it every month at least, and look at the individual jobs, not only the total. Check right after unusual jobs too, such as a long drive or a job that ran over.
Is a 25% average profit good?
It depends on your trade and overhead, but an average alone cannot tell you. A 25% average can be made of very good jobs and jobs that lose money. Look at the spread across jobs before you decide.
What is an example of job costing?
With illustrative numbers: a two-person crew washes a house for $650. They work 7 crew hours, counting the drive and setup, at a full cost of $32 an hour ($224). Materials are $35 and vehicle and fuel are $30, so job costs are $289. The job leaves $361, a 55.5% margin, before its share of overhead.
What should a job profitability report show?
One row per job, with the price, the job costs (crew hours at full cost, materials, vehicle and fuel), what the job left and its margin. Sort it lowest margin first, so the jobs that lost money sit at the top and you can see why each one did.