analytics-diagnostic-m…
The spine of analytics investigation. Use whenever interpreting analytics numbers, answering "why did X change", reading funnels, comparing cohorts, or…
Diagnose why website traffic changed. Use when the user asks "why did traffic drop/spike", investigates an anomaly, or wants to separate tracking regressions from real behaviour changes. Walks a hypothesis tree (measurement → time-shape → channel → cohort → content), recognises
$ npx -y skills add clamp-sh/analytics-skills --skill traffic-change-diagnosis --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/traffic-change-diagnosisContext preview
The summary Claude sees to decide when to auto-load this skill.
Diagnose why website traffic changed. Use when the user asks "why did traffic drop/spike", investigates an anomaly, or wants to separate tracking regressions from real behaviour changes. Walks a hypothesis tree (measurement → time-shape → channel → cohort → content), recognises
name: traffic-change-diagnosis description: Diagnose why website traffic changed. Use when the user asks "why did traffic drop/spike", investigates an anomaly, or wants to separate tracking regressions from real behaviour changes. Walks a hypothesis tree (measurement → time-shape → channel → cohort → content), recognises common fingerprints (bot spike, tracking regression, deploy-correlated drop, SEO decay, campaign ramp), and applies sample-size discipline. when_to_use: Triggered by questions like "why did traffic drop last week", "what's causing this spike", "traffic is down, what happened", or when an alert fires on pageviews/visitors/sessions. Assumes you have also loaded analytics-diagnostic-method. When two fingerprints match with similar confidence, or the change date is contested, also load anomaly-detection-time-series for STL / Bayesian changepoint detection. Auto-loaded when Clamp MCP's traffic_overview, traffic_timeseries, or traffic_breakdown returns a series spanning a suspected change window.
The specialist version of the diagnostic method, applied to one question: why did traffic (sessions, pageviews, unique visitors) move?
Read `analytics-diagnostic-method` first if you haven't. This skill assumes you already know MECE, triangulation, sample size, and Pyramid presentation. It adds the traffic-specific fingerprints and drill paths.
1. Read `analytics-profile.md` if present. The profile tells you the expected monthly traffic range and known measurement gaps. Both matter: a "spike" from 200 to 400 sessions/day on a <1k/month site is plausibly random; the same shape on a 1M/month site is an event. 2. Restate the question precisely. "Traffic dropped" is not a question. "Daily sessions fell from ~1,400 to ~900 starting April 18, with no corresponding drop in pageviews" is. 3. Decide: is this a real change at all? Apply the sample-size rule from `analytics-diagnostic-method`. Below ~300 observations per bucket, most "changes" are noise.
Walk in this order. Cheap checks first.
Traffic change
├── 1. Measurement (check first, always)
│ ├── Tracking regression (script missing, container unpublished, CSP block)
│ ├── Bot filter toggle (inclusion/exclusion changed)
│ └── Attribution shift (referrer policy, cookie policy, cross-domain)
├── 2. Time shape (what does the curve look like?)
│ ├── Cliff (single hour/day step) → discrete event
│ ├── Ramp (gradual over days/weeks) → campaign / SEO / decay
│ ├── Spike (single-day anomaly) → bot burst, viral, outage resolved
│ └── Cyclic (weekly/monthly pattern change) → seasonality, campaign cadence
├── 3. Channel
│ ├── One channel moved → campaign / algo / platform change
│ ├── All channels moved proportionally → measurement or site-wide issue
│ └── One channel grew, another shrank → mix shift (use Simpson's check)
├── 4. Cohort
│ ├── New users changed, returning didn't → acquisition-side change
│ ├── Returning changed, new didn't → retention / email / loyalty change
│ └── Both changed → site-wide or measurement
└── 5. Content / page
├── One page moved → deploy, SEO page, content change
├── Many pages moved proportionally → site-wide (nav, header, domain)
└── Entry pages moved, deep pages didn't → acquisition landing changeReal diagnostic work is pattern recognition. These are the fingerprints you'll see most often. Recognising the shape narrows the tree in one glance.
**Shape**: cliff, single channel-agnostic, usually correlated with a deploy or config change.
**Signals**:
**Fix path**: check recent deploys, CSP/script-src headers, tag manager container version, and adblock-block-rate if your tool exposes it.
**When to suspect it first**: if the drop is >20% and happened in a single hour, measurement regression is the single most likely cause.
**Shape**: spike, usually short (hours to days), often concentrated in one country/ASN/referrer.
**Signals**:
**Context**: Imperva's 2023 Bad Bot Report found 27.7% of all 2022 web traffic was bad bots. Roughly another 17% was good bots (search crawlers). So ~45% of raw traffic is non-human by default; your filters shape what you see.
**Fix path**: don't treat bot traffic as a "drop in quality". Filter it out, then re-examine. If the filter just changed (you turned bot exclusion on or off recently), the "change" is entirely a filter event.
**Shape**: cliff at deploy time, usually affects one section of the site.
**Signals**:
**Fix path**: check the deploy log, check the affected URLs for status-code changes, check for missing redirects from old paths. Fast to confirm, fast t
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…
Bradford Hill's 9 viewpoints (1965) reframed as a checklist for product analytics. Use this skill before recommending a decision based on observational…