Trip Yield: The Number That Prices a Truck Roll

Why this matters

Trip yield is total revenue from completed jobs divided by the count of completed jobs, and its denominator includes every visit that earned nothing: the warranty return, the no-charge callback, the goodwill visit, the quote that took a truck. That single property makes it the only one of the money numbers on a completed job that tells the truth about what a truck roll is worth. Every other revenue figure in the set either excludes the free visits or never sees them, and the one cost figure that does see them is dragged down by them, so a shop whose free-visit load is growing can watch tickets rise, margin hold and costs look controlled while the truck earns less each time it leaves.

What is in the denominator

Two things separate it from the figures beside it.

  • It counts jobs, not invoices. A shop that rolls three visits onto one invoice has three entries in this denominator and one in its average-ticket denominator. The two numbers are not comparable and never were.
  • It is a weighted rate, not an average of averages. Total revenue over total count. A large job pulls it hard, a small one barely moves it, which is the opposite of how the margin percentage behaves. The averages card covers why that distinction matters across the set; here the practical consequence is that trip yield and the margin figure will disagree about how a period went, and both can be right.

It is also pre-tax booked revenue, the value of work performed, not cash collected.

The identity between trip yield and the average billed job

Compute a second figure alongside it: revenue divided by the count of jobs that carried revenue. Call it revenue per billed job. Same numerator, smaller denominator.

Divide one by the other and the revenue cancels:

trip yield          revenue / all jobs           billed jobs
----------------  =  ---------------------   =   -----------
rev per billed job   revenue / billed jobs        all jobs

The ratio of the two numbers is not an estimate of anything. It is the billed share, exactly, so one minus it is the free-visit share. That is what makes the pair worth carrying: the gap between them has one cause and only one, so a widening gap is a free-visit problem and nothing else, with no interpretation required.

Use revenue per billed job for this, not average ticket. Average ticket is denominated in invoices and carries sales tax, so dividing trip yield by it produces a number that means nothing.

Three quarters

Quarter Completed jobs Zero-revenue Billed Revenue per billed job Billed share Trip yield
1 96 18 78 2.74 units 81.3 percent 2.23 units
2 102 21 81 2.82 units 79.4 percent 2.24 units
3 99 27 72 2.88 units 72.7 percent 2.09 units

Revenue is indexed in units where 1.0 is one standard service call, and the trip-yield column is the identity at work: 2.88 times 0.727 is 2.09.

Read the two right-hand columns against each other. Revenue per billed job rose in both steps, from 2.74 to 2.82 to 2.88 units, a gain of 5.1 percent. Trip yield rose slightly in the first step and gave more than that back in the second, ending at 2.09 units, down 6.3 percent. The average job the shop billed got bigger; the average time it sent a truck out, it earned less.

Everything the owner would normally look at agreed with the first column. Tickets up. The margin percentage never saw the free visits at all, because a job with no revenue has no margin percentage. Cost per job actually improved, because free visits are cheap visits and they landed in that denominator too. Only this pair showed it, and it showed it in the third column from the right: the free-visit share went 18.8 percent, 20.6 percent, 27.3 percent of completed jobs. Better than one visit in four now earns nothing.

The one subtraction that is legal

Cost per job is the mean direct cost across every completed job, including the free ones. Trip yield is mean revenue across the same population. Same denominator, same population, both pre-tax - so these two can be subtracted, and almost nothing else in the set can.

Take the same shop, with a billed job costing 1.80 units of direct cost and a free visit costing 0.85.

  • Quarter 1: cost per job is (78 times 1.80) plus (18 times 0.85), which is 140.40 plus 15.30, or 155.70 units, over 96 jobs: 1.62 units. Trip yield 2.23 minus 1.62 leaves 0.61 units of direct contribution per completed visit.
  • Quarter 3: (72 times 1.80) plus (27 times 0.85) is 129.60 plus 22.95, or 152.55 units, over 99 jobs: 1.54 units. Trip yield 2.09 minus 1.54 leaves 0.55 units.

Contribution per completed visit fell about a tenth, from 0.61 to 0.55 units, in the same three quarters that the average billed job grew 5.1 percent. That is the honest summary of the period, and no other pair of figures in the shop's records produces it.

Two boundaries on that subtraction. It is direct contribution, not profit: cost per job excludes the truck, the office, the rent and the owner, so a positive number means the visit covered its own delivery and nothing more. And it inherits cost per job's blind spot, so if labour burden is not inside your stored pay rates, the contribution is overstated by the burden.

Sizing the fix, two ways

The contribution number turns "we should probably do something" into two specific options that can be compared.

Say the shop wants quarter 3's contribution back to quarter 1's 0.61 units per completed visit.

