Case study
Matching hotels to buyers, in a market where almost nobody rates anything
A hotel goes on the market. Somewhere in a book of two hundred thousand investors are the handful who would actually buy it, and finding them took a broker up to three months.
- Client
- Jones Lang LaSalle (JLL)
- Sector
- Commercial real estate · Hospitality
- Role
- Contract engagement
- Period
- 2016, then multi-year
- of the ratings matrix was empty
- 99.35%of the ratings matrix was empty
- potential investors in scope
- 200,000potential investors in scope
- increase in hotel sales, client-reported
- $13.2Mincrease in hotel sales, client-reported
The problem
JLL is the second-largest commercial real-estate firm in the world. When a hotel came to market, matching it to the buyers most likely to want it was manual work done by expensive people, and it could take up to three months — during which the property sat.
The asset they had was history: tens of thousands of properties, roughly two hundred thousand potential investors, and twenty-five years of transactions. The question was whether that history could rank, for any newly listed property, the hundred buyers worth calling first.
Why this was harder than it sounds
Recommender systems are a solved problem when your users rate things. Commercial property buyers do not. On the modelling subset — 492 properties against 10,351 users — the ratings matrix was 99.35% empty. Sixty-five percent of users had rated one item or fewer. Ninety percent had rated six or fewer.
That is the whole engineering problem in one number. Almost every published collaborative-filtering result assumes a matrix an order of magnitude denser than this one, so the signal had to come from behaviour rather than from ratings: what buyers responded to, what they bid on, what they had said they were looking for.
- Four input feeds
- Property records, responses to marketing campaigns, bidding history, and each investor's stated investment preferences.
- Two models
- A buyer model built from investment criteria — 408 features across 10,351 users — and a property model over location, type, tenure, brand, room count and asking price.
- Preprocessing that mattered
- Z-score normalisation to remove per-user rating bias, and binarisation to stop heavily skewed behaviour from dominating the similarity measures.
492 properties × 10,351 users
a rating existsnothing at all
The bake-off, including what lost
Several algorithm families were implemented and compared rather than one being assumed. User-based collaborative filtering outperformed everything else, and cosine distance beat the alternatives for both the user-based and item-based variants.
The result worth reporting is the unflattering one: a plain popular-items baseline outperformed item-based collaborative filtering. That is the kind of finding that quietly disappears from most write-ups, and it is precisely the finding that tells you whether the comparison was run honestly.
The nearest-neighbour tuning is the other detail worth keeping. The headline-optimal value was nn = 10. We shipped nn = 20, because nn = 10 gave a worse true-positive rate across the higher false-positive range — which is the range this system actually operates in, since a broker works down a shortlist rather than calling exactly one person. Taking the second-best number on purpose, for a stated reason, usually means somebody looked at the curve rather than at the summary statistic.
What was delivered
A hybrid framework that builds several candidate models — collaborative filtering, content-based, vector-space and nearest-neighbour — evaluates them against each other, and serves recommendations from whichever currently performs best, rather than hard-coding the winner of one bake-off forever.
The output is the hundred buyers most likely to want a given property, ranked, produced the moment it is listed. The process it replaced took up to three months.
Result
The recommendation list is generated instantly once a property goes to market, and the platform was adopted across JLL globally. The client reported an increase in hotel sales of over $13.2 million.
That figure is theirs, not a measurement of ours, and it is the only number from this engagement that appears anywhere on this site. Several others exist across old decks and they do not agree with each other, which is reason enough not to reach for the largest one.
Tell us what decision you are trying to get right.
Not a discovery call about our capabilities. A conversation about the specific thing you need to predict, and whether the data you have can support it.