Most service businesses do not lose money on the jobs they bid too high. They lose it on the jobs they bid too low — the ones that felt fine on the driveway and turned out to cover labor and nothing else. Pricing is not a gut call. It is four numbers stacked in order, and if you get the order right the margin takes care of itself.
Start with the true cost of the work
Before you can mark anything up, you need the floor: what this specific job costs you to complete. That is three things, and none of them is your opinion of what the work is worth.
- Labor — the hours the job takes, times your fully-loaded labor rate (not the wage; the wage plus payroll taxes, insurance, and any benefits).
- Materials — everything consumed on the job, at what you actually pay for it, including the trip to the supply house.
- Direct costs — equipment fuel, disposal fees, a subcontractor, a permit: anything you would not spend if this job did not exist.
Fully-loaded labor
A tech you pay $25/hr rarely costs you $25/hr. Add payroll taxes, workers-comp, and non-billable time and the real number is often $35–$45. Bid against the wage and you are underwater before you buy a single part.
Add overhead, because the office is not free
Overhead is every cost that keeps the doors open but cannot be traced to one job: your truck payment, software, phone, advertising, the hours you spend quoting and invoicing. To price a job you need to recover a slice of it on every ticket.
The simple version: take last year’s total overhead, divide by the number of billable hours you actually sold, and you get an overhead cost per hour. Add that to your loaded labor rate. Now your "cost" line covers the business, not just the crew.
Then — and only then — add margin
Margin is what is left after every cost above is covered. It is the money that funds a slow month, a new truck, and your own pay. The mistake almost everyone makes is confusing markup with margin.
Total your cost
Loaded labor + materials + direct costs + the overhead slice. Say that comes to $600.
Pick a target margin
A healthy service job often targets 30–50% gross margin. Use 40% for this example.
Divide, do not multiply
Price = cost ÷ (1 − margin). $600 ÷ (1 − 0.40) = $1,000. A 40% markup would have given you $840 — and only a 28% margin.
Markup ≠ margin
Marking cost up by 40% is not the same as making 40% margin. To keep 40%, divide cost by 0.60. This one swap is the single most common reason a "profitable" job quietly isn’t.
Price the customer, not just the job
The math gives you a floor. What you actually charge can move above it for a rush job, a hard-access property, or a premium finish — and it should. What it should not do is drop below the floor to win work you cannot afford to do. If a price loses the bid, you learned the job was not yours, not that you should have worked for free.
Write it down the same way every time
The businesses that hold their margin are the ones with a repeatable estimate: a price book with loaded costs baked in, so a quote is a few taps instead of a napkin. When the numbers live in one place and flow straight onto the quote, the invoice, and the books, you can see your real margin by job instead of guessing at year-end.
That is the whole reason Mortar computes a quote total in one place and carries it through to the invoice untouched — so the number you priced is the number you get paid. If you want the buyer’s-eye view of the tools that do this, start with what a field service CRM should actually do.
What is a good profit margin for a service business?
Gross margin (revenue minus direct job cost) of 30–50% is common for healthy service work; net margin after overhead often lands around 10–20%. The right target depends on your trade, but anything that only covers labor is a red flag.
Should I charge hourly or flat-rate?
Flat-rate pricing built from your loaded costs protects your margin and is easier for the customer to say yes to. Hourly billing exposes you to every job that runs long. Most maturing service businesses move toward flat-rate for known work.
Building Mortar — the all-in-one CRM for service businesses. One shared record, one number behind every job.