Inside Patch: how Home scores every home for likelihood to move
Patch is not a mailing list. It is a score, rebuilt nightly for every home in an agent's patch from signals we can cite, with a formula you can read and privacy rules that hold before anyone pays.
Most canvassing tools sell a list. Patch sells a score. Every home in an estate agent's territory carries a number from 0 to 100 for likelihood to move, rebuilt every night from signals we can name, and the map shows that number long before anyone pays to see an address. This post explains how the score is built, what feeds it, what it refuses to do, and where the honest limits are.
The score is a formula, not a black box
There is no machine-learning model behind Patch. The score is a sum. Each signal we hold against a home is worth a fixed number of points, and those points fade on a half-life, so a price cut from last week counts for more than one from last spring:
score = sum of (signal points × 0.5 ^ (age in days ÷ half-life))
The total is capped at 100 and floored at 0. Three bands sit on top of it. Hot is 70 to 100, Warm is 40 to 69 and Watching is 15 to 39. Anything under 15 is never shown at all, and that floor is applied inside the database query, not in the interface.
One override sits above the arithmetic. If a home has shown declared intent in the last 90 days, meaning someone at that address asked for a valuation or gave a moving timeframe, it is Hot regardless of what the sum says. A homeowner telling you they want to move is the strongest signal there is, and no decay curve should argue with it.
What feeds it
The live factors, with their points and half-lives as they stand in the code today:
| Signal | Points | Half-life |
|---|---|---|
| Valuation request | 45 | 120 days |
| Valuation request without a phone number | 45 | 120 days |
| Moving timeframe given | 15 | 120 days |
| Recent EPC (certificate under 180 days old) | 5 | 180 days |
| Long tenure for the street | 15 | none |
| High equity | 10 | none |
| Recorded sale nearby (within 300 metres in the last 90 days) | 25 | 90 days |
| Withdrawn or cancelled listing | 18 | 365 days |
| Live price reduction | 20 | 60 days |
| Buyer enquiry | 12 | 90 days |
Two rules stop the sum from flattering itself. A valuation request and a phone-less valuation request are treated as one family, so a single enquiry cannot count twice. And after the strongest market signal, every further market signal counts at 70 per cent, so a home that has been reduced, withdrawn and relisted does not sprint to 100 on the same underlying event.
The EPC factor reads the age of the certificate we hold. Whether a certificate exists at all is public: anyone can check the government's energy certificate register for an address. A fresh certificate on a home that has not been sold or let is a quiet tell that someone is preparing.
Seven more factors are defined in the code and switched off. Planning permission granted, a short lease, a QR scan from a board, a mortgage charge satisfied at Companies House, a fresh listing, a fall-through and a newly lodged EPC each carry zero points today. They ship dark on purpose. There is a backtest command whose job is to calibrate a factor against what homes went on to do before it is allowed to score, and none of the seven has passed through it yet. We would rather a factor be absent than be a guess.
Landlord stock is inferred, not bought. Patch clusters homes that have been marketed to let, by street and outcode together with the letting agent's fingerprint, and calls the result a landlord portfolio when it holds at least two lets. That is a back-solve from our own listing history rather than a licensed tenancy database, and the interface says so.
Rebuilt every night, remembered over time
A nightly job recomputes the scores. It resolves valuation requests that arrived with only a postcode to a specific property reference, chunks the country by outcode, writes the market signals it finds into an append-only log, then rolls each home's log up into a score. The log is never edited. If a signal turns out to be wrong it is superseded, not deleted, so a score can always be explained by the rows behind it.
A history table records a snapshot whenever a score moves by three points or more, or crosses a band. That history is what powers the trend arrow on each pin and the newly-hot strip: a home whose latest snapshot is Hot, dated in the last seven days, with no earlier Hot snapshot on record. A second pass then stamps each pin with the things the map needs at speed, including the street centroid it will be drawn at and the count of homes on that street.
If an agent asks for a fresh valuation from their own vendor while the home is on the market with them, the same nightly rebuild flags it as own stock at risk. Those pins bypass the masking rules, because the agent already holds the instruction, and show a full address with the reason: a vendor asking for a fresh valuation, a price cut going stale, a prior withdrawal, or a rival now marketing the same home.
Privacy holds before anyone pays
The masking law in Patch is written into the controller that serves the pins, and it reads like this: a free pin never carries a full address, a house number or a rooftop coordinate. Pins are drawn at the centroid of the street reference (the USRN), and where a centroid is unavailable the pin degrades into its outcode aggregate rather than falling back to the rooftop.
Two further rules protect a household from being singled out. A pin only renders where at least three homes share its point; that k-anonymity threshold is a public constant so the weekly digest email honours exactly the same gate rather than hard-coding its own. And the score floor of 15 means a home with a single faint signal is not on the map at all.
Entitlement is the security boundary, and it is enforced the same way on every read. A branch sees only the outcodes it holds, and the coverage service is explicit that an empty entitlement reads nothing, never the national table. Farms, the saved sub-patches an agent draws or picks by road, narrow the queue for the day but are never the boundary. The 20:20 flow, which ranks the best off-market neighbours around one of the agent's own completions, is clipped through the identical chain, and the code is annotated to say that no second, unclipped query is ever opened.
A homeowner who opts out is removed from first-party scoring straight away. Their valuation requests and enquiries drop out of the sum, along with any timeframe they gave, and a targeted re-score heals the stale row without waiting for the nightly batch. Market signals such as a public price reduction still count, because they are public. At send time a separate suppression service is the last word on whether a letter goes, and it fails closed: if it cannot confirm an address is mailable, the letter does not go.
From a score to a letter
The score only earns its keep when it changes what an agent does on a Tuesday morning, so the workflow around it is deliberately short.
An agent ticks homes into a cohort and hands it to a canvassing campaign, where the letter is printed and posted. A pay-per-address reveal unmasks a pin once per property, so the letter lands with a name and an exact address; a colleague at the same branch reopening a revealed home pays nothing. Canvass rules automate the repeat: each period a rule enrols the homes that turned Hot on the branch's patch since it last ran, drops anyone already mailed or suppressed, mails the rest, and charges the branch wallet up to a hard monthly cap. Letters only, no email blasts.
The weekly digest closes the loop. Every branch with an active subscription gets a Monday email of the newly hot movers on its patch, the top three named, with the same three-home anonymity rule applied before a street is mentioned.
What it costs, and what we will not claim
A patch is defined by outcodes. A patch-only outcode is £9.99 a month; a founding outcode, which carries the featured-lead and advertising benefits too, is £50 a month. Reveals are billed per address. A branch that has never used Patch gets one 30-day free month across five outcodes. It is the same full product, not a demo. Outside your entitled outcodes the map shows neighbouring outcodes as hoverable teasers carrying an aggregate mover count and an average score, never a pin and never an address. There is no free national view.
Here is the honest limit. We do not publish a hit rate for the score. The factor weights above are the current settings, not the output of a validated model, and the backtest tooling exists precisely because those weights are meant to be earned against real outcomes. When a factor has a measured lift we will publish it. Until then, the claim Patch makes is narrower and truer: every point on every score can be traced to a dated signal you can read, the map never exposes a household before you pay, and the maths is on this page.
Patch is one of the two flagship tools on Home, alongside Otto, the report writer for surveyors, and it draws on the same listing data we describe in how we measure the UK property market. If you hold a branch, the Patch page has the map, the pricing and the free month.
Thinking about your next move?
See what your home's worth in seconds, with the UK's longest-running property data behind it.
Get an instant valuation