Opportunity Cost: The Job You Did Not Take

Why this matters

Every job on the board shows its own profit. No report anywhere shows the profit of the job you had to turn away because the crew was busy on something cheaper. That asymmetry is why owners say yes to discounted volume work in peak season and then wonder why a full May felt so thin. A low-margin yes is not free just because it makes money on its own line: it spends crew hours that could have gone to better work. This card teaches how to price that hidden cost in crew hours, why it is large in some weeks and zero in others, and how to tell which week you are in before you answer the phone.

The term

Opportunity cost is the value of the best alternative you give up when you commit a resource to one use. The idea is old and the term is usually credited to the Austrian economist Friedrich von Wieser in the early twentieth century. In a shop, the resource is almost always one of four things: crew hours, a specific licensed tech's hours, the owner's time, or cash. The cost of saying yes to a job is not just the labor and parts on that job. It is also the margin the same hours would have earned on the next-best job that actually wanted them.

Two words in that definition do all the work. Best, because the alternative is not "anything," it is the specific work you would otherwise have done. And actually, because an hour has an opportunity cost only if there was real demand waiting for it. An idle hour given up costs nothing.

Compare margin per crew hour, not margin percentage

The most common way owners compare jobs is gross margin as a percentage of revenue. It is the wrong yardstick for this question. A large install at 30% margin and a small repair at 60% margin cannot be ranked by those numbers, because they consume very different amounts of the thing that is actually scarce.

When crew time is the constraint, the comparison that answers "which job should those hours go to" is gross margin per crew hour: the margin a job earns divided by the crew hours it consumes, drive time included. Two jobs with the same margin percentage can be far apart on this measure, and a job with a lower percentage can be the better use of a busy week if it earns more per hour.

The worked example: twelve turnovers in May

A residential plumbing and HVAC shop runs four service techs, each working alone. A property manager asks for twelve apartment turnovers in May: flush the water heater, check the AC, fix whatever fixtures are broken. The shop estimates 4 crew hours per unit, so 12 times 4 = 48 crew hours, at a volume discount the manager expects.

To keep the comparison honest without currency, express everything per crew hour, using the shop's normal service work as the yardstick. Call the revenue a typical service crew hour brings in 1.0 unit.

Per crew hour Service calls Turnover package
Revenue 1.00 unit 0.70 unit (the discount)
Direct cost (labor, parts, truck) 0.45 unit 0.455 unit
Gross margin 0.55 unit, 55% of revenue 0.245 unit, 35% of revenue

The direct cost per hour is nearly the same for both, because the same techs drive the same trucks. The whole gap is price.

On its own line, the package makes money: 48 crew hours times 0.245 = about 11.8 units of margin. That is the number that will show up on the job report.

The opportunity cost depends on what those 48 hours would otherwise have done. Last May, the board ran about 92% booked and the office turned away or pushed out about 6 calls a week that it could not reach inside two days, about 24 over the four weeks. A typical service call takes about 3 crew hours including drive, so the 48 hours would have covered 48 divided by 3 = 16 service calls. Sixteen is fewer than the 24 the shop actually turned away, so the demand to fill those hours was real.

The same 48 hours on service work would have earned 48 times 0.55 = 26.4 units of margin.

The cost of saying yes: 26.4 minus 11.8 = about 14.6 units of margin given up. To put that in crew terms: 14.6 divided by 0.55 is about 27, so taking the package leaves the shop down by the margin that about 27 crew hours of ordinary service work would have earned. The package's job report says profitable. The shop's May is worse for having taken it.

What the margin numbers leave out. Those 16 displaced service calls were also where the shop finds its replacement work. Historically about 1 in 8 service calls leads to a replacement estimate and about 40% of those close, so 16 calls would have produced about 2 estimates and about 0.8 of a closed replacement job. And some of the 16 turned-away households call a competitor and stay with them. Neither of these shows up on any report.

The same job in February

Now the property manager asks for the same twelve turnovers in February. The board runs about 60% booked, and the office has not turned away a call in weeks.

