Product Improvement
Product Improvement

How would you improve content discovery on Spotify?

A product discovery exercise exploring how Spotify could help heavy users find relevant, genuinely novel content, and whether doing so improves retention.

Role: Product Management / Product Discovery

Type: Hypothetical case study

Focus: Product strategy · User segmentation · Problem framing · Prioritisation · Solution design · Experimentation · Metrics

On the numbers in this case. Company figures in Section 01 are real and sourced (Spotify Q1/Q2 2026 earnings). Everything from Section 04 onward — research findings, prioritisation scores and experiment results — is illustrative, constructed to demonstrate the decision-making process. Each illustrative table is labelled as such.


01 — Describing the Product

Spotify is the largest audio streaming platform in the world. As of Q2 2026 it reported 777 million monthly active users, of whom 300 million are paying Premium subscribers, on quarterly revenue of €4.78 billion — of which €4.33 billion (roughly 90%) came from subscriptions rather than advertising. (Spotify Q2 2026 earnings.)

The catalogue is the number that matters for this case: approximately 250 million tracks, growing by around 60,000 new uploads per day, alongside about 7 million podcast titles and 700,000+ audiobooks across 184 markets. (Spotify Q1 2026 earnings and shareholder commentary.)

No amount of browsing scales to that. Discovery on Spotify is not a search problem the user solves — it is a recommendation problem the platform solves on the user's behalf. That makes personalisation the core of the product rather than a feature of it.

It also makes discovery quality a direct input to the business. With ~90% of revenue coming from subscriptions, Spotify's economics are a retention business, not an engagement-monetisation business. Whether a user keeps paying next month is the metric that matters, and the strongest lever on that is whether the platform keeps earning its place as the thing that finds them music.


02 — The Challenge

How might Spotify help users discover content they genuinely enjoy, without repeatedly showing them what they already know?

Business objective

Improve user retention through better content discovery.

Product objective

Help users discover relevant but genuinely new content, rather than repeatedly consuming familiar content.

The hypothesis underneath

Users who consistently discover content they enjoy are more likely to remain active — and, given the subscription model, more likely to keep paying.

This is the assumption the whole case rests on. I'd want to validate the strength of the discovery → retention relationship before committing significant investment, and I've built a test of it into the metrics in Section 16.


03 — Clarifying Questions

Before framing the problem, five things I'd want settled. Where I couldn't get an answer, I've stated the assumption I proceeded on.

1. Scope — free tier, Premium, or both?

Assumption: both, focusing on Premium. Free-tier discovery is constrained by shuffle and skip limits, which makes it a meaningfully different problem.

2. Content type — music, podcasts, or audiobooks?

Assumption: music. Podcast discovery has far longer session commitments and a much higher switching cost per attempt, so the novelty/relevance trade-off behaves differently.

3. Which metric are we accountable for — retention, listening time, or subscriber growth?

Assumption: retention. Listening time is a proxy, and I don't want to optimise it directly — see Section 19 for why that distinction ends up deciding the case.

4. Which users — new accounts or established ones?

Assumption: established users with enough listening history for a taste model to exist. Cold-start discovery is a genuinely separate problem with different mechanics.

5. Constraints — do licensing terms or catalogue economics limit what we can promote?

Assumption: there are commercial arrangements affecting what gets surfaced, but I'm treating editorial and label-driven promotion as out of scope and reasoning only about algorithmic surfacing. If that assumption is wrong, it changes the solution space considerably.


04 — Understanding the Users

I segmented users by discovery behaviour rather than demographics, because the problem is defined by how someone listens, not by who they are. Two 24-year-olds in the same market can sit in different segments; the same person can move between them depending on context.

01 — Intent-driven listeners

Open Spotify with a specific piece of content in mind.

Session shape: Open → Search → Play → Leave or continue

Discovery need: Low. They came for something specific and got it.

02 — Passive listeners

Rely primarily on playlists, autoplay and algorithmically generated mixes.

