Activation funnel
@usagemetrics/activation-funnel
Measure an activation funnel from an events CSV: how many users or accounts reach each step within a time window, conversion step to step, median time between steps, the biggest drop, and splits by plan or any segment. Writes markdown, CSV, JSON, and a list of who got stuck.
- Activity
- New: be the first to try it
- Installs
- 0 installs
- Likes
- 0 likes
- Clones
- 0 clones
- 1# Activation funnel
- 3Shows where new users drop off between signup and the moment they get value: reach and conversion for each step inside a time window, median time between steps, the biggest drop, and splits by plan or any segment you have.
- 5**Who it is for:** product managers, growth teams, and founders working on onboarding or trial conversion.
- 7## Example
- 9Input: `examples/events.csv` (180 signups over three months) and `examples/accounts.csv` (plan per account).
- 11```
- 12--steps signed_up,connected_source,created_report,shared_dashboard --window-days 14
- 13```
- 15Output (`out/funnel.md`):
- 17| Step | Reached | % of start | % of previous | Dropped | Median time from previous |
- 18| --- | --- | --- | --- | --- | --- |
- 19| signed_up | 158 | 100% | 100% | 0 | |
- 20| connected_source | 122 | 77% | 77% | 36 | 4.0 h |
- 21| created_report | 76 | 48% | 62% | 46 | 17.5 h |
- 22| shared_dashboard | 44 | 28% | 58% | 32 | 22.7 h |
- 24Plus the same table per plan, `out/funnel.csv`, `out/funnel.json`, and `out/funnel-stuck.csv` (who stalled at the biggest drop).
- 26## What it can access
- 28- Runs `node scripts/funnel.mjs` (Node built-ins only).
- 29- Reads `data/`. Writes `out/funnel*`.
- 30- No network. It never contacts users.
- 32## Setup
- 34None. Export events to `data/events.csv` and ask Claude where new users drop off.
