Tasks / Growth

Diagnose a retention problem

Can the model work out from raw data what's really happening to retention, separating churn from measurement and seasonality, and find the cause?

Task type v1.1 · 2 tasksLast changed 6 Oct 2026 · ChangelogDifficulty

What AI gets right here, and what you’ll still have to catch

From 18 graded outputs by 9 models. 78% were usable with at most a quick edit.

Reliably right

  1. Respects explicit constraints100% pass
    The output is a diagnosis under 800 words, addressed to Leo, and proposes actions that would enforce the constraint of holding acquisition spend.
    GPT-6.1 Sol · API · Flat, while sign-ups grow
  2. Produces the required deliverable100% pass
    Provides a complete diagnosis with evidence and recommendations, in memo form for Leo, within 800 words, and is actionable as-is.
    GPT-6.1 Sol · API · Flat, while sign-ups grow
  3. Understands before it justifies100% pass
    Tests the summer explanation against the data, finds it insufficient, and reaches its own diagnosis from the cohort and accounting evidence.
    GPT-6.1 Sol · API · Flat, while sign-ups grow

Where it slips

  1. Uses the supplied evidence correctly67% pass
    The SMB adoption churn calculation is incorrect; 39% of ~$7.4k/month churn is ~$2.9k/month, not $34k MRR, and the annualized figure is ~$34.8k ARR, not $0.4M.
    Sonnet 5.5 · API · The collapse that wasn't
  2. Avoids unsupported claims72% pass
    The output states as fact that removing goal-setting 'stripped away the user’s commitment and personal investment' and caused the drop, without labelling this as a hypothesis.
    Gemini 3.8 Flash · API · Flat, while sign-ups grow
  3. Gets the base of every number right75% pass
    The SMB adoption churn calculation is incorrect; 39% of ~$7.4k/month churn is ~$2.9k/month, not $34k MRR, and the annualized figure is ~$34.8k ARR, not $0.4M.
    Sonnet 5.5 · API · The collapse that wasn't

How it’s graded

Each check is built on how world-class product and growth leaders do this work, as they’ve described it on Lenny’s Podcast, and names the leader it comes from.

  1. Understands before it justifies

    Does the diagnosis start from what the data shows (which users, when, at what point in their life with the product) before accepting or proposing an explanation, including the one it was handed?

    Passes when Tests the explanation it was given against the data, and reaches its own diagnosis from the evidence.

  2. Splits growth into new, lost and returning

    Does the diagnosis separate new users or revenue from what was lost and what came back, rather than reading a single total?

    Passes when Uses growth accounting (new, retained, churned, returning, or new, expansion, contraction, churn) to show which flow changed.

  3. Reads the shape of the curves

    Does the diagnosis read how retention curves behave over time (flattening, still falling, or dipping and recovering) and what each shape means?

    Passes when Describes the curve shapes in the data and draws the right conclusion from each, such as a dip that recovers being seasonal.

Plus our standard checks

Uses the supplied evidence correctly · Addresses the actual decision · Respects explicit constraints · Identifies material uncertainty · Avoids unsupported claims · Produces the required deliverable · Gets the base of every number right · and 2 written for each task, which you’ll see in the tasks below.

The tasks

Read the brief, then compare up to three outputs, each with the LLM judge’s verdict on every check. Highlights mark what a PM had to fix.

The brief

You're the PM for activation at Stride. Leo, our Head of Growth, thinks weekly actives are flat because it's summer, and wants to double paid acquisition (his note is below). Before he does, write him a diagnosis of no more than 800 words: what's actually happening to retention, the evidence, and what we should do instead of (or before) spending more on acquisition. The files are attached.