Session shape: Open → Select playlist or mix → Consume passively

Discovery need: High but unexpressed. They depend on Spotify to introduce new content without being asked.

03 — Active explorers

Deliberately seek out new content and experiment with recommendations.

Session shape: Open → Browse or search → Explore recommendations → Try something unfamiliar

Discovery need: High and explicit. They want novelty, but still expect recommendations to be relevant.


05 — Choosing the Target Segment

Before defining the problem, I wanted to know which segment represented the strongest opportunity. I evaluated segment size, problem prevalence, frequency, severity, and relationship to churn.

Illustrative findings

Figures below are illustrative. Base: heavy users (defined here as 15+ listening hours per week).

Intent-drivenPassiveActive explorers
Share of heavy users35%45%20%
% of segment experiencing the discovery problem10%30%60%
Affected population (% of all heavy users)3.5%13.5%12.0%
Problem frequencyLowMediumHigh
Problem severityLowMediumHigh
Churn associationLowMediumHigh

Decision

I prioritised active explorers.

On raw reach this is not the obvious choice. Passive listeners are the larger affected population — 13.5% of heavy users against 12.0% for active explorers. I chose the smaller segment for three reasons:

  1. Severity and frequency are both high, where passive listeners score medium on each. The same headline reach represents substantially more pain per user.
  2. The churn association is strongest here. A passive listener receiving familiar content is, by definition, getting roughly what they came for. An active explorer receiving familiar content has had an explicit intent denied — which is a far sharper reason to look elsewhere.
  3. Signal quality. Active explorers generate deliberate exploration behaviour, which makes the problem observable and any intervention testable. Passive listeners give us much weaker signal on whether discovery actually succeeded, because they never declared they were trying.

What this choice costs me. I'm optimising for 20% of heavy users. If adjacent discovery works here, the open question is whether it generalises to passive listeners — who are the larger prize and the harder measurement problem. I'd treat that as the second experiment, not as an assumption baked into the first.


06 — The User, and One Discovery Session

Profile: the active explorer

ProfileActive explorer, Premium, 3+ years on the platform
Listening2–3 hrs/day, ~40 distinct artists per month
Discovery behaviourChecks Release Radar and Discover Weekly deliberately; follows new artists; builds their own playlists
What they wantSomething they haven't heard, that they'll actually like
Current workaroundsFriends' recommendations, Reddit and music forums, YouTube, other platforms, artist radio
Stated frustration"Discover Weekly gave me three artists I already follow."

The workaround row is the important one. When an active explorer goes to Reddit to find music, Spotify has lost the discovery job while keeping the playback job. That is a weaker position than it looks, and it is where the retention risk actually sits.

One discovery session

StageWhat happensFrictionConsequence
IntentOpens Spotify specifically to find something new——
EntryGoes to Discover Weekly / Release Radar——
ScanRecognises several artists already in their libraryNovelty is lowConfidence in the surface drops
TryPlays two or three tracksFamiliar-adjacent, not newMild satisfaction; no discovery
ExitFalls back to an existing playlistEffort produced nothingReverts to known content
Next sessionLess likely to open the discovery surface at all—The surface stops doing its job

The last row is the retention link made visible. The failure isn't a bad session — it's a surface that gradually stops being opened.


07 — Product Discovery

I then explored why active explorers were struggling to find new content.

Rather than asking users what feature they wanted, I asked about actual behaviour:

"Tell me about the last time you opened Spotify specifically because you wanted to discover something new. What did you do?"

Five candidate problems emerged.

01 — Relevance

"Most recommendations aren't really my taste."

Recommendations may not match preferences well enough to be worth trying.

02 — Decision friction

"There are so many recommendations that I don't know which one to try."

Choice volume may make exploration harder rather than easier.

03 — Lack of novelty

"I keep seeing things similar to what I already listen to."

Recommendations may be concentrated too tightly around existing preferences.

04 — Trust

"I don't know why Spotify thinks I'll like it."

Users may lack confidence in unfamiliar recommendations.

