From outreach-superpower
Use when the user wants to explain my metrics, understand what's working, diagnose a drop in opens, analyze my campaigns, interpret my sequence stats, see a performance report, or get an analytics summary. Triggers on "explain my metrics," "what's working," "why did opens drop," "interpret my sequence stats," "analyze my campaigns," "what should I A/B test next," "diagnose drop in opens," "performance report," "analytics summary." Pulls live sequence/account data via Saleshandy MCP, computes 30-day baselines, flags anomalies (>1 stddev or >20% relative change), generates hypotheses, suggests A/B tests. Writes analytics-snapshot-YYYY-MM-DD.md. Read-only.
How this skill is triggered — by the user, by Claude, or both
Slash command
/outreach-superpower:analytics-interpreterThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Read live Saleshandy analytics, compare to baseline, surface what changed, generate root-cause hypotheses, and propose 1-3 A/B tests prioritized by expected lift. This skill is read-only - it never modifies sequences, prospects, or accounts.
Read live Saleshandy analytics, compare to baseline, surface what changed, generate root-cause hypotheses, and propose 1-3 A/B tests prioritized by expected lift. This skill is read-only - it never modifies sequences, prospects, or accounts.
--sequence <id or name> - restrict analysis to one sequence (default: all active sequences).--account <id or email> - restrict analysis to one sending account.--days N - lookback window for the current period (default: 7 days for diagnostics, 30 for full reports).--baseline-days N - rolling window for the baseline calculation (default: 30 days, ending where the current window starts).outreach-workspace/<campaign>/analytics-snapshot-YYYY-MM-DD.md (UTC date). One snapshot per run. If two runs happen on the same UTC day, suffix -2, -3, etc.Default campaign: default. If user invocation includes --campaign <name>, use that. Full rule: see using-outreach-superpower.
crm-operations or directly in Saleshandy.All tools live in the Saleshandy MCP server.
list_sequences - enumerate sequences (filter to active for the current period).get_sequence_stats - per-sequence performance: open rate, click rate, reply rate, unsubscribe rate, bounce rate, per step.get_consolidated_stats - org-level rollup: total sends, opens, replies, bounces, broken out by sequence and sending account.get_email_account_stats - per-account: daily send count, bounce rate, complaint rate, warmup reply rate.Set two windows before pulling data:
--days N (default 7 for "why did X drop" intent, 30 for general reports). Anchored to "now" in UTC.--baseline-days N ending where the current window starts (default 30 days). E.g., if current is days 0-6, baseline is days 7-36.State both windows in the chat header so the user can confirm the scope.
Call MCP tools in this order. Surface any error verbatim - do not fabricate a baseline if a call fails.
list_sequences - get all active sequences. Apply --sequence filter if set.get_sequence_stats per active sequence, for BOTH windows.get_consolidated_stats - org-level rollup for both windows.get_email_account_stats per account (parallel if possible), for both windows.Output a one-line scope summary:
Reading N sequences and M accounts. Current window: -. Baseline: -.
For each metric (open rate, reply rate, positive reply rate, click rate, bounce rate, unsubscribe rate), per sequence and per account:
An anomaly meets ANY of these conditions:
Absolute-delta floor. To suppress false positives on low-base-rate metrics (a 1-stddev change in a 0.1% unsubscribe rate is noise, not signal), suppress anomalies where the absolute delta is below: bounce 0.5pp, unsubscribe 0.3pp, click 0.5pp, open 2pp, reply 0.5pp (pp = percentage points). The relative threshold still applies for changes above the floor.
Direction matters. A drop in opens is an anomaly. A spike in opens is also an anomaly (could be a deliverability shift, a fixed bug, or a tracking pixel issue worth understanding).
For each anomaly, walk the decision tree to propose hypotheses. Cite which step in the tree fired.
Open rate dropped:
Open rate spiked:
Reply rate dropped, opens stable:
Reply rate spiked, opens stable:
Bounce rate spiked:
operations-audit)?Unsubscribe rate spiked:
Positive sentiment dropping (replies still coming):
For each anomaly, suggest 1-3 A/B tests only if the hypothesis is testable via a sequence variant or setting change. Format:
A/B test #1: <name>
Variable: <what changes> (e.g., subject line, send time, body framing, CTA)
Variant A: <current state>
Variant B: <proposed change with specific text or setting>
Success: <metric to watch> (e.g., open rate, reply rate)
Minimum sample: <sample size for confidence, typically 200-500 sends per variant>
Estimated lift: <if any prior pattern suggests one; otherwise "unknown - measure first">
Cap suggestions at 3 across the whole snapshot. Prioritize by:
Pair every reported metric with its benchmark band so the user can interpret. Bands per references/email-account-health.md and references/inbox-radar.md:
| Metric | Excellent | Good | Needs attention | Broken |
|---|---|---|---|---|
| Open rate | >50% | 35-50% | 20-35% | <20% |
| Reply rate | >5% | 3-5% | 1-3% | <1% |
| Positive reply rate | >60% of replies | 40-60% | 20-40% | <20% |
| Click rate | >3% (if tracking on) | 1-3% | 0.5-1% | <0.5% |
| Bounce rate | <0.5% | 0.5-1% | 1-3% | >3% |
| Unsubscribe rate | <0.5% | 0.5-1% | 1-2% | >2% |
State both the value and the band: "Open rate is 28% (needs attention, 20-35% band)."
Use the format below. UTC date for the filename.
Open with a one-sentence verdict that connects the dots. Then list up to 5 anomalies in priority order. Then list up to 3 A/B test suggestions. Close with a chaining recommendation (e.g., "Run operations-audit to investigate the bounce spike," or "Run email-auditor on Step 1 copy if you want a creative critique").
analytics-snapshot-YYYY-MM-DD.md format---
snapshot_at: YYYY-MM-DDTHH:MMZ
campaign: <campaign>
current_window: { from: <date>, to: <date>, days: N }
baseline_window: { from: <date>, to: <date>, days: N }
scope:
sequences: <count or list>
accounts: <count or list>
verdict: "<one-sentence verdict>"
anomaly_count: <N>
ab_tests_suggested: <N>
---
# Analytics Snapshot - <campaign> - YYYY-MM-DD
## Verdict
<one sentence>
## Scope
- Sequences: <list>
- Accounts: <list>
- Current window: <date>-<date> (<N> days)
- Baseline window: <date>-<date> (<N> days)
- Note: Saleshandy counts Opens/Replies/Clicks cumulatively through today regardless of the date filter. Engagement numbers may include events that occurred after the window end.
## Headline numbers
| Metric | Current | Baseline | Delta | Band | Notes |
|---|---|---|---|---|---|
| Open rate | <%> | <%> | <+/- %> | <band> | <if anomaly> |
| Reply rate | <%> | <%> | <+/- %> | <band> | |
| Positive reply rate | <%> | <%> | <+/- %> | <band> | |
| Bounce rate | <%> | <%> | <+/- %> | <band> | |
| Unsubscribe rate | <%> | <%> | <+/- %> | <band> | |
## Anomalies (priority order)
### 1. <anomaly title>
- **Scope:** <sequence name or "all sequences" or per-account>
- **Metric:** <metric>
- **Current:** <value> (<band>)
- **Baseline:** <value> over <N> days
- **Delta:** <relative %> (<absolute>)
- **z-score:** <value>
- **Hypotheses:**
1. <hypothesis with specific next check>
2. <hypothesis with specific next check>
- **Suggested next:** <skill chain or A/B test reference>
### 2. <next anomaly>
(same structure)
## A/B test suggestions
### Test 1: <name>
- **Variable:** <what changes>
- **Variant A:** <current>
- **Variant B:** <proposed, with specific copy or setting>
- **Success metric:** <which metric>
- **Minimum sample:** <N sends per variant>
- **Estimated lift:** <if any>
### Test 2: <name>
(same)
## What's working
(call out healthy signals so user doesn't break what's not broken)
- <healthy metric 1 with band>
- <healthy metric 2 with band>
## Derived insights
| Insight | Value | What it means |
|---|---|---|
| Reply-to-open ratio | <%> | Body copy quality (once opened, do they reply?) |
| Meeting-to-reply ratio | <%> | Reply handling quality (where applicable) |
| Pipeline per prospect | $<X> | Revenue efficiency (where deal values populated) |
## Recommended next
- <chained skill or action>
- <chained skill or action>
inconclusive in the snapshot. Do NOT estimate or interpolate.-2, -3. Never overwrite.get_consolidated_stats and get_sequence_stats disagree on a number: prefer sequence-level for per-sequence findings, consolidated for org rollup. Cite which one was used.get_email_account_stats returns plan-limit error: skip the account-level phase, surface the limit, recommend upgrade. Don't estimate around it.Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Applies a firm's KYC/AML rules grid to parsed onboarding records: assigns risk rating, checks required documents, outputs rule outcomes with citations, and routes for escalation.
Generates daily or weekly digests of activity from connected sources (chat, email, docs, tasks, CRM), highlighting action items, decisions, mentions, and project updates.
npx claudepluginhub saleshandy/outreach-superpower --plugin outreach-superpower