/digital-marketing-pro:performance-check skill
Check live performance KPIs from connected analytics: RAG status, trends, actions.
by indranilbanerjee·MIT license·★ 866 Stars on the repo·GitHub ↗
npx degit indranilbanerjee/digital-marketing-pro/skills/performance-check#main ~/.claude/skills/performance-checkChecked ·commit main
Inside this skill
SKILL.md · the author's own words# /digital-marketing-pro:performance-check > **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skil… ## Purpose Pull live metrics from all connected analytics MCPs and produce a comprehensive performance snapshot. Compares current performance to KPI t… **Scope (vs `/digital-marketing-pro:performance-report`):** this skill is the **live-pull + snapshot-persistence** layer — it fetches curre… ## Input Required The user must provide (or will be prompted for): - **Time period**: Today, this week, this month, this quarter, or a custom date range (e.g., "last 14 days", "Jan 1 - Jan 31") - **Channel focus** (optional): Specific channels or platforms to prioritize (e.g., "paid search only", "email and social").
Word-for-word excerpt, not a result. Read the full SKILL.md ↓
Files of /digital-marketing-pro:performance-check
Show the full text89 lines
/digital-marketing-pro:performance-check
Script location. If your host does not set
${CLAUDE_PLUGIN_ROOT}, the scripts are in this plugin'sscripts/folder, next toskills/. Run them with Python 3.10 or newer:python, orpython3wherepythonis not found (macOS, many Linux systems).
Purpose
Pull live metrics from all connected analytics MCPs and produce a comprehensive performance snapshot. Compares current performance to KPI targets defined in the brand profile, previous-period benchmarks, and industry averages. Designed for quick health checks — run it daily, weekly, or on-demand to stay on top of marketing performance without switching between platforms.
Scope (vs /digital-marketing-pro:performance-report): this skill is the live-pull + snapshot-persistence layer — it fetches current metrics from the platforms and saves a snapshot for trend history. When you need a formatted, narrative deliverable for stakeholders (executive summary, channel commentary, prioritized recommendations, branded formatting), run /digital-marketing-pro:performance-report, which consumes the snapshots this skill persists rather than re-pulling. Use performance-check to see the numbers now; use performance-report to tell the story.
Input Required
The user must provide (or will be prompted for):
- Time period: Today, this week, this month, this quarter, or a custom date range (e.g., "last 14 days", "Jan 1 - Jan 31")
- Channel focus (optional): Specific channels or platforms to prioritize (e.g., "paid search only", "email and social"). If omitted, all connected platforms are included
- Comparison period (optional): Period to compare against — previous period, same period last year, or custom range. Defaults to the equivalent previous period
- KPI targets (optional): Override targets for this check. If omitted, targets are pulled from profile.json goals and KPI settings
- Granularity (optional): Daily, weekly, or aggregate view. Defaults to aggregate for the selected period
Process
- Load brand context: Read
~/.claude-marketing/brands/_active-brand.jsonfor the active slug, then load~/.claude-marketing/brands/{slug}/profile.json. Apply brand voice, compliance rules for target markets (skills/context-engine/compliance-rules.md), and industry context. Also check for guidelines at~/.claude-marketing/brands/{slug}/guidelines/_manifest.json— if present, load restrictions. Check for agency SOPs at~/.claude-marketing/sops/. If no brand exists, ask: "Set up a brand first (/digital-marketing-pro:brand-setup)?" — or proceed with defaults. - Detect connected analytics MCPs: Check
.mcp.jsonand active MCP connections to identify which platforms are available (google-analytics, google-ads, meta-marketing, linkedin-marketing, tiktok-ads, mailchimp, stripe, mixpanel, amplitude, shopify, etc.). Log any expected platforms that are not connected so the user knows about gaps in coverage. - Pull metrics from each connected platform: Request key metrics for the specified time period:
- Traffic: sessions, users, pageviews, new vs returning (break out GA4's "AI Assistant" default channel — referrals from ChatGPT, Gemini, Copilot, Perplexity, etc. — so AI-sourced traffic isn't buried under Referral/Direct)
- Ads: impressions, clicks, spend, CPC, CPM
- Conversions: leads, purchases, sign-ups, goal completions
- Revenue: total revenue, average order value, transaction count
- Engagement: open rate, click rate, bounce rate, time on site
- Platform-specific: email deliverability, social reach, video views, app installs
- Aggregate into unified dashboard: Normalize metrics across platforms into a single cross-channel view with consistent naming, currency conversion if multi-currency, and de-duplicated conversion counts where platforms overlap
- Calculate KPIs vs targets: Compare actuals to targets from
profile.jsongoals — flag green (on track or exceeding), yellow (within 10% of target), or red (missing by >10%). Include absolute and percentage variance for each KPI. - Compare to previous period: Calculate period-over-period change for every metric and attach trend direction (up/down/flat) with percentage change. If year-over-year data is available, include as a secondary reference point.
- Benchmark against industry: Reference
skills/context-engine/industry-profiles.mdfor the brand's industry to contextualize performance relative to category averages. Flag metrics significantly above or below industry norms. - Identify notable findings: Surface the top 3 wins (best-performing metrics or biggest improvements), top 3 concerns
(underperforming or declining metrics), and any material changes that warrant deeper investigation. Before labelling a
conversion-rate change "statistically significant," confirm it with
python "${CLAUDE_PLUGIN_ROOT}/scripts/significance-tester.py" --control-visitors {n} --control-conversions {n} --variant-visitors {n} --variant-conversions {n} --confidence 0.95— do not call a movement significant off a raw percentage delta. - Generate recommended actions: Based on the data, produce 3-5 specific, actionable next steps — e.g., "Pause underperforming ad set X", "Increase budget on high-ROAS channel Y", "Investigate traffic drop on Z", "Scale winning creative variant", "Run /digital-marketing-pro:anomaly-scan for deeper diagnosis".
- Save performance snapshot: Execute
python "${CLAUDE_PLUGIN_ROOT}/scripts/performance-monitor.py" --brand {slug} --action save-snapshot --data '{...current metrics...}'to persist the snapshot for historical comparison and trend tracking across future runs. - Log significant insights: For any metric with a notable deviation, save via
python "${CLAUDE_PLUGIN_ROOT}/scripts/campaign-tracker.py" --brand {slug} --action save-insight --data '{"type":"anomaly","insight":"...","context":"..."}'so findings surface in future reports and campaign planning.
Output
A structured performance snapshot containing:
- Executive summary: 2-3 sentence overview of overall marketing health with the single most important finding highlighted
- Channel-by-channel metrics table: Traffic, impressions, clicks, conversions, revenue, spend, CPA, ROAS, and engagement rate per platform — sortable by any column
- KPI scoreboard: Each tracked KPI with actual value, target value, percentage to target, variance (absolute and %), trend arrow (vs previous period), and RAG status (red/amber/green)
- Cross-channel summary: Total spend, total conversions, blended CPA, blended ROAS, total revenue, marketing efficiency ratio, and overall health assessment
- Period-over-period comparison: Percentage change for all key metrics vs the comparison period with directional indicators and sparkline-style trend data
- Industry benchmark context: How key metrics compare to industry averages from industry-profiles.md, with percentile ranking where data is available
- Notable findings: Top 3 wins, top 3 concerns, and any anomalies worth investigating further — each with supporting data points and severity indicator
- Recommended actions: 3-5 specific next steps with priority ranking, expected impact, and the platform or campaign each action applies to
- Data gaps: Any platforms that were expected but not connected, metrics that could not be retrieved, or time periods with incomplete data — so the user knows what is missing from the picture
Agents Used
- analytics-analyst — Metrics interpretation, KPI analysis, cross-channel normalization, trend identification, industry benchmarking, insight generation, and action recommendation
- performance-monitor-agent — Data aggregation from connected MCPs, baseline comparison, snapshot persistence, historical trend analysis, and gap detection
| 1 | |
| 2 | name performance-check |
| 3 | description "Check live performance KPIs from connected analytics: RAG status, trends, actions. \"quick performance snapshot\"" |
| 4 | user-invocable true |
| 5 | |
| 6 | |
| 7 | # /digital-marketing-pro:performance-check |
| 8 | |
| 9 | > **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems). |
| 10 | |
| 11 | ## Purpose |
| 12 | |
| 13 | Pull live metrics from all connected analytics MCPs and produce a comprehensive performance snapshot. Compares current performance to KPI targets defined in the brand profile, previous-period benchmarks, and industry averages. Designed for quick health checks — run it daily, weekly, or on-demand to stay on top of marketing performance without switching between platforms. |
| 14 | |
| 15 | **Scope (vs `/digital-marketing-pro:performance-report`):** this skill is the **live-pull + snapshot-persistence** layer — it fetches current metrics from the platforms and saves a snapshot for trend history. When you need a formatted, narrative deliverable for stakeholders (executive summary, channel commentary, prioritized recommendations, branded formatting), run `/digital-marketing-pro:performance-report`, which consumes the snapshots this skill persists rather than re-pulling. Use `performance-check` to *see the numbers now*; use `performance-report` to *tell the story*. |
| 16 | |
| 17 | ## Input Required |
| 18 | |
| 19 | The user must provide (or will be prompted for): |
| 20 | |
| 21 | **Time period**: Today, this week, this month, this quarter, or a custom date range (e.g., "last 14 days", "Jan 1 - Jan 31") |
| 22 | **Channel focus** (optional): Specific channels or platforms to prioritize (e.g., "paid search only", "email and social"). |
| 23 | If omitted, all connected platforms are included |
| 24 | **Comparison period** (optional): Period to compare against — previous period, same period last year, or custom range. |
| 25 | Defaults to the equivalent previous period |
| 26 | **KPI targets** (optional): Override targets for this check. |
| 27 | If omitted, targets are pulled from profile.json goals and KPI settings |
| 28 | **Granularity** (optional): Daily, weekly, or aggregate view. Defaults to aggregate for the selected period |
| 29 | |
| 30 | ## Process |
| 31 | |
| 32 | **Load brand context**: Read `~/.claude-marketing/brands/_active-brand.json` for the active slug, then load `~/.claude-marketing/brands/{slug}/profile.json`. Apply brand voice, compliance rules for target markets (`skills/context-engine/compliance-rules.md`), and industry context. Also check for guidelines at `~/.claude-marketing/brands/{slug}/guidelines/_manifest.json` — if present, load restrictions. Check for agency SOPs at `~/.claude-marketing/sops/`. If no brand exists, ask: "Set up a brand first (/digital-marketing-pro:brand-setup)?" — or proceed with defaults. |
| 33 | **Detect connected analytics MCPs**: Check `.mcp.json` and active MCP connections to identify which platforms are available |
| 34 | (google-analytics, google-ads, meta-marketing, linkedin-marketing, tiktok-ads, mailchimp, stripe, mixpanel, amplitude, shopify, etc.). |
| 35 | Log any expected platforms that are not connected so the user knows about gaps in coverage. |
| 36 | **Pull metrics from each connected platform**: Request key metrics for the specified time period: |
| 37 | Traffic: sessions, users, pageviews, new vs returning (break out GA4's **"AI Assistant"** default channel — referrals from ChatGPT, Gemini, Copilot, Perplexity, etc. — so AI-sourced traffic isn't buried under Referral/Direct) |
| 38 | Ads: impressions, clicks, spend, CPC, CPM |
| 39 | Conversions: leads, purchases, sign-ups, goal completions |
| 40 | Revenue: total revenue, average order value, transaction count |
| 41 | Engagement: open rate, click rate, bounce rate, time on site |
| 42 | Platform-specific: email deliverability, social reach, video views, app installs |
| 43 | **Aggregate into unified dashboard**: Normalize metrics across platforms into a single cross-channel view with consistent |
| 44 | naming, currency conversion if multi-currency, and de-duplicated conversion counts where platforms overlap |
| 45 | **Calculate KPIs vs targets**: Compare actuals to targets from `profile.json` goals — flag green (on track or exceeding), |
| 46 | yellow (within 10% of target), or red (missing by >10%). Include absolute and percentage variance for each KPI. |
| 47 | **Compare to previous period**: Calculate period-over-period change for every metric and attach trend direction |
| 48 | (up/down/flat) with percentage change. If year-over-year data is available, include as a secondary reference point. |
| 49 | **Benchmark against industry**: Reference `skills/context-engine/industry-profiles.md` for the brand's industry to |
| 50 | contextualize performance relative to category averages. Flag metrics significantly above or below industry norms. |
| 51 | **Identify notable findings**: Surface the top 3 wins (best-performing metrics or biggest improvements), top 3 concerns |
| 52 | (underperforming or declining metrics), and any material changes that warrant deeper investigation. Before labelling a |
| 53 | conversion-rate change "statistically significant," confirm it with `python "${CLAUDE_PLUGIN_ROOT}/scripts/significance-tester.py" --control-visitors {n} --control-conversions {n} --variant-visitors {n} --variant-conversions {n} --confidence 0.95` — do not call a movement significant off a raw percentage delta. |
| 54 | **Generate recommended actions**: Based on the data, produce 3-5 specific, actionable next steps — e.g., "Pause |
| 55 | underperforming ad set X", "Increase budget on high-ROAS channel Y", "Investigate traffic drop on Z", |
| 56 | "Scale winning creative variant", "Run /digital-marketing-pro:anomaly-scan for deeper diagnosis". |
| 57 | **Save performance snapshot**: Execute `python "${CLAUDE_PLUGIN_ROOT}/scripts/performance-monitor.py" --brand {slug} --action save-snapshot --data '{...current metrics...}'` |
| 58 | to persist the snapshot for historical comparison and trend tracking across future runs. |
| 59 | **Log significant insights**: For any metric with a notable deviation, save via |
| 60 | `python "${CLAUDE_PLUGIN_ROOT}/scripts/campaign-tracker.py" --brand {slug} --action save-insight --data '{"type":"anomaly","insight":"...","context":"..."}'` |
| 61 | so findings surface in future reports and campaign planning. |
| 62 | |
| 63 | ## Output |
| 64 | |
| 65 | A structured performance snapshot containing: |
| 66 | |
| 67 | **Executive summary**: 2-3 sentence overview of overall marketing health with the single most important finding highlighted |
| 68 | **Channel-by-channel metrics table**: Traffic, impressions, clicks, conversions, revenue, spend, CPA, ROAS, and engagement |
| 69 | rate per platform — sortable by any column |
| 70 | **KPI scoreboard**: Each tracked KPI with actual value, target value, percentage to target, variance (absolute and %), |
| 71 | trend arrow (vs previous period), and RAG status (red/amber/green) |
| 72 | **Cross-channel summary**: Total spend, total conversions, blended CPA, blended ROAS, total revenue, marketing efficiency |
| 73 | ratio, and overall health assessment |
| 74 | **Period-over-period comparison**: Percentage change for all key metrics vs the comparison period with directional |
| 75 | indicators and sparkline-style trend data |
| 76 | **Industry benchmark context**: How key metrics compare to industry averages from industry-profiles.md, with percentile |
| 77 | ranking where data is available |
| 78 | **Notable findings**: Top 3 wins, top 3 concerns, and any anomalies worth investigating further — each with supporting |
| 79 | data points and severity indicator |
| 80 | **Recommended actions**: 3-5 specific next steps with priority ranking, expected impact, and the platform or campaign |
| 81 | each action applies to |
| 82 | **Data gaps**: Any platforms that were expected but not connected, metrics that could not be retrieved, or time periods |
| 83 | with incomplete data — so the user knows what is missing from the picture |
| 84 | |
| 85 | ## Agents Used |
| 86 | |
| 87 | **analytics-analyst** — Metrics interpretation, KPI analysis, cross-channel normalization, trend identification, industry benchmarking, insight generation, and action recommendation |
| 88 | **performance-monitor-agent** — Data aggregation from connected MCPs, baseline comparison, snapshot persistence, historical trend analysis, and gap detection |
| 89 |
Discussion
Alternatives
Browse more free Claude skills or everything in Development.