You have a retention cohort table open. Your eyes go straight to the D30 number, you compare it to last month, you feel good or bad, you close the tab. That is not analysis. The shape of the curve, where it bends, where it flattens, which cohort behaves differently, is where the actual product story lives. AI is genuinely useful at turning a wall of percentages into that story, as long as you feed it the numbers and not your conclusion.
TL;DR
- Stop reading D30 as a single number. Read the shape: a curve that flattens and holds is the real product-market-fit signal; a curve that keeps bleeding to zero is not. This is the diagnostic, not the absolute value.
- Feed the AI the full cohort grid plus a per-cohort changelog of what shipped. AI cannot read a curve it cannot see, and it cannot guess what you launched in W12.
- For raw CSVs, use a tool that actually computes the deltas in a sandbox (ChatGPT’s data-analysis mode, $20 Plus, runs Python). For a pasted markdown table you just want narrated, Claude Opus 4.7 ($20 Pro) reads it cleanly. Verify every cell either way.
- Hard rule in the prompt: every claim names a day window and a point delta (“D14 +6pts, W12 vs W10”). Ban the phrase “retention improved.”
- The AI narrative is a prompt for the team conversation, not the answer. You assign causes; AI flags patterns.
The task
You have weekly cohort retention data (D1, D7, D14, D30, D60, D90 for the last 6-12 acquisition cohorts). You want a short written read of the curve, what changed, where the drop-off shifted, which cohort is the outlier, that you can drop into a Notion doc or share in standup without lying about what the data says.
Which AI tool reads cohorts best (June 2026)
Two different jobs, two different tools. Pick by whether you have a raw file or a small pasted table.
| Tool (June 2026) | Plan | Reads a CSV/Sheet? | Recomputes deltas in code? | Best for |
|---|---|---|---|---|
| ChatGPT data-analysis mode (GPT-5.5) | Plus, $20/mo | Yes — upload CSV/XLSX or connect Drive | Yes — runs Python in a sandbox, so the point-deltas are arithmetic, not guessed | A messy export you want both charted and narrated |
| Claude (Opus 4.7) | Pro, $20/mo | Pasted table or small file | No code sandbox; it reasons over numbers it can see | A clean 7-row markdown table you want narrated tightly |
| Gemini (3.1 Pro) | Google AI Pro, $19.99/mo | Yes — strong inside Google Sheets | Limited | Cohorts that already live in a Google Sheet |
The honest caveat: ChatGPT’s data-analysis sandbox does the arithmetic so it will not fabricate a delta, but it can still mislabel which column is D14. Claude narrates a small pasted table fluently but does the subtraction in its head, so a wrong cell sails through. Either way you sanity-check every quoted number against the source table. One more practical note: ChatGPT deletes uploaded files on a schedule that varies by plan and is not documented, so never treat an upload as storage.
What “good” looks like (2026 benchmarks)
Before you call a curve healthy, know the floor. These are median mobile benchmarks as of 2026, so use them as a sanity check, not a target. Retention is category-specific.
| Segment | D1 | D7 | D30 |
|---|---|---|---|
| All apps (median) | ~26% | ~13% | ~7% |
| iOS (vs Android) | 27% (24%) | — | 8% (6%) |
| Health & fitness | 20-27% | ~7% | ~3% |
| Fintech | 22-30% | ~18% | ~12% |
| Gaming | 29-33% | ~16% | ~9% |
A habit app sitting at D1 70% (the worked example below) is well above the health-and-fitness median, which usually means a self-selected early-adopter base, not a sign you have escaped the gravity that flattens D30. The shape still has to flatten and hold. Andrew Chen’s classic framing is the bar: a curve that flattens signals stickiness, and a “smile” curve, where lapsed users return as the product improves, is the rarest and best pattern of all (andrewchen.com on the magic metrics).
When this is the right job for AI
- You have the raw cohort table, not just summary numbers. AI is bad at curves it cannot see.
- You can tell AI what shipped in each cohort window (onboarding change, pricing test, push-notification policy).
- You will not let AI invent causes. You will ask it to flag patterns and you will assign causes from your own context.
- The team genuinely confuses “D30 went up” with “retention improved.” A written narrative forces the distinction.
What to feed the AI
- The cohort table as CSV or a pasted markdown table — every cell, not a summary
- Acquisition channel mix per cohort if it varies (paid vs organic mixes break naive comparisons)
- A timeline of what shipped per cohort week (onboarding v3, paywall test, push opt-in change)
- The metric definition you use for “retained” (opened the app? completed core action? do not assume AI knows)
- The 1-2 cohorts you already suspect are outliers and why
Copy-ready prompt
This prompt works in any of the three tools above. If you uploaded a CSV to ChatGPT, drop the pasted table and say “use the file I uploaded” instead.
You are reading a weekly cohort retention table for an indie iOS app.
"Retained" = opened the app AND completed at least one core action (logging a habit) in the day window.
Cohort table (rows = acquisition week, columns = day window):
Week 2026-W10 | D1 62% | D7 38% | D14 29% | D30 22% | D60 18% | D90 16%
Week 2026-W11 | D1 64% | D7 39% | D14 28% | D30 21% | D60 17%
Week 2026-W12 | D1 71% | D7 44% | D14 31% | D30 22%
Week 2026-W13 | D1 73% | D7 46% | D14 34% | D30 24%
Week 2026-W14 | D1 72% | D7 43% | D14 30%
Week 2026-W15 | D1 70% | D7 41%
Week 2026-W16 | D1 68%
Channel mix is stable across all cohorts (70% organic search, 20% referral, 10% paid).
What shipped, by cohort:
- W10-W11: baseline.
- W12: onboarding rewrite (3 fewer steps, added "first habit in 30 seconds" path).
- W13: same onboarding + first reminder enabled by default.
- W14: same + premium paywall moved from D3 to D7.
- W15-W16: no product change.
Write a short narrative read of the curve. Structure:
1. The shape change. What changed in the curve between W10-W11 and W12+ — be specific about which day windows moved and by how many points.
2. Where the curve is flattening. The interesting question is not D1 — it is where the slope levels off. Call out the week where flattening seems to start.
3. The cohort that looks like an outlier and why. If none, say so.
4. Two hypotheses worth testing next, each tied to a specific cohort and a specific day window.
5. One thing the data does NOT tell you that you would need to answer the "why."
Rules:
- Do not invent numbers. Quote what is in the table.
- Do not assign causes the data cannot support — flag them as hypotheses.
- No "engagement improved." Name the day window and the points.
- Three to five short paragraphs.
Sample output structure
The shape of the curve shifted clearly at W12. D1 moved from 62-64% to 71-73% and held through W15, then dipped to 68% in W16. D7 moved from 38-39% to 44-46%, then drifted back to 41% by W15. So the onboarding rewrite landed an early-window lift that is partly persisting and partly decaying: the D1 lift is more durable than the D7 lift.
Where the curve is flattening: in the W10-W11 cohorts the slope between D14 and D30 is gentle (29% to 22%, about 7 points), while between D30 and D60 it flattens to 4 points and then 2 between D60 and D90. The W12-W13 cohorts have not yet hit D60, but the D14 to D30 slope already looks comparable. That suggests the lift you bought in early windows may not propagate to D60+ without a separate intervention aimed at the D14-D30 trough.
W13 looks like the standout cohort. It is the only cohort where both onboarding-v2 AND default-reminder-on were live, and its D14 (34%) is the highest in the table. W14 added the paywall shift but D14 fell back to 30%, which is suggestive but not conclusive given cohort-to-cohort noise.
Two hypotheses worth testing: (1) Default reminder on is doing more work than the onboarding rewrite. Isolate by re-running with reminder-off for half the W17 cohort, watch D14. (2) The W14 paywall shift to D7 is suppressing D14 retention. Split-test paywall position next sprint and read D14, not just revenue.
What the data does not tell you: whether the D7 decay between W13 and W15 is reminder fatigue (users muting), iOS notification permission changes mid-window, or external seasonality. You would need notification-permission and mute-rate cohorts to separate those.
How to refine
- Output too vague (“retention improved”) → strict rule: “every claim names a day window and a point delta, e.g., D14 +6pts W12 vs W10.”
- AI invents a number that is not in the table → paste the table again with explicit instruction: “quote only cells present below.”
- Causes asserted as fact → re-prompt: “rewrite causes as hypotheses tied to specific cohorts and a falsification test.”
- Misses the flattening question and just reports highs → require “section 2 must name where the slope levels off, by week and day window.”
- Reads the cohorts in isolation → ask: “compare W12-W13 as a block against W10-W11 as a block, then call out within-block outliers.”
Common mistakes
- Reading D30 in isolation and ignoring the slope. A cohort with high D1 and a steep drop is often worse than one with lower D1 and a gentle slope that flattens.
- Comparing cohorts with different channel mixes as if they are equivalent. Paid-heavy cohorts almost always have weaker D30.
- Calling a 1-2 point cohort delta a “win.” Cohort noise on a 5,000-user-per-week app can easily move 2 points.
- Letting the team treat the AI narrative as ground truth. The narrative is a prompt for the team conversation, not the answer.
FAQ
- ChatGPT, Claude, or Gemini for this? For a raw export, ChatGPT’s data-analysis mode (GPT-5.5, Plus $20/mo) because it runs the arithmetic in a Python sandbox instead of guessing deltas. For a clean pasted table you just want narrated tightly, Claude Opus 4.7 (Pro $20/mo). If the cohorts already live in a Google Sheet, Gemini 3.1 Pro (Google AI Pro $19.99/mo) is the least friction.
- How many cohorts do I need before this is useful? Six gives you a baseline and three change-windows. Fewer and you cannot tell signal from cohort noise.
- What if my D1 is below the ~26% median? Then the curve story is secondary; fix activation first. AI reading a broken curve will still produce confident text.
- How do I stop the AI inventing a number? Two layers: tell it to “quote only cells present in the table below,” and on a raw file, prefer a tool that computes (ChatGPT’s sandbox) over one that narrates from memory. Then still check every quoted cell against the source.
- Should I share the AI narrative with the team directly? No. Read it, sanity-check every cell it quoted, rewrite it in your own voice. The thinking is the value, not the prose.
- What about LTV or revenue cohorts? Same template; swap day-window retention for revenue per active user, but keep the “shape, flattening, outlier” structure.
Related
- AI App Review Appeal Draft
- AI feature prioritization for indie apps
- AI user segment targeting brief
- AI user interview question generator
- AI weekly priorities reflection
- AI App Store ASO Keyword Research Without Guessing
- AI Crash Report Triage: From Stack Trace to Owner in One Pass
- AI App A/B Experiment Design: Build a Test Plan in 10 Minutes
Tags: #AI writing #Retention #Cohort #app-product-ops #Indie dev