serejaris/pm-metrics
Делает ревью продуктовых метрик — тренды, аномалии, root causes и рекомендации к действиям. Включает декомпозицию North Star (L1/L2), диагностику retention-кривых, анализ воронки, разбор A/B-экспериментов, проверку соответствия OKR и фреймворк атрибуции аномалий. User-invoked only — do NOT auto-trigger. Triggers on /pm-metrics, "обзор метрик", "разбор воронки", "анализ удержания", "ретеншн", "A/B результаты", "review metrics", "DAU analysis", "retention analysis", "funnel analysis", "metric anomaly".
npx skills add https://github.com/serejaris/personal-corp-skills --skill pm-metrics
Part of the Personal Corp framework — running a one-person business through AI agents.
Systematically review product metrics, identify trend changes, locate root causes, output action recommendations. Includes North Star decomposition, retention diagnostics, funnel methodology, and A/B experiment reading.
| Field | Required | Notes |
|---|---|---|
| Metric data | yes | Excel / CSV / pasted table / verbal description |
| Cycle | no | Weekly / monthly / quarterly review; default weekly |
| Focus | no | Full review / single-metric anomaly / experiment readout |
| Business context | no | Releases, campaigns, incidents in the period |
Mode: full data → complete review; single-metric change → focused anomaly analysis.
Decomposition: North Star → L1 → L2.
L1 dimensions:
North Star selection guide:
| Product type | Recommended NSM | Typical L1 |
|---|---|---|
| Social / community | Weekly active posters | DAU/MAU ratio, interactions per user, D7 retention |
| Tools / productivity | Weekly users completing core task | Task completion rate, frequency, feature reach |
| E-commerce | Weekly transacting users | GMV, AOV, repeat rate, conversion |
| Content / media | Weekly content-consumption time | Time per user, completion rate, return rate |
| SaaS / B2B | Weekly active teams | Team penetration, feature depth, renewal rate |
Definitions:
User segmentation:
| Type | Definition | Focus |
|---|---|---|
| New | First-time user | Channel quality, activation rate |
| Active retained | Active in both periods | Depth, feature reach |
| Returning | Inactive last period, active this | Return reason, secondary retention |
| Churned | Active last period, inactive this | Churn cause, win-back potential |
| Dormant | Inactive multiple periods | Possibly permanent loss |
Growth identity: This-period MAU = prev-period retained + new + returning − churned
Definitions:
Retention benchmarks:
| Product type | D1 | D7 | D30 | Note |
|---|---|---|---|---|
| Social / messaging | > 70% | > 50% | > 35% | High-frequency essential |
| Tools | > 40% | > 25% | > 15% | "Use and leave" pattern |
| Content / news | > 35% | > 20% | > 10% | Many alternatives, lower retention |
| E-commerce | > 25% | > 15% | > 8% | Low-frequency, watch repeat rate instead |
| Games | > 40% | > 20% | > 10% | High variance by genre |
| SaaS / B2B | > 60% | > 45% | > 30% | High switching cost, higher baseline |
Retention-curve diagnosis:
Retention segmentation:
Funnel construction:
Funnel framework:
| Step | Action | Output |
|---|---|---|
| Draw | List steps + rates | Full funnel view |
| Identify bottleneck | Find lowest-rate step | Optimization focus |
| Benchmark | Compare history / industry / competitor | Gap quantification |
| Segment | By channel / device / user type | Locate problem cohort |
| Hypothesize | Why is the bottleneck there? | Optimization direction |
| Experiment | Propose A/B test | Action plan |
Common funnels:
| Dimension | Standard | Note |
|---|---|---|
| Statistical significance | p < 0.05 | p > 0.05 → inconclusive, don't decide |
| Effect size | Lift > MDE | Significant but tiny lift may not be worth it |
| Sample size | Reaches pre-set N | "Significant" without N is unreliable |
| Duration | Covers ≥ 1-2 full weeks | Avoid weekday/weekend bias |
| AA check | Pre-period baselines match | Mismatch → split assignment is broken |
Decision framework:
Common pitfalls:
| Check | Healthy | Anomaly signal |
|---|---|---|
| Coverage | Every KR has ≥ 1 trackable metric | A KR with no measurable proxy |
| Consistency | Metric direction matches KR target | Metric up but KR no progress |
| Pacing | Linear pacing ≥ 50% by mid-quarter | Severely behind schedule |
| Attribution | Metric movement attributable to team action | Metric improved due to industry tailwind, not team |
OKR progress table:
| OKR | KR metric | Target | Current | Progress % | Trend | Risk |
|---|---|---|---|---|---|---|
| {O1} | {KR1} | {target} | {current} | {X%} | Up/flat/down | On-track / at-risk / severe |
When a metric moves anomalously, work the framework:
Common causes:
| Category | Pattern | Verification |
|---|---|---|
| Release | Inflection aligns with deploy time | Compare per-version |
| Campaign | Up during campaign, drops after | Compare per-channel |
| Tech incident | Sudden drop + recovery | Check error logs and uptime |
| External | Industry-wide change | Compare with competitor / industry data |
| Channel mix | One channel changed dramatically | Per-channel decomposition |
| Seasonality | Same as YoY | Look at last year's same period |
# Product Metrics Review
**Period:** {date range}
**Product:** {name}
**Type:** {weekly / monthly / quarterly}
## 1. Health Overview
| Layer | Metric | Current | Previous | MoM | Target | Status |
|---|---|---|---|---|---|---|
| North Star | {} | {} | {} | {±X%} | {} | OK / warn / alert |
| L1 | {} | {} | {} | {±X%} | {} | OK / warn / alert |
**Overall judgment:** {one-sentence summary}
## 2. User Growth
- DAU: {value}, MoM {change}
- MAU: {value}, DAU/MAU = {stickiness}
- Composition: new {X}% / retained {Y}% / returning {Z}%
## 3. Retention
| Metric | Current | Previous | Benchmark | Assessment |
|---|---|---|---|---|
## 4. Funnel
| Step | Users | Rate | MoM | Bottleneck? |
|---|---|---|---|---|
**Bottleneck diagnosis:** {description}
## 5. Experiments / Feature Effects
| Experiment | Primary metric Δ | Significance | Conclusion |
|---|---|---|---|
## 6. OKR Progress
| KR | Target | Current | Progress | Risk |
|---|---|---|---|---|
## 7. Anomaly Attribution
| Anomaly | Magnitude | Start | Attribution | Confidence |
|---|---|---|---|---|
## 8. Key Insights
1. {insight 1: finding + data + meaning}
2. {insight 2}
3. {insight 3}
## 9. Action Recommendations
| Priority | Action | Linked metric | Expected impact | Owner |
|---|---|---|---|---|
| Type | Frequency | Time | Audience | Focus |
|---|---|---|---|---|
| Weekly | Every Monday | 15-30 min | PM | NSM + anomalies + experiments |
| Monthly | Month start | 30-60 min | Product team | All L1 + retention + funnel + OKR pacing |
| Quarterly | Quarter end | 60-90 min | Product + ops + eng | Strategy review + OKR scoring + next-quarter plan |
| Pitfall | Symptom | Fix |
|---|---|---|
| Simpson's paradox | Total goes up while every segment goes down | Always segment, never just look at totals |
| Survivorship bias | Only retained users analyzed, churned ignored | Compare retained vs churned behavior |
| Vanity metric | Cumulative signups only ever grow, not decision-useful | Use active metrics (DAU/WAU) instead |
| Time-window trap | Comparison window happens to be an outlier | Cross-validate across multiple windows |
| Goodhart's law | Target becomes a metric, stops measuring well | Set guardrails to prevent gaming |
/pm-feedback — pair quantitative anomaly with qualitative voice-of-customer/pm-prioritize — adjust priority based on metric findings/pm-roadmap — adjust roadmap based on OKR pacingTake serejaris/pm-metrics from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.