Analytics Strategy
rampstackco/claude-skills
Design measurement frameworks including event taxonomy, KPI hierarchy, dashboard architecture, attribution models, and analytics implementation strategy.
A skill your agent uses when a team must decide what to measure before building anything — picking one north-star metric, separating leading input drivers from lagging outputs, adding guardrails so…
$ npx skills add ericrisco/rsc-harness --skill kpi-framework -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ericrisco/rsc-harness kpi-framework --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/kpi-framework .claude/skills/kpi-framework && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "kpi-framework" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/kpi-framework into .claude/skills/kpi-framework/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "kpi-framework", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/ericrisco/rsc-harness/tree/main/skills/kpi-frameworkType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add ericrisco/rsc-harness --skill kpi-framework -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ericrisco/rsc-harness kpi-framework --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/kpi-framework .agents/skills/kpi-framework && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "kpi-framework" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/kpi-framework into .agents/skills/kpi-framework/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "kpi-framework", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ericrisco/rsc-harness --skill kpi-framework -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ericrisco/rsc-harness kpi-framework --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/kpi-framework .cursor/skills/kpi-framework && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "kpi-framework" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/kpi-framework into .cursor/skills/kpi-framework/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "kpi-framework", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/ericrisco/rsc-harness.git --path skills/kpi-framework--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add ericrisco/rsc-harness --skill kpi-framework -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ericrisco/rsc-harness kpi-framework --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/kpi-framework .gemini/skills/kpi-framework && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "kpi-framework" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/kpi-framework into .gemini/skills/kpi-framework/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "kpi-framework", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install ericrisco/rsc-harness kpi-frameworkInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add ericrisco/rsc-harness --skill kpi-framework -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/kpi-framework .github/skills/kpi-framework && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "kpi-framework" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/kpi-framework into .github/skills/kpi-framework/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "kpi-framework", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ericrisco/rsc-harness --skill kpi-framework -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ericrisco/rsc-harness kpi-framework --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/kpi-framework .opencode/skills/kpi-framework && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "kpi-framework" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/kpi-framework into .opencode/skills/kpi-framework/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "kpi-framework", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
kpi-frameworkA skill your agent uses when a team must decide what to measure before building anything — picking one north-star metric, separating leading input drivers from lagging outputs, adding guardrails so…
Kpi Framework is an agent skill from ericrisco/rsc-harness. Use when a team must decide what to measure before building anything — picking one north-star metric, separating leading input drivers from lagging outputs, adding guardrails so a number cannot be gamed, and setting a target that is not arbitrary. NOT the live dashboard that displays them (that is dashboard), NOT instrumenting the events (that is analytics), NOT the recurring board report (that is reporting).
Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including reference files (for example `evals/README.md`, `evals/cases.yaml` and `references/definition-and-targets.md`).
It sits in Business, Finance & HR, covering OKRs and executive reporting, Product metrics and LLM guardrails. The repository describes itself as: Your agent invents things because it has no memory, and can't touch your database because it has no arms. rsc is the meta-harness that gives it both, plus the trade to know the… The licence is MIT.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 92fde8f. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Kpi Framework loads about 2.9k tokens when it runs, and up to ~5k if it reads all its reference files. Until then it costs about 108 tokens; SKILL.md has 1,550 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from ericrisco/rsc-harness at commit 92fde8f, republished under its MIT licence (© ericrisco). 1,550 words, ~2,918 tokens.
.claude/skills/kpi-framework/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.You decide what to measure. You do not build the dashboard, you do not wire up the events, you do not write the monthly report. Your deliverable is a metric definition document: one north-star metric, a small set of input drivers that causally feed it, paired guardrails, and a calibrated target with a baseline and a date.
Most measurement work fails upstream, before any chart exists. Teams instrument 40 KPIs and none of them lead anywhere. They optimize a lagging output nobody can move. They celebrate a vanity number. They set "double it this month" and watch it get gamed. Your job is to kill those failures at the source by forcing four decisions:
Answer those four and hand the result to ../analytics/SKILL.md to instrument and
../dashboard/SKILL.md to display. If you find yourself choosing chart types or writing
SQL, you have left this skill.
Everything you produce collapses into a single table. Nothing leaves this skill with the baseline, target, or date column blank — an unfilled target is a decision you skipped, not a decision you made.
| metric | type | definition (event + window + denominator) | leading/lagging | owner | baseline | target | target_date |
|---|---|---|---|---|---|---|---|
| Weekly Active Teams | north-star | teams with >=1 member completing a core action in a rolling 7-day window / all active teams | lagging | PM, Activation | 38% | 52% | 2026-Q4 |
| Time-to-first-core-action | input | median minutes from signup to first core action, new teams | leading | PM, Onboarding | 41 min | <15 min | 2026-Q3 |
| Week-1 saved items | input | new teams with >=3 saved items in first 7 days / new teams | leading | PM, Onboarding | 22% | 40% | 2026-Q3 |
| Invites accepted | input | invited members who activate within 7 days / invites sent | leading | Growth | 31% | 45% | 2026-Q4 |
| Support tickets / active team | guardrail | open tickets / weekly active teams (must not rise) | lagging | Support lead | 0.12 | <=0.12 | ongoing |
The columns are not decoration. "Definition" must be unambiguous enough that two analysts
querying independently get the same number — that means a concrete event, a time
window, and a denominator. See references/definition-and-targets.md for how to
write definitions that don't drift.
The north star is an output / lagging metric. Why: it's the scoreboard for value delivered, deliberately too broad to act on directly. You don't push the north star — you push the inputs and watch the north star move. One per team; more than one means no team actually owns the outcome.
Express delivered value as a rate or ratio, not a raw count. Why: raw counts grow with time and headcount and hide health — "total users" goes up even as the product dies.
total registered usersweekly active teams that completed a core action / all active teamsIt must predict long-term retention or revenue. If the number can climb for a quarter while the business erodes, it is not a north star. The test: would you bet next year's retention on this number rising? If not, keep looking.
Vanity reject test. Followers, page views, likes, total signups — vanity unless tied to a downstream outcome (conversion, revenue, retention). 10k followers with zero sales lift is the canonical example. If a candidate metric can double with no change in value delivered, reject it and say why in the doc.
Source candidates from a lens — AARRR (acquisition/activation/retention/referral/revenue)
or HEART (happiness/engagement/adoption/retention/task-success) — then narrow to one.
references/metric-catalog.md lists candidate north stars and driver sets per business
type (SaaS, marketplace, content, e-commerce, B2B sales-led).
The north star is the scoreboard; the inputs are the plays you actually run.
Each input is leading, directly controllable, and a concrete instrumentable event. Why: if the team can't influence it through their own work, it's not an input — it's another output, and chasing it is vanity. "Engagement" and "satisfaction" are not inputs; they're abstractions you cannot ship against.
increase engagement% of new teams with >=1 saved item in the first 7 daysEach input must plausibly cause the north star. Why: a metric tree connects every node to its parent (the outcome) and its children (the inputs). A standalone number has no defense against gaming; in a tree, gaming one node shows up as distortion in its neighbors. Draw the tree so the causal claim is explicit and falsifiable:
Weekly Active Teams (north star, output)
/ | \
Time-to-first Week-1 saved Invites accepted
core action items (>=3) within 7 days
(leading) (leading) (leading)Cap the set at 5. Why: more than five inputs is sprawl — focus dilutes, nobody owns the list, and you're back to the 40-KPI swamp you came to escape. If you have eight candidates, the work of this step is cutting three.
Hand the final event list — exact events, windows, denominators — to ../analytics/SKILL.md
to instrument. You define them; analytics implements them.
"When a measure becomes a target, it ceases to be a good measure." — Goodhart's Law (Charles Goodhart, 1975)
Single-metric optimization gets gamed. Optimize sales volume alone and reps discount to the floor; optimize Average Handle Time alone and agents hang up on unsolved problems.
Every target gets a paired shadow metric representing the foreseeable harm. Why: the guardrail is what catches the gaming before it costs you. The pair must measure the thing that breaks when someone over-optimizes the target.
| north-star / target you push | likely gaming move | guardrail to pair |
|---|---|---|
| Average Handle Time ↓ | agents close tickets prematurely | First Contact Resolution + Customer Effort Score |
| Activation rate ↑ | loosen "activated" definition, count trivial actions | week-4 retention of newly-activated cohort |
| Signups ↑ | buy low-intent traffic | activation rate of new signups |
| Revenue per order ↑ | aggressive upsell, hidden fees | refund rate + repeat-purchase rate |
| Sessions per user ↑ | dark patterns, notification spam | uninstall / unsubscribe rate |
A guardrail does not need a stretch target — its target is usually "must not get worse than
baseline." Write it into the table anyway, with ongoing as the date.
This is where frameworks most often break: arbitrary numbers that discourage, or sandbagged ones that drive nothing.
Baseline before target. Why: you cannot calibrate a target without knowing current state. "Get to 50%" is meaningless until you know whether you're at 12% or 48%. If there is no baseline, the first deliverable is "measure the baseline" — do not invent a target on top of an unknown.
Magnitude must be calibrated — not arbitrary, not sandbagged. Why: targets that are too ambitious hurt performance through burnout and shortcuts; targets that are trivially safe drive no improvement. Ground the magnitude in the baseline (a defensible improvement band) and the levers you actually have, not in a round number that sounds good in a deck.
double activation this monthactivation 38% → 52% by 2026-Q4, owner: PM Activation, based on onboarding rework + invite flowAttach a date and an owner to every target. Why: a target with no date is a wish; a target with no owner is nobody's job. A row missing either is incomplete.
See references/definition-and-targets.md for baseline measurement, improvement-band
calibration, and why round-number targets invite theatre.
| the metric is... | controllable by the team? | tied to delivered value? | → classify as |
|---|---|---|---|
| an output (outcome) | no (you steer it via inputs) | yes, predicts retention/revenue | north star (pick one) |
| an output | partially | yes, but could regress when pushing the NSM | guardrail |
| an input (a play) | yes, directly | causally feeds the north star | input driver |
| a count or output | no | no downstream outcome | noise / vanity — reject |
If a candidate is controllable but doesn't feed the north star, it's a distraction. If it's tied to value but uncontrollable, it's either the north star itself or a guardrail. If it's neither controllable nor value-tied, cut it.
| anti-pattern | why it bites | the fix |
|---|---|---|
| Vanity metric | grows without value moving; celebrates nothing real | tie to a downstream outcome or reject |
| 40-KPI sprawl | nothing leads, no focus, no owner | one north star + 3-5 inputs, cut the rest |
| Lagging-only | you can watch it but can't act on it | add controllable leading inputs |
| Un-actionable input | team can't influence it through their work | replace with a concrete shippable event |
| Arbitrary target | "double it" discourages or invites gaming | baseline first, then a calibrated band |
| Single number, no guardrail | gets gamed, breaks a neighbor silently | pair every target with a countermetric |
| Raw count as north star | rises with time/size, hides decline | use a rate or ratio tied to value |
| Never re-validated | metric stops predicting value, nobody notices | re-check predictiveness semi-annually |
Re-validate the north star's predictiveness (does it still track retention/revenue?) and the inputs' controllability (can the team still move them?) at least semi-annually. Products and portfolios change; a metric that predicted value last year can quietly stop. Evolve definitions transparently — version the doc, note what changed and why, so a metric shift never looks like cooking the numbers.
When the metric definition doc is complete, route the downstream work:
../analytics/SKILL.md../dashboard/SKILL.md../reporting/SKILL.md../ab-testing/SKILL.md../forecasting/SKILL.md../unit-economics/SKILL.md../project-ops/SKILL.md../business-intelligence/SKILL.md© ericrisco, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 4 other files (references) in skills/kpi-framework of ericrisco/rsc-harness.
Open the folder on GitHubat commit 92fde8f
Kpi Framework next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Kpi Framework this skillericrisco/rsc-harness | 156 | — | ~2.9k | Automated safety check: Pass | MIT | |
| Analytics Strategyrampstackco/claude-skills | 935 | 1 repos | ~2.4k | Automated safety check: Pass | MIT | |
| AI PrioritizationILoveDotNet/ilovedotnet | 155 | — | ~3.5k | Automated safety check: Pass | CC0-1.0 | |
| Metricsmenkesu/awesome-pm-skills | 429 | — | ~5k | Automated safety check: Pass | Custom licence | |
| Startup Metrics Frameworkwshobson/agents | 40k | — | ~2.5k | Automated safety check: Pass | MIT | |
| Goals And Kpissocial-media-skills/skills | 116 | — | ~1.4k | Automated safety check: Pass | MIT |
rampstackco/claude-skills
Design measurement frameworks including event taxonomy, KPI hierarchy, dashboard architecture, attribution models, and analytics implementation strategy.
ILoveDotNet/ilovedotnet
Evaluate, rank, and communicate work priorities using AI as a structured thinking partner.
menkesu/awesome-pm-skills
Builds your north star metric, a metric tree with owned input metrics and guardrails, and a review cadence, as a one-page metrics spec you can paste into a doc.
wshobson/agents
Track, calculate, and optimize key performance metrics for SaaS, marketplace, consumer, and B2B startups from seed through Series A, including unit economics, growth efficiency, and cash management.
social-media-skills/skills
Set social media goals and KPIs — measurable targets and north-star metrics that aren't vanity numbers.
revfactory/harness-100
KPI 트리(지표 계층 구조)를 체계적으로 설계하고 드릴다운 구조를 정의하는 방법론. An agent skill from revfactory/harness-100.
ericrisco/rsc-harness
A skill your agent uses when designing or analyzing a controlled experiment — falsifiable hypothesis, sample size from an MDE, reading significance/CI/power, CUPED, or rescuing tests that won't go…
ericrisco/rsc-harness
A skill your agent uses when making a web UI conform to WCAG 2.2 Level AA — axe-core or Lighthouse a11y violations, keyboard operability, focus management, ARIA roles/names/live regions, contrast…
ericrisco/rsc-harness
A skill your agent uses when running or fixing paid acquisition on Google or Meta — campaign structure (Performance Max, Demand Gen, Search, Advantage+), platform-fit creative, budget/scaling rules…
ericrisco/rsc-harness
A skill your agent uses when measuring whether an LLM or agent system actually got better and gating merges on it: golden sets, fixing an inflated LLM-as-judge, scoring RAG (faithfulness, contextual…
ericrisco/rsc-harness
A skill your agent uses when a creative goal must become a finished media file: pick and order generative-media models per modality — AI voiceover, image-to-video clips, score — then glue them with…
ericrisco/rsc-harness
A skill your agent uses when instrumenting product or web analytics — GA4/PostHog SDK wiring, event taxonomy, funnels, double-counted events, consent gating, PII scrubbing.
A skill your agent uses when a team must decide what to measure before building anything — picking one north-star metric, separating leading input drivers from lagging outputs, adding guardrails so…. Kpi Framework is an agent skill from ericrisco/rsc-harness. Use when a team must decide what to measure before building anything — picking one north-star metric, separating leading input drivers from lagging outputs, adding guardrails so a number cannot be gamed, and setting a target that is not arbitrary.
Kpi Framework fits situations like: A team must decide what to measure before building anything — picking one north-star metric; separating leading input drivers from lagging outputs; adding guardrails so a number cannot be gamed; setting a target that is not arbitrary.
Run `npx skills add ericrisco/rsc-harness --skill kpi-framework -a claude-code`. Or copy the skill folder (skills/kpi-framework in ericrisco/rsc-harness) into .claude/skills/kpi-framework in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ericrisco/rsc-harness --skill kpi-framework -a codex`. Or copy the skill folder (skills/kpi-framework in ericrisco/rsc-harness) into .agents/skills/kpi-framework in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ericrisco/rsc-harness --skill kpi-framework -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/kpi-framework, .gemini/skills/kpi-framework, .github/skills/kpi-framework and .opencode/skills/kpi-framework in your project.
SKILL.md names no scripts, command-line tools or credentials: Kpi Framework is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Kpi Framework is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.9k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.1k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Kpi Framework: Analytics Strategy (rampstackco/claude-skills, 935 stars), AI Prioritization (ILoveDotNet/ilovedotnet, 155 stars), Metrics (menkesu/awesome-pm-skills, 429 stars) and Startup Metrics Framework (wshobson/agents, 40k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ericrisco (a GitHub user) maintains it in ericrisco/rsc-harness, which has 156 GitHub stars. The repository holds 229 skills in this directory. The repository was last updated on October 6, 2026.
Source: ericrisco/rsc-harness on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.