performance-report
Generate affiliate performance reports with KPIs and recommendations. Triggers on: "show my affiliate report", "how are my programs doing", "performance review", "earnings report", "monthly affiliate report", "weekly report", "analyze my affiliate earnings", "which program is best", "EPC report", "conversion rate analysis", "revenue breakdown", "campaign performance".
Best use case
performance-report is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Generate affiliate performance reports with KPIs and recommendations. Triggers on: "show my affiliate report", "how are my programs doing", "performance review", "earnings report", "monthly affiliate report", "weekly report", "analyze my affiliate earnings", "which program is best", "EPC report", "conversion rate analysis", "revenue breakdown", "campaign performance".
Teams using performance-report should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/performance-report/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How performance-report Compares
| Feature / Agent | performance-report | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Generate affiliate performance reports with KPIs and recommendations. Triggers on: "show my affiliate report", "how are my programs doing", "performance review", "earnings report", "monthly affiliate report", "weekly report", "analyze my affiliate earnings", "which program is best", "EPC report", "conversion rate analysis", "revenue breakdown", "campaign performance".
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Performance Report
Generate weekly or monthly affiliate performance reports — earnings, clicks, conversions, EPC, top performers, underperformers, and trend analysis. Output is a Markdown report with KPI dashboard, program rankings, and actionable recommendations.
## Stage
S6: Analytics — Data without analysis is just noise. This skill transforms raw affiliate numbers into insights — which programs are worth your time, which are dragging your portfolio down, and where to focus next. Professional affiliates review performance weekly.
## When to Use
- User wants to review their affiliate earnings for a period
- User asks "how are my programs doing?" or "show me my affiliate report"
- User has click/conversion/revenue data and wants analysis
- User wants to compare performance across multiple programs
- User says "weekly report", "monthly report", "earnings breakdown"
- Chaining from S6.1 (conversion-tracker) — analyze the data those links collected
## Input Schema
```yaml
programs:
- name: string # REQUIRED — program name (e.g., "HeyGen")
clicks: number # OPTIONAL — total clicks this period
conversions: number # OPTIONAL — total conversions
revenue: number # OPTIONAL — total commission earned ($)
commission: number # OPTIONAL — commission per sale ($)
spend: number # OPTIONAL — money spent on ads/promotion ($)
period: string # OPTIONAL — "week" | "month" | "quarter"
# Default: "month"
goals:
revenue_target: number # OPTIONAL — target revenue for the period ($)
conversion_target: number # OPTIONAL — target conversions
previous_period: # OPTIONAL — last period's data for trend analysis
- name: string
clicks: number
conversions: number
revenue: number
notes: string # OPTIONAL — context about the period
# (e.g., "launched new blog post week 2")
```
**Chaining context**: If S1 program data or S6.1 tracking data exists in conversation, pull program names and any available metrics.
## Workflow
### Step 1: Collect Program Data
Gather data from user input. If data is incomplete, work with what's available and note gaps:
- "You provided revenue but not clicks — I can calculate revenue per program but not EPC or conversion rate."
### Step 2: Calculate KPIs
For each program:
- **EPC** (Earnings Per Click): revenue / clicks
- **Conversion Rate**: conversions / clicks × 100
- **Revenue Share**: program revenue / total revenue × 100
- **CPA** (Cost Per Acquisition): spend / conversions (if spend provided)
- **ROAS** (Return on Ad Spend): revenue / spend (if spend provided)
- **Commission Per Sale**: revenue / conversions
Portfolio-level:
- **Total Revenue**: sum of all program revenue
- **Blended EPC**: total revenue / total clicks
- **Blended Conversion Rate**: total conversions / total clicks × 100
- **Top Performer**: highest EPC program
- **Underperformer**: lowest EPC program
### Step 3: Rank Programs
Sort programs by ROI efficiency:
1. EPC (primary sort)
2. Total revenue (secondary)
3. Conversion rate (tertiary)
Assign labels:
- **Star**: High EPC + high volume → double down
- **Cash Cow**: Moderate EPC + high volume → maintain
- **Question Mark**: High EPC + low volume → scale up
- **Dog**: Low EPC + low volume → consider dropping
### Step 4: Identify Trends
If `previous_period` data is provided:
- Revenue trend: up/down/flat (with percentage)
- Click trend: up/down/flat
- Conversion trend: up/down/flat
- Per-program trends
### Step 5: Generate Recommendations
Based on data:
- **Double down**: Programs with high EPC that need more traffic
- **Optimize**: Programs with high traffic but low conversion (content issue)
- **Phase out**: Programs with low EPC and low volume
- **Investigate**: Programs with unusual patterns (sudden drops)
## Output Schema
```yaml
report:
period: string
total_revenue: number
total_clicks: number
total_conversions: number
blended_epc: number
blended_conversion_rate: number
goal_progress: string # "on_track" | "behind" | "ahead" | "no_goal"
programs:
- name: string
clicks: number
conversions: number
revenue: number
epc: number
conversion_rate: number
revenue_share: number # percentage of total
label: string # "star" | "cash_cow" | "question_mark" | "dog"
trend: string # "up" | "down" | "flat" | "new"
recommendations:
- program: string
action: string # "double_down" | "optimize" | "phase_out" | "investigate"
reason: string
next_step: string # specific action to take
```
## Output Format
1. **KPI Dashboard** — summary table with total revenue, clicks, conversions, blended EPC
2. **Program Rankings** — table sorted by EPC with labels (Star/Cash Cow/Question Mark/Dog)
3. **Trend Analysis** — period-over-period comparison (if previous data provided)
4. **Recommendations** — prioritized list of actions per program
5. **Goal Progress** — progress toward targets (if goals provided)
## Error Handling
- **No data provided**: "I need your affiliate numbers to generate a report. At minimum, provide: program names and revenue. Ideally also clicks and conversions. You can get these from your affiliate dashboard or tracking tool."
- **Only one program**: Generate the report for one program. Note: "With only one program, I can't do comparative analysis. Consider adding more programs to diversify. Use S1 (affiliate-program-search) to find complementary programs."
- **Missing clicks (revenue only)**: "Without click data, I can rank programs by revenue but can't calculate EPC or conversion rate. EPC is the most important affiliate metric — consider setting up tracking with S6.1 (conversion-tracker)."
## Examples
### Example 1: Monthly multi-program report
**User**: "Monthly report: HeyGen — 500 clicks, 15 conversions, $450. Semrush — 1200 clicks, 8 conversions, $320. Notion — 300 clicks, 25 conversions, $125."
**Action**: Calculate KPIs. HeyGen: EPC $0.90, CR 3.0% (Star). Semrush: EPC $0.27, CR 0.7% (Question Mark — high traffic, low conversion). Notion: EPC $0.42, CR 8.3% (Cash Cow — high conversion, low revenue per sale). Recommend: Scale HeyGen traffic, optimize Semrush content (CTAs, landing page), maintain Notion.
### Example 2: Week-over-week comparison
**User**: "This week vs last week: HeyGen clicks went from 100 to 150, but conversions dropped from 5 to 3."
**Action**: Flag conversion rate drop (5% → 2%). Diagnose: more traffic but lower quality? New traffic source? Landing page change? Recommend: Check traffic sources, run S6.4 (seo-audit) on landing page, test CTAs with S6.2 (ab-test-generator).
### Example 3: Revenue-only report
**User**: "My programs last month: HeyGen $450, Semrush $320, Notion $125, Canva $80."
**Action**: Revenue-only analysis. Total $975. Revenue share: HeyGen 46%, Semrush 33%, Notion 13%, Canva 8%. Note concentration risk (79% from 2 programs). Recommend: Set up click tracking (S6.1) for deeper analysis, consider diversifying with S1 research.
## References
- `shared/references/affiliate-glossary.md` — KPI definitions (EPC, CTR, ROAS). Referenced in Step 2.Related Skills
performance-profiler
Profile, benchmark, and identify performance bottlenecks in applications — CPU, memory, network, rendering, and database query performance
performance-budget
Performance budgets — bundle size limits, LCP/FID/CLS targets, lighthouse CI, size-limit, bundlephobia
ultrathink
UltraThink Workflow OS — 4-layer skill mesh with persistent memory and privacy hooks for complex engineering tasks. Routes prompts through intent detection to activate the right domain skills automatically.
ultrathink_review
Multi-pass code review powered by UltraThink's quality gate — checks correctness, security (OWASP), performance, readability, and project conventions in a single structured pass.
ultrathink_memory
Persistent memory system for UltraThink — search, save, and recall project context, decisions, and patterns across sessions using Postgres-backed fuzzy search with synonym expansion.
ui-design
Comprehensive UI design system: 230+ font pairings, 48 themes, 65 design systems, 23 design languages, 30 UX laws, 14 color systems, Swiss grid, Gestalt principles, Pencil.dev workflow. Inherits ui-ux-pro-max (99 UX rules) + impeccable-frontend-design (anti-AI-slop). Triggers on any design, UI, layout, typography, color, theme, or styling task.
Zod
> TypeScript-first schema validation with static type inference.
webinar-registration-page
Build a webinar or live event registration page as a self-contained HTML file with countdown timer, speaker bio, agenda, and registration form. Triggers on: "build a webinar registration page", "create a webinar sign-up page", "event registration landing page", "live training registration page", "workshop sign-up page", "create a webinar page", "build an event page", "free webinar landing page", "live demo registration page", "online event page", "create a registration page for my webinar", "build a training event page".
webhooks
Webhook design patterns — delivery, retry with exponential backoff, HMAC signature verification, payload validation, idempotency keys
web-workers
Offload heavy computation from the main thread using Web Workers, SharedWorkers, and Comlink — structured messaging, transferable objects, and off-main-thread architecture patterns
web-vitals
Core Web Vitals monitoring (LCP, FID, CLS, INP, TTFB), measurement with web-vitals library, reporting to analytics, and optimization strategies for Next.js
web-components
Native Web Components, custom elements API, Shadow DOM, HTML templates, slots, lifecycle callbacks, and framework-agnostic design patterns