SAMPLE
Profit Leak Review
Written findings
One flat rate was costing this shop about $200,000 a year.
Prepared forSample Comfort Air & Plumbing
Residential and light-commercial HVAC and plumbing, northwest Houston (invented company)
The shop7 field techs: 2 leads, 3 journeymen, 2 apprentices. 5 trucks. One dispatcher. Owner quotes everything at a flat $95 an hour.
The short answer
$95 an hour is under the floor for the lead techs, under the required rate for the journeymen, and over it for the apprentices. Added up across the year's billable hours, the flat rate leaves $157,397.60 on the table. The two-week ticket sample found another $45,045 a year in extra work the crews did and never billed.
The $20,000 promise
Cleared. Even counting only the lead-tech hours billed below the floor ($21,122.40) plus the unbilled extra work ($45,045.00), the leak is $66,167.40 a year. The arithmetic is on page 4.
In these findings
- The calculator, filled in for each tech class
- The rate card: normal year and slow-year stress test
- Findings: quotes under the floor, the unbilled leak, the total, the top three fixes
- Keeping it current: three changes to the books and job tracking
01 The calculator
1. The calculator, filled in for each tech class
What the owner told us: "I've charged $95 an hour for three years. The trucks are out every day and I'm still moving money from savings to make payroll twice a year."
Lines 1 to 8 come from the payroll register (Gusto), the benefits invoices, the truck list and the hours report from the dispatch software (Housecall Pro), all for the 12 months ending September 30. Lines 9 to 14 use the overhead pool on page 3. Each line is the guide's formula applied to this shop's numbers; rounding is to the cent at each line.
| # | LineHow to figure it | Lead2 techs | Journeyman3 techs | Apprentice2 techs |
| 1 | Base hourly wageStraight-time pay from the payroll register | $36.00 | $30.00 | $21.00 |
| 2 | Payroll taxes and workers' compLine 1 × 24% (FICA 7.65% + SUTA 2.35% + WC 14%) | +$8.64 | +$7.20 | +$5.04 |
| 3 | Benefits and paid leaveAnnual benefits cost ÷ 2,080 paid hours ($12,480 / $10,400 / $7,280) | +$6.00 | +$5.00 | +$3.50 |
| 4 | Cost per paid hourLine 1 + Line 2 + Line 3 | $50.64 | $42.20 | $29.54 |
| 5 | Billable efficiencyBillable hours ÷ paid hours, from the dispatch software, 12 months (1,560 / 1,500 / 1,360 billable on 2,000 paid) | 78% | 75% | 68% |
| 6 | Labor cost per billable hourLine 4 ÷ Line 5 | $64.92 | $56.27 | $43.44 |
| 7 | Truck, fuel, tools and dispatch appMonthly cost ÷ 120 billable hours. Truck: $1,080/mo ($520 note + $210 insurance + $260 fuel + $90 repairs). Apprentices have no truck of their own: $180/mo tools, phone, uniform | +$9.00 | +$9.00 | +$1.50 |
| 8 | Tier 1: loaded labor costLine 6 + Line 7 | $73.92 | $65.27 | $44.94 |
| 9 | Annual fixed overheadThe G&A pool, page 3. Same for every class | $288,000 | $288,000 | $288,000 |
| 10 | Annual billable hours, whole shopSum of each tech's Line 5 hours: 2 × 1,560 + 3 × 1,500 + 2 × 1,360 | 10,340 | 10,340 | 10,340 |
| 11 | Tier 2: overhead per billable hourLine 9 ÷ Line 10 = $288,000 ÷ 10,340 | +$27.85 | +$27.85 | +$27.85 |
| 12 | Break-even quoting floorLine 8 + Line 11 | $101.77 | $93.12 | $72.79 |
| 13 | Target net marginThe owner's number | 18% | 18% | 18% |
| 14 | Tier 3: required quoted rateLine 12 ÷ (1.00 − 0.18) = Line 12 ÷ 0.82 | $124.11 | $113.56 | $88.77 |
| What the owner quotes today | $95.00$6.77 under the floor | $95.00$1.88 over the floor, $18.56 under required | $95.00$6.23 over required |
Check one line yourself. Lead tech: $36.00 + $8.64 + $6.00 = $50.64. $50.64 ÷ 0.78 = $64.92. $64.92 + $9.00 = $73.92. $73.92 + $27.85 = $101.77. $101.77 ÷ 0.82 = $124.11.
02 Rate card
2. The rate card
Where Line 9 came from: the overhead pool
Twelve months of P&L, re-sorted. Anything that doesn't move with job materials went into the pool. Helper wages, overtime, fuel and small tools that the bookkeeper had in "operating expenses" came out of it and into job cost; the owner's base pay, which was sitting in cost of goods sold, went in.
| Overhead item (12 months) | Amount |
| Shop lease | $42,000 |
| Dispatcher pay, taxes and benefits | $55,000 |
| Part-time bookkeeper | $28,000 |
| Owner base pay | $90,000 |
| General liability and umbrella insurance | $18,500 |
| Software: dispatch, accounting, phones | $11,200 |
| Marketing and website | $12,600 |
| Shop utilities and supplies | $9,800 |
| CPA and legal | $7,400 |
| Bank and card-processing fees | $5,200 |
| Uniforms, training, licenses | $8,300 |
| Line 9: annual fixed overhead | $288,000 |
The rate card
The normal-year column uses the hours the shop actually billed (10,340). The slow-year column is the guide's stress test: every tech at the 70% capacity floor, 1,400 billable hours each, 7 × 1,400 = 9,800 hours, so $288,000 ÷ 9,800 = $29.39 of overhead per billable hour instead of $27.85. The card is set at the slow-year required rate, rounded up to the dollar, so a slow season doesn't put the shop under water.
| Tech class | Floornormal year | Requirednormal, 18% net | Floorslow year | Requiredslow, 18% net | Rate cardquote this |
| LeadLine 8 $73.92 | $101.77 | $124.11 | $103.3173.92 + 29.39 | $125.99103.31 ÷ 0.82 | $126 |
| JourneymanLine 8 $65.27 | $93.12 | $113.56 | $94.6665.27 + 29.39 | $115.4494.66 ÷ 0.82 | $116 |
| ApprenticeLine 8 $44.94 | $72.79 | $88.77 | $74.3344.94 + 29.39 | $90.6574.33 ÷ 0.82 | $91 |
After-hours and emergency calls: 1.5 × the rate card plus a one-hour trip charge at the rate card. Extra work found on site: rate card plus one hour, signed before the tools come out.
03 Findings
3. Findings
Quotes under the floor
We pulled 20 recent quotes and invoices. Every job that was mostly lead-tech hours was billed under the lead floor of $101.77. Three examples, labor only, at the $95 flat rate:
| Job | Hours | Billed at $95 | Floor | Under the floor | Required |
| Water heater re-pipe, residential | Lead 9 | $855.00 | $915.939 × 101.77 | −$60.93 | $1,116.999 × 124.11 |
| Two-zone mini-split install | Lead 16, journeyman 8 | $2,280.00 | $2,373.2816 × 101.77 + 8 × 93.12 | −$93.28 | $2,894.2416 × 124.11 + 8 × 113.56 |
| After-hours compressor swap, no premium charged | Lead 11 | $1,045.00 | $1,119.4711 × 101.77 | −$74.47 | $1,365.2111 × 124.11 |
The unbilled extra-work leak
Two weeks of tickets, all five trucks, 112 tickets. On 14 of them the tech wrote down extra work ("also replaced the capacitor," "cleared the second drain," "swapped the shutoff while I was under there") that never showed up on the invoice. Added up: 11.5 hours of labor and $640 in parts at cost.
Labor: 11.5 hrs × 26 two-week periods = 299 hrs × $95 = $28,405.00
Parts: $640 × 26 = $16,640.00 (at cost, no markup)
Extra-work leak: $28,405.00 + $16,640.00 = $45,045.00 a year
The total yearly leak
The rate gap is the difference between the required rate and the $95 the shop actually billed, times each class's billable hours. The apprentices are billed above their required rate, so that class is counted as a credit.
Lead: ($124.11 − $95.00) × 3,120 hrs = $29.11 × 3,120 = $90,823.20
Journeyman: ($113.56 − $95.00) × 4,500 hrs = $18.56 × 4,500 = $83,520.00
Apprentice: ($88.77 − $95.00) × 2,720 hrs = −$6.23 × 2,720 = −$16,945.60
Rate gap: $157,397.60
Rate gap + extra-work leak = $157,397.60 + $45,045.00 = $202,442.60 a year
Total yearly leak$202,442.60Rate gap plus unbilled extra work.
Counted the hard way$66,167.40Only lead hours under the floor: ($101.77 − $95.00) × 3,120 = $21,122.40, plus $45,045.00 unbilled.
The $20,000 promiseClearedEither way of counting clears it more than three times over.
The top three fixes
Quote by tech class, not one number.Leads at $126, journeymen at $116, apprentices at $91. The rate card goes to whoever writes quotes. Most customers will never notice; the ones who ask get a straight answer about what a lead tech costs.
Extra work gets a signature before the tools come out.Add an "extra work" line to the ticket in Housecall Pro. A tech can't close a ticket without marking yes or no, and yes needs the customer's signature and a price. The dispatcher checks it before the invoice goes out.
After-hours calls at 1.5 times the card plus a trip charge.The compressor swap on this page was 11 lead hours at 9 p.m. on a Friday, billed the same as a Tuesday morning. The customer expected a premium; nobody charged one.
04 Keeping it current
4. Keeping it current
Three changes to the books and the job tracking so the shop can re-run this calculator every January and July without us.
Split the chart of accounts: job cost on one side, overhead on the other.In QuickBooks, move helper wages, overtime, fuel and small tools out of "operating expenses" and into cost of goods sold under labor. Move the owner's base pay out of cost of goods sold and into G&A. After that, Line 9 is one P&L subtotal.
Run the billable-hours report every Friday.Housecall Pro already has billable hours by tech. The dispatcher runs the report Friday afternoon and writes each tech's weekly percentage on the whiteboard. Line 5 stops being a guess, and a tech who slips under 70% for two weeks gets a conversation, not a surprise in July.
One class per truck in QuickBooks.Tag the note, fuel, insurance and repairs for each truck to that truck's class. Line 7 becomes one report per truck instead of four accounts added up by hand.
What the Review did not cover
Materials pricing, collections and cash timing.
This Review is about labor and overhead.
Prepared by SweetSpot Business Advisors. This sample shows the format of the written findings. Real findings are built from your payroll, your P&L, your tickets, and a day at your shop.