Job costing calculator and guide
Work out what a job really costs and the price that hits your target margin, with a free calculator, every formula written out and a worked example.

The example numbers match the worked example below and are hypothetical. Replace them with your own.
- Labor
- $0
- Direct job cost
- $0
- Overhead share
- $0
- Material handling
- $0
- Full job cost (break-even)
- $0
- Profit
- $0
- Markup on full cost
- $0
Most pricing trouble in the trades starts with not knowing what a job really costs. The calculator on this page takes the numbers you already have (hours, labor cost, materials, other job costs, overhead and the margin you want) and shows your break-even cost and the price that hits your target. This guide explains how to fill in each input, writes out every formula, works through an example with made-up numbers and shows how to turn the result into flat-rate prices. Keep your own figures handy and follow along.
What job costing tells you
Job costing means adding up everything a specific job costs you, including a fair share of the costs of running the business, and comparing that with what you charge. It answers three questions:
- What's my floor? The lowest price at which this job covers every cost. Below it, you're paying to do the work.
- What price hits my goal? The price that leaves the profit margin you've decided you need.
- Where's the money going? How much of the price goes on labor, materials, other costs, overhead and profit.
You can use the calculator in two ways. Before a job, enter your estimates to set or check a price. After a job, enter what actually happened to see whether the job made the money you expected. Both matter. The first protects you from underpricing, and the second shows you where your estimates keep drifting.
The calculator is a tool for your own numbers. It doesn't know what jobs cost in your area or what other companies charge, and it doesn't replace your accountant. What it does is make the math quick and visible, so pricing decisions are based on your costs rather than on a gut feeling or on what the company down the road charges.
Gather your numbers first
The calculator is only as good as what you put into it. Before you start, pull together a few figures from your books and job records. If you have an accountant or bookkeeper, ask them to help with the yearly numbers. It's a short conversation and it makes every price you set more reliable.
If you don't have last year's numbers because you're just starting, use careful estimates and mark them as estimates. Rerun your prices once you have three to six months of real figures.
How to fill in each input
There are seven inputs. Each one is explained below, with what to include and the most common mistake.
Labor hours
Enter the total paid hours all your people will spend on the job. Two techs working three hours each is 6 labor hours, not 3.
Include drive time to the job, setup, the work itself, cleanup, hauling away old equipment and any job-specific trip to the supply house. Use the hours a typical job actually takes, not the best case. If you have records from similar past jobs, use them.
Common mistake: entering only "wrench time" and forgetting the drive, setup and cleanup that you're still paying for.
Labor rate
Enter what one hour of labor costs you, not what you charge the customer. This is the most misunderstood input.
The most accurate figure is your loaded labor cost per billable hour:
Labor rate = a tech's total yearly cost ÷ the hours they bill to jobs in a year
Total yearly cost includes wages, payroll taxes, workers' compensation, health insurance and other benefits, and paid time off. Billable hours are the hours actually spent on customer jobs, which is always fewer than the hours you pay for, because of shop time, training, meetings and slow days. Dividing by billable hours rather than paid hours makes sure the unbilled time is covered. If you have several techs, use an average, or run the calculator with the rate of the tech who usually does the job. The post on how to calculate your billable hourly rate walks through this in detail.
Common mistake: entering the tech's hourly wage. A wage leaves out taxes, insurance, benefits and all the hours you pay for but can't bill.
Materials
Enter what the parts and materials for this job cost you, including sales tax you pay and delivery charges. Use your actual supplier price, not list price. Include the small stuff: fittings, fasteners, sealant, wire nuts, filters and fuel for equipment if it's specific to the job.
Common mistake: leaving out consumables because each one is small. They add up over hundreds of jobs.
Material markup
Material markup covers the costs of getting parts to the job that aren't in the part price: runs to the supply house, ordering and restocking, returns, waste, parts replaced under warranty and the money tied up in truck stock. Enter it as a percentage of your material cost.
There's one rule: don't count the same costs twice. If your overhead figure already includes these costs (for example, a parts runner's wages or the cost of warranty replacements), set the material markup to 0. Pick one method and use it on every job.
Common mistake: marking up materials to cover handling costs and also including those costs in overhead, which inflates the price without you noticing.
Other job costs
Enter any other costs that exist only because of this job: permits, inspection fees, dump or disposal fees, equipment rental, crane or lift hire, subcontractors, parking and specialty consumables. If a job needs a second trip that isn't covered by your labor hours, include the extra cost here.
Common mistake: forgetting permits and disposal fees on replacement jobs.
Overhead percentage
Overhead is everything you pay to run the business that isn't tied to a specific job: rent, office staff, insurance, software, phones, vehicle payments and upkeep, marketing, accounting fees and your own salary for the time you spend running the business. The calculator adds a share of overhead to each job as a percentage of the job's direct costs.
Overhead percentage = yearly overhead ÷ yearly direct job costs × 100
Yearly direct job costs are your field labor, materials and other job-specific costs for the year. For example, with made-up numbers, if overhead was $240,000 and direct job costs were $480,000, your overhead percentage is $240,000 ÷ $480,000 × 100 = 50%.
Two cautions. First, if your accountant gives you overhead as a percentage of revenue, that's a different number. Don't enter it here without recalculating it against direct costs. Second, some owners prefer to spread overhead by the hour rather than as a percentage. If you already know your overhead per billable hour, you can add it to your labor rate and set the overhead percentage to 0. Either method works if you use it consistently.
Common mistake: leaving your own salary out of overhead. If you don't pay yourself through the price, you're working for free.
Target profit margin
Enter the profit you want to keep as a percentage of the price, after every cost including overhead. This is a margin, not a markup. A 20% target margin means that out of every $100 the customer pays, $20 is profit.
What margin to aim for depends on your market, your risks, your warranty exposure and your plans for growth. Look at your own past results and talk it through with your accountant rather than borrowing a number from someone else.
Common mistake: thinking "I'll add 20%" gives a 20% margin. It doesn't. See the chapter on margin versus markup below.
The formulas, written out
Here is exactly how the calculator gets from your inputs to a price. In the math, percentages are used as decimals, so 20% becomes 0.20.
- Labor cost = labor hours × labor rate
- Direct job cost = labor cost + materials + other job costs
- Overhead share = direct job cost × overhead percentage
- Material handling = materials × material markup
- Full job cost (your break-even price) = direct job cost + overhead share + material handling
- Price at your target margin = full job cost ÷ (1 − target profit margin)
- Profit = price − full job cost
- Markup on full cost = profit ÷ full job cost
Two checks are built in. The profit divided by the price always equals your target margin, and the full job cost is the lowest price you can charge without losing money on the job.
Why the price divides instead of multiplies
To hit a margin, you work backward from the price. If you want 20% of the price to be profit, the remaining 80% has to cover your full cost. So the price is the full cost divided by 0.80. Multiplying the cost by 1.20 gives a smaller number and a smaller margin, which is the most common pricing error in the trades.
A worked example
This example uses made-up numbers to show how the math works. They're not benchmarks or suggested prices, so don't compare your business with them. Use your own.
Imagine a two-person plumbing crew replacing a standard tank water heater. The owner has run the numbers from last year's books and fills in the calculator like this:
| Input | Value | Where it came from |
|---|---|---|
| Labor hours | 6 | Two techs for 3 hours each, including drive, removal and cleanup |
| Labor rate | $40 | Loaded cost per billable hour, from last year's payroll |
| Materials | $900 | Heater, fittings, expansion tank, venting parts and sales tax |
| Material markup | 20% | Covers supply runs, restocking and warranty parts, which are not in overhead |
| Other job costs | $120 | Permit and disposal of the old heater |
| Overhead percentage | 40% | Yearly overhead ÷ yearly direct job costs |
| Target profit margin | 20% | Agreed with the company's accountant |
Now the steps:
- Labor cost = 6 × $40 = $240
- Direct job cost = $240 + $900 + $120 = $1,260
- Overhead share = $1,260 × 0.40 = $504
- Material handling = $900 × 0.20 = $180
- Full job cost = $1,260 + $504 + $180 = $1,944
- Price at a 20% margin = $1,944 ÷ 0.80 = $2,430
- Profit = $2,430 − $1,944 = $486
- Markup on full cost = $486 ÷ $1,944 = 25%
Check: $486 ÷ $2,430 = 0.20, so the margin is exactly 20%.
Here's where the customer's $2,430 goes. Shares are rounded to one decimal place.
| Line | Amount | Share of price |
|---|---|---|
| Labor | $240 | 9.9% |
| Materials | $900 | 37.0% |
| Other job costs | $120 | 4.9% |
| Overhead share | $504 | 20.7% |
| Material handling | $180 | 7.4% |
| Profit | $486 | 20.0% |
| Total | $2,430 | 100% |
What if the job runs long?
Say the same job takes 8 labor hours instead of 6 because a shut-off valve is seized. Everything else stays the same.
- Labor cost = 8 × $40 = $320
- Direct job cost = $320 + $900 + $120 = $1,340
- Overhead share = $1,340 × 0.40 = $536
- Full job cost = $1,340 + $536 + $180 = $2,056
If the customer was quoted $2,430, profit drops to $2,430 − $2,056 = $374, and the margin falls from 20% to about 15.4%. Two extra hours cost more than the $80 of wages you'd see on a timesheet, because overhead is attached to them too. This is why the hours you enter should reflect how jobs really go, and why common surprises deserve their own line items.
Margin versus markup
Margin and markup both describe profit, but they measure it against different things:
- Margin = profit ÷ price
- Markup = profit ÷ cost
Because the price is always bigger than the cost, the same dollars of profit give a smaller margin than markup. In the example above, $486 of profit is a 20% margin but a 25% markup.
The trap is adding a percentage to your cost and thinking it's your margin. Using the example's full job cost of $1,944:
- Add 20%: $1,944 × 1.20 = $2,332.80. Profit is $388.80, which is a margin of about 16.7%.
- Divide by 0.80: $1,944 ÷ 0.80 = $2,430. Profit is $486, a margin of exactly 20%.
Across a year of jobs, that gap is real money you meant to earn and didn't.
To convert between them:
- Markup needed = target margin ÷ (1 − target margin)
- Margin you'll get = markup ÷ (1 + markup)
| Target margin | Markup on full cost you need |
|---|---|
| 10% | 11.1% |
| 15% | 17.6% |
| 20% | 25.0% |
| 25% | 33.3% |
| 30% | 42.9% |
Turning results into flat-rate prices
Flat-rate pricing means the customer knows the price before work starts, whatever the clock says. It's easier for customers to say yes to, and it rewards a crew that works efficiently. It only works if each price is built on real costs, and that's what the calculator gives you.
1. Start with your most common jobs. List the 20 to 30 jobs you do most often. Run each one through the calculator with typical hours, typical materials and typical other costs.
2. Use typical hours, not best-case hours. Look at how long the job has actually taken on recent calls. If times vary a lot, use a figure that most of those jobs came in under, not the fastest one. A flat rate has to absorb the slow jobs as well as the quick ones.
3. Round up to a clean price. If the calculator says $2,430, you might list $2,450. Never round down below the calculated price unless you've decided to accept a lower margin on that job for a clear reason.
4. Split jobs that vary a lot. If some water heater replacements are in open basements and others are in tight attics, don't average them into one price. Make separate price book lines, such as "standard access" and "difficult access", or add line items for common extras like a new shut-off valve or updated venting.
5. Build options. For bigger jobs, run the calculator for each option in a good, better and best set, so every tier earns your target margin. The post on good, better, best pricing explains how to design them.
6. Set a minimum charge. Run the calculator for the smallest job you'd ever send a truck to, with the real minimum hours including drive time. That price is your floor for any visit.
7. Write it into your price book. Record each job's name, what's included, what's not, the hours assumed and the date you last checked the numbers. See how to build a price book your team will actually use.
8. Update when costs change. Rerun your prices when wages go up, when your supplier raises prices, when insurance renews or when your overhead changes. A price book that was right two years ago may be quietly losing money now.
Checking estimates against actual jobs
Pricing a job is half of job costing. The other half is checking what happened. Once a job is finished, enter the actual hours, materials and other costs into the calculator with the price you actually charged, and compare the result with your estimate.
A simple way is a short table for each job type you want to track:
| Line | Estimated | Actual | Difference |
|---|---|---|---|
| Labor hours | |||
| Materials | |||
| Other job costs | |||
| Full job cost | |||
| Price charged | |||
| Profit | |||
| Margin |
One job running over isn't a crisis. A pattern is. If your last several jobs of one type all ran two hours long, or needed the same extra part, your flat rate is wrong for how that job really goes. Adjust the hours, add a line item for the common extra or split the job into two prices.
Make this a habit rather than a project. Check a handful of jobs each week, and review each job type at least once a quarter. Ask your techs to record real start and finish times and any extra parts, and explain why: it's about getting prices right, not catching people out. The post on job costing has a full estimate-versus-actual example.
Common mistakes to avoid
Most costing errors are small on a single job and large across a year. Watch for these:
- Using wages as the labor rate. Use loaded cost per billable hour.
- Counting only time on the tools. Include drive, setup, cleanup and job-specific supply runs.
- Leaving your own pay out. Your salary belongs in overhead or labor, not in "whatever's left".
- Counting handling costs twice. If material handling costs are in overhead, set material markup to 0.
- Mixing up margin and markup. Divide by (1 − margin). Don't multiply by (1 + margin).
- Using overhead as a percentage of revenue. The calculator needs overhead as a percentage of direct costs.
- Pricing from best-case jobs. Use typical hours and typical surprises.
- Forgetting other job costs. Permits, disposal, rentals and subcontractors add up.
- Never updating. Rerun your prices whenever a major cost changes, and at least once a year.
- Discounting without doing the math. A discount comes straight out of profit. On the example job, 10% off the $2,430 price is $243, which is half of the $486 profit.
Tax, depreciation and how you pay yourself all affect your real bottom line in ways a job calculator can't capture, so review your pricing method with your accountant at least once a year.
Once your prices are right, the next job is making sure enough customers find you and call. Zome's free AI report checks your Google profile, website and local competitors, and if you add your typical job value, it gives a rough, clearly labeled estimate of what contact problems on your website might be costing you.
More guides
All resources
Prompt library100 AI prompts for home service businessesCopy a prompt, fill in the brackets with your own details and get a useful first draft in seconds. 100 prompts grouped by the jobs owners actually do every week.
GuideBusiness plan template for home service companiesTen sections, each with what to write, a checklist and example wording you can adapt. Built for trades owners who want a plan they'll actually use.
Guide37 Google Business Profile tips for home service businessesA practical list of 37 things to set up, fix and keep doing on your Google Business Profile, written for service businesses that go to the customer.The easiest way to grow your service business online.
Get your free AI report in about a minute, then see exactly what Zome would fix first.















