analytics-diagnostic-m…
The spine of analytics investigation. Use whenever interpreting analytics numbers, answering "why did X change", reading funnels, comparing cohorts, or…
Bradford Hill's 9 viewpoints (1965) reframed as a checklist for product analytics. Use this skill before recommending a decision based on observational analytics data. Applies the 9 Bradford Hill viewpoints to score whether X actually caused Y, or whether the correlation is
$ npx -y skills add clamp-sh/analytics-skills --skill causal-evidence-checklist --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/causal-evidence-checklistContext preview
The summary Claude sees to decide when to auto-load this skill.
Bradford Hill's 9 viewpoints (1965) reframed as a checklist for product analytics. Use this skill before recommending a decision based on observational analytics data. Applies the 9 Bradford Hill viewpoints to score whether X actually caused Y, or whether the correlation is
name: causal-evidence-checklist description: Bradford Hill's 9 viewpoints (1965) reframed as a checklist for product analytics. Use this skill before recommending a decision based on observational analytics data. Applies the 9 Bradford Hill viewpoints to score whether X actually caused Y, or whether the correlation is coincidental, confounded, or reversed. Use whenever interpreting a metric change the user is about to act on (rollback, ship, abandon, double-down). Refuses to label a verdict "high confidence" when fewer than ~5 of the 9 criteria pass. Pairs with analytics-diagnostic-method (which provides the hypothesis tree) and channel-and-funnel-quality (which provides the segmentation discipline). Triggers when Clamp MCP returns a comparison the user is about to act on, when a deploy correlates with a metric move, or when the user says "X caused Y" / "did X cause Y" / "should we roll back / ship / kill X" based on a chart. Vendor-neutral methodology; via Clamp MCP the per-criterion checks map directly to traffic.compare, traffic.breakdown, errors.timeline, and funnels.list. when_to_use: When the user is about to act on a correlation from observational data — "bounce rate jumped after the Tuesday deploy, should we roll back?", "signups doubled after we shipped the new pricing page, can we ship the same treatment to /features?", "churn fell when we launched the new onboarding, did onboarding cause it?". Also when a Clamp MCP comparison returns a directional result and the user is reaching for a decision. Skip when the evidence is from a properly-randomized A/B test (use experiment-result-reader instead — randomization handles most of these criteria for you).
Observational analytics is full of correlations that look causal and aren't. A deploy ships Tuesday, bounce rate jumps Wednesday, and the instinct is to roll back. Sometimes the deploy did it. Sometimes a marketing campaign landed the same day. Sometimes Wednesday is always like that. This skill encodes a 60-year-old epidemiology rubric — Bradford Hill's 9 viewpoints (1965) — as a checklist the agent fills before recommending an action.
Hill's original audience was epidemiologists deciding whether smoking caused lung cancer without the option of a randomized trial. The same constraint applies to most product analytics: you can't randomize a deploy across a population, so you reason from observational evidence and triangulate. The 9 viewpoints are how.
Write the causal claim as one sentence: "**X caused Y**, where X = [specific change] and Y = [specific metric move]". If the user is vague ("the deploy broke things"), pin them down: which deploy, which metric, over what period, by how much. Without a specific X and Y, the checklist has nothing to score.
Then write the *counterfactual*: "If X had not happened, would Y still have moved?" Most of the 9 criteria are different ways of probing that counterfactual.
For each criterion, mark **pass / partial / fail** with a one-line justification. The criteria are adapted from Hill's original epidemiological framing to product analytics:
| # | Criterion | Product analytics translation | Pass when... | |---|---|---|---| | 1 | **Strength** | Effect size vs baseline noise | The move is several times larger than the metric's normal day-to-day variance | | 2 | **Consistency** | Same pattern across browsers, geos, devices, time periods | The effect shows up in ≥3 independent slices, not just one | | 3 | **Specificity** | X uniquely causes Y, not a slew of unrelated effects | Y moved but neighboring metrics that *shouldn't* have moved didn't | | 4 | **Temporality** | X preceded Y (non-negotiable) | Y's move starts after X, not before or simultaneous | | 5 | **Dose-response** | Effect scales with exposure/magnitude of X | Heavier-exposed cohorts show larger moves than lighter-exposed ones | | 6 | **Plausibility** | A mechanism makes the link believable | You can name the specific code/UX path that would produce this effect | | 7 | **Coherence** | Fits with what's already known about the system | No prior data contradicts it; adjacent metrics tell a consistent story | | 8 | **Experiment** | Was the hypothesis tested by intervention? | You ran (or can run) an A/B test, holdout, or staged rollback that confirms it | | 9 | **Analogy** | Similar X causes similar Y in adjacent contexts | Past deploys of this shape, or competitor moves, produced the same pattern |
Temporality is non-negotiable: if Y moved before X happened, X did not cause Y. Period. The other 8 are weighted but none is individually decisive.
**1. Strength.** Compare the move to the metric's own baseline noise. A bounce rate that normally oscillates ±1.5pp daily moving +3pp is suggestive; moving +12pp is loud. Use the prior 14–28 days of the same metric as the noise floor. Via Clamp: `traffic.timeseries` for the metric,
Analytics skills for Claude, Cursor, and other AI agents. Read web analytics like a senior analyst: diagnose traffic changes, judge channel quality, read funnels, declare typed events, and read A/B tests without the usual rookie mistakes.
Repo: clamp-sh/analytics-skills
The spine of analytics investigation. Use whenever interpreting analytics numbers, answering "why did X change", reading funnels, comparing cohorts, or…
One-time interview that captures the business context (industry, model, primary conversion, traffic range, ICP, data stack) into a local analytics-profile.md…
Formal time-series methods that augment the hand-coded fingerprint library in traffic-change-diagnosis. Use this skill when traffic-change-diagnosis…
Bayesian counterpart to experiment-result-reader. Computes posterior P(variant beats control), credible intervals, and expected loss from per-variant exposure…
Build a refinable causal DAG before answering "did X cause Y" on observational data. Emits a Mermaid diagram of assumed causes, applies the back-door criterion…
Pearl's three-rung causal hierarchy as a query classifier. Tags every analytics question as rung-1 (association, P(Y|X)), rung-2 (intervention, P(Y|do(X))), or…