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 16 graded outputs by 8 models. 81% were usable with at most a quick edit.

Reliably right

  1. Produces the required deliverable100% pass
    The diagnosis is complete, actionable, and in the right format for Leo; a PM could act on it with light edits.
    GPT-6 Astra · ChatGPT · Flat, while sign-ups grow
  2. Understands before it justifies100% pass
    It tests the summer explanation against the data, finds the break aligns with the onboarding change not the paid spend increase, and reaches its own diagnosis from the evidence.
    GPT-6 Astra · ChatGPT · Flat, while sign-ups grow
  3. Splits growth into new, lost and returning100% pass
    It splits growth into new, retained, churned, and returning users, and uses the net growth equation to show which flow changed.
    GPT-6 Astra · ChatGPT · Flat, while sign-ups grow

Where it slips

  1. Gets the base of every number right61% 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 claims67% pass
    The output presents causal interpretations (e.g., onboarding changes broke retention, low-intent users) as established fact without labelling them as hypotheses.
    Gemini 3.5 Flash-Lite · Gemini · Flat, while sign-ups grow
  3. Identifies material uncertainty77% pass
    The output does not name specific unknowns that could change the decision or say how they would be resolved.
    Gemini 3.5 Flash-Lite · Gemini · Flat, while sign-ups grow

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.0

The outputs

8 setups answered this brief.

Usable with a quick edit11 of 12 checks passed

The diagnosis is complete, evidence-based, and actionable; a PM could use it with only minor wording tweaks, without rechecking data or redoing analysis.

Output

Weekly actives are flat because retention broke in week 5, not because of summer

To: Leo From: Activation PM Re: Why weekly actives are flat, and why we shouldn't double paid acquisition yet

Summary

Weekly actives aren't flat because of summer. Retention dropped sharply for every cohort that signed up from week 5 onward. That is the week we removed the goal-setting step from sign-up. The win-back campaign has hidden the damage by pulling back about 1,600 lapsed users a week, and most of them leave again within two weeks. Doubling acquisition now would pour more users into a bucket that leaks about a third faster than it did in July.

What's happening

1. Churn is up 40%, and it's offset by low-quality reactivations.