05 — Time and effort

"I only have 5–10 minutes. I don't want to spend that time scrolling."

Discovery may cost more effort than the available session allows.


08 — Root Cause Exploration

The question I most wanted to answer:

Why does Spotify keep recommending familiar content to users who are actively trying to explore?

Leading hypothesis: a self-reinforcing loop

The recommendation system may be weighted heavily toward historical listening behaviour, producing a loop that tightens over time:

Past listening behaviour
        ↓
High model confidence in familiar content
        ↓
More similar recommendations surfaced
        ↓
Less exposure to novel content
        ↓
Less novel content consumed → back to the top

This is a hypothesis, not a confirmed technical root cause. Confirming it would require access to how exploration is weighted in the ranking model — which is the first thing I'd ask engineering for.

Alternative explanations I'd want ruled out

  • Optimising for predicted engagement structurally favours familiar content, because familiar content is easier to predict.
  • Users skip unfamiliar content more often, and those skips feed back as negative signal — meaning exploration is self-punishing within the model.
  • The system may simply not allocate enough recommendation slots to exploratory content, independent of how it ranks them.
  • Users may prefer familiar content in practice despite saying they want discovery. Stated and revealed preference may genuinely diverge here, and if so the whole problem framing is weaker than it appears.

That last one is the hypothesis that would most damage this case if true, so it is the one I'd test first.


09 — Problem Prioritisation

Illustrative research data. Base: active explorers surveyed.

Problem% of active explorers affectedBusiness signal
Recommendation relevance25%30% of affected users skip recommendations immediately
Choice overload35%Only 10% of affected users report it changing platform usage
Lack of novelty55%Affected users show 2× the likelihood of reduced usage vs unaffected active explorers
Trust15%Low self-reported impact on behaviour
Time and effort20%Moderate impact

(Percentages sum above 100% because users report multiple problems.)

Chosen problem

Active explorers are repeatedly shown content that is familiar or near-familiar, which limits their ability to discover anything genuinely new.

Prioritised on the combination of reach (largest affected share within the segment), severity, and the strongest observed relationship to reduced usage — which is the closest available proxy for the retention objective.

Choice overload has comparable reach at 35%, but the weakest business signal of the five: it annoys people without changing what they do. Reach alone doesn't earn the work.


10 — Defining the Desired Experience

Before considering features, the outcome:

Help active explorers find content that is genuinely new, while keeping enough relevance that they're willing to try it.

This creates the central tension of the case.

Novelty ↔ Relevance

Too little novelty: users stay trapped in familiar content. The current state.

Too much novelty: recommendations feel random, users stop trusting the surface, and they open it less — which is the same failure mode by a different route.

The goal is not maximum novelty. It is valuable novelty — and the design question is where between those two failure modes the optimum sits. I don't think that can be reasoned to. It has to be measured, which is why novelty level becomes the primary experimental variable in Section 15.


11 — Solution Exploration

Direction 1 — Adjacent discovery

Surface content that is new but connected to existing interests.

A user who listens heavily to indie rock is introduced to adjacent artists and subgenres with overlapping characteristics — rather than more of the artists they already follow.

Core benefit: directly targets the novelty/relevance balance.

Direction 2 — Recommendation explanations

Tell the user why something is being recommended: "Because you liked…"

Core benefit: increases transparency and trust when content is unfamiliar.

Direction 3 — User-controlled feedback

Let users give more precise feedback than a binary dislike. Distinguish:

"I don't like this song" from "I don't want more content like this."

Core benefit: gives users direct control over the model's future behaviour.


12 — Prioritising the Solutions

Illustrative RICE scoring. Reach = % of active explorers reached per quarter. Impact scored 0.25 (minimal) to 3 (massive). Effort in person-months.

DirectionReachImpactConfidenceEffortRICERank
Adjacent discovery1003.00.8548.01
Recommendation explanations1001.00.9330.02
User-controlled feedback402.00.6412.03

