monitor-metrics
This skill diagnoses changes in Mixpanel metrics by detecting point-in-time anomalies, baseline drift, and root causes through statistical tests and…
Identity proven by GitHub's verified organisation badge (mixpanel)
- Agents
- Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode, claude.ai and API
- License
- Apache-2.0 (permissive)
- Pin
- dfb891bpinned Oct 9, 2026
- Context cost
- about 2,100 tokenswhen the skill loads
- GitHub stars
- 15on mixpanel/ai-plugins
- Scripts
- None found
What it does
“Monitor and diagnose a Mixpanel metric for anomalies, drift, and root cause. Use whenever the user asks to investigate, debug, monitor, or explain a change in a metric tracked in Mixpanel — a saved Metric, KPI, conversion rate, retention, event count, funnel step, or anything tracked in a saved report or dashboard. Trigger phrases: "monitor [metric]", "what's going on with [metric]", "why did [metric] drop/spike", "diagnose this metric", "check for anomalies", "has [metric] drifted", "what's driving the drop", "where is the movement coming from", "run RCA on this metric". Also trigger when the user shares a Mixpanel report/dashboard/metric link and asks what's happening, or describes a metric in prose and wants to know if the movement is real. Do NOT trigger for portfolio health checks (use `weekly-pulse`) or adoption reports (use `gtm-customer-intelligence`). Requires a Mixpanel engine — run /mixpanel:install if not set up.”
Generated summary from the skill's own text
This skill diagnoses changes in Mixpanel metrics by detecting point-in-time anomalies, baseline drift, and root causes through statistical tests and segmentation analysis. It routes users to the right detection method based on their question, then optionally attributes the finding to specific segments or properties in the data.
When to use it
- User asks if a metric spike or drop is real or a blip
- User wants to know if a metric trend has shifted over weeks or months
- User asks where movement in a metric is concentrated or which segment drives it
- User shares a Mixpanel report and wants statistical diagnosis of a change
When not to
- Portfolio-wide metric sweeps needed instead of single metric focus
- Just summarizing what a chart shows without investigating causes
- Metric definition advice or instrumentation questions needed
Install
These commands install from the publisher's repository and need no account.
skills CLI
npx skills add mixpanel/ai-plugins --skill monitor-metricsInstalls from the repository's default branch, which may have changed since the commit we checked.
GitHub CLI 2.90 or later
gh skill install mixpanel/ai-plugins monitor-metrics@dfb891bb6f754b5dcab2131b7311e7ccb9bf8c3eInstalls the commit we checked (dfb891b).
Copy by hand
Download the folder at dfb891b and put it in .claude/skills/monitor-metrics for Claude Code and in .agents/skills/monitor-metrics for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode.
Copy for your agent
A prompt for any coding agent. It installs this skill from GitHub at the pinned commit, copies the files as they are, and runs nothing unless you ask.
Prompt
Install the agent skill "monitor-metrics" by Mixpanel. Source, pinned to commit dfb891bb6f754b5dcab2131b7311e7ccb9bf8c3e: https://github.com/mixpanel/ai-plugins/tree/dfb891bb6f754b5dcab2131b7311e7ccb9bf8c3e/plugins/mixpanel/skills/monitor-metrics 1. Download that folder at exactly this commit. Do not use the default branch. 2. Copy every file unchanged, keeping the folder structure, into .claude/skills/monitor-metrics/ for Claude Code and .agents/skills/monitor-metrics/ for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode. Create the folders if they do not exist. 3. Do not edit the files, and do not run any script in the folder unless I ask you to. 4. When you are done, list the files you copied and where you put them. Listing and checks: https://www.agentnative.dev/skills/mixpanel/monitor-metrics
SKILL.md at the pin
---
name: monitor-metrics
description: >
Monitor and diagnose a Mixpanel metric for anomalies, drift, and root
cause. Use whenever the user asks to investigate, debug, monitor, or
explain a change in a metric tracked in Mixpanel — a saved Metric, KPI,
conversion rate, retention, event count, funnel step, or anything tracked
in a saved report or dashboard. Trigger phrases: "monitor [metric]", "what's going on
with [metric]", "why did [metric] drop/spike", "diagnose this metric",
"check for anomalies", "has [metric] drifted", "what's driving the drop",
"where is the movement coming from", "run RCA on this metric". Also
trigger when the user shares a Mixpanel report/dashboard/metric link and
asks what's happening, or describes a metric in prose and wants to know if
the movement is real. Do NOT trigger for portfolio health checks (use
`weekly-pulse`) or adoption reports (use `gtm-customer-intelligence`).
Requires a Mixpanel engine — run /mixpanel:install if not set up.
metadata:
engine: required
---
# Monitor Metrics
> **Engine required** — resolve an engine per [`ENGINE.md`](../../ENGINE.md): one named in the conversation or loaded instructions is mandatory (not set up → offer `/mixpanel:install` for it); otherwise use the Mixpanel MCP server, or offer `/mixpanel:install` if it's unavailable.
A focused diagnostic skill for a single metric at a time. Works for any project the user has access to. Requires a Mixpanel engine. Answers three questions cleanly:
1. **Is a recent point weird?** (anomaly detection — `metric-anomaly`)
2. **Has the baseline itself shifted?** (drift detection — `metric-drift`)
3. **Where is the movement coming from?** (root-cause attribution — `metric-rca`)
Separation matters because the customer conversation is different for each: an anomaly is an incident, drift is a trend, and RCA is the segmentation story that makes either of the first two actionable.
`metric-rca` runs on top of an existing anomaly or drift diagnosis — it consumes the diagnosis payload, fans out across segmentation branches, and appends its findings to the diagnosis board. It does not perform detection itself.
---
## Commands
This skill has three commands. Route to the right one based on the user's ask.
### `metric-anomaly`
Detect point-in-time anomalies — recent spikes, drops, and clusters in a single metric. Fits an additive seasonal baseline (median polish) and flags points by robust residual (MAD-based) against 7-day hourly and 30-day daily series. Produces flagged timestamps, classification (isolated / cluster / edge), and a verdict. **Does not** test for trend-level drift.
Trigger when the user wants to know _whether a specific point looks weird_ — "is this spike real?", "did something happen yesterday?", "is this a blip?".
→ See `commands/metric-anomaly.md`
### `metric-drift`
Detect trend-level drift — whether the baseline has shifted. Runs mean-shift and variance-ratio tests on 60-day daily (last 30 vs prior 30) and 16-week weekly (last 8 vs prior 8) windows. Includes a lightweight outlier contamination check so it can run standalone without `metric-anomaly` first. Produces direction, magnitude, shape (step/slope/oscillating), and a verdict. **Does not** flag individual point anomalies.
Trigger when the user wants to know _whether the trend has changed_ — "has this drifted?", "is the baseline different now?", "what's happened over the last month?".
→ See `commands/metric-drift.md`
### `metric-rca`
Root-cause attribution on top of an existing anomaly or drift diagnosis. Fans out across five branches — component decomposition, default-property breakdowns, distinct-id outliers, cohort comparison, and calendar/market context — over the same date windows the source command used. Ranks findings by concentration and deviation, renders charts for the important ones, and appends results to the diagnosis board.
Trigger when the user wants to know _where the movement came from_ — "what's driving this drop?", "where is the spike concentrated?", "break this down", "run RCA", "is it a specific segment?". Requires a prior `metric-anomaly` or `metric-drift` run in the same session.
→ See `commands/metric-rca.md`
---
## Choosing between the commands
Route by matching the user's ask to the first branch that applies:
- **IF** the ask is ambiguous or exploratory ("something looks off") **→** run `metric-anomaly` first. It is cheaper (2 queries) and catches point-in-time issues that would otherwise contaminate a drift test.
- **IF** the ask is about a trend or baseline change over time (e.g. "has this changed over the last month?", "is the baseline different now?") **→** run `metric-drift` directly.
- **IF** both detection questions matter **→** run `metric-anomaly` first, then `metric-drift`. Drift picks up any anomaly context if present and downgrades confidence accordingly.
- **IF** the user asks "why" or "where" **AND** a diagnosis payload already exists **→** run `metric-rca`.
- **IF** the user asks "why did X drop" (or "what's driving the drop", "where is the movement coming from") **AND** no diagnosis payload exists yet **→** run `metric-anomaly` or `metric-drift` first (whichever fits their framing), then flow into `metric-rca`. Never run RCA cold — it needs the detection payload. These triggers route here **on purpose**: detection first, then RCA.
---
## Classify `metric_type`
Before either detection command fires queries, classify the metric into one of: `count`, `unique_count`, `ratio`, `funnel`, `retention`, `unknown`. Both `metric-anomaly` and `metric-drift` reference this single table — do not duplicate it into the command files.
| Detected | Classification |
| --- | --- |
| Report type `funnels` | `funnel` |
| Report type `retention` | `retention` |
| Query template has A/B form or `% of total` (conversion rate, session rate, etc.) | `ratio` |
| Single-series count (event count, event count distinct users) | `count` |
| Single-series unique count | `unique_count` |
| Formula metric / custom SQL / anything else | `unknown` |
Store as `metric_type` on the metric series object. Used in every verdict card and in special-case routing (funnel, retention).
---
## Output contract
Both commands produce a structured verdict, not a data dump. The commands define their own output formats; common principles:
- **Default to compact.** A CSA scanning between calls needs a verdict in under 60 seconds. Full detail is opt-in.
- **Always chart the trend.** Both commands always render inline charts — whether anomalies/drift were detected or not. A stable metric gets the same charts; the visual confirmation of stability is just as valuable as flagging a problem. Annotation overlays (anomaly dots, drift window shading, change-point markers) only appear when something was flagged.
- **Fixed section order.** Headline → confidence → next step. Never lead with a hedge.
- **Explicit scope limits.** Every output names what it did _not_ do ("this does not test for drift — run `metric-drift`"; "this does not flag individual anomalies — run `metric-anomaly`").
Never output a wall of tables or raw query results. The CSA is the audience, and the goal is a verdict they can act on.
---
## Execution steps
The shared setup and board-handoff steps live in `references/execution.md`:
- **Step 0** — Input validation (project + metric resolution)
- **Step 1** — Metric ingestion (Paths A/B, normalized metric series object)
- **Step 1.5** — Project profile resolution (filter + instrumentation checks)
- **Step 2** — Post-diagnosis handoff and board creation
- **Step 3** — Post-RCA board append
Steps 0, 1, and 1.5 run for `metric-anomaly` and `metric-drift` before any detection query. `metric-rca` does not re-run them — it consumes the diagnosis payload. Read `references/execution.md` before running a command.
---
## When not to use this skill
- **Portfolio-wide sweeps** → use `weekly-pulse`.
- **Full adoption story / QBR prep** → use `gtm-customer-intelligence`.
- **Lexicon / instrumentation health** → use `manage-lexicon`.
- **Just want to know what a chart shows** ("walk me through this report", "what does this tile show") → use `analyze-report`. That skill is the lean read of _what's there_ and deliberately doesn't chase causes. This skill is for statistical detection (anomaly / drift) **plus** RCA. On a bare "what's happening with this report?", start with `analyze-report` and hand off here when the user wants the _why_.
- **Metric definition help** ("how should I measure X?") → answer directly, no skill needed.
- **Root-cause investigation from scratch, without a prior diagnosis** → run `metric-anomaly` or `metric-drift` first, then `metric-rca`. RCA does not run cold.
This skill is deliberately narrow: one metric, one diagnosis, one attribution pass.
---
## Files
- `references/execution.md` — shared setup and board handoff (Steps 0, 1, 1.5, 2, 3)
- `commands/metric-anomaly.md` — point-in-time anomaly detection (additive seasonal baseline + robust residual; 2 queries; 7-day hourly + 30-day daily views)
- `commands/metric-drift.md` — trend-level drift detection (mean shift + variance ratio; 2 queries; 60-day daily + 16-week weekly views; owns shape classification)
- `commands/metric-rca.md` — root-cause attribution (5-branch segmentation fan-out on same windows as source command; ranks findings by concentration × deviation; appends to the diagnosis board)
From mixpanel/ai-plugins at dfb891b, shown as plain text under its license: Apache-2.0 (permissive). The license text is in LICENSE.
View SKILL.md on GitHub at dfb891bFiles
- SKILL.md9.6 KB · 29b867d94468
- commands/
- metric-anomaly.md11 KB · 3ebd698e7f72
- metric-drift.md13 KB · 504433c6c16b
- metric-rca.md21 KB · 3e5339c5ab91
- references/
- execution.md16 KB · 094c33cb6fc1
5 files, 70 KB in total. Each file has a sha256 in the pin's manifest; the first 12 characters are shown.
Skill folder on GitHub at dfb891bMore from Mixpanel
auth
Manages Mixpanel credentials, authentication, and account configuration for the mixpanel_headless library and mp CLI.
Contains scripts
Claude Code · about 3K tokens · pinned 6 days ago
dashboard-expert
This skill analyzes, builds, modifies, and adds explainer text to Mixpanel dashboards using the mixpanel_headless Python library.
Claude Code · about 2.8K tokens · pinned 6 days ago
mixpanelyst
The skill analyzes Mixpanel data by running Python code with the mixpanel_headless library and pandas.
Claude Code · about 4.3K tokens · pinned 6 days ago
session-replay
This skill retrieves and analyzes Mixpanel session replay recordings to show what a specific user did on screen, action by action.
Claude Code · about 2.6K tokens · pinned 6 days ago
setup
This skill creates an isolated Python environment for Mixpanel analysis, installs mixpanel-headless version 0.4.0 or newer along with data science libraries…
Contains scripts
Claude Code · about 1.1K tokens · pinned 6 days ago
analyze-report
Interprets existing Mixpanel reports and charts by re-running queries, identifying patterns, and summarizing what the data shows and what stands out.
Claude Code, Codex, Cursor +4 · about 1.9K tokens · pinned 6 days ago
Related in Observability
debugging-executions
Debug workflow execution failures by inspecting failed nodes, re-running executions, and comparing expected versus actual values.
by n8nOfficial publisher
Claude Code, Codex, Cursor +3 · about 2.5K tokens · pinned 6 days ago
instance-awareness
This skill teaches the agent to resolve ambiguous requests by reading the instance's activity log and workflow history instead of asking the user to clarify.
by n8nOfficial publisher
Claude Code, Codex, Cursor +3 · about 1.3K tokens · pinned 6 days ago
creating-replay-vision-scanners
Guides agents through creating Replay Vision scanners, LLM probes that watch session recordings on a schedule and log findings as observations.
by PostHogOfficial publisher
Claude Code, Codex, Cursor +4 · about 3.3K tokens · pinned 6 days ago
exploring-replay-vision-observations
This skill guides agents through reading observations from Replay Vision scanners, understanding their findings across session recordings, and taking action…
by PostHogOfficial publisher
Claude Code, Codex, Cursor +4 · about 3.3K tokens · pinned 6 days ago
exploring-scouts
Explore and understand PostHog Signals scouts through read-only tools, examining fleet configuration, recent runs, performance metrics, and durable team…
by PostHogOfficial publisher
Contains scripts
Claude Code, Codex, Cursor +3 · about 11K tokens · pinned 6 days ago
investigating-replay
Gathers session recording metadata, user profile, event timeline, and linked error issues in parallel to give a complete investigation when a user provides a…
by PostHogOfficial publisher
Claude Code, Codex, Cursor +4 · about 2.3K tokens · pinned 6 days ago
Open roles at Mixpanel
3 open roles on the jobs board
- Delivery Engineer
Singapore (Hybrid)
- Delivery Engineer, EMEA
London, UK (Hybrid)
- Engineering Manager, Query Service
San Francisco, US (Hybrid)