
affiliate-performance-dashboard
Define the metric set and layout for an affiliate performance dashboard, delivered as a dashboard specification document - metric definitions with explicit formulas, views per audience, refresh and review cadence, and alert thresholds for top affiliates, conversion by source, and program ROI. Covers B2B SaaS recurring revenue-share and B2C ecommerce order-level CPA programs. Use whenever the user mentions affiliate program reporting, affiliate KPIs, affiliate ROI, revenue concentration, or what to put on an affiliate dashboard, even if they never say dashboard. Specifies metrics, never builds them in a BI tool. Do NOT use for one creator campaign's measurement plan - use mbfinotti/partnerships-skills@influencer-measurement-framework instead.
- Installs
- 13.9K
- Last 24h
- +502
- Trending rank
- #685
- Security
- Pass
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/mbfinotti/partnerships-skills --skill affiliate-performance-dashboard- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads affiliate-performance-dashboard automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
Security audits
Independent scans of the skill's instructions and bundled files.
SKILL.md
The instructions your agent reads when the skill is triggered.
Affiliate Performance Dashboard
Define what an affiliate program dashboard measures and how it is laid out, then deliver a dashboard specification document. The spec - not a built dashboard - is the artifact: whoever owns the BI tooling implements it from the spec.
No canonical affiliate-dashboard framework exists, and metric definitions are not standardized: no standards body enforces them, IAB and the PMA publish guidance only. Say this plainly to the user; never present a branded framework that does not exist.
The method borrows four established things and nothing else:
- Incrementality measurement, via holdout and geo-lift testing, resting on explicit definitions of incrementality, baseline conversions, and model validation.
- Attributed ROAS vs attributed ROI split, where ROAS divides attributed revenue by media cost and ROI divides it by media cost plus COGS.
- Sourced vs influenced separation rule.
- Tiered metric hierarchy plus good-metric criteria, from Croll & Yoskovitz's Lean Analytics: a metric must be comparative, a ratio or rate, understandable, and behavior-changing.
The platform glossary behind the first two definitions is named in references/metric-definitions.md, not here; the definitions are the skill's operative ones regardless of which platform the program runs on.
Ground Rules
- Report validated/approved commission and net revenue, never gross - gross is the bigger number and the most-named practitioner error.
- Give every metric a one-sentence definition naming numerator, denominator, window, timezone, and counting method. A definition that cannot fit one sentence is theater.
- Provenance-tag every benchmark: vendor, trade body, synthesis, or the program's own derived baseline. Nearly all published affiliate benchmarks come from parties with an incentive to inflate the channel.
- Never sum partner-sourced and partner-influenced revenue; report them as two separate, capped numbers.
- Never compare two periods with different validation windows - reversal lag makes the recent one look artificially good.
- Keep fraud and compliance signals on the same view as performance, never in a separate tool - daily decision-makers need both at once.
Interview
Ask before specifying anything, following these rules:
-
One question per message.
-
Multiple-choice where possible.
-
Skip anything already answered.
-
B2B SaaS, B2C ecommerce, or both?
-
Program size and maturity: active partner count, monthly commission spend, program age?
-
Who reads the dashboard - executive, operator, or both - and what decision should it drive?
-
Commission model, and is any of it recurring?
-
Validation/locking window length and clawback policy?
-
Attribution model and cookie window?
-
Which data sources exist - affiliate platform, billing/orders, CRM, warehouse - and does the partner ID reach billing or orders at all?
-
Is partner type / promotional method captured per partner?
-
Is new-vs-returning customer captured per conversion?
-
Refresh capability and tooling constraints - live queries, daily batch, manual export?
-
Current pain: what question can the program not answer today?
-
Reporting cadence today, and which review meetings already exist?
-
By what date must the first version be in front of its readers?
-
One-off win - settle one contested question now - or a compounding asset the program is run from every week?
-
Effort ceiling: analyst hours available, who owns the data join, and whether standing maintenance is fundable at all?
Those last three answers re-rank every option menu in this skill and its references. Say out loud which answer moved which option:
- A near date pins the spec to the orders spine and deletes every metric needing a join that does not exist yet.
- A compounding mandate promotes the customer-file join, cohort views, and churn-adjusted partner LTV.
- A thin effort ceiling deletes the modeled warehouse, the brand-bidding alert, and the creative slice outright rather than parking them at the bottom of the spec.
Every ranking here is a default, not a law - it shifts with context and with who executes it. Re-rank against what you already know about this user: a network that exports partner classification cleanly, a warehouse already loaded with billing and CRM, or no analyst at all each move different rungs.
Workflow
-
Run the Interview; collect every answer the spec depends on.
-
Fix the source of truth and write the comparability contract - event definition, date basis, timezone, currency, counting method - before specifying any metric. Every later number inherits these choices; changing them afterwards invalidates all history. Three data foundations compete here, ranked by value per unit of effort, where effort is reconciliation work and standing maintenance:
- efficiency:
billing/orders spine > customer-file join > modeled warehouse - value:
modeled warehouse > customer-file join > billing/orders spine - effort (most first):
modeled warehouse > customer-file join > billing/orders spine
Three costs distinguish these foundations:
- The spine: a day or two of reconciling the platform export against orders or billing, then near-zero standing cost.
- The customer-file join: a month or two, because the partner ID has to be stamped at order or account creation before new-to-file and sourced-vs-influenced are computable at all.
- The modeled warehouse: a standing job.
Default to the spine and climb only when a named decision needs it.
Deleted, not demoted: the affiliate platform's own export as source of truth. Those are the claimant's numbers, so no effort saving redeems them; the platform stays the source for clicks and traffic, reconciled to the money spine.
What this order starves is the modeled warehouse: highest value, loses every round. Promote it when the program's live question is incrementality rather than reporting, or when one repricing decision moves more money than the build costs.
- efficiency:
-
Select the metric tier set: business/headline tier, input/driver tier, health/guardrail tier.
Four metrics are floor rather than choice, because the Pass Threshold cannot be met without them:
- Net program contribution
- Cost of sale
- Top-N partner concentration
- Partner-sourced MRR/ARR in B2B
Everything beyond that floor is a menu: take the top rungs of your segment's efficiency order in references/metric-definitions.md, which ranks B2B and B2C separately and names what each order starves. Reject any metric failing the four good-metric criteria, and stop adding rungs before the dashboard shows everything and therefore nothing. Delete every metric whose data the Interview says does not exist, naming it under Open items instead of leaving it in the spec as a wish.
-
Write each metric's spec row (see Output Shape), resolving every competing definition explicitly - the chosen numerator, denominator, window, and counting method go in the row, not in anyone's head.
-
Choose the slicing dimensions the program's data can actually support, in the efficiency order of references/layout-cadence-and-alerts.md:
partner > partner type > product/plan > geography > device > landing page > creative. Partner type is not the cheapest slice and is the one that pays - build it anyway. -
Lay out one view per audience: executive and operator views differ in metrics, not just detail level.
-
Set refresh and review cadence per tier - each tier has its own natural rhythm; one refresh rate for the whole dashboard is a defect.
-
Set alert thresholds, each with an owner, a channel, and an expected response time; prefer rolling-baseline dynamic thresholds over static ones. Ship them in the efficiency order of references/layout-cadence-and-alerts.md -
reversal-rate spike > single-partner share spike > click-to-conversion anomaly > EPC drop > brand-bidding flag- and stop when the team's attention runs out rather than filling the strip. -
Derive the program's own baselines from its history; adopt no vendor benchmark as a baseline. Published figures calibrate expectations only (references/concentration-and-cohorts.md, references/roi-and-incrementality.md).
-
Validate the spec with the user section by section - definitions, then views, then cadence, then alerts - before assembling the final document. Ground it in a matching worked example from references/worked-examples.md.
-
Check the Pass Threshold below; iterate until every criterion holds.
-
If your harness has persistent memory, memorize the comparability contract, agreed metric definitions, and derived baselines so later runs start from them instead of re-negotiating.
Output Shape
Deliver every spec as this artifact:
DASHBOARD SPEC - <program>
Header : program, audiences, source of truth, period conventions
(timezone, date basis, currency, validation window)
Metrics : one row per metric -
Metric | Definition (formula, window, counting method) | Tier | Source |
Visualization | Target | Alert threshold | Provenance
Views : layout per audience - KPI tiles (value + delta vs stated prior period)
-> trend/composition charts -> leaderboard/detail table -> alert strip
Dimensions: slicing dimensions (partner, partner type/promotional method, product,
geography, device, landing page, creative)
Cadence : tier -> refresh rate + review ritual (who reviews, when, deciding what)
Alerts : register - metric | trigger | owner | channel | expected response time
Open items: data gaps, unconfirmed definitions, metrics and dimensions deleted
because the data or the effort ceiling rules them out, and what would
make each computable; questions for the next revision
Record in the header which data foundation was chosen and what moved it there - a later reader cannot re-derive that choice from the metric rows alone.
Full worked examples live in references/worked-examples.md, never inline.
Pass Threshold
The spec passes only when a program owner can answer at a glance: is this program profitable, and who drives it. Concretely, all six must hold; iterate until they do:
- Every headline number is reproducible from its written formula by someone who did not build the dashboard.
- Net program contribution - validated commission plus network/agency fees against attributed net revenue - is visible without leaving the top view.
- Top-partner concentration is visible on that same top view.
- Every metric on the dashboard has a named decision it informs; drop it otherwise.
- Zero metrics whose definition cannot be stated in one sentence.
- Every metric, dimension and alert that did not make the spec appears under Open items with what would make it computable - nothing was silently parked at the bottom.
B2B SaaS vs B2C Ecommerce
These apply identically to both:
- The comparability contract
- Metric tiering
- Concentration analysis
- Cadence discipline
- Alert design
- Validated-not-gross reporting
What genuinely diverges:
- Revenue object. B2B tracks partner-sourced MRR/ARR and churn-adjusted partner LTV; B2C tracks order-level CPA, AOV, and basket composition.
- Funnel. B2B adds trial-to-paid as a second conversion stage plus deal-registration and MQL/SQL pipeline stages; B2C is click to order, with new-to-file as the extra dimension.
- Windows. B2B cookie windows run 60-180 days for long cycles; B2C defaults to ~30 days, and coupon/cashback traffic runs shorter still.
mbfinotti/partnerships-skills@affiliate-commission-structureowns these ranges - read a window against its numbers, never against a second set stated here. - Reversal driver. B2B: trial failure, refund, downgrade, churn - recurring commission makes reversal a per-cycle event. B2C: returns and chargebacks inside the return window.
Failure Modes
| Defect | Consequence | Fix |
|---|---|---|
| Vanity metrics headline (clicks, impressions, signups) | Dashboard looks busy; informs no decision | Every metric needs a named decision; demote counts to diagnostics |
| Gross commission reported instead of validated | Program looks more expensive and more productive than it is | Headline validated/approved only; show pending separately |
| Last-click-only program ROI | Coupon/cashback/extension partners inflate; content partners starve | Add new-to-file share and incrementality tests; report sourced vs influenced separately |
| No concentration view | One partner's exit erases a large revenue share unseen | Top-1/5/10% share on the executive view, reviewed quarterly |
| Pending and approved states mixed | Totals unreproducible; trends meaningless | Comparability contract fixes the state per metric |
| Reversal lag ignored | Recent periods look artificially good | Compare only fully-validated periods; flag immature ones |
| Periods with different validation windows compared | False trend in either direction | Never compare them; annotate window changes on every chart |
| Sub-network counted as many partners | Partner counts and concentration both distorted | Count one credited entity per conversion; break out sub-networks separately |
| Sourced + influenced summed | Double-counted partner revenue | Two capped numbers; sourced takes precedence when a deal qualifies for both |
| Network/agency fees excluded from cost of sale | True program cost understated | Cost of sale includes commission, network, agency, and placement fees |
| Vendor benchmark adopted as the program's baseline | Targets and alerts miscalibrated in both directions | Derive baselines from the program's own history; tag vendor numbers as calibration only |
| Static alert thresholds | Alert fatigue; team ignores the strip | Rolling-baseline dynamic thresholds with owner, channel, response time |
| Metric with no decision attached | Review meetings recite numbers and decide nothing | Name the decision in the spec row or delete the metric |
These rows carry no efficiency ordering, deliberately. Each is a defect with one fix, not a menu of competing fixes for one problem - ranking them would rank the reader's symptoms rather than their options. Apply every row that matches.
Invocation Examples
- "Our SaaS affiliate program pays 20% recurring across 400 partners. Leadership asks every month whether it's profitable and I can't answer. Spec a dashboard for us."
- "I run an ecommerce affiliate program on last-click and the coupon sites look like heroes. Define the metrics and views for a program dashboard my team reviews weekly."
- "Write an affiliate program KPI spec for a program spending $80K/month in commissions - what we track daily vs monthly, with alert thresholds and owners."
Reference
- Read references/metric-definitions.md when writing metric spec rows - formulas, where credible sources disagree, B2B/B2C variants, provenance.
- Read references/roi-and-incrementality.md when specifying ROI metrics or judging checkout-adjacent partners - test designs, proxies, last-click failure cases.
- Read references/concentration-and-cohorts.md when adding concentration views, lifecycle stages, and recruitment-cohort analysis.
- Read references/layout-cadence-and-alerts.md when laying out views, choosing dimensions, and designing cadence and alerts.
- Read references/worked-examples.md when shaping the deliverable - one B2B SaaS spec, one B2C ecommerce spec, one negative example.
- See
mbfinotti/partnerships-skills@affiliate-payout-auditfor pre-disbursement accuracy of one payout run - this skill tracks the ongoing program, not a run. - See
mbfinotti/partnerships-skills@affiliate-fraud-detectionfor the fraud rule set - this dashboard surfaces its signals but never defines the rules. - See
mbfinotti/partnerships-skills@partner-performancefor B2B channel-partner scorecards and QBR structure - out of scope here. - See
mbfinotti/partnerships-skills@affiliate-program-termsfor the contract clauses behind validation windows and clawbacks.
FAQ
What does the affiliate-performance-dashboard skill do?
Define the metric set and layout for an affiliate performance dashboard, delivered as a dashboard specification document - metric definitions with explicit formulas, views per audience, refresh and review cadence, and alert thresholds for top affiliates, conversion by source, and program ROI. Covers B2B SaaS recurring revenue-share and B2C ecommerce order-level CPA programs. Use whenever the user mentions affiliate program reporting, affiliate KPIs, affiliate ROI, revenue concentration, or what to put on an affiliate dashboard, even if they never say dashboard. Specifies metrics, never builds them in a BI tool. Do NOT use for one creator campaign's measurement plan - use mbfinotti/partnerships-skills@influencer-measurement-framework instead.
How do I install affiliate-performance-dashboard?
Run npx skills add https://github.com/mbfinotti/partnerships-skills --skill affiliate-performance-dashboard in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/affiliate-performance-dashboard/ (personal) or .claude/skills/affiliate-performance-dashboard/ (project).
Which AI agents can use affiliate-performance-dashboard?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is affiliate-performance-dashboard safe to install?
Security partners have reviewed it: Gen Agent Trust Hub passed; Socket passed; Snyk passed. As with any skill, read the SKILL.md and bundled scripts before installing.
Who maintains affiliate-performance-dashboard?
It is published by mbfinotti in mbfinotti/partnerships-skills. It has 13,937 recorded installs.
More from mbfinotti/partnerships-skills
affiliate-payout-audit
mbfinotti/partnerships-skills
Audit an affiliate or partner commission payout run for accuracy before money is disbursed - per-line rate and tier recomputation, double-counted conversions, clawback and validation windows, period cutoff, currency, rounding, and tax-form status, delivered as an audit report with severities and recommended holds. Covers B2B SaaS recurring revenue-share and B2C ecommerce order-level CPA programs. Use whenever the user mentions an affiliate payout audit, commission accuracy, payout reconciliation, overpaid or underpaid affiliates, or a pre-disbursement review, even if they never say audit. Do NOT use for spotting fraudulent affiliates - use mbfinotti/partnerships-skills@affiliate-fraud-detection instead.
affiliate-disclosure-compliance
mbfinotti/partnerships-skills
Check a specific piece of affiliate or influencer content (caption, video script, transcript, screenshot, or live URL) against disclosure regulations and return a pass/fail compliance review with placement, wording, and per-format fixes. Covers FTC affiliate disclosure (16 CFR 255 and 465), UK CAP/CMA rules, EU UCPD and DSA, and German, French and Italian overlays, pre-publication or already live. Use whenever the user mentions affiliate disclosure, FTC disclosure, paid partnership labeling, sponsored content, ad tags, or a partner post that may be missing or burying its disclosure, even if they never say compliance. Reviews content only - for disclosure clauses inside program terms use mbfinotti/partnerships-skills@affiliate-program-terms.
affiliate-fraud-detection
mbfinotti/partnerships-skills
Build the detection rule set an affiliate program manager uses to flag fraudulent affiliate activity, plus the investigation and escalation path behind it - cookie stuffing, fake lead and form-fill fraud, self-referral rings, traffic-quality baselines, commission holds and clawbacks, and separating real fraud from legitimate low-incrementality coupon or cashback partners. Covers B2B SaaS lead-gen and B2C ecommerce programs. Use whenever the user mentions affiliate fraud, suspicious affiliate traffic, invalid clicks or leads, bot traffic, or an affiliate whose numbers look too good, even if they never say fraud. Do NOT use for consumer refer-a-friend gaming - use mbfinotti/partnerships-skills@referral-abuse-guardrails instead.
affiliate-recruitment-outreach
mbfinotti/partnerships-skills
Draft the outreach copy and sequence plan used to recruit new affiliates into a commission-based affiliate program - prospect qualification and tiering, pitch angle, first-touch recruitment email, follow-up sequence with a breakup touch, channel mix, and outreach tracking. Covers B2B SaaS and B2C ecommerce/DTC programs. Use whenever the user mentions recruiting affiliates, affiliate sourcing, or pitching content and review sites, coupon and cashback partners, newsletter operators, communities, podcasters, or agencies to join a program, even if they never say recruitment. Do NOT use for pitching one individually vetted creator - use mbfinotti/partnerships-skills@influencer-outreach instead.
alliance-prioritization
mbfinotti/partnerships-skills
Rank named candidate strategic alliances and technology partnerships by expected value, effort, and risk, to decide where partner-team capacity goes - must-pass screens, a weighted alliance scorecard with sensitivity analysis, co-innovation and platform-dependency risk checks, a ranked shortlist, and a go/no-go recommendation memo. Covers B2B tech alliances and B2C brand and creator partnerships. Use whenever the user mentions alliance prioritization, partnership ranking, partner shortlisting, or asks which of several named partners deserves investment, even if they never say prioritization. Portfolio-level comparison only. Do NOT use for modeling one partner's P&L - use mbfinotti/partnerships-skills@partner-economics instead.
affiliate-program-terms
mbfinotti/partnerships-skills
Draft the terms and conditions an affiliate accepts when joining a commission-based program - the affiliate program agreement, with the canonical clause set, prohibited-tactics clauses and enforcement ladder, commission validation, clawback and termination mechanics, and jurisdiction overlays (FTC endorsement rules, EU P2B, UK ASA/CAP, GDPR roles). Output is a clause-complete draft flagged for mandatory legal review, for B2B SaaS and B2C ecommerce alike. Use whenever the user mentions affiliate program terms, an affiliate agreement, prohibited tactics, or a brand-bidding policy, even if they only ask what affiliates must agree to. Do NOT use for reviewing a published post's disclosure label - use mbfinotti/partnerships-skills@affiliate-disclosure-compliance instead.
Popular data & databases skills
supabase-postgres-best-practices
supabase/agent-skills
Postgres best practices maintained by Supabase, for Postgres running anywhere. Load this skill BEFORE writing or changing anything that lives in a Postgres database: creating or altering tables and columns (including choosing column types), schema design, migrations and declarative schema files, RLS policies and the tests that verify them, indexes, triggers, database functions, queues and scheduled jobs (pgcron, pgmq), vector/semantic search (pgvector), and restoring dumps (pgrestore) or importing data. Also load it when diagnosing slow queries, high CPU, timeouts, EXPLAIN plans, connection exhaustion, locking, bloat, or rows visible to the wrong user or tenant. This is not just a performance guide — schema, migration, security, and SQL authoring tasks need these rules too, even for a one-column change or a single query.
prisma-client-api
prisma/skills
Prisma Client API reference covering model queries, filters, operators, and client methods. Use when writing database queries, using CRUD operations, filtering data, or configuring Prisma Client. Triggers on "prisma query", "findMany", "create", "update", "delete", "$transaction".
prisma-database-setup
prisma/skills
Deprecated compatibility name for prisma-orm-setup. Use only when a user or existing integration explicitly invokes prisma-database-setup; otherwise select prisma-orm-setup.
prisma-cli
prisma/skills
Prisma ORM 7 CLI reference for existing Prisma 7 applications or explicitly selected Prisma 7 workflows. Covers prisma init, generate, migrate, db, dev, studio, and mcp. For setup, connection repair, or Prisma 8, use prisma-orm-setup; not the Prisma Platform CLI.
prisma-postgres
prisma/skills
Deprecated compatibility name for prisma-postgres-setup. Use only when a user or existing integration explicitly invokes prisma-postgres; otherwise select prisma-postgres-setup.
prisma-driver-adapter-implementation
prisma/skills
Required reference for Prisma ORM 7 SQL driver adapter work. Use when implementing or modifying adapters, adding database drivers, or touching SqlDriverAdapter, Transaction, savepoint, result mapping, or DriverAdapterError behavior. Covers current transaction lifecycle, optional savepoint hooks, original database-error preservation, and verification.