Annual service workload
Risk and margin
Retention and pull-through
Optional. A maintenance plan rarely pays for itself on the plan fee alone — it pays through the repair work a member buys, and it loses money when a member leaves before the visits they have already had are paid for. Leave both blank to price the plan fee on its own.
Your plan economics
Common questions
What is the difference between the break-even floor and the price at target margin?
The break-even floor is annual cost divided by 12 — on the defaults, $770 ÷ 12 = $64.17/month, the price that only covers labor, callbacks, parts, and overhead with zero profit. The target-margin price divides annual cost by (1 − margin) instead — $770 ÷ 0.80 = $962.50/year, or $80.21/month at a 20% margin — so it builds the profit in rather than adding a markup on top.
Why does the callback reserve matter if I hope not to need it?
Because callbacks happen at a rate you can estimate even when you can't predict which unit fails. On the defaults, 1 expected callback a year at 1 hour and $25 in parts adds $45 labor + $25 = $70 to annual cost — about 9% of the total. Pricing as if callbacks never happen means every real one is unpaid overtime instead of a cost the contract already covers.
What does “effective revenue per technician hour” tell me that the monthly price doesn't?
It is annual price divided by total technician hours reserved (preventive plus callback) — on the defaults, $962.50 ÷ 9.0 hours = $106.94/hour. That is the number to compare against what the same technician hour earns on a one-off service call; if maintenance-contract hours pay noticeably less than call-out work, the target margin or visit count needs to move before you sign more contracts at this price.
What happens if I enter a price a customer is already asking for?
The optional field compares that price against your break-even floor and target-margin price, and the page flags it directly when the proposed monthly price falls below break-even — a fast check before agreeing to a number that was set by budget rather than by cost.
Does a higher target margin always mean a higher price?
Yes, for a fixed annual cost — margin only scales the markup on top of cost, it never reduces it. What changes annual cost itself is the workload: more visits, more technician hours per visit, a higher loaded rate, or more callback reserve. Raise the margin to price in more profit; change the workload assumptions when the cost estimate itself is wrong.
How long does a customer have to stay before the plan is profitable?
The first tune-up happens at signing, so the agreement is underwater from day one and catches up month by month. On the defaults — 4 visits a year at $145 each, priced at $80.21/month — break-even arrives in month 5. A customer who cancels after month 3 has taken two visits ($337.50 of cost) against $240.63 collected: a $96.88 loss. “Test a cancellation after month” prices that exposure directly. Annual margin cannot show it, because annual margin assumes the customer stays a year.
Should I count the repair work a plan member buys?
Usually yes, and it often changes the decision. Enter the gross profit — not the revenue — you expect a member to buy in repairs and replacements over a year, and a second floor appears beside the plan-fee floor: on the defaults, $600 of pull-through drops the floor from $64.17 to $14.17/month. Both floors stay on screen because they answer different questions — whether the visits pay for themselves, and whether the member does. If pull-through is a hope rather than a figure you have measured from your own invoices, leave it blank.
Is my pricing or customer data uploaded anywhere?
No. Everything runs in your browser, and no figures are sent anywhere. “Copy share link” encodes your inputs into this page's own URL hash so a partner or the office can open the same plan; nothing is sent to a server. The only thing recorded is an anonymous local count of which buttons were used — never your rates, customer names, or contract numbers — and it respects Do Not Track / Global Privacy Control.