How to Calculate Job Costing for a Service Business (2026 Guide)
The short answer: Job costing is adding up every dollar a single job consumes, labor, materials, and a share of overhead, and comparing that total to what you charged. The formula is Job cost = labor + materials + overhead, and Job profit = price − job cost. The hard part is not the math; it is capturing labor from the hours your crew actually worked instead of what you guessed when you bid. CRMb does the costing for you off real punched hours, so the margin on every job is a number you can trust, not a hunch.
Most service businesses know their revenue and their bank balance. Far fewer know which jobs make money and which quietly lose it. Job costing is how you find out. It turns "we had a good month" into "the Henderson remodel cleared 31%, the Riverside cleaning contract is running at 4% and needs a price increase."
This guide covers the three cost buckets, a worked example you can copy, the mistakes that make costing wrong, and how to make it automatic.
What job costing actually is
Job costing assigns costs to a specific job rather than lumping them into one monthly pile. Instead of "we spent $48,000 on labor in June," job costing tells you "the Henderson job used $6,200 of labor, $3,400 of materials, and carried $1,100 of overhead."
That per-job view is the difference between a business that prices from data and one that prices from memory. Once you cost jobs consistently, three things happen:
- You spot the job types that always run over, and reprice or drop them.
- You bid new work from what similar jobs really cost, not optimism.
- You catch a job going sideways while it is still open, not at invoice time.
Job costing works for any service business that quotes work: general contractors, landscapers, cleaning companies, HVAC and plumbing, electricians, painters, and restaurants tracking event or catering jobs.
The three cost buckets
Every job cost falls into one of three buckets. Get all three and your number is honest; skip one and your margin is fiction.
1. Labor (usually the biggest, and the most often wrong)
Labor is your crew's hours on that job multiplied by their loaded rate. "Loaded" means more than the hourly wage, it includes payroll taxes, workers' comp, and any benefits, which typically add 15% to 30% on top of the base wage.
The number that trips people up is the hours. If you cost labor from the hours you estimated at bid time, you are not job costing, you are re-quoting. Real labor cost comes from the hours your crew actually clocked on that job, including the overtime you did not plan for. This is exactly why CRMb pairs with Punch: the crew punches in and out against the job, and those real hours flow straight into the job's cost. No timesheets to chase, no memory involved. See how to calculate labor cost per job for the full breakdown.
2. Materials (parts, supplies, and consumables)
Materials are everything you bought or pulled from stock for the job: lumber, fixtures, refrigerant, cleaning supplies, plants, hardware. Cost them at what you actually paid, not the retail price you charge the customer.
If you carry inventory, the right way to cost a part is its average cost, the running average of what you have paid across purchases, so a job that pulls 10 fittings from the truck is costed at your true blended price. CRMb's inventory tracks average cost per item and applies it automatically when materials are added to a job, and its purchasing side ties supplier invoices and purchase orders to the same records.
3. Overhead (the share of running the business)
Overhead is the cost of being open that is not tied to one job: rent, insurance, office staff, software, trucks, fuel, phones. You still have to recover it, so every job carries a slice.
The simple method: total your monthly overhead, divide by the labor hours you bill in a month, and add that per-hour figure to every job's labor. If overhead is $12,000/month and you bill 600 hours, that is $20 of overhead per labor hour. A job with 40 labor hours carries $800 of overhead. It is an estimate, but a consistent one beats ignoring overhead entirely, which is how "profitable" jobs leave you with no cash.
A worked example
Take a two-day bathroom remodel quoted at $9,500.
| Bucket | Detail | Cost |
|---|---|---|
| Labor | 46 punched hours × $42 loaded rate | $1,932 |
| Materials | Tile, fixtures, plumbing (average cost) | $3,150 |
| Subcontractor | Electrician | $700 |
| Overhead | 46 hours × $20/hr | $920 |
| Total job cost | $6,702 |
Job profit = $9,500 − $6,702 = $2,798. Margin = 2,798 ÷ 9,500 = 29.5%.
Now the insight job costing gives you: the bid assumed 40 labor hours, but the crew punched 46. That is 6 hours, roughly $250 of labor plus $120 of overhead, that your estimate missed. Still a healthy job, but if you had quoted three of these at the "40-hour" assumption, you would have quietly given away a day of labor. Cost enough jobs and that pattern, "we always run ~15% over on tile work," becomes a pricing rule.
The mistakes that make job costing wrong
- Costing labor from estimates. The single most common error. If your labor line equals your bid assumption, you have learned nothing. Cost from actual hours.
- Forgetting the loaded rate. Using the bare wage understates labor by 15% to 30%. Every "profitable" job is thinner than it looks.
- Pricing materials at retail, not cost. Your customer pays markup; your cost bucket should hold what you paid.
- Ignoring overhead. Jobs can show a "profit" that vanishes the moment rent is due. Always carry an overhead slice.
- Double-counting materials. If you already tracked a purchase as job materials, do not also count the same charge again when the supplier's bill hits your bank feed. CRMb flags likely double-counts so a receipt does not land twice.
- Costing late. A cost you calculate at invoice time is a post-mortem. Costing a job while it is open lets you fix a runaway job before you eat it.
Estimated vs actual: closing the loop
Good job costing compares two numbers: what you thought the job would cost when you bid it, and what it actually cost when it was done. The gap between them is the most valuable data in your business.
CRMb tracks both. You set a job's estimated labor hours and target margin when you quote it; as the crew punches in and materials get added, the dashboard shows the projected margin trending against your target, with the job flagged if it drifts into the red. That is the "catch it while it is open" workflow that a spreadsheet costed after the fact can never give you.
Do this on every job for a quarter and you will have your own dataset: which job types hit target, which always overrun, and exactly how much to add to your next bid.
How to make job costing automatic
Spreadsheet job costing works, right up until it doesn't. It depends on someone re-entering timesheets, remembering to log materials, and reconciling receipts by hand. Miss a step and the number lies.
The alternative is to let the job cost itself as the work happens:
- Labor flows in from real punch-ins against the job (Punch pairing), loaded rate applied.
- Materials are added from inventory at average cost, or pulled onto the job from a purchase order.
- Overhead is applied per labor hour on your own rule.
- Bank spend from your connected account is assigned to the job, so real supplier charges land in the cost, and the margin updates live on the reports view.
That is what CRMb is built to do: one system where the CRM, the schedule, the materials, and the money all point at the same job, so margin is a live number instead of a month-end guess.
Frequently Asked Questions
What is the difference between job costing and process costing?
Job costing assigns costs to a specific, distinct job, a remodel, a service call, a landscaping install, which is how service and construction businesses work. Process costing spreads costs evenly across large volumes of identical units, which suits factories, not field crews. If every job you do is a little different, job costing is the method you want.
How do I calculate labor cost for a job?
Multiply the hours actually worked on the job by each worker's loaded hourly rate (wage plus payroll taxes, workers' comp, and benefits, usually a 15% to 30% add-on). The reliable way to get the hours is a time-tracking app where the crew punches in against the job, so the number is real rather than estimated.
What overhead rate should a service business use?
A common approach is to divide total monthly overhead by the labor hours you bill in a month, giving an overhead cost per labor hour that you add to every job. If your overhead is $12,000 and you bill 600 hours, that is $20 per labor hour. Recalculate it a couple of times a year as your costs change.
What is a good profit margin on a job?
It varies by trade, but many service businesses target 20% to 40% gross margin per job after labor, materials, and overhead. What matters more than any single benchmark is measuring it consistently so you can see which of your job types beat your target and which drag it down.
Do I need software for job costing?
For one or two jobs, a spreadsheet is fine. Once you are running several jobs a week with a crew, manual costing breaks down, timesheets go missing, materials go unlogged, and receipts pile up. Software that pulls labor from real punched hours and materials from inventory keeps the cost accurate without the data entry.
Getting started
Pick your three most recent finished jobs and cost them this week: real hours at a loaded rate, materials at cost, plus an overhead slice. The margins will surprise you, and that surprise is the point.
If you would rather the costing happen on its own, CRMb runs your clients, schedule, inventory, and invoicing on one set of data and shows the real margin on every job from your crew's actual punched hours, on Mac, iPad, and the web. Start free and cost your next job automatically.