/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 ↗

Use now

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

indranilbanerjee/main1 file shown
SKILL.md
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'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).

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

  1. 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.
  2. Detect connected analytics MCPs: Check .mcp.json and 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.
  3. 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
  4. 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
  5. Calculate KPIs vs targets: Compare actuals to targets from profile.json goals — flag green (on track or exceeding), yellow (within 10% of target), or red (missing by >10%). Include absolute and percentage variance for each KPI.
  6. 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.
  7. Benchmark against industry: Reference skills/context-engine/industry-profiles.md for the brand's industry to contextualize performance relative to category averages. Flag metrics significantly above or below industry norms.
  8. 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.
  9. 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".
  10. 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.
  11. 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---
2name: performance-check
3description: "Check live performance KPIs from connected analytics: RAG status, trends, actions. \"quick performance snapshot\""
4user-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 
13Pull 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 
19The 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 
321. **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.
332. **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.
363. **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
434. **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
455. **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.
476. **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.
497. **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.
518. **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.
549. **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".
5710. **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.
5911. **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 
65A 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

Creative performance analysisDiagnose why a specific ad creative is winning or losing using the generalized hook-hold-click-convert funnel, applicable across any platform. Triggers on 'why is this ad underperforming', 'diagnose my creative', or 'where in the funnel is this ad failing'. Platform-agnostic diagnostic framework — platform-specific versions (meta-ads-creative-analytics) apply this with platform-native metrics.Coding · MITProfessional Full-Stack Developer for Network Mapping & Monitoring ApplicationAct as a professional full-stack developer tasked with building a web application for mapping and monitoring networks using Mikrotik Netwatch API. Implement multi-user role-based management to handle devices, monitor their status, and manage user subscriptions.Coding · CC0-1.0Constraint driven developmentEstablishes a project's quality bar as a written contract and stops agents quietly lowering it. Interviews the user on which dimensions matter, supplies sane default thresholds when they have no number in mind, records everything in CONSTRAINTS.md, and watches the diff for a weakened bar — new @ts-ignore or eslint-disable suppressions, skipped or deleted tests, assertions stripped out, unimplemented stubs, thresholds edited down. Use when no quality bar is written down, when the user says "set up constraints" or "define our standards", when the user wants dimensions they care about — accessibility, web performance, coverage — set up as enforced constraints, when an agent keeps silencing checks or skipping tests to get to green, when you need a coverage or performance threshold and don't know what number to pick, or when an agent writes more code than anyone will read.Coding · MITObservability and instrumentationInstruments code so production behavior is visible and diagnosable. Use when adding logging, metrics, tracing, or alerting. Use when shipping any feature that runs in production and you need evidence it works. Use when production issues are reported but you can't tell what happened from the available data.Coding · MIT