The best alternative use of those 48 crew hours is techs restocking trucks and waiting for the phone. The opportunity cost is close to zero, and arguably below zero, since the techs are on payroll either way. Every unit of margin the package earns is margin the shop would not otherwise have had, and the package is a clean yes at the same discount.

Same job, same price, opposite answer. That is the core lesson of opportunity cost: the worth of a job is not a property of the job alone. It depends on what else is competing for the hours in the week it lands.

Turning the answer into something you can say

The useful response to the May request is rarely a flat no. It is a counteroffer that moves the work to where the hours are cheap:

  • Move it into slack. "We can do all twelve in late April or the second half of September at that rate. In May we can do them at our standard rate." The manager gets the discount, and the shop gets work in weeks that need it.
  • Price the peak. If the manager needs May, the volume discount does not apply, because May hours are the shop's scarcest. Charging the standard rate in May brings the package close to the service yardstick.
  • Split it. Take the four most urgent units in May at standard rate and the other eight in the slow window at the discount.

A property manager with a steady stream of units usually prefers a reliable slot to a cheap one, and a shop that can explain its seasons tends to keep the account.

What changes the answer

There is no real queue. The May math assumed the turned-away calls existed, and the shop checked that against last May's records rather than assuming it. If the office had not been turning work away, the 48 hours would have had little alternative use even in May. Check your own turned-away count before you assume a busy season means a binding one.

The low-margin job uses a different resource. If the turnovers could be done by an apprentice who cannot yet run service calls alone, they do not displace service work at all. The opportunity cost lives on whichever resource is actually scarce, so name the resource first.

The account is strategic. If the property manager controls a portfolio that provides steady winter work, some of the May cost buys the relationship. That can be the right trade, but make it deliberately, with a rough count of what the relationship is worth over a year, rather than discovering it was the reason after the fact.

The constraint is not crew hours. In some shops the bottleneck is the owner's estimating time, the one licensed tech who can pull permits, or cash during a slow month. The same arithmetic applies, per hour of that resource rather than per crew hour. This is the core of Eliyahu Goldratt's theory of constraints: a business's output is set by its one tightest resource, so an hour lost at the constraint is an hour lost for the whole shop, while an hour saved anywhere else changes little. For cash, the unit is weeks of payroll: a job that ties up material money for two months in the shop's thin season has an opportunity cost measured in what else that cash would have covered. A huge job that ties up the only person who can sell replacements has a large opportunity cost even if the crews are idle.

How to make the invisible job visible

Opportunity cost is hard to see because the forgone job leaves no record. Two habits fix that.

Keep a turned-away log. Every call the office cannot book inside your standard window gets a line: date, job type, and whether the customer waited or went elsewhere. It takes ten seconds a call. Without it, you cannot tell a binding week from a busy-feeling one, and every capacity decision in this card rests on that distinction.

Track margin per crew hour by job type, by season. Most field software can report gross margin and labor hours per job. Divide one by the other, group by job type and month, and you have the yardstick in the worked example from your own numbers rather than illustrative ones. The usual surprise is that one or two job types earn far less per hour than their margin percentage suggests.

The failure mode in the field

It looks like this: a shop that is "slammed" all summer, with every tech working overtime, and a summer profit no better than spring's. The board is full of discounted volume work, warranty labor, and favors for friends of the owner, all booked in March when the board looked empty. By June the shop is turning away the full-rate service calls it built its year around. The owner experiences it as a capacity problem and starts pricing a fifth truck. The actual problem is that the peak hours were sold at off-peak prices before anyone looked at what else would want them.

The check is simple. Before you commit peak-season hours to anything discounted, ask what those hours earned last peak season and whether the office was turning work away. If both answers are "a lot," the discount is costing more than it looks.

References

  • See related: Narrow Framing: Deciding One Job at a Time
  • See related: The Expected Value Habit
  • See related: Base Rates: The Number You Should Start From
  • Goldratt, E. M., The Goal (1984), on identifying the constraint that sets a business's throughput