Skip to content
Marketing
Skill

/revenue-audit

Audit an email marketing program for revenue leaks — missing flows, dormant high-value subscribers, under-segmentation, promo gaps, stale automations — ranked by estimated $ impact

From plugin
claude-code-marketing-skills
10251 skills
Install
$ npx -y skills add cognyai/claude-code-marketing-skills --skill revenue-audit --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/revenue-audit

Context preview

The summary Claude sees to decide when to auto-load this skill.

Audit an email marketing program for revenue leaks — missing flows, dormant high-value subscribers, under-segmentation, promo gaps, stale automations — ranked by estimated $ impact

SKILL.md

revenue-audit.SKILL.md
name: revenue-audit
description: Audit an email marketing program for revenue leaks — missing flows, dormant high-value subscribers, under-segmentation, promo gaps, stale automations — ranked by estimated $ impact
version: "1.0.0"
author: Cogny AI
requires: cogny-mcp
platforms: [klaviyo, mailchimp, rule, get-a-newsletter]
user-invocable: true
argument-hint: ""
allowed-tools:
  # Cogny Cloud (aggregated) namespace
  - mcp__cogny__klaviyo__*
  - mcp__cogny__mailchimp__*
  - mcp__cogny__rule__*
  - mcp__cogny__get_a_newsletter__*
  - mcp__cogny__create_finding
  - mcp__cogny__write_context_node
  - mcp__cogny__read_context_node
  # Cogny Solo / Lite (per-ESP direct) namespace
  - mcp__klaviyo__*
  - mcp__mailchimp__*
  - mcp__rule__*
  - mcp__get_a_newsletter__*
  - WebFetch
  - Bash
  - Read
  - Write

Revenue Audit

The "email growth consultant in a box." Scans your connected ESP for the revenue sitting on the table and ranks every finding by estimated dollar impact, so you know exactly what to fix first.

**Requires:** Cogny MCP + a connected ESP. [Sign up](https://cogny.com)

This is the skill to run once per quarter, or whenever you inherit an email program and need to know where to start.

Usage

`/revenue-audit` — full audit of the connected ESP

Prerequisites Check

Detect connected ESP (check both `mcp__cogny__<svc>__*` and `mcp__<svc>__*` namespaces). If the user has multiple connected, run against each and produce separate reports.

**Revenue data availability (cogny-mcp-proxy as of this writing):**

| ESP | Has flows/automations? | Has purchase/revenue data? | |-----|------------------------|----------------------------| | Klaviyo | ✓ (`list_flows`) | ✓ (via `list_events` with metric="Placed Order", `value` field) | | Mailchimp | ✓ (`tool_list_automations`) | ✗ — engagement only | | Rule | ✓ (`tool_list_journeys`) | ✗ — engagement only | | Get a Newsletter | ✗ — no flow concept exists | ✗ — engagement only |

For non-Klaviyo ESPs, revenue estimates must be either (a) supplied by the user (paste historical email revenue), or (b) flagged as "engagement uplift only" with no dollar figures.

Steps

1. Establish baseline context

Pull once and reference throughout:

  • Total active subscribers
  • Average open rate + CTR (last 90 days)
  • **Klaviyo only:** Total email revenue (last 90 days) via `list_events` with `metric="Placed Order"`, summed `value` field, filtered to events attributed to email campaigns. This is the denominator for every % impact claim.
  • **Klaviyo only:** Average AOV (total revenue / order count in period)
  • List growth rate (last 90 days)
  • Active flows / automations / journeys and their performance (Klaviyo / Mailchimp / Rule only — Get a Newsletter has no equivalent)
  • Last 90 days of campaign sends

**If connected ESP is Mailchimp, Rule, or Get a Newsletter:** prompt the user for their approximate 90-day email revenue (or let them skip it). If they skip, use **estimated value per subscriber per month** = (industry benchmark $0.10–$2.00 depending on vertical) as a rough denominator, and clearly label every revenue estimate as "based on industry benchmark, not your actual data."

2. Run the nine checks

For each check, output: **finding title + estimated $ lift + evidence + recommended fix**.

Check 1 — Missing core flows / automations / journeys

Map "flow" to the right concept per ESP:

| ESP | Object | Tool | |-----|--------|------| | Klaviyo | Flow | `list_flows` + `get_flow` | | Mailchimp | Automation / Customer Journey | `tool_list_automations` + `tool_get_automation` | | Rule | Journey | `tool_list_journeys` | | Get a Newsletter | **No equivalent** — skip this check and note the limitation |

The highest-ROI flows and their typical revenue contribution in healthy ecom programs (Klaviyo benchmarks):

| Flow | Typical % of email revenue | Trigger | |------|---------------------------|---------| | Welcome series | 3–7% | New subscriber | | Abandoned cart | 5–12% | Cart created, not checked out | | Browse abandonment | 1–3% | Product viewed, no cart | | Post-purchase | 2–5% | Order placed | | Winback | 1–4% | No engagement in 60-120d | | Replenishment | 2–6% (consumables only) | Predicted reorder date | | Birthday / anniversary | 0.5–2% | Date token match | | VIP / thank-you | 1–3% | Top-tier LTV crossed |

For each missing or disabled flow, estimate lift: `total_email_revenue × benchmark_%` as the annualized $ left on the table (Klaviyo). For Mailchimp/Rule/Get a Newsletter without revenue data, frame the impact as engagement uplift (e.g., "typically adds X–Y% to total email engagement volume") and skip the dollar estimate unless the user provided a revenue baseline.

Check 2 — Dormant high-value subscribers (Klaviyo only)

Segment current active list by:

  • **Ever purchased** × **engaged in last 60 days**

Pull purchase history via `list_events` with `metric="Placed Order"`. Group by `profile_id`, take max `value` sum per profile as LTV. Cross-reference against `list_profiles` last-engaged date.

Count subscribers who have purchased at least once but haven't opened/clicked in 60+ days. Estimate: `count × avg_AOV × 3% reactivation rate × 2 orders/year = annualized recoverable revenue`

**For Mailchimp / Rule / Get a Newsletter:** purchase data is not exposed. Degrade this check to "dormant deeply-engaged subscribers" — pull subscribers with high historical open+click counts who haven't engaged in 60+ days, present as engagement-uplift opportunity without a dollar figure.

Check 3 — Under-segmented broadcasts

Scan last 90 days of campaign sends. For each campaign, check if it was sent to:

  • **"All subscribers" / full list** (bad default)
  • **A meaningful segment** (engaged, purchased, category-preference, geography)

Flag any campaign sent to >80% of list where segmentation would plausibly apply. Estimate lift: `(segment_ctr - broadcast_ctr) / broadcast_ctr × revenue_of_that_campaign × number_of_similar_sends_per_year`.

Read more
Ships withclaude-code-marketing-skills

AI marketing skills for Claude Code, Cursor, Windsurf, and other AI coding tools. Audit SEO, analyze ads, research competitors, qualify leads — all from your terminal. Free skills need no account. Premium skills connect your real data for $9/mo.

Get the whole plugin
Stats
102
Stars
12
Forks
Maintained
Maintenance
HTML
Language
3mo ago
Last commit
5mo ago
Created

Repo: cognyai/claude-code-marketing-skills