How the ranking works

A 13-year water heater and a 13-year boiler are not the same problem.

Every tool in this category says it finds your hidden revenue. Almost none of them will tell you how they decide what comes first, because mostly the answer is “biggest number on top”. This page is the whole model — the service lives, every multiplier, the caps, and one record worked end to end. Nothing here is written by hand: it is printed straight out of the same code that will run on your file.

EquipmentWorth a callReplace
Water heater8 yrs12 yrs
Water treatment10 yrs15 yrs
Heat pump11 yrs15 yrs
AC system11 yrs15 yrs
Mini split12 yrs17 yrs
Tankless water heater14 yrs19 yrs
Furnace15 yrs21 yrs
Roof16 yrs23 yrs
Boiler20 yrs27 yrs
Electrical panel25 yrs36 yrs
System12 yrs16 yrs

Read left to right: the age a replacement conversation becomes reasonable, and the age replacement is the normal recommendation. The last row is the fallback for equipment your file does not name.

Run it on your list — free, no signup See it applied to a board Service lives are ordinary trade ranges, not a manufacturer promise.
01

Old is relative to what the thing is

Most “ageing equipment” reports flag everything at one number — usually twelve years — which is why nobody trusts them. Here is the same install date, two pieces of equipment, run through the real scorer in early November.

13 years old

Water heater — $2,200 job

Replacement age is 12. At 13 years it is 108% of the way through, so timing scores ×1.00, equipment age adds ×1.15, and November adds ×1.15 for water work.

10.9% × $2,200 = $240 expected
on the board: 10%

13 years old

Boiler — $9,500 job

Replacement age is 27. At 13 years it is 48% of the way through, so timing scores ×0.15, equipment age adds nothing, and November adds ×1.20 for heating work.

2.0% × $9,500 = $190 expected
on the board: 5%

The boiler is the bigger ticket by 4.3 times, and it gets the larger seasonal lift of the two, and it still ranks below the heater — because calling a homeowner about a boiler with 14 years left in it is a conversation that goes nowhere. That is the whole argument for this page: a list sorted by dollar value sends your best hour at the wrong customer, confidently.

The percentages in those cards are the underlying figures. On the board they are rounded to the nearest 5%, which is why the heater shows 10% and the boiler shows 5% — the floor. Nothing is ever printed below it, because once a record is down there the difference between 2.0% and 5% has stopped being information and the honest answer is “not this week”.

The ages above are ordinary trade service-life ranges, not manufacturer figures and not a prediction about any individual unit. They are printed here so you can disagree with them — and if your market runs harder or softer than the table, that is a fair reason to read the ranking with your own correction applied.

02

One record, every multiplier

An unsold $8,400 changeout. Quoted 38 days ago, chased 2 times, last spoken to 12 days ago, on a 16-year-old condenser, customer on an active maintenance plan, came in as a referral. This is the panel Backlog shows when you ask why it is ranked where it is.

What moved the numberMultiplier
Assumed close rate — your Setup figure — switches to real once you log 831%
Timing — quoted 38 days ago×0.60
Times already chased — 2 logged×0.93
Since last contact — 12 days ago×0.87
Equipment age — 16 years old×1.15
Customer history — plan: Active×1.22
Lead source — Referral×1.18
Combined customer factors, capped — those five stack to ×1.66 — Backlog will not claim that much×1.60
Someone actually calling — lift a worked list gets×1.28

$8,400 × 30.4% = $2,554, which the board shows as $2,600 at 30% — money rounded to the nearest hundred, odds to the nearest 5%. That is what it is ranked on. Read the rows and you can argue with any one of them, which is the point: a score you cannot argue with is a score you cannot use.

Notice the second-to-last row. Five things about the customer are allowed to move the odds — how far through its life the equipment is, whether they are on a plan and how often you have worked for them, the time of year for that kind of job, whether they have ever replied, and where the lead came from. Here three of them moved and they already multiply out to ×1.66. Each one is defensible on its own; their product is not, so the combined move is capped at ×1.60 and the panel says so out loud rather than quietly pocketing the difference. The same cap works downward at ×0.40.

