ZeroDelay Academy · Free tool

Service business profit leak check

Use a small set of your own numbers to check one plumbing, HVAC or roofing operating question. The calculations update locally as you type, without an account, AI call or lead form. The calculator sends no figures to ZeroDelay or analytics and does not save them to an account.

By ZeroDelay · Educational arithmetic, not financial advice or a profit forecast

Choose a workflow

The fields start with clearly illustrative figures so you can see how each formula works. Replace them with consistent records from the same period; results appear immediately. Clear a field to see its validation message.

Job contribution and callbacks
Illustrative example values are prefilled. All figures remain in this browser page only. Enter your own loaded hourly labor cost; callbacks must exclude costs already counted in original-visit hours or parts.

Live results and formulas

  • Estimated direct contribution: $4,380

    Collected revenue − parts − (estimated hours × loaded labor cost/hour) = $7,800 − $2,160 − (36 × $35) = $4,380.

  • Actual direct contribution before callbacks: $3,960

    Collected revenue − parts − (actual hours × loaded labor cost/hour) = $7,800 − $2,160 − (48 × $35) = $3,960.

  • Actual direct contribution after callbacks: $3,740

    Actual contribution before callbacks − additional callback cost = $3,960 − $220 = $3,740.

  • Hour variance: 12 hours

    Actual − estimated hours = 48 − 36 = 12 hours. Negative means fewer hours than estimated.

  • Extra-hour cost gap: $420

    (Actual − estimated hours) × loaded labor cost/hour = (48 − 36) × $35 = $420. Negative means fewer hours than estimated, not a promised saving.

  • Callback cost gap: $220

    Additional callback cost entered = $220.

  • Total direct-contribution gap: $640

    Extra-hour cost gap + callback cost gap = $420 + $220 = $640 (estimated direct contribution − actual direct contribution).

This comparison holds collected revenue and parts constant and assumes no callbacks in the estimate. Count original-visit labor in actual hours. Include only additional callback costs not already counted in those hours or parts to avoid double counting. Loaded labor cost is your own hourly direct cost, not a benchmark. Direct contribution is not net profit: travel, dispatch, overhead, tax and other costs may remain excluded. A negative gap means actual direct contribution exceeds the estimate. No gap is a promised saving or an explanation of what caused the variance.

Three fictional worked examples

All examples are invented solely to explain the arithmetic. They are not customer outcomes, benchmarks or predicted savings. These explanations remain available even when the interactive tool is unavailable.

Plumbing: callbacks and hours

Illustrative only: $7,800 collected, $2,160 parts, 36 estimated original-visit hours, 48 actual original-visit hours, $35 loaded labor cost per hour and $220 additional callback cost.

Calculation: Estimated direct contribution = $7,800 − $2,160 − (36 × $35) = $4,380. Actual direct contribution before callbacks = $7,800 − $2,160 − (48 × $35) = $3,960; after $220 callbacks = $3,740. Extra-hour gap = (48 − 36) × $35 = $420; callback gap = $220; total gap = $640.

Limit: Callback costs exclude original-visit labor already counted in actual hours. Direct contribution is before overhead, travel, dispatch and tax, so it is not net profit. The $640 gap is hypothetical, not a promised saving.

Read the full Academy guide
HVAC: bookings and available time

Illustrative only: 80 original bookings, 66 completed, 2 average hours per job and 150 available technician hours.

Calculation: 66 ÷ 80 = 82.5% completed; floor(150 ÷ 2) = 75 theoretical jobs. Remaining hours = 150 − (66 × 2) = 18; floor(max(0, 18) ÷ 2) = 9 theoretical remaining jobs.

Limit: The nine jobs are only a time-based ceiling; day, skill and drive-time constraints could prevent them.

Read the full Academy guide
Roofing: estimate coverage and contribution

Illustrative only: 30 estimates, 12 documented follow-ups, 6 accepted jobs, $72,000 collected on completed jobs and $50,400 direct costs.

Calculation: 12 ÷ 30 = 40% documented follow-up coverage. $72,000 − $50,400 = $21,600 completed-job contribution; $21,600 ÷ $72,000 = 30% contribution margin.

Limit: The six accepted jobs are context, not attributed to the follow-ups. Contribution is before overhead and is not net profit.

Read the full Academy guide

Share the free Profit Leak Check

Nothing is posted automatically.