Adjacent discovery: (100 × 3.0 × 0.8) ÷ 5 = 48.0

Why not the other two

Explanations address trust, which my prioritisation ranked fifth at 15% of active explorers. It's cheap and likely positive, but it improves how a recommendation is received rather than changing what gets recommended — so it cannot fix the loop identified in Section 08.

Granular feedback is a control mechanism, not a discovery mechanism. It improves the model over weeks or months but changes nothing about what a user sees this week. Its reach is also lower, since only a minority of users engage with feedback controls at all.

Both are plausible follow-ons to adjacent discovery. Neither is the first move.


13 — Selected Solution: Adjacent Discovery

The hypothesis

If Spotify surfaces content that is meaningfully different but still connected to a user's existing interests, active explorers will discover more genuinely new content — without a disproportionate decline in engagement.

How it works

Adjacency definition. Score candidate content by its distance from the user's taste representation: near enough to be plausible, far enough to be new. The central design decision is where that band sits — and I'd treat the band as the primary experimental variable rather than fixing it up front.

Slot allocation. Reserve a fixed share of recommendation slots for adjacent content instead of re-ranking the whole surface. This bounds the downside if the band is set wrong, and makes the intervention cleanly measurable against a control.

Signal separation. A skip on an adjacent recommendation must be distinguishable from a skip on a familiar one. This is not a detail. If the two signals are pooled, exploration failures feed straight back into the model as generic negative signal — and the intervention ends up training the very loop it was built to break.


14 — MVP

The first version stays deliberately narrow.

Existing listening preferences
        ↓
Identify adjacent content
        ↓
Surface a small number of novel recommendations
        ↓
User tries content
        ↓
User saves / skips / gives feedback (captured as a separate signal)

Explicitly out of scope for v1:

  • Generated explanations for recommendations
  • Context-specific automated playlists
  • Granular recommendation controls
  • Extensive personalisation settings

What v1 exists to answer:

Can we increase valuable discovery without damaging engagement?

Everything cut above is a way of improving the experience of adjacent discovery. None of it tells us whether adjacent discovery works.


15 — Experiment Design

Control

Current recommendation experience.

Treatment

Current experience plus an increased share of adjacent content.

The variable being tested

Rather than assuming one level of novelty is right, I'd test a range:

Low novelty → Medium novelty → High novelty

This locates the point where additional novelty stops adding value and starts costing trust — which is the actual open question from Section 10, and something no amount of upfront design reasoning can settle.


16 — Metrics

Three levels, plus a guardrail.

01 — Discovery: are users finding new content?

  • % of users trying previously unconsumed content
  • Number of new artists or shows explored
  • Saves and likes on new content

02 — Quality: is what they found actually valuable?

  • Save/like rate on novel content
  • Completion rate and listening time
  • Repeat consumption of newly discovered artists

03 — Business outcome: does discovery move retention?

  • 30-day retention (primary)
  • 90-day retention (durability check — see Section 18)

Guardrail — skip rate

Skip rate is the metric that tells us the novelty band has gone too wide. It is explicitly not a metric to optimise; it exists to catch the failure mode where novelty becomes randomness. I'd set a stop threshold before launch rather than after seeing results.

North star: retention. Not listening time. Section 19 explains why that choice decides the case.


17 — Experiment Results

Illustrative data. Skip rate = skips within the first 30 seconds, as a share of recommended tracks played.

MetricControlTreatmentChange (abs.)Change (rel.)
Skip rate20%24%+4pp+20%
New content tried15%28%+13pp+86.7%
New content saved / liked8%14%+6pp+75%
30-day retention70%74%+4pp+5.7%
90-day retention—pending——

Interpretation

Skip rate moved in the wrong direction: 20% → 24%, a 4-point absolute increase. Against that:

  • New content tried rose 13 points, from 15% to 28%
  • New content saved or liked rose 6 points, from 8% to 14%
  • 30-day retention rose 4 points, from 70% to 74%

Decision: continue with the approach.

