How Do I Know If I'm Charging Enough?
Audit five completed jobs to find out whether your price, estimate, or job execution is costing you profit. Includes a worksheet, formulas, and a worked example.
Pull the last five jobs that should have made money. Same kind of work, similar scope. If they paid their direct costs, carried their share of overhead, paid for your own field time, and still left the margin you planned, the price held up. If they didn’t, one of the numbers broke.
A packed calendar won’t settle the question. Neither will the balance in the bank today. The job records will.
The five-job pricing audit
Choose five comparable jobs completed in the last 60–90 days. Five water-heater replacements will tell you something. One water heater, one repipe, one drain call, one remodel, and one emergency repair won’t. Similar jobs show whether the price is consistently wrong or one project simply went sideways.
Build one row for each job:
| Record for each job | What belongs in the number |
|---|---|
| Revenue | The job price before sales tax; subtract refunds and credits |
| Estimated direct cost | The labor, materials, subcontractors, permits, disposal, equipment, and rentals used to build the quote |
| Actual direct cost | What the job consumed after invoices, timecards, and purchase receipts are complete |
| Owner labor | A market-based wage for hours you worked on the job if that labor is not already in payroll |
| Allocated overhead | The job’s share of vehicles, insurance, office payroll, software, rent, marketing, and other operating costs |
| Callback or warranty cost | Actual callback cost, or a consistent allowance based on your own history |
| Full job cost | Actual direct cost + owner labor + allocated overhead + callback or warranty cost |
| Job profit | Revenue - full job cost |
| Job margin | Job profit / revenue |
Count each expense the same way on all five jobs. If truck insurance sits in overhead on job one, don’t move it into direct cost on job two. This is a management view for pricing decisions; your accountant may classify some items differently on the financial statements.
Still missing an overhead rate? Allocate it by realistic billable hour, completed job, or direct cost using how to calculate overhead per job. A solo owner also needs to price working time separately from business profit, as shown in how to price jobs as a solo owner.
A worked example
Suppose a plumbing business audits one completed replacement job. The numbers below are illustrative; use your own payroll, invoices, and overhead rate.
| Item | Amount |
|---|---|
| Job revenue | $4,800 |
| Materials and disposal | $1,400 |
| 32 team hours at a $38 burdened labor cost | $1,216 |
| Permit and equipment | $250 |
| Allocated overhead: 32 hours at $22 | $704 |
| Callback allowance based on company history | $150 |
| Full job cost | $3,720 |
| Job profit after allocated overhead | $1,080 |
| Job margin | 22.5% |
The arithmetic is:
job profit = $4,800 - $3,720 = $1,080
job margin = $1,080 / $4,800 = 22.5%
If the business requires a 25% job margin on this service to reach its overhead and net-profit plan, the price supported by this actual cost is:
required price = full job cost / (1 - target margin)
required price = $3,720 / 0.75 = $4,960
That does not automatically mean every replacement should become $4,960. First repeat the calculation for the other four jobs. If their scope is comparable and their actual cost clusters around the same number, you have evidence for repricing. If this job alone needed eight extra hours because the estimate missed difficult access, fix the estimating rule instead of raising every customer’s price for one exception.
Check 1: Did the quoted job have enough margin before work started?
Rebuild the margin using the cost information available when you quoted the job.
- If the estimated margin was already below your requirement, the price or scope was wrong before the job began.
- If the estimated margin was acceptable but actual margin was low, the leak is in estimating accuracy, purchasing, scheduling, productivity, scope control, or callbacks.
- If the estimated and actual margins were both acceptable, pricing may not be the reason cash feels tight.
This distinction matters. Raising every price can hide an estimating or operational problem for a while, but it does not repair it.
Check 2: Did the job recover every cost the business has to carry?
Look for costs that disappear from quotes because no supplier sends a separate invoice for them:
- Payroll taxes, workers’ compensation, paid time off, and other labor burden
- Drive time, loading, cleanup, quoting, purchasing, and invoicing
- The owner’s field labor before owner profit or distributions
- Vehicles, insurance, licenses, software, office time, marketing, tools, and rent
- Warranty work, callbacks, breakage, card fees, and uncollected balances
A common error is to call whatever remains after materials and field wages “profit.” That remainder still has to pay overhead. Another is to treat the owner’s draw as a labor cost even when it does not reflect the hours worked. For pricing, assign a wage to the owner’s labor first; profit is the return left after the business has paid for the work.
Check 3: Is price the problem, or is the business losing money elsewhere?
Use the five rows to choose the diagnosis:
| What the five jobs show | Likely diagnosis | Next move |
|---|---|---|
| Estimated and actual margins are consistently below plan | Price or base scope is too low | Recalculate the service and test the supported price on new quotes |
| Estimated margin is healthy; actual margin is weak | Estimate or job execution is leaking | Compare estimated vs. actual hours, quantities, purchase cost, changes, and callbacks |
| Margin is healthy; cash is still short | Pricing may not be the immediate problem | Review collections, deposits, debt, taxes, inventory, capital purchases, and owner draws |
| One job type loses while the others work | A service-specific price or process is wrong | Fix that service rather than applying a blanket increase |
| Margins are healthy and capacity is consistently full | Demand may support a higher price | Run a controlled test and watch margin, close rate, and schedule utilization |
Use close rate as a cross-check, not a pricing formula
Winning nearly every quote can be a reason to investigate, but it does not prove that your price is low. A repeat customer, a referral, and a paid lead do not arrive with the same intent. Neither do a drain clearing and a full repipe.
Track close rate by job type, lead source, customer type, and price band. Then read it beside completed-job margin and available capacity:
- Weak margin + unusually high close rate on comparable work supports a calculated price test.
- Healthy margin + low close rate may indicate poor lead quality, slow follow-up, unclear scope, weak proof, or a price that the market does not accept.
- Healthy margin + full capacity means you can test price without pretending that losing a fixed percentage of bids is the goal.
There is no universal close rate that proves you are charging enough.
What to change after the audit
A blanket percentage across the whole price book is rarely the answer. Change the input that failed:
- Missing owner wage or unrealistic billable hours: rebuild the rate with solo-owner pricing.
- Small visits cannot recover dispatch cost: calculate a minimum service fee.
- Actual hours repeatedly exceed the estimate: update the production allowance or use a different method for jobs with uncertain duration.
- Material cost is correct but material handling is unrecovered: review material markup.
- Large jobs lose money through missing scope and cash timing: rebuild the large-job estimating process.
After changing one service, monitor the next five comparable quotes and the first five completed jobs. Quote acceptance tells you whether customers bought the new price. Job costing tells you whether the new price actually solved the problem.
Frequently asked questions
How do I know if my prices are too low?
Audit at least five comparable completed jobs. Compare quoted cost with actual direct cost, owner labor, allocated overhead, callbacks, and job margin. You are undercharging when the work was delivered as estimated but the resulting margin is still below the amount the business requires.
Should I really lose some bids?
Yes. Losing some price-sensitive bids can be normal, but there is no required loss rate. Segment close rate by job type, lead source, and customer type, then interpret it alongside completed-job margin and available capacity.
How often should I raise my prices?
Review the inputs at least annually and whenever labor, materials, insurance, overhead, callback rates, or capacity changes materially. Reprice the affected services when the updated calculation shows the current price no longer produces the required margin.
Should I lower my price to win a job?
One rejected quote isn’t a reason to lower the price. Compare the scope and find out why similar jobs are being lost. A lower number works only when a documented change in scope, cost, timing, capacity, or strategy still leaves an acceptable margin.
Sources
- pricing
- charging-enough
- undercharging
- pricing-for-profit
- raising-prices