Weekly churn (users active last week but not this week, divided by last week's actives):

PeriodWeekly churnUsers churned per week
Weeks 2–412.7–14.3%~7,000
Week 617.7%~9,100
Weeks 9–1318.3–19.8%~10,300

Returning users jumped from about 1,000 to about 2,600 a week in week 6, the week win-back emails started. New users are up 30%. Together these just cancel the extra churn, which is why the headline stays near 52,000.

2. The break follows sign-up cohort, not the calendar.

CohortsWeek 1 retentionWeek 4 retentionWeek 8 retention
Weeks 1–4~55%~34%~30%
Weeks 5 onward~58%~25%~20%

The change is a clean step at the week-5 cohort, with no gradual drift.

3. The evidence argues against seasonality.

  • Cohorts behave differently in the same calendar weeks. If summer were the cause, everyone would dip together. Instead, the weeks 1–4 cohorts held at about 30% through all of August, while the cohorts that joined in August decayed fast.
  • July was summer too. Churn was at its lowest then.
  • September didn't help. Weeks 10–13 run into late September, and churn is at its worst.

4. The week-5 sign-up change is the most likely cause.

Removing "What do you want to achieve, and how many days a week?" cut sign-up from 3 minutes to 1. Completion rose from 61% to 74%. But we stopped asking users to commit to a goal and a weekly frequency, which is the core of a weekly-plan habit app.

The pattern fits: - First-week retention went up slightly (58% vs 55%), because the initial experience is fine. - From week 3 onward, users without a plan drift away.

Part of the drop may be compositional: the extra 13 points of completers may be lower intent. Either way, the cause points to the same step. Nothing else in the log lines up. The week-3 workout library shows no effect, and paid social only started in week 9.

5. The win-back campaign flatters the topline.

Only 12% of win-back returners are still active two weeks later, against 41% of users who came back on their own before the campaign. We're also giving away a free week of Premium to get them. Without the campaign, weekly actives would be roughly 1,500 lower and still falling.

Why doubling acquisition doesn't work right now

Per 1,000 sign-ups, about 300 were still active at week 8 before week 5. Now it's about 200. That means:

  • We need 50% more sign-ups just to keep the same number of retained users.
  • Sign-ups are up about 28%, which isn't keeping pace.
  • Cost per retained user is up roughly 50% at today's acquisition cost. That's before any rise in marginal cost from doubling spend, which usually happens.

Each extra cohort loses about 80% of its users within 8 weeks. Doubling spend would mostly buy churn.

What we should do instead

1. Fix sign-up first (start this week).

Run an A/B test with three arms: - (a) the current flow; - (b) the old flow with goal-setting; - (c) goal-setting moved to after account creation, in the first session.

Option (c) could keep most of the completion gain and restore the plan. Judge the test on week-3 retention, where the gap (about 37% vs 30%) shows up within three weeks, and confirm at week 4.

If we want to move faster, we could simply revert to (b) while testing (c). We'd give back some completion, but we'd stop losing about 10 points of week-8 retention on every new cohort.

2. Hold paid acquisition at its current level until retention recovers.

Revisit once new cohorts are back to about 33% at week 4. When we do scale, check whether paid-social cohorts retain as well as organic ones. We don't yet have cohort data split by channel.

3. Put the win-back campaign behind a holdout.

Withhold the email from 20% of eligible users to measure: - true incremental weekly actives; - Premium cannibalisation; - whether the free week leads to paid conversion.

Also try a version without the free-Premium offer, or one that sends people back into a plan: "Pick your days for this week".

4. Change how we report growth.

Make cohort retention at weeks 4 and 8, plus the weekly churn rate, our headline health metrics alongside weekly actives. Report reactivations separately. A flat topline hid a 40% rise in churn for two months.

Caveats

  • Causation isn't proven. The week-5 timing is strong evidence, but the A/B test is what will prove it.
  • The two data sources don't quite match. Cohort sign-up counts are slightly lower than "new users" in the growth accounting (for example, 6,000 vs 6,034 in week 1), so the two may define new users slightly differently. The gap is too small to change the conclusion.

Happy to walk through the cohort curves together. I'd recommend we agree on the sign-up test before any change to the paid budget.

Grades and run details

Decision model 83 · LLM judge 100
Decision model checks
  • passUses the supplied evidence correctly13%
  • passAddresses the actual decision99%
  • partialRespects explicit constraints28%
  • passIdentifies material uncertainty97%
  • partialAvoids unsupported claims38%
  • passProduces the required deliverable93%
  • passFinds the onboarding change100%
  • passSees the win-back masking churn100%
  • passUnderstands before it justifies100%
  • failGets the base of every number right24%
  • passSplits growth into new, lost and returning100%
  • passReads the shape of the curves76%
Run
Run
#1
Time to output
43 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 92 · LLM judge 100
Decision model checks
  • passUses the supplied evidence correctly35%
  • passAddresses the actual decision100%
  • passRespects explicit constraints41%
  • passIdentifies material uncertainty97%
  • partialAvoids unsupported claims31%
  • passProduces the required deliverable92%
  • passFinds the onboarding change100%
  • passSees the win-back masking churn100%
  • passUnderstands before it justifies100%
  • partialGets the base of every number right1%
  • 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

Usable with a quick edit12 of 12 checks passed

The diagnosis is clear, evidence-based, and actionable; a PM could use it with minor wording tweaks and no need to re-verify the data or reasoning.

Output

To: Leo — Fix the retention leak before doubling acquisition

Weekly actives are flat because rising acquisition and reactivation are offsetting worsening retention. Summer could contribute, but the clearest break in the data follows the week-5 onboarding change—not the later increase in paid spend.

What’s happening

1. We are replacing more users, not building a larger active base.

Weekly active users equal retained users + new users + returning users. Equivalently, weekly net growth equals new + returning − churned.

From week 1 to week 13: - New users rose 30%, from 6,034 to 7,847. - Returning users rose from 973 to 2,635. - Weekly churn rose 44%, from 7,116 to 10,279. - Retained users fell from 44,884 to 41,636.

The result: weekly actives moved just 0.4%, from 51,891 to 52,118. The share of the previous week’s actives retained fell from 86.3% to 80.2%. This is deterioration beneath a flat headline.

2. New users look better after one week, but substantially worse afterward.

Compare signup cohorts before and after the week-5 release:

Retention measureWeeks 1–4 cohortsWeek 5 onward, where observed
------:---:
Week 1~55%~58%
Week 4~34%~25%
Week 8~30%~20%*

Only the week-5 post-change cohort has an observed week-8 result. Blank cells are unobserved, not zero.

The week-4 decline is roughly nine percentage points, or 27% relative, and repeats across multiple mature post-change cohorts. Earlier cohorts flatten near 30% by weeks 7–8; the first mature post-change cohort flattens near 20%. That suggests a smaller durable habit-forming base, not merely delayed engagement.

3. Win-back is masking the problem, not fixing it.

Returning users jumped immediately after win-back emails began in week 6. Lifecycle attributes about 1,600 extra weekly returns to the campaign, but only 12% of email-returned users were active two weeks later, versus 41% of earlier organic returners.

Those populations are not comparable enough to establish a causal campaign effect. Nevertheless, most campaign returners are not sustaining activity. Repeated returns and lapses can support WAU without creating lasting growth.

Likely diagnosis—and what remains uncertain

In week 5, we removed goal-setting and weekly-frequency selection. Signup completion improved from 61% to 74%, but subsequent cohorts became much less durable.

The leading hypothesis is that we removed a commitment and planning step central to a fitness habit. Alternatively—or additionally—the easier funnel admitted more low-intent users, lowering average retention. Both could be happening.

Timing alone does not prove causality. We lack randomized evidence, acquisition-source breakdowns, and a prior-year seasonal comparison. Still, the abrupt cohort break starts before the week-9 paid-social increase and persists afterward. “It’s summer” is not a sufficient diagnosis. Also, new-cohort deterioration may not explain all aggregate churn; we should examine established users separately.

What we should do before spending more

  1. Hold paid spend at its current level. Don’t double distribution into a deteriorating retention curve.
  1. Test lightweight goal-setting immediately. Randomize new visitors between current onboarding and a short goal/frequency step that produces a concrete weekly plan. Measure week-4 retained users per onboarding entrant, not just signup completion or retention among completed signups. This captures the conversion–retention trade-off. Track first-workout completion and second-week adherence as early signals; Premium conversion and revenue as business guardrails.
  1. Localize the leak. Segment equal-age cohorts by paid/organic source, campaign, onboarding exposure, and initial workout/plan behavior. Check existing-user retention around week 5. Reconcile the differing signup totals across the two exports before joining them.
  1. Evaluate win-back with a randomized holdout. Optimize for incremental sustained activity and eventual revenue—not email-driven return visits alone.

Increase acquisition only after we demonstrate improved durable retention and acceptable channel economics. Right now, more acquisition would buy more arrivals; it has not demonstrated that it will buy lasting growth.

Grades and run details

Decision model 100 · LLM judge 100
Decision model checks
  • passUses the supplied evidence correctly37%
  • passAddresses the actual decision97%
  • passRespects explicit constraints52%
  • passIdentifies material uncertainty96%
  • passAvoids unsupported claims58%
  • passProduces the required deliverable90%
  • passFinds the onboarding change100%
  • passSees the win-back masking churn100%
  • passUnderstands before it justifies100%
  • passGets the base of every number right12%
  • passSplits growth into new, lost and returning100%
  • passReads the shape of the curves96%
Run
Run
#1
Time to output
41 s
Submitted
5 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 1

Gets the base of every number rightMixedRightRight
Opus 5.5 · Claude

All derived figures (churn rates, retention percentages, relative changes) are computed correctly with the right denominators, and the churn rate base is explicitly stated.

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.

GPT-6 Astra · ChatGPT

All derived figures (30% new-user increase, 44% churn increase, 0.4% WAU change, retention rates) are computed correctly with clear bases.

All got right 11

Uses the supplied evidence correctlyRightRightRight
Opus 5.5 · Claude

All factual claims about the current situation are taken directly from the supplied data or derived correctly by arithmetic; the 40% churn increase is a reasonable rounding of the churn rate increase from ~13.5% to ~19%.

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.

GPT-6 Astra · ChatGPT

All factual claims about the current situation are taken directly from the supplied context or derived correctly by arithmetic.

Addresses the actual decisionRightRightRight
Opus 5.5 · Claude

The output clearly commits to not doubling paid acquisition, recommends fixing sign-up first, and specifies that acquisition should be revisited when week-4 retention recovers to ~33%.

Haiku 5.5 · API

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

GPT-6 Astra · ChatGPT

The output commits early to holding paid spend and not doubling acquisition, and states the condition (improved durable retention) that would change the call.

Respects explicit constraintsRightRightRight
Opus 5.5 · Claude

The output is a diagnosis memo addressed to Leo, well under 800 words, and respects the brief's request for a diagnosis and recommendation.

Haiku 5.5 · API

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

GPT-6 Astra · ChatGPT

The output is a diagnosis memo addressed to Leo, well under 800 words, and respects the requested form and reader.

Identifies material uncertaintyRightRightRight
Opus 5.5 · Claude

It names the unproven causation, the slight data mismatch, and the lack of channel-split cohort data, and says an A/B test will resolve the cause.

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).