By price. Across 99 completed jobs, restoring 0.06 units each needs 99 times 0.06, or 5.94 more units of revenue in the quarter. That revenue can only come from the 72 billed jobs, so each one has to carry 5.94 over 72, or 0.083 units more. Against a billed job of 2.88 units, that is a rise of 2.9 percent.

By free-visit count. Hold prices and ask how many free visits the quarter could carry at 0.61 units of contribution. Billed revenue is 72 times 2.88, or 207.36 units, and billed cost is 72 times 1.80, or 129.60 units, leaving 77.76 units before any free visits. Each free visit adds 0.85 units of cost and one job to the denominator, so solving (77.76 minus 0.85 F) over (72 plus F) for 0.61 gives F of about 23. Check it: at 23 free visits, 77.76 minus 19.55 is 58.21 units over 95 jobs, or 0.61. So four fewer free visits in the quarter does the same job as the price rise.

Two restorations of exactly the same number, and they are completely different decisions. The price rise asks paying customers to fund a warranty-return rate that grew for its own reasons. Four fewer free visits is roughly a 15 percent reduction in the free-visit count, it costs nothing, and it addresses the thing that actually changed. Run both calculations before the pricing conversation starts, because the price option always presents itself first and it is rarely the cheaper one.

What it should drive

  • The minimum charge. This is its main job. A minimum charge is a floor on what a roll earns, and the contribution figure above tells you whether the current floor clears the cost of rolling. Set it against the whole visit - on-site time plus travel plus the parts typically consumed - rather than against the on-site hour alone.
  • Whether a service zone is worth serving. Compute trip yield by zone or postcode group. A zone materially below the shop figure is either a minimum-charge problem specific to that zone, a batching problem (serve it on fixed days so the drive is shared), or a zone to stop taking. Trip yield is the right number for this because drive time falls on every visit, earning or not.
  • Whether a return visit was avoidable. Where returns are booked as their own jobs, a rising free-visit share lands here first. The action is upstream of the visit: phone triage that identifies the part before dispatch, and truck stock for the parts that cause the most second trips.

What it must not drive

Do not use it to judge a technician. Who gets sent on the no-charge return is a dispatch decision, and it is usually made by sending the person most trusted to make the customer whole. That technician will carry the most zero-revenue jobs in the denominator and therefore the lowest personal trip yield in the shop, produced entirely by the shop's own routing. Ranking on it punishes the behaviour you selected for.

If you want a per-person read, the free visits have to come out first, and at that point you are no longer looking at trip yield. Any per-person figure also has to state how a job with two technicians on it is credited, which is its own problem.

The limitation: jobs are not truck rolls

Trip yield counts completed JOBS. If your shop logs a return visit inside the original job record rather than opening a new one, that second roll never reaches the denominator, and the figure will read higher than the truck deserves.

This is a convention, not an error, and both conventions are defensible. What it means is that trip yield is comparable against your own history and is not comparable against another shop's, because you have no way of knowing which convention produced theirs. It also means that if you change the convention, the figure will step and the step is not real.

Two checks worth running once:

  1. Count completed jobs against fuel or vehicle records for one month. If the roll count is materially above the job count, you are logging returns inside jobs and the figure is optimistic by that ratio.
  2. Confirm zero-revenue jobs are actually reaching the denominator. Compute total completed jobs and jobs with revenue for a past period. If they are equal, either you genuinely did no free work, which is unlikely, or the free visits are not being recorded as completed jobs at all, in which case trip yield and average ticket are the same number wearing two names.

And one habit that matters more than either. Anything that lifts the average billed job lifts trip yield, and a rising free-visit load lowers it, so the level can sit perfectly still while both are moving underneath. The table above is nearly that case: a 5.1 percent rise in revenue per billed job absorbed most of a free-visit share that went from 18.8 to 27.3 percent of completed jobs, and the trip-yield level only fell 6.3 percent. Track the billed share as its own line, every period, beside the level. It is the one column in that table that a price change cannot touch, so it is the column that tells you whether the underlying thing got worse.

There is no cross-shop benchmark for the level of trip yield, and there cannot be: it is denominated in your prices and your job mix, so another shop's figure carries no information about yours. Benchmark the level against your own trailing four quarters, matching season to season where the work is seasonal, and benchmark the billed share against whatever your own steady state turned out to be once you have four quarters of it.

References

  • See related: Cost per Job, and What Is Actually Inside It - the other side of the only legal subtraction here
  • See related: Zero-Revenue Jobs and Which Numbers They Touch
  • See related: The Minimum Charge or Trip Fee Catalog Entry
  • See related: The True Cost of a Return Trip