How to Use Service History to Predict the Next Call
Why this matters
Most shops treat the phone as weather: it rings or it does not, and you staff for the average. But the majority of a mature shop's calls come from people who already called before, and the record of when they called is sitting in your completed-job history. A shop that can name which 40 customers are due in the next 60 days can fill a slow week on purpose instead of discounting into it. A shop that cannot will keep discovering, six months late, that a customer went quiet - and by then the equipment has already been touched by somebody else.
Prediction here is not a model. It is arithmetic on gaps between visits, plus three modifiers, plus honesty about which customers you have enough history to predict at all.
Step 1: Decide what event you are predicting
Pick one and stay on it: the next time this customer initiates paid work. Not the next time they answer a call, not the next marketing touch. If you blur those together, your accuracy number will look fine and mean nothing, because a customer who books a free estimate is not the same event as one who buys a repair.
Two exclusions matter. Do not count callbacks and warranty returns as a next call - those are your previous job finishing, not a new demand event, and counting them shortens every interval you compute. And do not count a job you generated with an outbound reminder as a naturally-timed call when you are building the baseline; it tells you what your outreach did, not what the customer's own cycle is. Tag those separately or your intervals will drift shorter every year you run reminders.
Step 2: Build the gap table from completed jobs only
For each customer record, list every completed, paid job in date order, then compute the months between consecutive jobs. That column of gaps is the whole raw material.
Three cleanup rules before you use it:
- Multiple visits inside one job stay one event. A diagnosis on the 3rd and the repair on the 11th is one call, not two, so the 8-day "gap" never enters the table.
- Same-week second unit stays one event. They called once and you did two things.
- Drop the gap that spans a known move-in or ownership change at that address. That is a different relationship starting, not the same one continuing. See the property-versus-person card in References.
Step 3: Derive a per-customer interval, and know when you cannot
Use the median gap, not the average. One 22-month gap caused by a year the customer used somebody else will pull an average badly off; the median shrugs it off. With an even number of gaps, take the midpoint of the middle two.
How much history you have determines what you are allowed to claim:
| Completed jobs on record | Gaps available | What you can predict | Confidence |
|---|---|---|---|
| 1 | 0 | Nothing personal. Use the service-type default interval. | Low |
| 2 | 1 | A single gap. Treat as a guess, widen the window. | Low |
| 3 to 4 | 2 to 3 | Median gap is usable. | Medium |
| 5 or more | 4 or more | Median plus a real spread you can turn into a window. | High |
The spread matters as much as the middle. If four of five gaps land between 11 and 14 months, you have a customer on a rhythm and a tight window. If the gaps read 6, 19, 9, 31, the median is meaningless as a date and the honest output is "unpredictable, watch for a trigger instead."
Step 4: Apply the three modifiers that move the date
The gap median tells you the habit. Three things override the habit, and you check them in this order.
Equipment age and condition. A system your tech has already noted as near end of life does not wait for the customary interval. Older equipment on record, or a last-visit note describing a component you expect to fail next, pulls the predicted date earlier and raises the odds that the next call is unplanned. If a hazard was flagged at the last visit - a gas-appliance combustion concern, a water leak near an electrical panel, a stored-energy component like a capacitor or a spring under load - that is not a scheduling input at all, it is an immediate follow-up: contact the customer, get the unit shut off at the appropriate isolation point, and get it in the book now rather than in a prediction file.
Season. Most trades have a demand month that pulls calls toward it. If a customer's median gap is 13 months but their four jobs all landed in a five-week band in the same season, the season wins and you predict the band, not month 13. Say so on the record, because the two rules disagree often.
Property and occupancy change. A sale, a new tenant, a renovation, or a change in the contact you deal with resets the clock and drops your confidence one full tier, whatever the history says.
Step 5: Convert to a due month with a window, not a due date
Write two fields on the customer record: due month and window. A high-confidence customer with a tight spread gets a window of plus or minus 1 month. Medium gets plus or minus 2. Low gets a season, not a month.
The window is the deliverable, not the point estimate, and here is why. If you write a single date, staff will treat a customer who is two weeks past it as lapsed and start chasing, which is both wasted effort and the fastest way to make an outreach program feel pushy. The window tells you when to expect them and, just as usefully, tells you the exact moment expectation has failed and a call is warranted.
Step 6: Work one customer all the way through
An address with six completed jobs over roughly six years. Job dates expressed as months from the first: 0, 14, 25, 38, 50, 72. The five gaps are 14, 11, 13, 12, and 22 months.
Sorted, the gaps are 11, 12, 13, 14, 22, so the median is 13 months. The mean is 72 divided by 5, or 14.4 months. The 1.4-month difference between mean and median is entirely the 22-month gap doing its work, which is exactly why the median is the one you use.
Now interrogate the 22. Pulling the job before it, the tech's notes record replacing a component that our own history says we never installed. That is a competitor's part. So the 22-month gap is not this customer's natural rhythm being slow - it is our rhythm interrupted by one job we lost. It stays in the table (median is robust to it, and deleting inconvenient data is how you fool yourself), but it goes in the notes as a known competitive event.
The last job sits at month 72. Median gap 13 gives a predicted next call at month 85. Four of the five gaps fall in an 11-to-14-month band, a spread of 3 months, so this is a high-confidence record: window month 84 to month 86.
Modifier check. Equipment on record is mid-life with no end-of-life note, so no pull-in. The six job months, converted to calendar, land in three different seasons, so there is no seasonal band to override the interval. Same billing contact, same occupant, no property event. Nothing moves the date.
Output written to the record: due month 85, window 84 to 86, confidence high, note "lost one cycle to a competitor around month 50, worth a personal call rather than a mailer."
What that changes operationally: this customer gets a light touch at month 83, one month ahead of the window opening, not at month 85. And if month 86 closes with no call, that is a genuine miss on a customer who has never missed before, which puts them at the top of the follow-up list rather than the bottom.
Step 7: Roll it up into a forward calendar
Do the same for the whole book, then sort by due month. In a book of 340 active records, a realistic split is 190 with three or more completed jobs, 90 with exactly two, and 60 with only one - 190 plus 90 plus 60 is 340, and only the 190 give you a medium-or-better prediction. That is 56% of the book you can forecast personally, and it is normal for it to be a little over half.
The other 150 are not useless. The 90 two-job records get the service-type default interval with a season-wide window. The 60 single-job records get nothing but a first-visit follow-up rule, which is a different program entirely.
Sorted by due month, the 190 will not spread evenly. Expect clumping in your demand season and thin months opposite it. The thin months are the point: that is where you deliberately pull forward the medium-confidence records whose window opens next, and where a planned-maintenance offer costs you nothing to make because the hours would otherwise sit idle.
Step 8: Score the predictions, then retune
Two quarters after you start, check yourself. Take every record whose window opened in that six-month stretch - say 47 of them - and ask how many initiated paid work inside their window.
If 29 of those 47 did, that is 62% of the predicted-due records landing in window. For a shop doing this off service history with no other data, somewhere around half to two-thirds is a realistic first pass, and the number is useful mostly as a baseline to beat, not as a grade.
The 18 that did not call are the more valuable half. Split them: some are reachable and simply late, and those become the call list, ranked. The rest turn out to be bad contact data, sold properties, or customers who went elsewhere - and each of those is a record correction you would not otherwise have made.
Retune on the misses. If your in-window rate is well under half, the usual cause is one of three things: you counted reminder-generated jobs in the baseline and shortened every interval; you used means instead of medians and a few outliers dragged the dates; or you are predicting a trade whose calls are genuinely failure-driven rather than cyclical, in which case equipment age should be your primary field and the gap median a secondary one.
How to verify you got this right
- Pick five records at random and recompute the median gap by hand. If your tool and your hand disagree, the usual culprit is callbacks counted as separate jobs.
- Confirm that no record shows a confidence tier higher than its gap count allows. A two-job customer marked high confidence means someone typed a feeling into a data field.
- Check that at least one record in your sample has an override note explaining why the season or an equipment condition beat the interval. If nothing ever overrides, nobody is applying step 4.
- Re-read your own summary numbers before circulating them. A rate stated over a quarter must not be compared against a count taken over a year, and "of the book" and "of the predictable records" are two different bases that will not match.
References
- See related: The Dormant Customer Definition Worth Setting (the backward-looking lapse line this forecast feeds)
- See related: The Customer Lifecycle Stages a Service Shop Actually Has
- See related: Building a Relationship With a Property Rather Than a Person
- Trade-standard practice for planned-maintenance interval setting and equipment service records