cohort-analysis — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited cohort-analysis (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Use when the user wants to understand how behavior changes over the lifecycle of users, segmented by when they entered. Triggers:
If the user wants step-by-step conversion within a single session/flow, use funnel-analysis instead.
| Input | Why it matters |
|---|---|
| Cohort anchor event | Defines when a user enters the cohort (signup, first purchase, install) |
| Cohort grain | Day, week, or month |
| Retention event | What action defines "retained" (any session, key feature use, purchase) |
| Time window per period | Daily / weekly / monthly columns |
| Lookback window | How many periods to display |
Pick one. Document it in the readout.
Default to cohort-fixed. Only switch if there's a specific question about period-over-period stickiness.
scripts/cohort_table.sql (Snowflake) or scripts/cohort_table.py (pandas).# Cohort Analysis: <product/segment>
## Definitions
- Cohort anchor: <event> on <grain>
- Retention event: <event>
- Denominator: cohort-fixed (original cohort size)
- Lookback: <N> periods
## Summary
- Latest cohort D7 retention: <X%> (vs <Y%> 4 weeks ago, <delta>pp)
- D30 retention asymptote: <Z%>
- Retention "stabilizes" around day <N>
## Cohort table
| Cohort | Size | D1 | D7 | D14 | D30 | D60 | D90 |
|---|---|---|---|---|---|---|---|
| 2026-01 | 12,400 | 48.2% | 22.1% | 16.4% | 12.0% | 9.8% | 8.5% |
| 2026-02 | 14,100 | 51.0% | 24.8% | 18.2% | 13.5% | 10.4% | — |
| ... | ... | ... | ... | ... | ... | ... | ... |
## Interpretation
- <Are recent cohorts improving, flat, or declining?>
- <What's the asymptote? Is the long-term retained base stable?>
- <Any anomalies — single bad cohort, missing data?>
## Caveats
- Recent cohorts have incomplete data through the latest periods (mark provisional)
- Cohort assignment uses <rule>; users who re-anchored are <treated as>
- <late-arriving events caveat if applicable>
## Next steps
- <e.g., investigate the drop in 2026-03 cohort>
- <e.g., segment by acquisition channel to find a driver>scripts/cohort_table.sql — Snowflake template producing a cohort matrixscripts/cohort_table.py — pandas implementation for in-memory datapython scripts/cohort_table.py \
--input events.csv \
--user-col user_id \
--event-time-col event_at \
--cohort-grain week \
--periods 12funnel-analysis — for within-session/within-flow conversionsurvival-analysis — when you need time-to-churn distribution with censoringmetric-definition — write a clean retention metric specstakeholder-readout — for packaging cohort findings~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.