05b6d799f0
Three more learnings from alirezarezvani/claude-skills, applied: 1. SkillCheck validator (scripts/skillcheck.mjs) — validates every SKILL.md against the authoring standard (frontmatter, name/folder match, trigger + produces clauses, required headings) plus tier referential integrity. Errors fail CI; --strict fails on warnings too. New skillcheck.yml workflow and a SkillCheck status badge in the README. Current: 0 errors / 14 advisory warnings across 172 skills. 2. Cursor export platform — build-exports.mjs now generates exports/cursor/<bundle>/<skill>/<skill>.mdc rule files. The PLATFORMS registry now supports per-skill filenames (file as a function). 3. Per-agent installers — scripts/install.sh unifies install for claude/hermes/codex/openclaw/cursor (--link, --target, --dry-run, --list). Curl-able one-liners codex-install.sh, openclaw-install.sh, and cursor-install.sh clone the library and install in a single command. README documents the one-line installs and Cursor exports; CHANGELOG and the authoring standard updated. Claude-Session: https://claude.ai/code/session_016JWn5jRD5tcEFKrubjQ6Px Co-authored-by: Claude <noreply@anthropic.com>
197 lines
8.3 KiB
Plaintext
197 lines
8.3 KiB
Plaintext
---
|
||
description: "Structure a cohort analysis for retention, LTV, or behavioural patterns. Use when asked to run a cohort analysis, analyse retention by cohort, segment users by behaviour over time, or calculate lifetime value by acquisition period. Produces a complete cohort analysis framework with methodology, cohort definitions, retention curves, and prioritised interventions."
|
||
globs:
|
||
alwaysApply: false
|
||
---
|
||
|
||
# Cohort Analysis Skill
|
||
|
||
This skill produces a structured cohort analysis covering retention curves, LTV estimation, behavioural segmentation, and actionable interventions. Output is ready to present to product leadership or share with growth and data teams.
|
||
|
||
## Required Inputs
|
||
|
||
Ask the user for these if not provided:
|
||
- **Analysis goal** (retention improvement / LTV modelling / behavioural segmentation / churn prediction)
|
||
- **Product or feature being analysed**
|
||
- **Cohort definition** — what groups users? (acquisition month, signup channel, plan tier, feature adoption)
|
||
- **Observation window** — how many periods to track? (e.g. 12 months, 8 weeks)
|
||
- **Key metric** — what are you measuring per cohort? (retention rate, revenue, engagement score, feature usage)
|
||
- **Available data** — what tables/metrics are available? (paste schema or describe)
|
||
- **Baseline** — any existing retention benchmarks or goals?
|
||
|
||
## Output Structure
|
||
|
||
---
|
||
|
||
# Cohort Analysis: [Product / Feature]
|
||
|
||
**Analysis type:** [Retention / LTV / Behavioural / Churn]
|
||
**Cohort definition:** [Acquisition month / Signup channel / Plan tier / Feature adoption date]
|
||
**Observation window:** [X months / weeks]
|
||
**Primary metric:** [Metric name]
|
||
**Date prepared:** [Date]
|
||
|
||
---
|
||
|
||
## 1. Cohort Definitions
|
||
|
||
| Cohort | Period | Size | Description |
|
||
|---|---|---|---|
|
||
| [Cohort 1] | [Jan 2025] | [N users] | [e.g. Users who signed up in Jan 2025 via organic] |
|
||
| [Cohort 2] | [Feb 2025] | [N users] | [...] |
|
||
|
||
**Cohort logic:**
|
||
- Cohort entry event: [First sign-up / First purchase / Feature activation]
|
||
- Cohort exit criteria: [Churned / Downgraded / No activity for 30 days]
|
||
- Exclusions: [Trial users / Internal test accounts / Users with < X days of data]
|
||
|
||
---
|
||
|
||
## 2. Retention Curve
|
||
|
||
**How to read:** Each cell shows what % of the cohort performed the key metric in period N.
|
||
|
||
| Cohort | Period 0 | Period 1 | Period 2 | Period 3 | Period 6 | Period 12 |
|
||
|---|---|---|---|---|---|---|
|
||
| Jan 2025 | 100% | [X%] | [X%] | [X%] | [X%] | [X%] |
|
||
| Feb 2025 | 100% | [X%] | [X%] | [X%] | [X%] | [X%] |
|
||
| [Trend] | — | [↑/↓ vs prior] | [...] | [...] | [...] | [...] |
|
||
|
||
**Retention plateau:** [At what period does retention flatten? What % does it flatten at?]
|
||
|
||
**Key observations:**
|
||
- [e.g. Period 1 → Period 2 drop is the largest — average X% churn in first 30 days]
|
||
- [e.g. Cohorts acquired via [channel] retain X% better at Period 6]
|
||
- [e.g. Retention has improved from X% → Y% at Period 3 comparing oldest to newest cohort]
|
||
|
||
---
|
||
|
||
## 3. LTV Projection (if applicable)
|
||
|
||
**ARPU per period:** [£/$/€ X per active user per month]
|
||
**Retention curve used:** [Which cohort or blended average]
|
||
|
||
| Period | Retained % | Revenue per user | Cumulative LTV |
|
||
|---|---|---|---|
|
||
| Month 1 | [X%] | [£X] | [£X] |
|
||
| Month 3 | [X%] | [£X] | [£X] |
|
||
| Month 6 | [X%] | [£X] | [£X] |
|
||
| Month 12 | [X%] | [£X] | [£X] |
|
||
|
||
**Blended LTV:** [£X at 12 months — based on blended retention across cohorts]
|
||
|
||
**LTV by segment:**
|
||
| Segment | LTV (12M) | vs Baseline |
|
||
|---|---|---|
|
||
| [Organic] | [£X] | [+X%] |
|
||
| [Paid] | [£X] | [-X%] |
|
||
| [Enterprise] | [£X] | [+X%] |
|
||
|
||
---
|
||
|
||
## 4. Behavioural Segmentation
|
||
|
||
Group cohorts by behaviour patterns, not just acquisition date:
|
||
|
||
| Segment | Definition | Size | Retention (P6) | LTV (12M) |
|
||
|---|---|---|---|---|
|
||
| **Power users** | [Used core feature ≥ 3x/week in first 30 days] | [X%] | [X%] | [£X] |
|
||
| **Casual users** | [Used 1–2x/week in first 30 days] | [X%] | [X%] | [£X] |
|
||
| **Dormant** | [Logged in but did not use core feature] | [X%] | [X%] | [£X] |
|
||
| **Never activated** | [Signed up but never completed onboarding] | [X%] | [X%] | [£X] |
|
||
|
||
**Activation threshold insight:** [What action — taken within the first X days — most strongly predicts retention? This is the "aha moment" to optimise for.]
|
||
|
||
---
|
||
|
||
## 5. Leading Indicators of Churn
|
||
|
||
List the signals that appear **before** users churn, so teams can intervene:
|
||
|
||
| Signal | How early does it appear? | Churn correlation | Intervention |
|
||
|---|---|---|---|
|
||
| [No login for 7 days] | [7 days before churn] | [Strong] | [Re-engagement email sequence] |
|
||
| [Support ticket with escalation] | [14 days before churn] | [Moderate] | [CSM outreach within 48 hours] |
|
||
| [Feature usage dropped >50% WoW] | [10 days before churn] | [Strong] | [In-app nudge with use-case tutorial] |
|
||
|
||
---
|
||
|
||
## 6. Cohort Comparison: What's Changed Over Time
|
||
|
||
Compare oldest and newest cohorts to assess whether product improvements are showing up in retention:
|
||
|
||
| Metric | [Oldest cohort — e.g. Jan 2024] | [Newest cohort — e.g. Jan 2025] | Change |
|
||
|---|---|---|---|
|
||
| Period 1 retention | [X%] | [X%] | [↑/↓ X pp] |
|
||
| Period 3 retention | [X%] | [X%] | [↑/↓ X pp] |
|
||
| Activation rate | [X%] | [X%] | [↑/↓ X pp] |
|
||
| Avg. sessions in first 30 days | [X] | [X] | [↑/↓] |
|
||
|
||
**Verdict:** [Are more recent cohorts performing better or worse? What shipped in that period that might explain the change?]
|
||
|
||
---
|
||
|
||
## 7. Recommendations
|
||
|
||
Prioritise by impact on retention curve:
|
||
|
||
| # | Recommendation | Target segment | Expected impact | Effort | Priority |
|
||
|---|---|---|---|---|---|
|
||
| 1 | [e.g. Redesign onboarding to hit activation milestone in day 1, not day 7] | [Never-activated segment] | [+X pp P1 retention] | [Medium] | P1 |
|
||
| 2 | [e.g. Launch re-engagement sequence at day 7 inactivity trigger] | [Dormant segment] | [+X pp P2 retention] | [Low] | P1 |
|
||
| 3 | [e.g. Introduce power-user features earlier to accelerate habit formation] | [Casual users] | [+X pp P6 LTV] | [High] | P2 |
|
||
|
||
---
|
||
|
||
## 8. SQL Reference (if applicable)
|
||
|
||
Provide the core cohort query so data teams can replicate or extend the analysis:
|
||
|
||
```sql
|
||
-- Retention cohort query
|
||
SELECT
|
||
DATE_TRUNC('month', u.created_at) AS cohort_month,
|
||
DATE_TRUNC('month', e.event_date) AS activity_month,
|
||
DATEDIFF('month', u.created_at, e.event_date) AS period,
|
||
COUNT(DISTINCT e.user_id) AS retained_users,
|
||
COUNT(DISTINCT c.user_id) AS cohort_size,
|
||
ROUND(COUNT(DISTINCT e.user_id) * 100.0 / COUNT(DISTINCT c.user_id), 1) AS retention_rate
|
||
FROM users u
|
||
JOIN events e ON u.user_id = e.user_id
|
||
JOIN (
|
||
SELECT user_id, DATE_TRUNC('month', created_at) AS cohort_month
|
||
FROM users
|
||
WHERE created_at >= '[start_date]'
|
||
) c ON u.user_id = c.user_id AND DATE_TRUNC('month', u.created_at) = c.cohort_month
|
||
WHERE e.event_type = '[key_retention_event]'
|
||
GROUP BY 1, 2, 3
|
||
ORDER BY 1, 3;
|
||
```
|
||
|
||
---
|
||
|
||
## Quality Checks
|
||
|
||
- [ ] Cohort definition is unambiguous — the same user cannot appear in two cohorts
|
||
- [ ] Retention curve shows a clear plateau, or the analysis notes that the window is too short to see one
|
||
- [ ] LTV projection uses observed retention, not assumed
|
||
- [ ] Behavioural segments are mutually exclusive and exhaustive
|
||
- [ ] Recommendations are tied to specific cohort or segment findings — not generic growth advice
|
||
- [ ] Leading indicators are observable in production data, not just in theory
|
||
|
||
## Anti-Patterns
|
||
|
||
- [ ] Do not allow the same user to appear in multiple cohorts — overlapping cohorts produce retention numbers that cannot be compared or acted upon
|
||
- [ ] Do not assume assumed ARPU in LTV projections — use observed revenue per retained user per period, not a blended average that hides segment differences
|
||
- [ ] Do not draw conclusions from cohorts too small to be statistically meaningful — flag minimum cohort size thresholds and note when a cohort is too small to trust
|
||
- [ ] Do not conflate retention rate with engagement rate — a user who logs in but does not complete the key retention event is not retained by the definition used
|
||
- [ ] Do not make recommendations without connecting them to specific cohort or segment findings — generic growth advice that could apply to any product adds no value
|
||
|
||
## Example Trigger Phrases
|
||
|
||
- "Run a cohort analysis for our SaaS product"
|
||
- "Analyse retention by acquisition month for the last 12 cohorts"
|
||
- "What's the LTV of users who came via paid vs organic?"
|
||
- "Build a cohort retention model showing period 0 through period 12"
|
||
- "Segment users by behaviour and show me which group retains best"
|