The saved/liked movement is what makes the skip increase acceptable. Users are not just being exposed to more unfamiliar content and rejecting it — they are keeping substantially more of it. The additional skips look like the cost of a wider search, not evidence that the recommendations became worse.

What would change this decision: 90-day retention failing to hold the 30-day gain. A novelty effect that decays is a different result from a durable improvement, and I would not scale on 30-day data alone.


18 — Pitfalls and Mitigations

RiskImpactMitigation
Novelty band set too wideRecommendations feel random; trust in the surface collapsesTest three novelty levels rather than assuming one; skip rate as a pre-committed guardrail
Skip rate continues climbing past the tested +4ppEngagement decline outweighs retention gainStop threshold set before launch, not negotiated after results arrive
Adjacency skews toward long-tail cataloguePerceived as promoting cheap content over qualityKeep catalogue economics out of the ranking; audit the output mix independently
Works for explorers, fails for passive listeners12% of heavy users served; the larger 45% segment untouchedTreat generalisation as experiment two, with its own measurement design
Retention gain is a novelty effect, not durableResult reverses by 90 daysReport 90-day alongside 30-day before any scaling decision
Exploration skips pollute the modelIntervention trains the loop it was meant to breakSeparate adjacent-content signals from baseline feedback (Section 13)

19 — The Key Product Trade-off

The case turned on one decision made before any data arrived: retention, not listening time, as the north star.

Had the success criterion been engagement, or had skip rate been treated as something to minimise, the read on Section 17 flips:

❌ "Skips rose 20%. The experiment failed."

The actual chain being tested was:

More discovery → content users value → stronger retention

Skip rate is a proxy, and this experiment is a clean example of a proxy moving against the outcome it supposedly stands for. The general principle:

Don't optimise a proxy metric at the expense of the business outcome it was supposed to represent.

The harder version of the lesson is that you have to decide which metric is the outcome and which is the proxy before you see the numbers. Otherwise the choice gets made retroactively, in favour of whichever result you liked.


20 — What I'd Do Next

The next iteration would investigate which kinds of novelty work:

What makes a recommendation feel "new but relevant" rather than just "random"?

Variables I'd examine:

  • Degree of novelty (the band width from Section 13)
  • Genre adjacency vs artist adjacency — are these different mechanisms?
  • Listening context: time of day, session length, active vs background listening
  • Depth of listening history required before adjacency works at all

I'd also run a focused study on users who skip novel recommendations repeatedly. If a subgroup is skipping consistently, the answer for them may be better relevance rather than more exploration — and treating them as the same problem would be a mistake.

Finally, the deferred question from Section 05: does this generalise to passive listeners? They're the larger affected population. If adjacent discovery works without an explicit exploration signal to build on, the addressable opportunity roughly doubles.


21 — Key Learnings

01 — Start with the outcome, not the feature. "Improve discovery" was not a workable brief. It became one only after defining what successful discovery meant and why it mattered commercially — which, given Spotify's ~90% subscription revenue, meant retention rather than engagement.

02 — Segment by behaviour when behaviour defines the problem. Demographics would have told me nothing here. How someone listens — with intent, passively, or exploratively — determined whether they had the problem at all.

03 — A symptom is not a root cause. "Users aren't discovering new content" is an observation. The feedback loop in Section 08 is a candidate explanation, and I held it as a hypothesis rather than a finding, because I never got to verify how exploration is weighted in the model.

04 — Reach alone doesn't decide priority. The clearest instance was choosing active explorers over passive listeners in Section 05, despite passive listeners being the larger affected group. Severity, frequency, churn association and measurability outweighed a 1.5-point reach gap — but that only became a defensible call once I'd worked out the absolute numbers rather than reading the percentages column-wise.

05 — Decide what the outcome metric is before the data arrives. Section 17 produced a result where the most visible metric moved the wrong way. The only reason that read as an acceptable trade-off rather than a failure is that retention had been named the outcome, and skip rate a guardrail, in advance.