Retention · 2026-09-18
412 accounts submitted a track, played one or two of the recommendations and never came back. This is what they had in common — the device they were on — and what turned out not to matter at all: the recommendations.
A pattern among people who left means nothing without people who did not, so everything below is a comparison of two groups, measured on the first search each of them ever ran — the moment that decided it.
Ran a search, played one or two tracks, all on a single day, and have been silent for at least 14 days. Median visit: 1 minute. 95% searched within ten minutes of signing up.
Searched on three or more separate days. Averaging 15 searches and 184 tracks played. Same product, same catalogue, same period.
This is the finding that mattered most, because it is the hypothesis everyone reaches for first. Measured on the top 10 of each group's very first search:
| Measure of the first search's top 10 | Drop-offs | Stayers | Verdict |
|---|---|---|---|
| Rows sharing a genre with the submitted track | 62.2% | 64.9% | no difference |
| Distinct artists among the ten | 9.27 | 9.41 | no difference |
| Average tempo distance from the submission | 5.1 BPM | 3.5 BPM | both tiny |
| Rows with no playable preview anywhere | 4.3% | 7.4% | drop-offs had it better |
| Nearest-neighbour cosine (mean) | 0.9295 | 0.9398 | 1 point apart |
| Nearest-neighbour cosine (median) | 0.9360 | 0.9431 | 1 point apart |
Genre agreement counts a recommendation as a hit when it shares at least one canonical genre label with the submission; rows without genre labels on either side are excluded rather than counted as misses.
The playability row is the one worth sitting with. Dead rows — results with no embeddable preview on any platform — were almost twice as common for the people who stayed. Whatever drives people away, a result they cannot hear is not it.
| Their first search | Drop-offs | Stayers |
|---|---|---|
| Tracks played out of the top 10 | 1.29 | 5.30 |
| Deepest rank they reached | 2.0 | 7.0 |
| Seconds from search to first play | 37 | 68 |
| Who played anything from the top 10 at all | 332 of 412 | 815 of 926 |
The time-to-first-play row runs the opposite way to intuition: the people who left hit play almost twice as fast. Stayers spend a minute with the list before playing anything — reading it, presumably — and then work their way down to rank seven. Drop-offs play the top result within half a minute, maybe the second one, and go.
Widening from the two groups to every account old enough to have had the chance to return, the relationship between tracks played in the first 24 hours and ever searching again on a later day is steep and monotone — but only after the fifth track.
The first three bars are the same bar. Playing nothing, playing one track and playing five all land between 16% and 18%. The curve only starts climbing at six, and by twenty-six it has tripled. So "played one or two tracks and left" is not a distinct failure with a cause of its own — it is the flat bottom of one continuous relationship, and the threshold that matters sits somewhere around the sixth track.
One measure of the recommendations does track retention, and it is not any of the metadata ones. It is how close the nearest neighbour sat in the embedding — the top result's cosine similarity, which is a direct read on whether the submitted track had anything like it in the catalogue at all.
Monotone across every step, a 1.6× spread end to end, and it survives controlling for how long each account has had the chance to come back. Notably, genre agreement over the same population does nothing: accounts whose top 10 shared almost no genre with their submission returned at 24.4%, those whose top 10 matched almost perfectly at 28.3%. The metadata is the wrong lens here; the vector is the right one.
Comparing the 331 first searches whose top result came back under 0.85 against the 4 954 that came back at 0.93 or better:
| The submitted track | Outliers (<0.85) | Healthy (≥0.93) |
|---|---|---|
| Carries a non-electronic genre (hip hop, pop, rock, latin…) | 30.5% | 5.3% |
| Slower than 100 BPM | 20.2% | 2.5% |
| No genre labels at all | 28.4% | 14.8% |
| Arrived as a pasted URL | 32.3% | 28.1% |
Six times the rate of non-electronic music, eight times the rate of sub-100-BPM tracks. These are people pasting a music video into an engine whose catalogue is house and techno. The far end of the tail, all of them accounts that never came back:
| 0.397 | Simia — Du Faux | 165 BPM, no genre |
| 0.484 | Skratch Bastid — Rakim Tribute DJ Set | 104 BPM, Hip Hop / Funk / Soul, 14 min |
| 0.516 | Jok'air — Big Daddy Jok (Clip officiel) | 114 BPM, no genre |
| 0.586 | Joé Dwèt Filé — 4 Kampé (Clip officiel) | 92 BPM, no genre |
| 0.632 | JC NO BEAT, DJ F7, Mc Meno Dani — Maria Mariah | 130 BPM, no genre |
| 0.650 | Ina Chansons — Claude François "Alexandrie Alexandra" | 126 BPM, Disco |
Nothing is broken in these searches. The engine answered the question it was asked, honestly, and the honest answer was "there is nothing like this here". The product never says so — it returns a hundred rows ranked 0.4 to 0.6 exactly as it returns a hundred rows ranked 0.96, and the person has no way to tell those apart.
| Hypothesis | What the data says |
|---|---|
| They ran out of credits | Drop-offs spent 1.24 credits and left 7.17 unused. Stayers spent 8.65. |
| The results would not play | Drop-offs got fewer unplayable rows than stayers (4.3% vs 7.4%). |
| The results were all the same artist | 9.3 distinct artists in the top 10, against 9.4 for stayers. |
| The results were the wrong genre | 62% vs 65% genre agreement, and genre agreement barely moves return rate at all. |
| The results were the wrong tempo | 5.1 BPM average distance, against 3.5. Both are within a nudge of the pitch fader. |
| They submitted weird, long or private files | 0.7% private uploads, 0.2% over 15 minutes — same as everyone else. |
How the first search was started separates the two groups more cleanly than anything about the results. Pasting a URL of your own track goes with a 32.7% return rate; picking something out of the catalogue with 22.8%. And on their first search the drop-offs pasted a URL far less often than the stayers — 22.6% against 39.7%.
Not controlled for account age, and the causation could run either way: arriving with a specific track in mind is a sign of intent as much as a cause of it. But it is the largest first-session split in the data, and it is something the product can act on.
Device is the one attribute where the drop-offs stop looking like everyone else. It lives in the analytics rather than the database, so this section is measured against a slightly looser reconstruction of the cohort (229 accounts rather than 412 — the event log's idea of a "search day" is more generous than the database's). Within it the comparison is apples to apples.
The drop-offs are two-thirds phone users; the people who stayed are a majority desktop. The mobile-to-desktop ratio flips from 0.74 among the returners to 2.2 among the people who left — a bigger separation than anything about the recommendations, the catalogue or the submission.
Holding the observation window fixed and looking only at accounts whose device we know, the whole engagement profile shifts with it:
| Signed-in accounts, 14-day window | Desktop | Phone |
|---|---|---|
| Accounts measured | 1 179 | 1 072 |
| Median length of the first session | 15 min | 5 min |
| Tracks played in the first 24 hours | 41.8 | 26.8 |
| Never got past two tracks, ever | 4.4% | 10.7% |
| Saved at least one track | 19.8% | 10.5% |
| Dug on from a result | 18.1% | 14.4% |
| Searched again on a later day | 47.4% | 41.2% |
A phone session is a third of the length of a desktop one, produces a third fewer plays, and is two and a half times as likely to end at the second track — which is exactly the shape of the drop-off cohort. Saving a track, the strongest sign that something landed, happens half as often.
The obvious mechanism would be playback failing on a phone — autoplaying someone else's iframe in a mobile browser is a classic way to lose people. It is not happening. Counting 3.5-second plays against preview starts, mobile converts at 1.07 and desktop at 0.96; no account started a preview and never reached the threshold, on either device, and there are no rage-clicks. Every preview a phone user starts, plays.
Coverage: 2 621 of 7 524 signed-in accounts (35%) send only server-side events — an ad-blocker or a declined consent banner means no device is ever recorded for them, and nothing can recover it. They average 99 events against 214 for the rest, so the accounts with no device are systematically less engaged than the ones counted here. Everything above is computed on the 4 903 where the device is known, and the true mobile share of the drop-offs could be higher or lower depending on which way that missing third leans. One row was left out of the table as an instrumentation artefact: phones appear to use filters twelve times as often, because on desktop the filters are always on screen and never fire an "opened" event.
The lever is not better neighbours for the average search. Those are already as good as the ones that retain. The two things the data actually supports:
Built from search_history's stored result snapshots joined against play records, on prod, 18 Sep 2026. The per-account view these numbers were derived from is the Drop-off tool, where each of the 412 can be opened and the recommendations they were given can be played.