The last row is the only assumption in the model that is about the world rather than about your file: a list somebody actually works closes better than a list nobody touches, and that is set at ×1.28. It is the number we would most like to be told we have wrong.

03

The odds start with your close rate, not ours

Every category begins at the close rate you tell it in Setup — 34% until you change it — multiplied by one figure for that kind of record. A missed call from this morning is a different animal from a customer who went quiet two years ago, and the table below is the only place that difference is set.

Kind of recordStarting multiplier
Missed call×1.30
Membership expiring×1.15
Unsold repair×1.10
Unsigned estimate×1.00
Unsold replacement×0.90
Deferred repair×0.85
Lapsed member×0.80
Maintenance due×0.75
Warranty ending×0.70
Dormant customer×0.62
Repeat repairs×0.60
Aging system×0.45

Those are starting points, and they are deliberately conservative where the record is cold. They also stop mattering: once you have logged 8 real outcomes in a category, Backlog drops the assumption and uses your own won-versus-lost rate for that category instead. The panel changes from “assumed close rate” to your rate and tells you how many outcomes it is standing on.

That is the only learning in the product. It does not learn from other contractors, it does not learn from anything outside your own logged results, and there is no shared model your numbers feed into. What you export decides how much of this it can use.

04

What the model refuses to claim

A scoring tool earns trust by what it declines to say. These are the limits, and they are enforced in the code rather than promised in the copy.

Odds are banded, never precise

The underlying probability is held between 2% and 88%, and what you see is that figure rounded to the nearest 5%. A model like this cannot tell the difference between 31% and 33%, so it does not pretend to.

Money is rounded

Expected values round to the nearest hundred dollars above a thousand and the nearest ten below it. A figure quoted to the dollar would be false precision on a number that is a guess by construction.

Found is not recovered

Everything here produces what is worth calling. That is never counted as revenue, never added to a recovered total and never shown as one. Money moves into recovered when you mark a job won.

Nothing is invented

No discount, deadline, appointment, prior conversation or piece of service history appears in a draft unless it came out of your own file. A record with no install date is never called old; a record with no price uses a typical ticket for that equipment and says on screen that it did.

Some records are held back

Do-not-contact and opt-out are absolute. Anyone contacted in the last three days is held; six attempts with no reply stops the record entirely. Between 9pm and 8am nothing is presented as callable.

You press send

Backlog drafts the call notes, the text and the email, and sends none of them. There is no autodialer, no automated campaign and no scheduled blast hiding behind the ranking.

05

Questions this raises

How does Backlog decide what to call first?

Every record gets an expected value: what the job is worth multiplied by the odds of closing it. The odds start at your own close rate, adjusted for what kind of record it is, then move with how old the quote is, how many times it has already been chased, how long since anyone spoke to the customer, how far through its service life the equipment is, whether they are on a maintenance plan, where the lead came from and the time of year. Every one of those multipliers is shown on the record.

Why does a smaller job sometimes rank above a bigger one?

Because expected value is not ticket size. In the worked example on this page a $2,200 water heater at 13 years outranks a $9,500 boiler at the same 13 years, because 13 years is past a water heater's 12-year replacement age and barely halfway through a boiler's 27-year one. The bigger ticket is the worse call today.

Is this AI guessing?

No. It is arithmetic, and the whole of it is on this page. Nothing is sent to a model to decide a ranking, no number is invented, and the scorer runs inside your own browser without uploading your file. The follow-up messages are drafted from templates you can edit, and nothing is sent without you pressing send.

What are the odds actually based on?

Your own close rate to begin with — 34% if you have not told it otherwise — multiplied by a starting figure for that kind of record. Once you have logged 8 real outcomes in a category it stops assuming and uses what actually happened to you. The underlying probability is never allowed above 88% or below 2%, and what you see on screen is that figure rounded to the nearest 5%.

Does it count this as money I have made?

Never. Everything on this page produces a figure for what is worth calling, which is not revenue and is never presented as revenue. Money only counts as recovered when you mark a job won, and the two numbers are kept apart on every screen.

Model last changed 2026-09-24. Every figure on this page is generated from the scoring code at build time, so it cannot describe a version of Backlog that is no longer running.