The Unprofitable Plan: Fix It or Kill It Decision Tree
Why this matters
A maintenance plan that quietly loses money is one of the easiest problems for a shop to miss, because every individual visit still feels productive: a truck rolled, a checklist got completed, a customer said thanks. The loss only shows up when you total the labor and material hours the plan obligates against what members actually pay across a full cycle, and by the time an owner runs that math the plan may have hundreds of members locked into pricing that no longer covers the visit. This tree walks the diagnosis in order, cheapest fix first, so you do not kill a plan you could have saved, or keep bleeding on one you should retire.
Start here: confirm it is actually unprofitable
Before changing anything, verify the number, because "this feels like a lot of work for what we charge" is a hunch, not a diagnosis.
- Calculate fully loaded cost per visit: technician time on site plus drive time plus materials typically consumed plus a fair share of scheduling and admin overhead.
- Calculate what a member's fee covers per visit, dividing the plan's total fee by the number of visits it promises.
- Compare. If cost per visit meets or exceeds what the fee covers per visit, the plan loses money on labor alone before you count any admin overhead or discounted repair work the plan also bundles in.
If the numbers show a real margin and the complaint is really "this is annoying to schedule," that is a capacity or scheduling problem, not a pricing problem. See related: Staffing for Membership Visit Obligations.
If the loss is small: fix pricing or scope first
A modest loss, or a plan that is barely break-even, is usually fixable without killing the program.
- Raise pricing on new enrollments immediately. This does not touch existing members and stops the bleeding from growing.
- Trim scope on the next print of the plan, removing a line item that consumes disproportionate time relative to what it is worth, such as a low-value inspection step nobody asks about.
- Check visit frequency against actual need. A plan promising more visits per year than the equipment genuinely benefits from is giving away labor for no retention gain. Dropping from too-frequent to industry-typical cadence can fix the math without members feeling shorted.
- Bundle a discount instead of a freebie. If the plan includes a "free" service that is actually a full paid job in disguise, convert it to a member discount on that service instead. The perceived value to the member barely changes; the cost exposure drops sharply.
Re-run the cost comparison after any of these changes before declaring the fix worked.
If the loss is structural: check what's really driving it
A larger loss usually traces to one of a few root causes. Work through them in order, because the fix is different for each.
Is it a specific plan tier? If you run multiple tiers, isolate the math per tier. Often one legacy or "founder" tier is the entire problem while the rest of the book is fine. If so, the fix is tier-specific: see the grandfather-vs-standardize decision below rather than touching healthy tiers.
Is it geography? Members spread across a wide service area rack up drive time that a flat annual fee never priced in. If unprofitable members cluster in far-out zip codes, the fix may be a geography-based fee tier or a route-day requirement, not an across-the-board price change.
Is it churn-driven acquisition cost? If the plan is priced correctly per visit but members cancel before the shop recoups onboarding cost (initial inspection, paperwork, first-year discount), the loss is a retention problem wearing a pricing costume. See related: The Renewal Reminder Sequence That Works, and the lapsed-member decision tree.
Is it scope creep from techs? Ask whether techs are quietly doing more at each visit than the plan specifies, out of habit or to avoid an awkward conversation with the member. Retrain to the documented scope before assuming the plan itself is priced wrong.
If none of that closes the gap: kill it deliberately, don't let it die by neglect
If pricing, scope, geography, and churn are all addressed and the plan still loses money at scale, keeping it running on hope is worse than sunsetting it on a plan.
- Stop new enrollments first. This caps the exposure immediately without disrupting anyone currently under contract.
- Decide the existing-member path: honor current terms through the contract period and let it lapse naturally, or offer a transition to a repriced version with adequate notice. Do not silently change pricing mid-term without notifying members; that is a trust break that costs more than the plan ever did.
- Give real notice. Written notice well ahead of any change, explaining what is changing and when, keeps the conversation professional and reduces angry cancellations.
- Redirect the freed capacity. The whole point of killing a losing plan is recovering technician hours for higher-margin work. Track where those hours actually go afterward; if they just get absorbed into slack time, the plan wasn't your capacity problem to begin with.
The recap
Confirm the loss with real numbers first. If it is small, fix pricing, scope, or frequency and remeasure. If it is structural, isolate whether it is a tier, a geography, churn, or scope creep, and fix that specific driver. Only after those fail, retire the plan deliberately: stop new signups, handle existing members with clear written notice, and make sure the freed labor actually goes somewhere more profitable.
References
- U.S. Small Business Administration (SBA), pricing and cost analysis for service businesses
- See related: Staffing for Membership Visit Obligations, The Renewal Reminder Sequence That Works, Grandfather Old Pricing vs Standardize Decision Tree