Skip to content
Academy
Marketing Academy · Field Work●Marketing Fundamentals
CoreAudit· 40 minutes

Reading the Three PMF Signals: A Real Retention-Curve and Survey Audit

Duolingo

Objective: Given a real cohort-retention export and a Sean Ellis-style survey framework, decide whether a product has genuine product-market fit or just enthusiastic early numbers, using the same three signals, survey threshold, retention curve shape, unprompted word of mouth, the lesson defines.

You're the growth lead at a habit-forming consumer app built in the spirit of Duolingo's early gamification playbook (near-zero paid acquisition, streaks and habit loops doing the heavy lifting). Leadership wants to double the ad budget next month. Before you sign off, you need to know if retention actually supports that, or if you're about to pour money into acquiring users who'll churn by day 30.

Three signals, in the order the lesson gives them: run the Sean Ellis math, read a real 8-cohort retention export for flattening vs. decay, and check whether unpaid discovery is carrying its weight. One honest verdict at the end, scale or hold.

Before you start

What you'll need

Free path (everything below is enough to finish)

Hotjar(optional)
FreemiumRuns the Sean Ellis one-question survey on-site or in-app

Free tier's response cap is enough for a single-question survey sent to a sample of active users.

Google Analytics 4(optional)
FreeSource-of-traffic data behind the organic-share proxy

Free tier reports session source/medium, exactly what's needed to reproduce the organic-share calculation on real traffic.

FreeWhere you read the retention CSV and run all three calculations

Not in the tools directory, genuinely free, opens the CSV and every formula in this project directly.

Paid upgrades (optional, faster/deeper)

The free path (Hotjar's survey, GA4's source data, and a spreadsheet for the CSV) completes this project in full. Mixpanel is only worth it once this becomes a recurring, automated report.

Mixpanel(optional)
FreemiumAutomates cohort retention curves and Sean Ellis-style surveys at scale

Useful once cohorts number in the dozens and this audit needs to run monthly instead of once by hand, never required to complete this project.

Download project dataset

The process

3 steps

Step 01 of 03

Signal 1: The Sean Ellis Test

Ask "How would you feel if you could no longer use this product?" with four options: Very Disappointed, Somewhat Disappointed, Not Disappointed, N/A. 40%+ "Very Disappointed" is the industry-standard PMF gut-check.

You surveyed 140 active users. 46 said "Very Disappointed." Do you have a PMF signal?

Hotjar— an on-site or in-app one-question survey sent to users active in the last 30 days

Procedure

  1. Send the exact single question to a random sample of users active in the last 30 days, not your most engaged power users, that inflates the score.
  2. Require a forced choice between the four options, no free text, free text tanks response rates.
  3. Divide "Very Disappointed" responses by total responses.
  4. Compare against the 40% threshold.
Sample output
Sean Ellis survey · n=140 respondents

  Very Disappointed      46   32.9%
  Somewhat Disappointed  58   41.4%
  Not Disappointed       30   21.4%
  N/A                     6    4.3%

Healthy

40% or higher answering "Very Disappointed."

Unhealthy

Below 40%, especially with a large "Somewhat Disappointed" bucket, that's a segmentation opportunity, not a dead end.

What this means

32.9% is below the 40% threshold, but not catastrophically, per the lesson's own Superhuman case (22% to 58%), the fix is usually segmentation: find which slice of these 140 users scores near or above 40% and narrow acquisition toward them.

So what do I do about it?

SymptomActionEffort
overall score sits just under 40%cross-tab the survey by acquisition channel or use-case before concluding there's no PMFhalf day
large "Somewhat Disappointed" bucket (41.4%)interview 5-10 of these users specifically, they're closest to converting into "Very Disappointed"half day
YouYou can do this yourself, no engineering access required.

Step 02 of 03

Signal 2: Retention Curves That Flatten

A curve that drops to zero means nobody found lasting value. A curve that flattens at any non-zero level, even a low one, means a slice of users found real value. Read the shape, not the starting number.

Read the December 2025 cohort in the retention export: does it flatten or keep decaying through month 5?

Google Sheets— public/project-data/cohort-retention.csv, row for cohort_month = 2025-12

Procedure

  1. Open the export and find the 2025-12 cohort row.
  2. Scan month_0 through month_5 in sequence: 100.0, 50.0, 40.9, 34.0, 28.2, 24.9.
  3. Calculate the month-over-month percentage-point drop for each step and watch whether it's shrinking or staying constant.
  4. Compare against an earlier cohort (2025-11) and a later one (2026-01) to see if the pattern holds across cohorts, one cohort alone could be noise.
