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".
What this skill does
# 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)
### Step 6: Self-Validation
Before presenting output, verify:
- [ ] EPC calculation correct: revenue ÷ clicks
- [ ] Conversion rate percentages are accurate
- [ ] Revenue shares across programs sum to ~100%
- [ ] Labels match metrics: Star (high EPC + growth), Cash Cow (high revenue + stable), Question Mark (low data), Dog (declining)
- [ ] Recommendations are specific and reference concrete next steps
If any check fails, fix the output before delivering. Do not flag the checklist to the user — just ensure the output passes.
## Output Schema
```yaml
output_schema_version: "1.0.0" # Semver — bump major on breaking changes
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
- `references/benchmarks.md` — KPI benchmarks by channel, program label thresholds, conversion rate benchmarks, timeline expectations, S1 scoring feedback loop
- `shared/references/affilRelated in Ads & Marketing
ads
IncludedMulti-platform paid advertising audit and optimization skill. Analyzes Google, Meta, YouTube, LinkedIn, TikTok, Microsoft, and Apple Ads. 250+ checks with scoring, parallel agents, industry templates, and AI creative generation.
banana
IncludedAI image generation Creative Director powered by Google Gemini Nano Banana models. Use this skill for ANY request involving image creation, editing, visual asset production, or creative direction. Triggers on: generate an image, create a photo, edit this picture, design a logo, make a banner, visual for my anything, and all /banana commands. Handles text-to-image, image editing, multi-turn creative sessions, batch workflows, and brand presets.
rpg-migration-analyzer
IncludedAnalyzes legacy RPG (Report Program Generator) programs from AS/400 and IBM i systems for migration to modern Java applications. Extracts business logic from RPG III/IV/ILE source code, identifies data structures (D-specs), file operations (F-specs), program dependencies (CALLB/CALLP), and converts RPG constructs to Java equivalents. Generates migration reports, complexity estimates, and Java implementation strategies with POJO classes, JPA entities, and service methods. Use when modernizing AS/400 or IBM i legacy systems, analyzing RPG source files (.rpg, .rpgle, .RPGLE), converting RPG to Java, mapping data specifications to Java classes, planning legacy system migration, or when user mentions RPG analysis, Report Program Generator, RPG III/IV/ILE, AS/400 modernization, IBM i migration, packed decimal conversion, or mainframe application rewrite.
brand-library-architect
IncludedBuild a complete brand library for a product — visual asset render pipeline, brand documentation set (BRAND, COPY, MANIFESTO, BIOS, FAQ, GLOSSARY, TONE, PRICING), open-source convention files (README, CONTRIBUTING, SECURITY, CODE_OF_CONDUCT), and a self-contained press kit. This skill should be used when the user asks to "build a brand library / brand kit / press kit / brand assets" for a product, "set up a brand library workflow," "create a positioning manifesto plus visual identity," or any combination of brand documentation + visual asset pipeline. Apply phase-by-phase or run end-to-end. Templates are product-agnostic and use {{TOKEN}} placeholders the skill prompts the user to fill.
writing-tech-post
IncludedAuthors engineering blog posts end-to-end: launch deep-dives, incident postmortems, architecture migrations, performance case studies, tutorials, AI/agent system writeups, security disclosures, and research-to-product translations. Picks the correct archetype, plans the abstraction ladder, enforces an evidence cadence (diagrams, benchmarks, profiles, traces, code, ablations), tunes voice against publisher house styles (Datadog, Vercel, GitHub, AWS, Meta, Cloudflare, Jane Street), and runs a pre-publish gate for narrative momentum and disclosure ethics. Use when drafting a new engineering post, restructuring a draft that feels flat, deciding which evidence form belongs where, validating that depth and product context are balanced, or preparing a postmortem, migration, or performance narrative for external publication. Do not use for API reference documentation, README authoring, marketing copy, release notes, generic SEO content, ghost-written executive thought leadership, or non-engineering long-form essays.
blog-google
IncludedGoogle API integration for blog performance: PageSpeed Insights, CrUX Core Web Vitals with 25-week history, Search Console performance, URL Inspection, Indexing API, GA4 organic traffic, NLP entity analysis for E-E-A-T, YouTube video search for embedding, and Google Ads Keyword Planner. Progressive feature availability based on credential tier (API key, OAuth/service account, GA4, Ads). Shares config with claude-seo at ~/.config/claude-seo/google-api.json. Use when user says "google data", "page speed", "core web vitals", "search console", "indexation", "GA4", "keyword research", "nlp entities", "blog performance", "youtube search", "google api setup".