A plumbing service call is short enough to cost in your head and long enough for that head-math to be wrong. The usual version is: they paid $225, the tech makes about $28, the snake was already on the truck, so the call "made a couple hundred." The version you can reprice from includes the drive, the truck, the shop's rent, and the lead if you bought the customer.
Below is one kitchen drain, then the same drain with a lead fee, then a callback. The steps match the phone: who it was for, how long you were out, what they paid. The step-by-step costing guide is the general method. This page is the plumbing call.
Rates in every table here. Labor is $45 an hour, the truck is $0.65 a mile, and overhead is $12 an hour. That $12 is a $1,920 monthly shop cost spread across 160 hours on the job. Lead cost is $0 unless the table says otherwise. These are the public calculator's starter numbers, so you can rerun every ticket. On the phone, overhead is the monthly shop cost split across hours you actually log that month, and the month stays a draft until it closes.
Step 1. Who it was for, and what you did
Customer name. A last name is enough, because you have to find this on Friday. Job type: tap Drain. The chips are Drain, Leak, Water heater, Bathroom, Boiler, Other, and Callback. If you type a new phrase for every snake, you will not be able to see "drains" as a group. Pick one label and keep it.
This step feels like admin. It is the sort key for every margin question you will ask later.
Step 2. How long you were out
Time at the job is a timer, or hours and minutes if the visit is already over. "Stop timer and see profit" closes the visit. Typing hours replaces a running timer, and the screen asks before it throws the live time away, so you do not end up with both.
Drive is "minutes driving," there and back, plus miles there and back. On this drain that is 30 minutes and 18 miles. In the calculator those 30 minutes are 0.5 hours, because the calculator thinks in hours and the phone thinks in minutes. Same labor either way: 0.5 times $45 is $22.50.
Do not fold the drive into the hour at the sink. On this ticket the drive is half as long as the work. On a closer house it might be nothing. You want those to look different tomorrow.
Step 3. What they paid, and what you spent
Invoice first: $225 after any discount you gave in the driveway. Then parts at your cost: $18. The price you put on the invoice for "misc. materials" is not your cost. If you only stocked a cable that has done a hundred drains, put a honest wear number or zero, and live with it consistently.
Permits and the lead fee are under more costs. This repeat customer has neither. Labor rate and truck rate stay on the shop unless this ticket is weird. A helper, if you had one, is other direct cost. A solo drain does not need that line.
Overhead is not typed per call. Settings hold the monthly shop cost. It spreads across this month's logged hours when the month closes. Until then the month is a draft, which is the right warning: a half-logged week has not absorbed a full month of rent yet.
The drain, fully costed
Repeat kitchen drain, $225
| Line | Math | Amount |
|---|---|---|
| What they paid | $225.00 | |
| Onsite labor | 1 h × $45.00 | $45.00 |
| Travel labor | 0.5 h × $45.00 | $22.50 |
| Vehicle | 18 mi × $0.65 | $11.70 |
| Materials, your cost | $18.00 | |
| Overhead | 1.5 h × $12.00 | $18.00 |
| Lead | $0.00 | |
| Total job cost | $115.20 | |
| Net profit | $225.00 − $115.20 | $109.80 |
| Net margin | $109.80 ÷ $225.00 | 48.8% |
| Profit per hour | $109.80 ÷ 1.5 h | $73.20 / h |
Open this ticket in the calculator. Change one number and the margin moves with it.
The verdict is solid — 35%+ net. Do more of this work. This invoice is $47.77 over the 35% price. Gross margin before overhead and the lead is 56.8%. Direct cost is $97.20. The overhead share is $18.00. Net is what you quote from.
The napkin version of the same call
Wage $28, one hour, ignore the drive, ignore the truck, ignore rent, parts $18. Cost $46. "Profit" about $179, which is a fantasy margin near 80%. The missing money is the $22.50 of drive labor, $11.70 of truck, $18.00 of shop, and the gap between $28 and $45. The burdened rate is that last gap. The calculator will multiply a paycheck wage by 1.6 if you only know the wage. The phone will not. It uses the rate in Settings. Until you change that starter, the result says “This used $45/hr labor. Tap to set your real rate.”
Put the lead on the call that consumed it
Same drain, $85 lead
| Line | Math | Amount |
|---|---|---|
| What they paid | $225.00 | |
| Onsite labor | 1 h × $45.00 | $45.00 |
| Travel labor | 0.5 h × $45.00 | $22.50 |
| Vehicle | 18 mi × $0.65 | $11.70 |
| Materials, your cost | $18.00 | |
| Overhead | 1.5 h × $12.00 | $18.00 |
| Lead | $85.00 | |
| Total job cost | $200.20 | |
| Net profit | $225.00 − $200.20 | $24.80 |
| Net margin | $24.80 ÷ $225.00 | 11.0% |
| Profit per hour | $24.80 ÷ 1.5 h | $16.53 / h |
Open this ticket in the calculator. Change one number and the margin moves with it.
The verdict is thin — under 20% net. Travel, burdened labor, or the lead fee is eating this. A busy week of these still feels broke. To hit 35% net with this cost stack, the invoice needed to be $308.00 (you charged $225.00). You did not work slower. You paid to be invited. If this lead source is common, the $225 price is the problem, or the drive radius is, or the source is. The result line for a thin ticket says travel, burdened labor, or the lead fee is eating it. Here the lead fee is $85.00 of a $200.20 cost stack.
Record the callback even when the price is zero
Forty-five minutes back at the house, 30 minutes and 16 miles, $12 of parts, no charge. Revenue $0. Cost $93.65. Profit -$93.65. The verdict asks you to enter what the customer paid, and it calls a zero-dollar job a cost pile, useful for callbacks. That is the feature. A callback with no row is how the original 48.8% survives in your memory after you gave a chunk of it back.
Job type Callback. What they paid: 0. The helper text on the invoice field says zero is OK if you did not charge.
What to do with the result
On a solid ticket the screen tells you the invoice cleared the 35% price, and by how much. On a thin or losing ticket it tells you the invoice that would have hit 35% given this cost stack. For the lead-bought drain, that price is $308.00. You do not have to charge that tomorrow. You do have to know the gap before you tell the next lead you will "be fair."
After three other paid jobs, the result also shows this margin against your own average. That comparison is more useful than a national benchmark, because it is your drives and your rate. The national ranges live on the plumbing profit margin page. They are a sanity check. They are not this customer's house.
A week of calls, not a philosophy
Cost every service call for five days. Sort by job type. You want to see repeat drains in one pile and paid-lead drains in another, even though both are "Drain." The lead field is what splits them. If the paid-lead pile is thin and the repeat pile is solid, the task is not the problem. The offer and the radius are.
Then open a water heater from the same week. Material-heavy work will show a lower percentage and a larger dollar profit. Keep both. A shop that chases percentage only will refuse replacements. A shop that chases dollars only will fill the board with $225 calls that were $85 to acquire.
The phone keeps this math. It does not replace the invoice or the board. Jobs stay on the phone until you export a backup or a CSV. One rate per job. A helper's pay, if you had a second person on a bigger ticket, goes in other direct costs.
Frequently asked questions
How do you job cost a plumbing service call?
Record what they paid, time at the fixture, drive time, miles, parts at your cost, a share of shop overhead, and any lead fee. Subtract that stack from the invoice. The percent left is the net margin of that call.
What labor rate should a plumber use?
The burdened rate, not the wage on the paycheck. Until you finish a burden worksheet, 1.6 times the wage is a sturdier guess than the wage itself. The calculator can apply that 1.6 from a paycheck figure. The phone uses whatever rate you saved in Settings.
Where does a callback go?
On its own job, job type Callback, revenue zero if you did not charge. The cost is labor, miles, and parts. Leaving it off the books makes the original call look cleaner than the customer relationship was.
Does the phone calculate overhead per call by itself?
You set a monthly shop cost. It splits across hours logged that month when the month closes, and the open month is marked as a draft. The public calculator asks for an hourly overhead number so you can test one ticket before the month ends. $1,920 over 160 hours is $12 an hour, which is what these tables use.
Run the drain on your rates
The link opens the calculator with this ticket filled in. Change the labor rate to yours.