/metrics-track
Set up a metrics tracking plan for a project. Defines PostHog event funnel, KPI benchmarks, and kill/iterate/scale decision thresholds based on lean startup principles.
MCP Tools (use if available)
kb_search(query) — find PostHog methodology, analytics patterns
If MCP tools are not available, fall back to Grep + Read.
Methodology Reference
This skill implements metrics tracking based on lean startup principles:
- Relative metrics vs niche benchmarks — compare against your own trajectory, not vanity averages
- Kill/iterate/scale decision rules — data-driven thresholds for product decisions (see step 7 below)
Steps
Parse project from $ARGUMENTS.
- Read PRD for features, ICP, monetization model.
- Read CLAUDE.md for stack (iOS/Web/both).
- If empty: ask via AskUserQuestion.
Detect platform:
- iOS app → PostHog iOS SDK events
- Web app → PostHog JS SDK events
- Both → cross-platform identity (shared user ID across platforms)
Load PostHog methodology:
- If MCP available:
kb_search("PostHog analytics events funnel identity")
- Otherwise: check project docs for existing analytics configuration
- Extract: event naming conventions, identity resolution, funnel pattern
Define event funnel based on PRD features:
Standard funnel stages (adapt per product):
Awareness → Acquisition → Activation → Revenue → Retention → Referral
Map to concrete events:
| Stage |
Event Name |
Trigger |
Properties |
| Awareness |
page_viewed |
Landing page visit |
source, utm_* |
| Acquisition |
app_installed or signed_up |
First install/signup |
platform, source |
| Activation |
core_action_completed |
First key action |
feature, duration_ms |
| Revenue |
purchase_completed |
First payment |
plan, amount, currency |
| Retention |
session_started |
Return visit (D1/D7/D30) |
session_number, days_since_install |
| Referral |
invite_sent |
Shared or referred |
channel, referral_code |
Forced reasoning — metrics selection:
Before defining KPIs, write out:
- North Star Metric: The ONE number that matters most (e.g., "weekly active users who completed core action")
- Leading indicators: What predicts the North Star? (e.g., "activation rate D1")
- Lagging indicators: What confirms success? (e.g., "MRR", "retention D30")
- Vanity metrics to AVOID: (e.g., total downloads without activation)
Set KPI benchmarks per stage:
| KPI |
Target |
Kill Threshold |
Scale Threshold |
Source |
| Landing → Signup |
3-5% |
< 1% |
> 8% |
Industry avg |
| Signup → Activation |
20-40% |
< 10% |
> 50% |
Product benchmark |
| D1 Retention |
25-40% |
< 15% |
> 50% |
Mobile avg |
| D7 Retention |
10-20% |
< 5% |
> 25% |
Mobile avg |
| D30 Retention |
5-10% |
< 2% |
> 15% |
Mobile avg |
| Trial → Paid |
2-5% |
< 1% |
> 8% |
SaaS avg |
Adjust based on product type (B2C vs B2B, free vs paid, mobile vs web).
Define decision rules (lean startup kill/iterate/scale):
## Decision Framework
**Review cadence:** Weekly (Fridays)
### KILL signals (any 2 = kill)
- [ ] Activation rate < {kill_threshold} after 2 weeks
- [ ] D7 retention < {kill_threshold} after 1 month
- [ ] Zero organic signups after 2 weeks of distribution
- [ ] CAC > 3x LTV estimate
### ITERATE signals
- [ ] Metrics between kill and scale thresholds
- [ ] Qualitative feedback suggests product-market fit issues
- [ ] One stage of funnel is dramatically worse than others
### SCALE signals (all 3 = scale)
- [ ] Activation rate > {scale_threshold}
- [ ] D7 retention > {scale_threshold}
- [ ] Organic growth > 10% week-over-week
Generate PostHog implementation snippets:
For iOS (Swift):
// Event tracking examples
PostHogSDK.shared.capture("core_action_completed", properties: [
"feature": "scan_receipt",
"duration_ms": elapsed
])
For Web (TypeScript):
// Event tracking examples
posthog.capture('signed_up', {
source: searchParams.get('utm_source') ?? 'direct',
plan: 'free'
})
Write metrics plan to docs/metrics-plan.md:
# Metrics Plan: {Project Name}
**Generated:** {YYYY-MM-DD}
**Platform:** {iOS / Web / Both}
**North Star:** {north star metric}
## Event Funnel
| Stage | Event | Properties |
|-------|-------|------------|
{event table from step 4}
## KPIs & Thresholds
| KPI | Target | Kill | Scale |
|-----|--------|------|-------|
{benchmark table from step 6}
## Decision Rules
{framework from step 7}
## Implementation
### PostHog Setup
- Project: {project name} (EU region)
- SDK: {posthog-ios / posthog-js}
- Identity: {anonymous → identified on signup}
### Code Snippets
{snippets from step 8}
## Dashboard Template
- Funnel: {stage1} → {stage2} → ... → {stageN}
- Retention: D1 / D7 / D30 cohort chart
- Revenue: MRR trend + trial conversion
---
*Generated by /metrics-track. Implement events, then review weekly.*
Output summary — North Star metric, key thresholds, first event to implement.
Notes
- PostHog EU hosting for privacy compliance
- Use
$set for user properties, capture for events
- Identity: start anonymous,
identify() on signup with user ID
- Cross-platform: same PostHog project, same user ID → unified journey
- Review dashboard weekly, make kill/iterate/scale decision monthly
Common Issues
Wrong platform detected
Cause: Project has both web and iOS indicators.
Fix: Skill checks package manifests. If both exist, it generates cross-platform identity setup. Verify the detected platform in the output.
KPI thresholds too aggressive
Cause: Default thresholds are industry averages.
Fix: Adjust thresholds in docs/metrics-plan.md based on your niche. B2B typically has lower volume but higher conversion.
PostHog SDK not in project
Cause: Metrics plan generated but SDK not installed.
Fix: This skill generates the PLAN only. Install PostHog SDK separately: pnpm add posthog-js (web) or add posthog-ios via SPM (iOS).
1---2name: solo-metrics-track3description: Set up PostHog metrics plan with event funnel, KPI benchmarks, and kill/iterate/scale decision thresholds. Use when user says "set up metrics", "track KPIs", "PostHog events", "funnel analysis", "when to kill or scale", or "success metrics". Do NOT use for SEO metrics (use /seo-audit).4license: MIT5---6
7# /metrics-track
8
9Set up a metrics tracking plan for a project. Defines PostHog event funnel, KPI benchmarks, and kill/iterate/scale decision thresholds based on lean startup principles.
10
11## MCP Tools (use if available)
12
13- `kb_search(query)` — find PostHog methodology, analytics patterns
14
15If MCP tools are not available, fall back to Grep + Read.
16
17## Methodology Reference
18
19This skill implements metrics tracking based on lean startup principles:
20- **Relative metrics vs niche benchmarks** — compare against your own trajectory, not vanity averages
21- **Kill/iterate/scale decision rules** — data-driven thresholds for product decisions (see step 7 below)
22
23## Steps
24
251. **Parse project** from `$ARGUMENTS`.
26 - Read PRD for features, ICP, monetization model.
27 - Read CLAUDE.md for stack (iOS/Web/both).
28 - If empty: ask via AskUserQuestion.
29
302. **Detect platform:**
31 - iOS app → PostHog iOS SDK events
32 - Web app → PostHog JS SDK events
33 - Both → cross-platform identity (shared user ID across platforms)
34
353. **Load PostHog methodology:**
36 - If MCP available: `kb_search("PostHog analytics events funnel identity")`
37 - Otherwise: check project docs for existing analytics configuration
38 - Extract: event naming conventions, identity resolution, funnel pattern
39
404. **Define event funnel** based on PRD features:
41
42 Standard funnel stages (adapt per product):
43 ```
44 Awareness → Acquisition → Activation → Revenue → Retention → Referral
45 ```
46
47 Map to concrete events:
48
49 | Stage | Event Name | Trigger | Properties |
50 |-------|-----------|---------|------------|
51 | Awareness | `page_viewed` | Landing page visit | `source`, `utm_*` |
52 | Acquisition | `app_installed` or `signed_up` | First install/signup | `platform`, `source` |
53 | Activation | `core_action_completed` | First key action | `feature`, `duration_ms` |
54 | Revenue | `purchase_completed` | First payment | `plan`, `amount`, `currency` |
55 | Retention | `session_started` | Return visit (D1/D7/D30) | `session_number`, `days_since_install` |
56 | Referral | `invite_sent` | Shared or referred | `channel`, `referral_code` |
57
585. **Forced reasoning — metrics selection:**
59 Before defining KPIs, write out:
60 - **North Star Metric:** The ONE number that matters most (e.g., "weekly active users who completed core action")
61 - **Leading indicators:** What predicts the North Star? (e.g., "activation rate D1")
62 - **Lagging indicators:** What confirms success? (e.g., "MRR", "retention D30")
63 - **Vanity metrics to AVOID:** (e.g., total downloads without activation)
64
656. **Set KPI benchmarks** per stage:
66
67 | KPI | Target | Kill Threshold | Scale Threshold | Source |
68 |-----|--------|---------------|-----------------|--------|
69 | Landing → Signup | 3-5% | < 1% | > 8% | Industry avg |
70 | Signup → Activation | 20-40% | < 10% | > 50% | Product benchmark |
71 | D1 Retention | 25-40% | < 15% | > 50% | Mobile avg |
72 | D7 Retention | 10-20% | < 5% | > 25% | Mobile avg |
73 | D30 Retention | 5-10% | < 2% | > 15% | Mobile avg |
74 | Trial → Paid | 2-5% | < 1% | > 8% | SaaS avg |
75
76 Adjust based on product type (B2C vs B2B, free vs paid, mobile vs web).
77
787. **Define decision rules** (lean startup kill/iterate/scale):
79
80 ```markdown
81 ## Decision Framework
82
83 **Review cadence:** Weekly (Fridays)
84
85 ### KILL signals (any 2 = kill)
86 - [ ] Activation rate < {kill_threshold} after 2 weeks
87 - [ ] D7 retention < {kill_threshold} after 1 month
88 - [ ] Zero organic signups after 2 weeks of distribution
89 - [ ] CAC > 3x LTV estimate
90
91 ### ITERATE signals
92 - [ ] Metrics between kill and scale thresholds
93 - [ ] Qualitative feedback suggests product-market fit issues
94 - [ ] One stage of funnel is dramatically worse than others
95
96 ### SCALE signals (all 3 = scale)
97 - [ ] Activation rate > {scale_threshold}
98 - [ ] D7 retention > {scale_threshold}
99 - [ ] Organic growth > 10% week-over-week
100 ```
101
1028. **Generate PostHog implementation snippets:**
103
104 ### For iOS (Swift):
105 ```swift
106 // Event tracking examples
107 PostHogSDK.shared.capture("core_action_completed", properties: [
108 "feature": "scan_receipt",
109 "duration_ms": elapsed
110 ])
111 ```
112
113 ### For Web (TypeScript):
114 ```typescript
115 // Event tracking examples
116 posthog.capture('signed_up', {
117 source: searchParams.get('utm_source') ?? 'direct',
118 plan: 'free'
119 })
120 ```
121
1229. **Write metrics plan** to `docs/metrics-plan.md`:
123
124 ```markdown
125 # Metrics Plan: {Project Name}
126
127 **Generated:** {YYYY-MM-DD}
128 **Platform:** {iOS / Web / Both}
129 **North Star:** {north star metric}
130
131 ## Event Funnel
132
133 | Stage | Event | Properties |
134 |-------|-------|------------|
135 {event table from step 4}
136
137 ## KPIs & Thresholds
138
139 | KPI | Target | Kill | Scale |
140 |-----|--------|------|-------|
141 {benchmark table from step 6}
142
143 ## Decision Rules
144
145 {framework from step 7}
146
147 ## Implementation
148
149 ### PostHog Setup
150 - Project: {project name} (EU region)
151 - SDK: {posthog-ios / posthog-js}
152 - Identity: {anonymous → identified on signup}
153
154 ### Code Snippets
155 {snippets from step 8}
156
157 ## Dashboard Template
158 - Funnel: {stage1} → {stage2} → ... → {stageN}
159 - Retention: D1 / D7 / D30 cohort chart
160 - Revenue: MRR trend + trial conversion
161
162 ---
163 *Generated by /metrics-track. Implement events, then review weekly.*
164 ```
165
16610. **Output summary** — North Star metric, key thresholds, first event to implement.
167
168## Notes
169
170- PostHog EU hosting for privacy compliance
171- Use `$set` for user properties, `capture` for events
172- Identity: start anonymous, `identify()` on signup with user ID
173- Cross-platform: same PostHog project, same user ID → unified journey
174- Review dashboard weekly, make kill/iterate/scale decision monthly
175
176## Common Issues
177
178### Wrong platform detected
179**Cause:** Project has both web and iOS indicators.
180**Fix:** Skill checks package manifests. If both exist, it generates cross-platform identity setup. Verify the detected platform in the output.
181
182### KPI thresholds too aggressive
183**Cause:** Default thresholds are industry averages.
184**Fix:** Adjust thresholds in `docs/metrics-plan.md` based on your niche. B2B typically has lower volume but higher conversion.
185
186### PostHog SDK not in project
187**Cause:** Metrics plan generated but SDK not installed.
188**Fix:** This skill generates the PLAN only. Install PostHog SDK separately: `pnpm add posthog-js` (web) or add `posthog-ios` via SPM (iOS).