GPT-6 Astra · ChatGPT

It names specific unknowns (no randomized evidence, no source breakdown, no prior-year seasonal comparison) and says how to resolve them (test goal-setting, segment cohorts, holdout for win-back).

Avoids unsupported claimsRightRightRight
Opus 5.5 · Claude

The sign-up change is presented as the most likely cause, not as fact, and the output explicitly states causation isn't proven.

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.

GPT-6 Astra · ChatGPT

Hypotheses are clearly labelled, and all confident claims are supported by the supplied evidence or arithmetic.

Produces the required deliverableRightRightRight
Opus 5.5 · Claude

The output is a complete, actionable diagnosis memo for Leo, within the word limit, with clear sections and next steps.

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.

GPT-6 Astra · ChatGPT

The diagnosis is complete, actionable, and in the right format for Leo; a PM could act on it with light edits.

Finds the onboarding changeRightRightRight
Opus 5.5 · Claude

It links the retention drop to the week-5 goal-setting removal using the cohort table, showing week-4 retention falling from ~34% to ~25% and noting higher sign-up completion hides the damage.

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.

GPT-6 Astra · ChatGPT

It links the drop in new-user retention to the week-5 goal-setting removal using cohort numbers (week 4 ~34% vs ~25%, week 8 ~30% vs ~20%) and notes the sign-up completion increase hides the problem.