Sample output
cohort 2025-11: 100.0, 47.0, 34.3, 26.1, 20.3, 16.8   (drop shrinks: -53, -13, -8, -6, -3.5 pts)
  cohort 2025-12: 100.0, 50.0, 40.9, 34.0, 28.2, 24.9   (drop shrinks: -50, -9, -7, -6, -3.3 pts)
  cohort 2026-01: 100.0, 50.4, 40.8, 33.9, 30.2, 27.1   (drop shrinks: -50, -10, -7, -4, -3 pts)

Healthy

Month-over-month drop shrinks toward a small, stable number, the curve is bending toward flat even if it hasn't gone fully horizontal within the visible window.

Unhealthy

Drop stays roughly constant or grows every month, that's still-decaying, not flattening, more months of data will likely show it hitting zero.

What this means

All three cohorts show the same shape: a steep month-0-to-1 drop (roughly half the cohort), then progressively smaller drops each month after. By month 4 to 5 the drop is down to 3-3.5 points. That's the flattening signal the lesson describes, not a curve heading to zero, a curve settling into a stable core.

So what do I do about it?

SymptomActionEffort
someone reads only month_0 to month_1 (a 50% drop) and calls it a retention crisisalways read the full curve shape, not the first data point, the first drop is normal for most consumer apps5 min
2026-05 and 2026-06 cohorts have missing later-month data (too new to have aged that far)don't compare an immature cohort's early numbers against a mature cohort's late numbers, wait for it to age before drawing conclusions5 min
YouYou can do this yourself, no engineering access required.

Step 03 of 03

Signal 3: Word-of-Mouth Without Prompting

When people tell friends without being asked, without referral codes or incentives, that's the strongest qualitative PMF signal. It rarely has its own analytics line, you usually have to read it off the organic-acquisition share instead.

This funnel export doesn't have a "referred a friend" column. What's the closest honest proxy available, and what does it say?

Google Analytics 4— public/project-data/funnel-data.csv, source column summed across the 30-day window

Procedure

  1. Sum the visit-stage visitors column grouped by source across all 30 days.
  2. Calculate each source's share of total visits.
  3. Treat "organic" as the closest available proxy for unprompted discovery, note in the write-up that it's not a perfect stand-in for true referral, it also includes organic search, which is intent-driven, not word-of-mouth.
  4. Flag the real gap: recommend adding a proper referral/attribution field if this analysis needs to happen again.
Sample output
30-day visit totals by source

  organic       22,119   43.0%
  paid_search   14,976   29.1%
  paid_social    6,849   13.3%
  email          7,482   14.6%
  Total         51,426  100.0%

Healthy

Organic share is a meaningful plurality of traffic and growing over time without a matching increase in organic-search-specific SEO investment.

Unhealthy

Organic share only exists because of a PR/press spike that decays within weeks, or because paid channels were paused, not because unprompted sharing is happening.

What this means

43.0% organic is a real plurality, the largest single source, but this dataset can't separate "searched us by name because a friend mentioned us" from "found us cold via a generic search." Flag this as a genuine measurement gap rather than overstating it as confirmed word-of-mouth.

So what do I do about it?

SymptomActionEffort
team wants to cite "43% organic" as proof of word-of-mouth PMF in a board deckcaveat it explicitly as a proxy, or better, add a "how did you hear about us?" field to onboarding to get the real numberdev ticket
EitherYou or a developer can handle this, depending on your access.

Final deliverable

A one-page PMF verdict: Sean Ellis score with interpretation, retention curve shape verdict (flattening or decaying, with the three-cohort comparison), organic-share proxy with its caveat, and a final scale/hold recommendation.

See a reference example
Sample output
Sean Ellis: 32.9%, below the 40% threshold but with a large "Somewhat Disappointed" bucket worth segmenting. Retention: all three mature cohorts (Nov, Dec, Jan) show the same flattening shape, steep month-0 drop, shrinking drops after, settling near 25-27% by month 5. Organic share: 43.0% of traffic, flagged as an imperfect proxy, not confirmed word-of-mouth. Verdict: hold the budget increase until the Sean Ellis segmentation is done, retention alone doesn't carry a "scale now" call the way Slack's near-zero churn among 2,000-message teams did on day one, this product's signal is real but partial, not the unambiguous kind.

Success criteria

You're done when you can:

  • Correctly reads 32.9% as below-threshold but not disqualifying, and recommends segmentation rather than "no PMF, stop"
  • Identifies the flattening shape by comparing month-over-month drop size across at least 2 cohorts, not just eyeballing one
  • Explicitly caveats the organic-share number as an imperfect word-of-mouth proxy rather than treating it as confirmed
  • Final verdict is "hold" or "scale with conditions," not an uncaveated "yes, scale" given the below-threshold Sean Ellis score