What the model was given6 items: About Stride, leo_note.md, weekly_growth_accounting.csv (weeks run Monday to Sunday), weekly_signup_cohorts.csv (share of each week's sign-ups active in each following week), release_and_campaign_log.md, winback_campaign_results.md
About StrideA fitness habit app: short guided workouts and a weekly plan. Free, with Premium at $9.99 a month.
leo_note.md1 lines · Download
From Leo (Head of Growth): "Weekly actives have been flat for three months even though sign-ups are up 30%. It's summer: people are outdoors and on holiday. I want to double paid acquisition to push through it."
weekly_growth_accounting.csv (weeks run Monday to Sunday)week,week_starting,new_users,returning_users,retained_users,churned_users,weekly_active_users 1,2026-07-06,6034,973,44884,7116,51891 2,2026-07-13,6142,989,44529,7362,51660 3,2026-07-20,6184,1040,45074,6586,52298 4,2026-07-27,6385,991,44843,7455,52219 5,2026-08-03,6597,975,44085,8134,51657 6,2026-08-10,6689,2541,42516,9141,51746 7,2026-08-17,6779,2666,42506,9240,51951 8,2026-08-24,6955,2552,42723,9228,52230 9,2026-08-31,7156,2618,42134,10096,51908 10,2026-09-07,7230,2675,42393,9515,52298 11,2026-09-14,7564,2586,41984,10314,52134 12,2026-09-21,7550,2557,41808,10326,51915 13,2026-09-28,7847,2635,41636,10279,52118
weekly_signup_cohorts.csv (share of each week's sign-ups active in each following week)signup_week,signups,week_1_retained_pct,week_2_retained_pct,week_3_retained_pct,week_4_retained_pct,week_5_retained_pct,week_6_retained_pct,week_7_retained_pct,week_8_retained_pct 1,6000,55.4,43.2,36.4,34.2,31.9,30.9,29.8,30.1 2,6150,55.3,43.2,37.0,34.2,32.4,30.5,29.9,30.2 3,6300,55.2,43.0,37.7,33.4,32.1,30.6,29.8,30.0 4,6450,54.3,42.3,37.0,33.4,32.4,31.4,30.0,29.5 5,6600,58.4,39.4,29.6,24.5,22.1,21.1,19.8,19.9 6,6750,58.6,39.9,30.1,24.4,21.8,21.2,19.9, 7,6900,58.4,40.5,29.4,24.9,22.2,21.2,, 8,7050,58.1,40.1,29.9,25.0,21.3,,, 9,7200,57.5,40.5,29.7,25.0,,,, 10,7350,58.3,40.5,29.4,,,,, 11,7500,57.4,40.6,,,,,, 12,7650,57.5,,,,,,,
release_and_campaign_log.md6 lines · Download
# Release and campaign log

- Week 3: New workout library (40 new routines).
- Week 5: Shorter sign-up. Removed the goal-setting step ("What do you want to achieve, and how many days a week?") to cut sign-up time from 3 minutes to 1. Sign-up completion rose from 61% to 74%.
- Week 6: Win-back emails start: anyone inactive for 21 days gets "We miss you: here's a free week of Premium".
- Week 9: Paid social budget up 25%.
winback_campaign_results.md3 lines · Download
# Win-back campaign, weeks 6 to 13 (from the lifecycle team)

About 1,600 extra returning users a week compared with before the campaign. Of users who came back through a win-back email, 12% were still active two weeks later. Of users who came back on their own before the campaign, 41% were.
What a strong answer doesThe answer key the graders mark against

Shows that flat weekly actives aren't the summer: new users rose about 30% (about 6,000 to 7,800 a week) but churned users rose faster (about 7,100 to 10,300), and returning users jumped from about 1,000 to 2,600 a week only because of the win-back emails from week 6, of whom 12% stay two weeks against 41% of organic returners, so actives are being propped up. The cohort table shows why churn rose: cohorts from week 5, when the goal-setting step was removed from sign-up, retain far worse (week 4 about 25% against 34%, week 8 about 20% against 30%) even though more people finish sign-up. So more paid acquisition would pour more users into a leaky first month. Recommends restoring goal-setting (or testing it back against the short sign-up, judged on week-4 retention, not sign-up completion), measuring returning users separately so the campaign doesn't hide churn, and holding paid acquisition until new-user retention recovers.

Critical failures (cap the score at 40)
  • Recommends doubling paid acquisition now
Task

Mid-level · v1.1

The outputs

9 setups answered this brief.

Usable with a quick edit10 of 12 checks passed

The memo is complete, evidence-backed, and actionable; a PM could use it with light wording edits, no re-checking of data or reasoning needed.

Output

To: Leo (Head of Growth) From: PM, Activation Subject: Hold on doubling paid spend — our flat WAU is an activation and win-back issue, not summer seasonality

Leo,

Before we double paid acquisition, we need to look closely at what is happening beneath our top-line WAU. While it looks like a summer slump, the data shows our flat WAU (~52,000) is actually caused by two product and lifecycle changes from August: the Week 5 onboarding change broke new-user habit formation, and the Week 6 win-back campaign is masking that core retention drop with temporary, low-intent resurrected users.

Doubling paid spend right now will pour expensive acquisition into a leaky bucket. Here is the diagnosis and what we should do before scaling spend.

---

1. Why it’s not summer seasonality

If summer weather and holidays were driving our flat WAU, we would see a broad dip across all users in July and August, followed by a recovery in September. Instead: * Pre-Week 5 cohorts are rock solid: Users who signed up in Weeks 1–4 retained at ~30% by Week 8 (hitting late August and September) with zero seasonal decay. * Retention is still worsening in late September: Our weekly churned users rose from ~7,100 in early July to 10,279 in Week 13 (Sept 28). Meanwhile, our core `retained_users` (active both this week and last week) have steadily eroded from ~45,000 in Weeks 1–4 down to 41,636 in Week 13.

2. Root Cause #1: The Week 5 shorter sign-up broke long-term activation

In Week 5 (Aug 3), we removed the goal-setting step ("What do you want to achieve, and how many days a week?") to cut sign-up time from 3 minutes to 1. Sign-up completion jumped from 61% to 74%, and Week 1 retention ticked up ~3 percentage points (from ~55% to ~58%).

However, long-term cohort retention collapsed immediately starting with the Week 5 cohort: * Week 4 Retention: Dropped from ~33.8% (Weeks 1–4 cohorts) to ~24.7% (Weeks 5–9 cohorts)—a ~9 percentage point drop. * Week 8 Retention: Dropped from ~30.0% (Weeks 1–4 cohorts) to 19.9% (Week 5 cohort)—a one-third relative loss in long-term retained users.

Why this happened: Stride’s core value is a weekly workout plan. By removing the step where users state their goals and target workout days, we likely broke the mechanism that personalizes their weekly plan and anchors their habit commitment. Furthermore, cutting friction let through lower-intent users who curious-click in Week 1, skewing Week 1 retention up while failing to build a multi-week habit.

The Math: Even with a 21% boost in sign-up completion (61% $\rightarrow$ 74%), a 33% relative drop in Week 8 retention (30% $\rightarrow$ 19.9%) means every 1,000 visitors to our sign-up flow now yields ~19% fewer long-term active users than before Week 5.

3. Root Cause #2: The Week 6 win-back campaign is inflating WAU and churn

Why hasn’t WAU fallen if core retention is down? Because in Week 6 (Aug 10), lifecycle launched the 21-day inactive win-back email offering a free week of Premium: * Resurrected users spiked: `returningusers` jumped from ~990/week (Weeks 1–5) to ~2,600/week (Weeks 6–13)—adding ~1,600 temporary users per week. * They immediately re-churn: Lifecycle data shows only 12% of win-back users remain active two weeks later (compared to 41% of organic returning users). Once their free week of Premium ends, nearly 90% (~1,400 users/week) churn right back out. * This explains why weekly `churnedusers` spiked from ~7,400 in Week 4 to >9,100 in Week 6 and >10,300 by Week 11. We are propping up headline WAU by cycling ~1,600 promo-chasers in and out of the app every week while our true core base (`retained_users`) shrinks by ~3,200 users.

(Note: When we increased paid social by 25% in Week 9, new users grew, W2–W4 cohort percentages held steady at the post-Week 5 levels, and `retained_users` still dropped by another ~500 users over the next four weeks.)

---

What we should do before scaling acquisition

1. Hold off on doubling paid acquisition (and revert the 25% Week 9 increase if CAC is inefficient): Right now, 80% of new sign-ups churn by Week 7. Doubling spend at current retention rates will burn budget for a fraction of the LTV we were getting in July. 2. Restore goal-setting to the activation flow (this week): We need to A/B test bringing back the goal and frequency questions immediately: * Variant A (Control): Current 1-minute sign-up. * Variant B (Revert): Original 3-minute sign-up with goal-setting. * Variant C (Deferred Onboarding): Keep account creation fast, but require the goal-setting & weekly schedule commitment immediately before the user starts their first workout or generates their first weekly plan. * Success metric: Net retained users at Week 4 per 1,000 top-of-funnel visitors (not sign-up completion or W1 retention). 3. Fix the win-back mechanic: Giving a free week of Premium to unactivated users doesn't build a habit. We should shift the win-back hook from a temporary paywall unlock to re-establishing a weekly plan (e.g., "Let's reset your weekly schedule—pick 2 days to work out this week"), and track `retainedusers` separately from win-back `returningusers` in our growth reporting.

Once we see Week 4 cohort retention recover back above 32%, we should turn the paid acquisition tap all the way up.

Grades and run details

Decision model 79 · LLM judge 100
Decision model checks
  • failUses the supplied evidence correctly30%
  • passAddresses the actual decision100%
  • passRespects explicit constraints37%
  • passIdentifies material uncertainty62%
  • partialAvoids unsupported claims45%
  • passProduces the required deliverable94%
  • passFinds the onboarding change100%
  • passSees the win-back masking churn100%
  • passUnderstands before it justifies100%
  • failGets the base of every number right30%
  • passSplits growth into new, lost and returning100%
  • passReads the shape of the curves94%
Run
Run
#1
API response time
16 s
Submitted
13 Oct 2026

Usable with a quick edit12 of 12 checks passed

The diagnosis is evidence-based, clearly structured, and directly actionable; a PM could use it with only minor wording edits.

Output

Leo — I wouldn’t double paid acquisition yet. We have a retention leak, not just a summer growth slowdown. More new users and campaign-driven returns are masking deteriorating retention. The clearest break coincides with the week-5 onboarding change, though we need an experiment to establish causality.

What’s actually happening

Weekly actives remain around 52,000 because inflows are replacing increasingly large losses:

MetricWeek 1Week 13
------:---:
New active users6,0347,847
Returning users9732,635
Retained users44,88441,636
Churned users7,11610,279
Weekly active users51,89152,118

New users rose 30%, but weekly churn rose 44%. The share of the prior week’s actives retained fell from approximately 86.3% to 80.2%. In week 13, 10,482 new and returning users barely exceeded 10,279 churned users: net growth was just 203.

Flat actives are therefore concealing a less durable user base.

The evidence points to an activation problem

1. New cohorts look better initially, then retain substantially worse. For signup cohorts 1–4, first-following-week retention averaged 55.1%; for cohorts 5–12, it averaged 58.0%. But by the fourth following week, retention falls from 33.8% for cohorts 1–4 to 24.8% for cohorts 5–9. At eight weeks, the earlier cohorts retain roughly 30%, versus 19.9% for cohort 5.

That is not simply fewer people trying Stride. More are getting through the front door, but fewer form a lasting habit.

2. The break aligns with removing goal-setting in week 5. Shorter signup raised completion from 61% to 74%, but removed the step asking users what they wanted to achieve and how often they would exercise. For a habit app built around a weekly plan, that step may have helped users commit to a relevant routine.

The timing makes this our leading hypothesis—not proven causality. We should also check acquisition mix and other changes. However, the paid-budget increase occurred in week 9, after the cohort deterioration began. “Summer” alone does not explain this sharp onboarding-aligned break.

3. Win-back is propping up the headline metric, not repairing retention. Returning users jumped from about 1,000 to 2,600 a week when emails launched in week 6. Yet only 12% of email-driven returners remained active two weeks later, versus 41% of earlier organic returners. These are different populations, so this is not a causal campaign comparison, but it clearly warns against treating every return as durable recovery.

What we should do before spending more

  1. Hold acquisition spend steady while testing onboarding. Randomize the current short signup against a lightweight goal-setting step that produces a personalized weekly plan. Preserve the speed improvement where possible.
  1. Optimize for durable activation, not signup completion. Make four-week retention a primary outcome, alongside first workout, plan adoption and repeat workout behavior. Measure retained users per signup and per signup starter so a longer flow cannot “win” merely by filtering people out. Track Premium conversion as a guardrail.
  1. Locate the failure point. Segment cohorts by acquisition channel, campaign and onboarding exposure. Compare where users stop: before their first workout, after one workout, or when beginning the next weekly plan. Reconcile the signup and new-active counts before calculating acquisition efficiency.
  1. Judge win-back on incremental lasting activity. Use a randomized holdout and measure two- and four-week retention, not email-driven returns alone. Test messages that restore a realistic plan rather than relying only on free Premium.

Decision: scale acquisition once we demonstrate improved multiweek retention and acceptable acquisition economics. Doubling spend now risks buying more users into a leaking habit loop—and making flat actives look healthier without fixing the underlying problem.

Grades and run details

Decision model 100 · LLM judge 100
Decision model checks
  • passUses the supplied evidence correctly36%
  • passAddresses the actual decision98%
  • passRespects explicit constraints70%
  • passIdentifies material uncertainty82%
  • passAvoids unsupported claims69%
  • passProduces the required deliverable91%
  • passFinds the onboarding change100%
  • passSees the win-back masking churn100%
  • passUnderstands before it justifies100%
  • passGets the base of every number right10%
  • passSplits growth into new, lost and returning100%
  • passReads the shape of the curves45%
Run
Run
#1
API response time
34 s
Submitted
5 Oct 2026

Usable with a quick edit12 of 12 checks passed

The diagnosis is complete, uses the supplied evidence correctly, and gives a concrete, actionable plan with no missing reasoning; a PM could use it with only superficial edits.

Output

To: Leo | From: Activation PM | Re: Why WAU is flat, and why I'd hold off on doubling paid

Bottom line: This isn't a summer dip. Retention has been deteriorating since early August, and new sign-ups and win-back emails are hiding it. Doubling paid now would mostly buy users who leave faster.

1. What's happening

WAU = new + returning + retained users, which reconciles exactly every week. Across weeks 1–13, WAU moved only +227 (51,891 → 52,118). That flatness is three movements netting out:

  • New users: +1,813 (up 30%, as you said)
  • Returning users: +1,662, nearly all from win-back
  • Retained users (active last week and this week): −3,248

Retained users held near 44.5–45k through week 4, then stepped down from week 5 and kept sliding to 41.6k. Churn (last week's actives who didn't return) rose from about 14% of prior-week actives in weeks 2–4 to about 20% in weeks 11–13.

2. Why it isn't summer

Seasonality would hit all cohorts alike. It doesn't. Cohorts 1–4 (signed up July to late July) had week-4 retention of 33–34%. Cohorts 5 onward (from the week of 3 August, the first week of the shorter sign-up) drop to 24–25% and stay there, even though cohorts 2–4 went through the same weather. The break lines up with the week-5 release, which removed the goal-setting step.

The funnel math shows the change is a net loss. Per 100 visitors:

CompletionWeek-4 activesWeek-8 actives
Before (61%, cohorts 1–4)6161 × 33.4% ≈ 20.461 × 30.1% ≈ 18.4
After (74%, cohorts 5+)7474 × 24.5% ≈ 18.174 × 19.9% ≈ 14.7

We're converting more visitors into accounts, but by week 8 each signup is about 20% less likely to still be active. We're getting more users who don't build the habit.

3. Win-back is flattering the numbers

Win-back adds about 1,600 returning users a week. Of users who came back through a win-back email, 12% were still active two weeks later. Of users who came back on their own, 41% were. At 1,600 a week, that's roughly 190 durable returners instead of about 650 if they'd come back organically. We're also giving away a free week of Premium. "Returning users" now looks like a health signal, but most of it is low-quality.

The week-9 paid social increase (+25%) isn't visible as a break in the new-user trend, so I can't yet say what paid is adding.

What I'd do instead

  1. Hold the paid increase. Keep current spend. Revisit when cohort week-4 retention is back above 30%.
  1. Restore the goal-setting step, or move it into the app after the first workout. Run it as a holdout (50/50, old flow vs new), and judge on week-4 and week-8 retention per signup, not completion. Using the cohort tables, bringing cohort retention back to about 30% at week 4 is worth roughly 3–4k weekly actives at steady state. That's about the size of the whole retained-user decline. This is my rough estimate and needs confirming with the holdout.
  1. Find the churn in tenured users. Most of the 41k retained base isn't new. Segment weeks 4–13 churn by tenure, plan usage, workout type, and platform. Also check whether win-back returners churn quickly the following week, since they add to churn in the same weeks.
  1. Rework win-back. Test a smaller, conditional offer, or a guided re-entry workout instead of a free Premium week. Measure two-week retention against a holdout. Keep it only if the incremental retained users justify the cost.
  1. Change what we report. Show the WAU decomposition (new, returning, retained) and cohort retention by signup week every week. Stop counting returners as growth.

On the summer theory: it's testable. If we have last year's data for the same weeks, compare churn rates. If summer were the cause, we'd expect last year's churn to rise over these weeks too, and we'd expect older cohorts to show the same pattern as new ones. The data so far points to the week-5 change.

Ask: Can we set up the sign-up holdout this week and pull the tenure-level churn cut before any paid budget decision?

Grades and run details

Decision model 100 · LLM judge 100
Decision model checks
  • passUses the supplied evidence correctly13%
  • passAddresses the actual decision100%
  • passRespects explicit constraints59%
  • passIdentifies material uncertainty97%
  • passAvoids unsupported claims21%
  • passProduces the required deliverable92%
  • passFinds the onboarding change100%
  • passSees the win-back masking churn100%
  • passUnderstands before it justifies100%
  • passGets the base of every number right9%
  • passSplits growth into new, lost and returning100%
  • passReads the shape of the curves85%
Run
Run
#1
API response time
37 s
Submitted
8 Oct 2026

Check by check

Where the outputs differ comes first. Open a check to read the judge’s reasons. “Mixed” means the two graders disagreed.

Where they differ 2

Uses the supplied evidence correctlyMixedRightRight
Gemini 4 Argon · API

All numbers and facts about the current situation are drawn directly from the supplied data or accurate arithmetic; no invented facts.

GPT-6.1 Sol · API

All claims about the current situation are directly supported by the supplied context or arithmetic from it.

Haiku 5.5 · API

All listed statements about the current situation are taken directly from the supplied context or follow by straightforward arithmetic; no invented facts.

Gets the base of every number rightMixedRightRight
Gemini 4 Argon · API

All percentage changes, relative drops and the 19% fewer long-term users figure are computed correctly from the provided numerators and denominators.

GPT-6.1 Sol · API

All derived percentages and differences check out against the supplied data, and the base for retention rates is stated or clear from context.

Haiku 5.5 · API

All percentages and differences (churn as share of prior-week actives, funnel math using sign-up completion and cohort retention) are computed with correct denominators and steps.

All got right 10

Addresses the actual decisionRightRightRight
Gemini 4 Argon · API

Clearly says hold off on doubling paid acquisition, gives a concrete condition (Week 4 retention above 32%) to turn the tap on, and addresses Leo directly.

GPT-6.1 Sol · API

Commits early to not doubling paid acquisition now, says what to do instead, and states that scaling acquisition should happen once multiweek retention improves.

Haiku 5.5 · API

Output commits early to 'hold off on doubling paid', gives clear condition (cohort week-4 retention above 30%) to revisit.

Respects explicit constraintsRightRightRight
Gemini 4 Argon · API

The diagnosis is in a memo for Leo, under 800 words (about 770), and respects the requested form.

GPT-6.1 Sol · API

The output is a diagnosis under 800 words, addressed to Leo, and proposes actions that would enforce the constraint of holding acquisition spend.

Haiku 5.5 · API

Diagnosis within 800 words, addressed to Leo as a memo, respects all requested form and length constraints.

Identifies material uncertaintyRightRightRight
Gemini 4 Argon · API

Labels the causal link as 'likely' in the analysis, proposes A/B tests to resolve it, and specifies a metric threshold that would change the call.

GPT-6.1 Sol · API

Labels the onboarding change as a hypothesis needing an experiment, notes the win-back comparison is not causal, and says what would change the call.

Haiku 5.5 · API

Names unknowns (paid social effect not visible, win-back durability, exact size of benefit from restoring goal-setting, and that summer theory could be tested with last year's data) and says how each would be resolved (holdout, tenure analysis, comparison).

Avoids unsupported claimsRightRightRight
Gemini 4 Argon · API

Causal claims are either hedged ('likely broke') or backed by the data patterns; the diagnosis does not present speculation as established fact.

GPT-6.1 Sol · API

Causal interpretations are clearly labelled as hypotheses, and confident claims are backed by the supplied evidence.

Haiku 5.5 · API

Hypotheses and forecasts (e.g., 'most of retained base isn't new' is a premise for investigation, and the 3-4k projected gain is labelled as 'rough estimate') are presented as assumptions or estimates, not as established fact without evidence.

Produces the required deliverableRightRightRight
Gemini 4 Argon · API

The required diagnosis is present, complete, properly directed to Leo, within word count, and actionable as-is.

GPT-6.1 Sol · API

Provides a complete diagnosis with evidence and recommendations, in memo form for Leo, within 800 words, and is actionable as-is.

Haiku 5.5 · API

A complete diagnosis memo to Leo exists, under 800 words, with evidence and actionable recommendations; a PM could act on it with minor edits.

Finds the onboarding changeRightRightRight
Gemini 4 Argon · API

Points out Week 5 cohort retention drops (Week 4 ~24.7%, Week 8 ~19.9% vs prior ~33.8% and ~30.0%) and ties it to the removal of goal-setting, noting sign-up completion hides the loss.

GPT-6.1 Sol · API

Shows cohorts from week 5 retain worse (week 4: 33.8% vs 24.8%, week 8: ~30% vs 19.9%) and ties it to the removal of goal-setting.

Haiku 5.5 · API

Links new-user retention drop to week-5 removal of goal-setting using cohort table (24-25% week4 retention vs 33-34% before), noting higher sign-up completion hides the loss.

Sees the win-back masking churnRightRightRight
Gemini 4 Argon · API

Notes the jump in returning users to ~2,600/week from Week 6, contrasts 12% two-week retention of win-back users with 41% organic, and explains how this props up WAU while core base shrinks.

GPT-6.1 Sol · API

Uses the jump in returning users from week 6 and the 12% vs 41% two-week retention to show the campaign masks churn.

Haiku 5.5 · API

Uses the jump in returning users from week 6 and the 12% vs 41% two-week retention to show the campaign inflates returning users and masks churn.

Understands before it justifiesRightRightRight
Gemini 4 Argon · API

Tests Leo's summer hypothesis against the data (pre-Week 5 cohorts show no seasonal decay, churn worsening in September) and builds its own diagnosis from the cohort and accounting tables.

GPT-6.1 Sol · API

Tests the summer explanation against the data, finds it insufficient, and reaches its own diagnosis from the cohort and accounting evidence.

Haiku 5.5 · API

Tests the summer hypothesis against cohort data, finds it inconsistent, and arrives at own onboarding-cause diagnosis from the evidence.

Splits growth into new, lost and returningRightRightRight
Gemini 4 Argon · API

Separates new, retained, churned, and returning users and analyzes which flows changed, instead of looking only at total WAU.

GPT-6.1 Sol · API

Splits weekly active users into new, retained, churned, and returning, and uses these flows to diagnose the flat total.

Haiku 5.5 · API

Separates WAU into new, returning, retained, and churned, and shows how the movements net out to flat total.

Reads the shape of the curvesRightRightRight
Gemini 4 Argon · API

Describes pre-Week 5 cohorts as holding steady around 30% at Week 8 (no decay), and post-Week 5 cohorts as collapsing sharply without recovery, concluding correctly about non-seasonal nature.

GPT-6.1 Sol · API

Describes how later cohorts start with higher week-1 retention but then drop much lower by week 4 and week 8, and correctly interprets this as a failure to form lasting habits.

Haiku 5.5 · API

Describes cohort retention curves (early cohorts high and stable, post-week5 cohorts drop and stay low; win-back returners have low two-week retention), drawing the right conclusion about habit formation and low-quality returners.

Results

Every setup we’ve tested on this task type, across all its tasks and repeats, graded on the current checklist. Calibrated.

#Model · HarnessTask scoreDecision modelLLM judgeRunsCritical failures
1GPT-6 AstrawithChatGPT100.0100.02None
2Haiku 5.5withAPI100.0100.02None
3GPT-6 LunawithAPI96.2100.02None
4GPT-6.1 SolwithAPI92.3100.02None
5Opus 5.5withClaude85.7100.02None
6Sonnet 5.5withAPI92.389.32None
7Gemini 3.5 Flash-LitewithGemini80.374.22None
8Gemini 4 ArgonwithAPI70.482.12None
9Gemini 3.8 FlashwithAPI76.470.92None

What you get for the cost

GPT-6 Luna · API scores within 2 points of GPT-6 Astra · ChatGPT at about a fiftieth of the cost.

Task score against relative cost for each setup. The table below has the same figures.607080901001×3×10×30×100×Cost per output, relative to the cheapest setup (log scale) →↑ Task scoreGPT-6 Astra · ChatGPT: task score 100, 79× the cheapestHaiku 5.5 · API: task score 100, 3.6× the cheapestGPT-6 Luna · API: task score 98, the cheapestGPT-6.1 Sol · API: task score 96, 15× the cheapestOpus 5.5 · Claude: task score 93, 77× the cheapestSonnet 5.5 · API: task score 89, 50× the cheapestGemini 3.5 Flash-Lite · Gemini: task score 76, 3.0× the cheapestGemini 4 Argon · API: task score 76, 17× the cheapestGemini 3.8 Flash · API: task score 73, 13× the cheapestGPT-6 Astra · ChatGPTHaiku 5.5 · APIGPT-6 Luna · APIGPT-6.1 Sol · APIOpus 5.5 · ClaudeSonnet 5.5 · APIGemini 3.5 Flash-Lite · GeminiGemini 4 Argon · APIGemini 3.8 Flash · API
Best valueNobody beats these on both score and cost
Task score and relative cost by setup
SetupTask scoreRelative cost (cheapest = 1)
GPT-6 Luna · API981.0×
Gemini 3.5 Flash-Lite · Gemini763.0×
Haiku 5.5 · API1003.6×
Gemini 3.8 Flash · API7313×
GPT-6.1 Sol · API9615×
Gemini 4 Argon · API7617×
Sonnet 5.5 · API8950×
Opus 5.5 · Claude9377×
GPT-6 Astra · ChatGPT10079×

Cost is each output’s tokens at the model’s list price, shown relative to the cheapest setup. Runs done in an app have no usage meter, so theirs are estimated from the same setup’s measured runs. How we compare cost

About the task

The PM job

Working out why customers leave, and what to fix first.

Why it matters

Teams pick a story (the season, a competitor) and then pull data to justify it. Half the time the 'drop' is a definition change, and the real leak is somewhere else.

What good looks like

  • Starts from what the data shows, not a story
  • Splits growth into new, lost and returning users
  • Separates measurement and seasonality from churn
  • Sizes the real problem and fixes new-user retention first

Deliberately not measured

  • Dashboard design
Capability tested

Retention diagnosis

The failure we’re looking for

Confirming the story everyone already believes

Grading

Decision model and LLM judge, calibrated against a blind PM review