Sees the win-back masking churnRightRightRight
Opus 5.5 · Claude

It identifies the jump in returning users from week 6, uses the 12% vs 41% two-week retention to show low quality, and explains how this masks rising 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.

GPT-6 Astra · ChatGPT

It identifies the jump in returning users from week 6, the 1,600 extra returns, and the 12% vs 41% two-week retention to show the campaign masks churn.

Understands before it justifiesRightRightRight
Opus 5.5 · Claude

The diagnosis tests Leo's summer hypothesis against the data (cohorts in same calendar weeks, July churn, September churn) and reaches its own conclusion from the 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.

GPT-6 Astra · ChatGPT

It tests the summer explanation against the data, finds the break aligns with the onboarding change not the paid spend increase, and reaches its own diagnosis from the evidence.

Splits growth into new, lost and returningRightRightRight
Opus 5.5 · Claude

The diagnosis separates new, retained, churned, and returning users, showing which flows changed and how they offset each other.

Haiku 5.5 · API

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

GPT-6 Astra · ChatGPT

It splits growth into new, retained, churned, and returning users, and uses the net growth equation to show which flow changed.

Reads the shape of the curvesRightRightRight
Opus 5.5 · Claude

It reads the cohort curves as a clean step change at week 5 rather than a gradual seasonal dip, and notes the early retention rise followed by a steeper later drop.

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.

GPT-6 Astra · ChatGPT

It describes how pre-change cohorts flatten near 30% and the post-change cohort flattens near 20%, and notes win-back returners do not sustain, drawing the right conclusions about habit formation and masking.

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 AstrawithChatGPT96.2100.02None
2GPT-6 LunawithAPI96.2100.02None
3GPT-6.1 SolwithAPI94.1100.02None
4Haiku 5.5withAPI92.0100.02None
5Opus 5.5withClaude82.1100.02None
6Sonnet 5.5withAPI90.189.32None
7Gemini 3.5 Flash-LitewithGemini76.474.22None
8Gemini 3.8 FlashwithAPI72.370.92None

What you get for the cost

GPT-6 Luna · API matches 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 98, 79× the cheapestGPT-6 Luna · API: task score 98, the cheapestGPT-6.1 Sol · API: task score 97, 15× the cheapestHaiku 5.5 · API: task score 96, 3.6× the cheapestOpus 5.5 · Claude: task score 92, 77× the cheapestSonnet 5.5 · API: task score 88, 50× the cheapestGemini 3.5 Flash-Lite · Gemini: task score 74, 3.0× the cheapestGemini 3.8 Flash · API: task score 71, 13× the cheapestGPT-6 Astra · ChatGPTGPT-6 Luna · APIGPT-6.1 Sol · APIHaiku 5.5 · APIOpus 5.5 · ClaudeSonnet 5.5 · APIGemini 3.5 Flash-Lite · GeminiGemini 3.8 Flash · API
Best value
Task score and relative cost by setup
SetupTask scoreRelative cost (cheapest = 1)
GPT-6 Luna · API981.0×
Gemini 3.5 Flash-Lite · Gemini743.0×
Haiku 5.5 · API963.6×
Gemini 3.8 Flash · API7113×
GPT-6.1 Sol · API9715×
Sonnet 5.5 · API8850×
Opus 5.5 · Claude9277×
GPT-6 Astra · ChatGPT9879×

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