SKILL DETAIL
affiliate-commission-structure
mbfinotti/partnerships-skills/affiliate-commission-structure
Design the commission and payout structure of a commission-based affiliate program: rate model (revenue share, flat CPA, hybrid), rate level derived from unit economics, payout tiers, recurring duration and caps, attribution/cookie window, validation, clawback, and payment terms. Covers B2B SaaS and B2C ecommerce programs with professional affiliates. Use whenever the user mentions an affiliate commission rate, commission tiers, lifetime vs 12-month recurring commission, a cookie window, or a rate-card migration, even if they only ask how much to pay affiliates. Do NOT use for end-customer refer-a-friend rewards - use mbfinotti/partnerships-skills@referral-incentive-design instead. Terms drafting, payout auditing, and fraud rules are separate skills.
Installation
npx skills add https://github.com/mbfinotti/partnerships-skills --skill affiliate-commission-structure
技能文件
SKILL.md
最近同步 · 2026年10月23日
evals/evals.json›
{
"skill_name": "affiliate-commission-structure",
"evals": [
{
"id": 1,
"prompt": "I run Cablewright, a consumer-electronics accessories store. Our AOV is $180, gross margin is 24%, and variable costs run $16 per order (shipping, pick-pack, card fees). Returns are about 7%. Our catalog goes from $12 USB cables to $420 docking stations. I was looking at a couple of skincare affiliate programs paying 20% and I want to match that so affiliates actually take us seriously. Set our affiliate rate at 20% of order value and tell me how to pitch it.",
"expected_output": "A refusal to set 20%, with the contribution-margin walk computed from the given numbers, a derived single-digit ceiling, a per-order loss figure for the 20% proposal, and a fix for the wide catalog spread.",
"files": [],
"expectations": [
"Rejects the 20% rate and states it sits above the ceiling derived from this store's own unit economics",
"Computes gross margin per order as about $43.20 from the $180 AOV at 24%",
"Subtracts the $16 variable cost to reach a contribution margin of about $27.20",
"Nets out the 7% return rate to reach a post-return contribution margin of about $25.30",
"Applies the one-third-to-one-half-of-post-return-contribution-margin rule to set the payable band",
"States a maximum payable per order of roughly $12.65, i.e. a ceiling around 7% of AOV",
"Quantifies the loss at 20%: about $36 paid against about $25.30 of post-return contribution, roughly $11 lost per order",
"Cross-checks the derived figure against the 20-30%-of-gross-margin sanity band",
"Recommends a headline rate in the single digits (roughly 4-7%), or an equivalent flat CPA, rather than a double-digit rate",
"Flags that a flat percentage across a $12-to-$420 catalog lets one large order wipe out unit economics, and offers flat CPA or a percentage banded by product as the fix",
"States that the loss would be invisible at launch and surface only after returns net out",
"Names narrowing the program to high-margin SKUs as the fallback if partners will not work at the derived rate, and does not justify any rate by pointing at the skincare vertical's benchmark"
]
},
{
"id": 2,
"prompt": "Stackline Ops here, B2B SaaS. Our $89/mo plan carries 84% gross margin and monthly churn is about 3.3%, so customers stick around roughly 30 months. Today we pay affiliates 25% recurring for the life of the account and our CFO says it is way out of line. Our CEO's fix is to drop the headline to 12% but keep it lifetime so we don't lose the recruiting story. Run the numbers and tell us whether to go to 12%.",
"expected_output": "A recommendation to change the duration rule before the headline, with lifetime, capped and tapered costs computed against the $2,670 LTV, both ceiling legs checked, and the 12% lifetime proposal rejected.",
"files": [],
"expectations": [
"Recommends fixing the recurring duration rule before touching the headline percentage",
"States explicitly that the duration rule moves effective cost far more than the headline percentage does",
"Computes the current lifetime cost at roughly $667 per customer (25% of $89 over about 30 months)",
"Computes a 12-month cap at the unchanged 25% headline at about $267 per customer",
"Shows the 12-month cap at 25% costs less than the proposed 12% lifetime (about $320 per customer)",
"Recommends against the 12% lifetime proposal",
"Expresses total commission per customer as a share of the roughly $2,670 revenue LTV and checks it against the 5-15% band",
"Checks total commission per customer against the 30-40%-of-gross-margin ceiling as a separate condition",
"Notes that keeping the 25% headline protects recruiting pull, because partners weigh headline and duration together",
"Offers a taper (25% for months 1-6, a lower rate for months 7-12) as the lower-cost alternative and states its cost",
"Notes the taper needs a second rate step the affiliate platform may not express, and names the plain 12-month cap or a renewal bonus as the fallback when it cannot",
"Proposes a renewal bonus in the 5-10% range as the way to keep partners engaged past the cap rather than extending the rate"
]
},
{
"id": 3,
"prompt": "Cratefox, inventory software for small warehouses. $129/mo, 61% gross margin, monthly churn is 7.5% so average tenure is around 13 months. Two competitors advertise lifetime recurring commissions and three of our better affiliates have moved to them in the last two months. Price me a lifetime option and a 12-month option side by side so I can decide which one to publish.",
"expected_output": "A refusal to price lifetime for these numbers, naming the three conditions and which ones fail, plus a capped structure with a renewal bonus as the competitive answer.",
"files": [],
"expectations": [
"Refuses to price a lifetime commission option for this program",
"Names the three conditions lifetime requires: gross margin above roughly 80%, monthly churn below roughly 5%, and competing programs already paying lifetime",
"Identifies the 61% gross margin as failing the margin condition",
"Identifies the 7.5% monthly churn as failing the churn condition",
"States that competitors paying lifetime is not on its own sufficient to qualify the option",
"Does not present lifetime anywhere in the answer as the more generous alternative to compare against the capped option",
"Recommends a 12-month cap as the default duration rule",
"Offers a renewal bonus of roughly 5-10% of renewal value as the way to compete on perceived generosity without open-ended liability",
"Explains the liability: on a sticky product, a long-tenured customer can earn an affiliate more than that customer's margin",
"Notes that published lifetime terms are expensive to retract later because of network decrease rules and grandfathering obligations",
"Recommends paying recurring commission in arrears on confirmed billing events so churned customers stop costing automatically"
]
},
{
"id": 4,
"prompt": "Lunepeak, DTC haircare. Everyone in our affiliate program is on a flat 15% of order value. Two large cashback sites now account for 38% of our affiliate revenue and I am fairly sure most of those buyers were already coming to us. I asked our affiliate platform vendor about tagging new customers versus repeat customers and they said it is not on their roadmap this year. Give me a plan to stop overpaying those two without killing the relationship.",
"expected_output": "A control plan led by a rate cap rather than a new-customer gate, with differentiated windows, incrementality figures, and a holdout test with both read rules.",
"files": [],
"expectations": [
"Does not recommend a new-customer gate as an action to take now, given the tracking limitation",
"Names capping the cashback rate below the content/creator rate as the first control to apply",
"Places the rate cap ahead of shortening the attribution window in the recommended order",
"Recommends a shorter attribution window for the cashback partners than for content partners",
"Gives a concrete short window for the cashback partners in the 24-hour-to-7-day range",
"States that coupon, cashback and loyalty partners commonly run substantially non-incremental, on the order of two-thirds of attributed volume",
"States that content and creator partners run largely incremental, on the order of 80%",
"Prescribes a 30-day holdout test on the top cashback partners",
"States the holdout read rule: flat total conversion volume with falling affiliate-attributed volume means the partners were harvesting existing demand, so keep their rates capped",
"States the opposite holdout read rule: a drop in total volume means they were incremental, so restore their rates and document it",
"Recommends exclusive per-partner codes as the control that produces evidence rather than only savings, while naming its ongoing reconciliation cost",
"Notes the new-customer gate becomes the first control to apply once the tracking flag ships"
]
},
{
"id": 5,
"prompt": "Formwork Analytics. We are launching an affiliate program in six weeks, nothing live yet, zero affiliates signed. I want a three-tier bronze/silver/gold commission ladder from day one because it gives the recruiting pitch something to aim at. Give me the three rates and the conversion breakpoints between them.",
"expected_output": "A refusal to set breakpoints without performance history, a flat launch rate with a stated revisit condition, and the tier mechanics for when tiers do arrive.",
"files": [],
"expectations": [
"Declines to set tier breakpoints for a program with no historical partner performance data",
"States the reason: with no performance history there is nowhere to place a breakpoint",
"Recommends launching with a single flat rate",
"Gives a concrete condition or timeframe that triggers revisiting tiers later",
"Does not present a bronze/silver/gold ladder with invented thresholds as the recommendation",
"Explains that once history exists, the first tier should be reachable by roughly 70-80% of active partners",
"States the top tier should be reserved for roughly the top 10-20% of partners",
"Recommends marginal tiers over retroactive tiers when tiers are eventually introduced",
"Explains that retroactive tiers reprice a partner's whole period, making program cost unforecastable rather than merely higher",
"Explains the cliff incentive: a partner just short of a breakpoint is pushed to add low-quality sign-ups",
"Recommends new-customer revenue as the tier threshold metric ahead of gross revenue or referral count"
]
},
{
"id": 6,
"prompt": "Beltram Goods, DTC cookware. Our affiliate terms today are a 60-day validation hold, net-45 payment, and a $250 minimum payout threshold. Three mid-size affiliates left for a competitor last quarter and two of them said cash flow was the reason. My plan is to cut the validation hold from 60 days to 10 so money moves faster. Sanity-check that and write the new payout terms.",
"expected_output": "A reordered set of payout-speed levers putting the threshold first and validation last, with the reversibility risk of a short validation window stated and validation tied to the return window.",
"files": [],
"expectations": [
"Recommends lowering the $250 minimum threshold before shortening the validation window",
"Gives a concrete replacement threshold in the $50-100 range",
"States that lowering the threshold adds no risk because the money is owed to the partner either way",
"Recommends shortening net terms toward net-30 ahead of touching validation",
"Places shortening the validation window last among the three levers",
"Conditions any validation cut on first measuring the reversal or refund rate and finding it low",
"Explains that a shortened validation window pays commissions before refunds and chargebacks land",
"Explains that a commission already paid comes back only through a manual clawback",
"Notes that validation and net terms stack, and that the stack is what produces the wait affiliates feel",
"Quantifies the current end-to-end wait as roughly three to four months",
"Notes the minimum threshold is the lever the smallest and newest partners feel first",
"Ties the validation period length to the product's return or refund window rather than to an arbitrary figure"
]
},
{
"id": 7,
"prompt": "Verdantly, garden supplies. We run a live program on a major affiliate network with 340 approved affiliates, everyone on a flat 14% of order value. I want to move to 7% for cashback and deal sites and 12% for content sites, effective next Monday, announced in one email blast to the whole base. Write the announcement email and the rollout plan.",
"expected_output": "A rejection of the next-Monday single-blast plan, citing the network's contractual decrease caps, a multi-step sequenced cut, 60 days' notice, grandfathering and top-partner-first phasing.",
"files": [],
"expectations": [
"Flags that the affiliate network contractually caps the size, frequency and notice period of a commission decrease",
"States the published rule shape: at most a 20% reduction per change, no more than once every 30 days, with at least 7 days' partner notice",
"Identifies 14% to 7% as a 50% cut, too large to make in a single step under that rule",
"Sequences the reduction into multiple steps spaced at least 30 days apart",
"Recommends roughly 60 days' notice for the change, ahead of the network's minimum",
"Rejects the next-Monday effective date and the single all-base email blast",
"Recommends grandfathering existing affiliates at the old rate, holding high performers for at least one cycle",
"Recommends phasing the rollout top-partners-first, with direct conversations before any broadcast",
"Recommends leading the announcement with what stays the same",
"Requires deriving the 7% and 12% target rates from unit economics before announcing them, rather than migrating to chosen-by-feel numbers",
"Notes that adding a partner-type rate row carries less contractual exposure than cutting an existing published rate",
"Names silent or abrupt rate changes as a known cause of partner churn"
]
},
{
"id": 8,
"prompt": "Nordholt Tools, B2B. We derived our affiliate ceiling at 14% of first-year contract value and the program launches in five weeks to line up with a trade show. ToolBench Review, the biggest review site in our category, told us flat out they do not do performance-only deals. They want $9,000 per quarter as a placement fee plus 8% commission on what they refer. Since 8% is well under our 14% ceiling this looks like a bargain to me. Should we sign, and how do I fit it into the rate card?",
"expected_output": "A correction that the placement fee sits outside the derived ceiling, a recommendation to launch on straight percentage given the five-week date, and the hybrid pursued separately with its effort and contract costs named.",
"files": [],
"expectations": [
"States explicitly that the $9,000 placement fee sits outside the commission ceiling derived from unit economics",
"Explains why: the fee is paid before any conversion, so the ceiling derivation does not bound it",
"Rejects the user's reasoning that 8% being under the 14% ceiling makes the deal inherently affordable",
"Notes that hybrid is the only model that lands a publisher refusing pure performance",
"Names the effort cost: a negotiation per partner plus off-platform invoicing and reconciliation every cycle",
"Flags that the five-week hard date does not accommodate a hybrid negotiation",
"Recommends launching on a straight percentage-of-revenue model and pursuing the publisher deal on a separate track",
"Keeps percentage of revenue as the default rate model for the rest of the partner base",
"Requires the placement fee to be budgeted and reported separately from commission cost",
"Requires a fixed contract term for the placement fee rather than an open-ended arrangement",
"Does not present hybrid as the generally superior or most generous of the three rate models",
"Offers a milestone bonus tied to new-customer revenue as a lower-commitment instrument to test this publisher first"
]
},
{
"id": 9,
"prompt": "Sablefin, B2B SaaS. $199/mo, 79% gross margin, average tenure 20 months, blended CAC $740. We pay 20% recurring capped at 12 months. We have 412 approved affiliates but only 11 of them produced a single conversion last quarter, and affiliate revenue has been flat three quarters running. Competitors advertise 30%. I want to go to 35% to leapfrog them. Write up the new rate and the announcement.",
"expected_output": "A diagnosis that activation is the binding problem, a rejection of 35% on the LTV leg of the ceiling, and top-partner instruments instead of a public headline increase.",
"files": [],
"expectations": [
"Identifies partner activation rather than rate level as the likely root cause, given 11 converting affiliates out of 412",
"States that a correctly derived commission structure does not rescue a program nobody promotes",
"Points the user toward recruitment, onboarding or activation work as the primary fix",
"Computes the cost of the proposed 35% capped at 12 months at roughly $836 per customer",
"Compares that figure against the roughly $3,980 revenue LTV and shows it exceeds the 5-15%-of-LTV band",
"Recommends against raising the public headline to 35%",
"Checks total commission per customer against the 30-40%-of-gross-margin ceiling as a second, separate condition",
"States that both conditions must hold, not either one on its own",
"Notes that a small share of affiliates produces most program revenue, so the rate card should be designed for the head rather than the long tail",
"Recommends custom or private rates for a handful of top partners instead of raising the public headline for everyone",
"Names a milestone bonus tied to new-customer revenue as a top-partner instrument that cannot exceed the ceiling by surprise",
"Recommends checking projected cost per incremental affiliate-acquired customer against the $740 blended CAC"
]
},
{
"id": 10,
"prompt": "Halcombe Labs. Just give me the right commission rate for a B2B SaaS affiliate program. I keep seeing 20-30% quoted everywhere and I do not want to overthink this - we launch in three weeks and I need a number for the landing page today.",
"expected_output": "A refusal to name a rate before collecting the economic inputs, delivered as a one-question-at-a-time interview covering margin, churn, LTV/CAC, deadline, mandate and platform capability.",
"files": [],
"expectations": [
"Does not state a recommended commission rate before collecting economic inputs",
"Asks for gross margin",
"Asks for monthly churn rate or average customer tenure",
"Asks for customer LTV and current or target blended CAC",
"Asks one question per message rather than presenting the whole questionnaire at once",
"Offers multiple-choice answer options where the question allows it",
"Accepts estimates rather than exact figures, while insisting on some number before proposing a rate",
"Asks whether this is a one-off fix or a rate card meant to survive several years of plan changes",
"Asks what the affiliate platform can actually express and who administers the program week to week",
"Treats the 20-30% figures the user has seen as calibration to apply after deriving, never as the answer itself"
]
},
{
"id": 11,
"prompt": "Pellwood Home, ecommerce. Six months into our affiliate program we paid out $86,000 including network fees and got 2,900 attributed orders, so $29.66 per order against a blended CAC of $41. That is 28% cheaper than our other channels, so I want to go to the board and ask to double the affiliate budget. About 46% of that order volume comes from two cashback partners and a coupon aggregator, the rest from content sites and creators. Check my math before I present it.",
"expected_output": "A recomputation with the denominator discounted by incrementality, showing the program fails the below-CAC leg, plus the ranked fixes with the coupon split first and the headline cut last.",
"files": [],
"expectations": [
"Recomputes cost per acquired customer with the denominator discounted by incrementality rather than using raw attributed orders",
"Applies a low incrementality share to the coupon and cashback volume, on the order of one-third",
"Applies a high incrementality share to the content and creator volume, on the order of 80%",
"Produces an incrementality-adjusted cost per customer materially above the raw $29.66 figure, in the neighbourhood of $50",
"Concludes the program fails the below-CAC leg of the pass threshold once incrementality is applied",
"Names the failure mode: a program can appear to beat CAC on paper while buying demand it already had",
"Applies the second leg of the pass threshold as well, checking total commission against the derived margin ceiling",
"States that both legs must hold for the structure to pass",
"Names rebalancing the partner-type split as the highest-value fix here, because the overpayment is concentrated in coupon and cashback volume",
"Places cutting the headline rate last among the fixes",
"Does not offer a recurring-duration or taper lever, since this is a one-shot per-order ecommerce program",
"Prescribes a 30-day holdout on the top coupon and cashback partners to confirm the incrementality assumption rather than leaving it as an estimate"
]
}
],
"trigger_queries": [
{ "query": "What commission rate should we pay our affiliates?", "should_trigger": true },
{ "query": "How much should I pay affiliates for a $79/mo SaaS plan?", "should_trigger": true },
{ "query": "Design the commission structure for our new affiliate program", "should_trigger": true },
{ "query": "Should we offer lifetime recurring commission or cap it at 12 months?", "should_trigger": true },
{ "query": "Our cookie window is 30 days - is that right for B2B SaaS?", "should_trigger": true },
{ "query": "We want to pay coupon sites less than our content partners. How much less?", "should_trigger": true },
{ "query": "Finance says our affiliate payouts are too expensive, rework the rate card", "should_trigger": true },
{ "query": "Set up payout tiers for our top affiliates", "should_trigger": true },
{ "query": "Is 20% of order value sustainable on a 35% gross margin?", "should_trigger": true },
{ "query": "How do I migrate affiliates from our old rate card to a new one?", "should_trigger": true },
{ "query": "flat CPA or percentage of order value for our affiliate program?", "should_trigger": true },
{ "query": "What's a reasonable attribution window for cashback partners?", "should_trigger": true },
{ "query": "We're launching an affiliate program next quarter and need to decide what to pay", "should_trigger": true },
{ "query": "How long should we hold affiliate commissions before paying them out?", "should_trigger": true },
{ "query": "Our affiliates complain they wait four months for money. What do we change?", "should_trigger": true },
{ "query": "affiliate commission tiers - marginal or retroactive?", "should_trigger": true },
{ "query": "Competitors pay 30% recurring forever and we pay 20% for a year. Do we match?", "should_trigger": true },
{ "query": "I need a rate card for content sites, cashback sites, and agencies", "should_trigger": true },
{ "query": "How much of my margin can I give away per sale to someone who sends me traffic?", "should_trigger": true },
{ "query": "What should the minimum payout threshold be for our program?", "should_trigger": true },
{ "query": "Design a clawback policy for refunded affiliate orders", "should_trigger": true },
{ "query": "Should the rate be the same for every affiliate or differentiated by type?", "should_trigger": true },
{ "query": "We're getting killed by cashback sites taking credit for sales we'd have made anyway", "should_trigger": true },
{ "query": "recurring commission cap - 12 or 24 months?", "should_trigger": true },
{ "query": "our affiliate program loses money per order, help", "should_trigger": true },
{ "query": "how do I work out the maximum I can afford to pay per referred customer", "should_trigger": true },
{ "query": "Draft the payout terms for our partner rate card - net terms, thresholds, validation", "should_trigger": true },
{ "query": "A big review site wants a flat placement fee plus a lower percentage. Worth it?", "should_trigger": true },
{ "query": "Set a rate for our DTC skincare affiliate program, $60 AOV", "should_trigger": true },
{ "query": "What percentage do SaaS affiliate programs usually pay, and what should we pay?", "should_trigger": true },
{ "query": "Cut our affiliate rate from 25% to 12% - what's the safest way to do it?", "should_trigger": true },
{ "query": "affiliate rate card design", "should_trigger": true },
{ "query": "we need to decide what our partners earn per signup they send", "should_trigger": true },
{ "query": "Can we afford a 15% commission with 8% returns and 52% gross margin?", "should_trigger": true },
{ "query": "Is a taper better than a flat recurring rate for our subscription product?", "should_trigger": true },
{ "query": "How do I stop overpaying loyalty partners without losing them?", "should_trigger": true },
{ "query": "Pricing the incentive for people who send us customers - where do I even start?", "should_trigger": true },
{ "query": "affiliate payouts: how much, how long, how often", "should_trigger": true },
{ "query": "What's the right commission for a $400 average order electronics store?", "should_trigger": true },
{ "query": "Should we give our top 3 partners a higher rate than the public one?", "should_trigger": true },
{ "query": "Our program's cost per acquisition looks great on paper but I don't trust it", "should_trigger": true },
{ "query": "Build me the commission spec I can hand to finance", "should_trigger": true },
{ "query": "How do we reward high performers without blowing up unit economics?", "should_trigger": true },
{ "query": "we want affiliates but have no idea what's actually affordable for us", "should_trigger": true },
{ "query": "commission percentage vs fixed bounty per sale", "should_trigger": true },
{ "query": "Set different cookie durations by partner type", "should_trigger": true },
{ "query": "How much should a publisher earn per subscription they refer, and for how long?", "should_trigger": true },
{ "query": "Review our affiliate economics before we announce the program publicly", "should_trigger": true },
{ "query": "Our affiliate rate hasn't changed in four years. Is it still right?", "should_trigger": true },
{ "query": "Model the cost of paying 30% forever versus 30% for a year", "should_trigger": true },
{ "query": "ecommerce affiliate commission benchmarks, and what we should actually do", "should_trigger": true },
{ "query": "A partner is asking for lifetime commission. Should I agree?", "should_trigger": true },
{ "query": "Decide what the payout is and when it locks in", "should_trigger": true },
{ "query": "how much revenue share for referral partners in B2B software", "should_trigger": true },
{ "query": "we pay a flat $25 per sale but our order values range from $20 to $600", "should_trigger": true },
{ "query": "Redesign what we pay affiliates so we stop losing money on large orders", "should_trigger": true },
{ "query": "Work out an affordable bounty for partners driving signups to our $49 plan", "should_trigger": true },
{ "query": "Set the economics for people promoting our product on commission", "should_trigger": true },
{ "query": "How much account credit should we give customers who refer a friend?", "should_trigger": false },
{ "query": "Design our refer-a-friend reward - double-sided or referrer only?", "should_trigger": false },
{ "query": "Should the referral reward be cash or a discount on the next order?", "should_trigger": false },
{ "query": "Cap how many friends one customer can refer for a reward", "should_trigger": false },
{ "query": "Customers are creating fake accounts to claim referral credits - stop it", "should_trigger": false },
{ "query": "Set velocity limits and cooldowns on our refer-a-friend rewards", "should_trigger": false },
{ "query": "Draft the terms and conditions affiliates accept when they join", "should_trigger": false },
{ "query": "Write the prohibited-tactics clause for our affiliate agreement", "should_trigger": false },
{ "query": "What jurisdiction clauses does our affiliate agreement need for the EU?", "should_trigger": false },
{ "query": "Check this month's affiliate payout run for double-counted conversions before we pay", "should_trigger": false },
{ "query": "Recompute the tier rates on this payout file and flag any lines to hold", "should_trigger": false },
{ "query": "One affiliate's commissions look wrong on the December run - audit it", "should_trigger": false },
{ "query": "Build rules to catch cookie stuffing in our affiliate traffic", "should_trigger": false },
{ "query": "This affiliate's leads are all fake form fills - what's the escalation path?", "should_trigger": false },
{ "query": "Detect self-referral rings in our partner program", "should_trigger": false },
{ "query": "Write the cold email we send to recruit new affiliates", "should_trigger": false },
{ "query": "Where do I find affiliates for a B2B SaaS product?", "should_trigger": false },
{ "query": "Follow-up sequence for affiliate prospects who never replied", "should_trigger": false },
{ "query": "Newly approved affiliates never make a first sale - design the welcome sequence", "should_trigger": false },
{ "query": "What assets go in the affiliate welcome kit?", "should_trigger": false },
{ "query": "Which metrics belong on our affiliate performance dashboard?", "should_trigger": false },
{ "query": "Define the formula for effective commission rate on our reporting views", "should_trigger": false },
{ "query": "Does this Instagram caption meet FTC affiliate disclosure rules?", "should_trigger": false },
{ "query": "Where should the #ad label go in a YouTube affiliate video?", "should_trigger": false },
{ "query": "Review this creator's post for UK CAP disclosure compliance", "should_trigger": false },
{ "query": "Design silver/gold/platinum tiers for our reseller program and their benefit bundles", "should_trigger": false },
{ "query": "What qualification criteria should our gold partner tier require?", "should_trigger": false },
{ "query": "How do we demote a partner who dropped below tier requirements?", "should_trigger": false },
{ "query": "Model the full P&L of our relationship with one distributor", "should_trigger": false },
{ "query": "Is this reseller worth keeping - cost to serve versus margin?", "should_trigger": false },
{ "query": "Compare partner CAC against direct CAC for our channel", "should_trigger": false },
{ "query": "Should we build a reseller program or a referral program?", "should_trigger": false },
{ "query": "Design our channel program from scratch - tiers, benefits, governance", "should_trigger": false },
{ "query": "Our direct reps and partners are fighting over the same account", "should_trigger": false },
{ "query": "Write deal registration rules with a protection window", "should_trigger": false },
{ "query": "How do we split deal credit between the AE and the partner seller?", "should_trigger": false },
{ "query": "Design the co-sell motion between our sales team and a hyperscaler", "should_trigger": false },
{ "query": "What should I offer a creator for three Reels and 30 days of usage rights?", "should_trigger": false },
{ "query": "The influencer countered at $12k - what's my concession ladder?", "should_trigger": false },
{ "query": "Write the first DM to a creator we want to partner with", "should_trigger": false },
{ "query": "Draft the creative brief for our influencer campaign", "should_trigger": false },
{ "query": "Which KPIs do we track for a creator campaign before it launches?", "should_trigger": false },
{ "query": "Build criteria to shortlist beauty creators for a launch", "should_trigger": false },
{ "query": "Plan a joint launch campaign with our integration partner", "should_trigger": false },
{ "query": "Should we list on the AWS Marketplace or Azure first?", "should_trigger": false },
{ "query": "Build the scorecard we use to review each partner quarterly", "should_trigger": false },
{ "query": "Our gold partner missed targets two quarters running - what now?", "should_trigger": false },
{ "query": "Sequence the certification track for our new SI partners", "should_trigger": false },
{ "query": "Map every partner type in our ecosystem and where the coverage gaps are", "should_trigger": false },
{ "query": "Which partner category should we add next - MSPs or agencies?", "should_trigger": false },
{ "query": "Rank these six candidate alliances by expected value", "should_trigger": false },
{ "query": "What does a partnerships manager earn and how do I get promoted?", "should_trigger": false },
{ "query": "Write the job description for a channel partner manager", "should_trigger": false },
{ "query": "I'm new to this partnerships collection - where do I start?", "should_trigger": false },
{ "query": "Set the commission plan for our inside sales reps - base, variable, accelerators", "should_trigger": false },
{ "query": "Design the sales quota and accelerator structure for next year", "should_trigger": false },
{ "query": "What pricing tiers should our SaaS product have?", "should_trigger": false },
{ "query": "What revenue split should we take from developers listing apps in our marketplace?", "should_trigger": false }
]
}
references/benchmarks.md›
# Benchmarks - Rates, Windows, and Payout Norms with Sources
Calibration reference points, not targets - derive first, then compare. Reliability note: most granular figures come from affiliate-platform and agency blogs with a commercial interest in the topic. Treat them as practitioner consensus, not peer-reviewed data.
The Performance Marketing Association (PMA) 2025 industry study is the firmest macro anchor. Published program terms change often - verify against the live terms page before relying on any single number.
## B2B SaaS commission rates
| Figure | Source (date) | Reliability |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------- |
| 20-30% recurring baseline; top B2B SaaS programs averaged 23.53%, with 20%, 25%, and 30% "the best-performing offer ranges"; ERP-type products up to 30-35% | PartnerStack Research Lab, 2024 network data | Network-aggregated data - strong |
| Average rate chosen by SaaS program managers: 24.16% (typical range 20-30%); 96.4% of programs use percentage/rev-share vs 3.6% flat; average payout per commission $14.10 | Rewardful "State of SaaS Affiliate Programs" 2026, telemetry across 2,847 programs | Product telemetry, skews small/self-serve SaaS |
| ~30% recurring across analysis of 2,600+ programs | Tapfiliate, 2026 | Vendor blog - practitioner consensus |
| 12-month recurring cap is the most common serious-SaaS design; 12-24 months balances incentive vs liability | Track360, May 2026; multiple | Vendor blogs - convergent consensus |
## B2C ecommerce commission rates by vertical
| Vertical | Typical rate | Source (date) |
| ------------------------- | ----------------------------------------- | ----------------------------------------------- |
| Ecommerce median | ~8.4% of order value; 8.3% global average | Digital Applied 2026 aggregate; PMA 2025 survey |
| Apparel/accessories | 8-15% on first-time orders | ReferralCandy 2026 |
| Beauty/cosmetics | up to ~15-20% (high-margin consumables) | Track360/ReferralCandy 2026 |
| Electronics/consumer tech | 1-10% (thin margins) | Post Affiliate Pro 2025 |
| Home/furniture | 5-7% (Wayfair publishes 5-7% via CJ) | CJ program terms; Track360 2026 |
| Health/supplements | up to ~20% | Unseen Founder 2026 |
| Travel | ~4.2% (highest ROAS of any sector, $19:1) | Digital Applied 2026; PMA 2025 |
| Digital products/courses | 20-50% one-time (near-zero marginal cost) | Post Affiliate Pro 2025 |
| Finance/fintech | $50-200 flat per qualified lead | Affiliate Booster 2026; Rewardful 2026 |
Gross-margin ceiling logic behind the spread:
- 30-60% margin physical goods sustain 5-15%.
- 75-85% margin SaaS sustains 20-30% recurring.
- ~100% margin digital products sustain 30-50%.
## Cookie/attribution windows
| Window | Typical use | Source |
| ----------------- | ------------------------------------------------------- | -------------- |
| 24 hours | Amazon Associates (impulse) | multiple |
| 7 days | Wayfair; impulse/coupon traffic | CJ terms |
| 30 days | Ecommerce/SaaS default (Nike, Shopify, Etsy, Hunter.io) | company terms |
| 45-60 days | Mid-consideration (Foreo 60, ClickBank 60) | UpPromote 2025 |
| 90 days | Higher-ticket; Refersion default | Refersion |
| 120-180 days | B2B SaaS (Semrush 120; HubSpot and Notion 180) | company terms |
| 365 days/lifetime | Long sales cycles; rare | UpPromote 2025 |
## Published SaaS program terms (data points, verify live pages)
- HubSpot: 30% recurring for 12 months, 180-day cookie, $10 minimum payout.
- Notion: 50% recurring for 12 months on net-new paid workspaces, 180-day cookie.
- Teachable: 30% recurring for the first 12 months, 30-day cookie (own page, directories conflict).
- Hunter.io (verbatim terms): "30% commission on every customer who upgrades to a paid account and remains a paid customer for at least 45 days... limited to the first 12 months... Cookie duration: 30 days... Delay: within 45 days... Threshold: minimum payout of $100".
- Semrush: moved off recurring to a flat $200/sale plus $10/trial CPA, 120-day cookie.
## Validation, net terms, thresholds, clawback
- Validation/locking: 30-60 days typical. CJ's locking cycle is configurable 7-60 days after the event. Adam Riemer (independent consultant, adamriemer.me, July 2026), verbatim: "The industry has an average 30 day window for a company to void commissions where customers cancel or when credit cards get chargebacks."
- Net terms: net-30 is the norm affiliates expect, while net-60 applies for higher return risk (Tolt payout guide, 2025 - vendor blog). Riemer's stacking warning: validation plus net-30 means "the affiliate now has to wait between 3 and 1/2 to 4 months to get paid" - and affiliates "are going to go with the one that pays the fastest if most other things are equal." Payout speed is a recruiting lever.
- Minimum threshold: $25 / $50 / $100 tiers benchmarked. $50-100 is recommended for most SaaS programs (Tolt, 2025). $50 is the SaaS default.
- Observed clawback rate: 2.55% of gross commission value reversed after refunds/cancellations, across 9.9M tracked transactions (FirstPromoter, 2026, own-customer telemetry).
- Managed payout processing fees: 2-3% typical for automated payout services (Tolt, 2025). B2B partnership platforms can charge ~15% of commissions paid (PartnerStack published pricing). Include these fees in the cost-per-customer math.
## Macro anchor
PMA Industry Study 2025 (fielded by London Research, with data from eight networks including Awin, CJ, Partnerize, Rakuten Advertising, ShareASale): US affiliate spend grew from $9.1B (2021) to $13.62B (2024), driving $113B in ecommerce sales - 9.4% of all US ecommerce. ROAS: travel $19:1, retail $11:1. Firmest observed data in the space, though 2026-dated vendor projections should be treated as estimates.
references/partner-types-and-tiers.md›
# Partner Types, Tiers, and Rate Migration
## Incrementality-driven rate differentiation
A single flat rate treats every click as equally valuable, but incrementality data says otherwise (New Engen incrementality analyses, cited across 2026 industry coverage - vendor research, practitioner consensus):
- Content/creator partners: ~78-82% incremental - they create demand.
- Coupon/cashback/loyalty partners: often 66-71% NON-incremental - they capture last-click credit on demand others created, and cashback sites rebate 30-70% of the commission to the shopper.
- One audit found 81% of a DTC brand's affiliate revenue was non-incremental bottom-funnel, with ~20% linked to suspected fraud.
Four controls stop the overpayment. Rank them by cost removed per unit of friction, not by ease:
- efficiency: new-customer gate > rate cap > shorter attribution window > exclusive codes
- value: new-customer gate > exclusive codes > rate cap > shorter window - the gate removes payment on repeat buyers outright, and codes are the only control that produces evidence rather than just savings
- effort: exclusive codes > new-customer gate > rate cap == shorter attribution window - the last two tie because each is one rate-card field on the same screen, and codes take an hour per partner to issue and then a standing job to reconcile redemptions against the platform
- compliance cost: rate cap > new-customer gate == shorter window > exclusive codes - only the cap is a decrease on published terms, so it triggers the network rules and notice periods below, while the others narrow eligibility going forward
1. **Gate bottom-funnel partners to new customers only.** Biggest single removal. Requires a new-customer flag in tracking - without one this control is deleted from the menu until the flag ships, and the rate cap moves to first.
2. **Cap coupon/cashback/loyalty rates below content/creator rates.** One rate row per partner type. On a live card, give notice.
3. **Tighten their attribution window** (24 hours-7 days) versus content partners' standard window.
4. **Use exclusive codes per partner to measure lift directly.** Slowest and most administrative, but it is what turns the other three from assumptions into decisions - run it alongside them, not instead.
Separate control, different partner type: pay agencies/consultants and resellers on the recurring/rev-share end - they influence retention, not just the click.
**The 30-day holdout test**: pause your top 3 coupon partners for 30 days.
- If overall conversion volume holds flat while affiliate-attributed volume drops, they were harvesting existing demand: keep their rates capped.
- If total volume drops, they were incremental after all: restore and document.
Run this before and after any rate rebalancing, identically for B2B and B2C.
## Concentration: plan for the power law
Prussakov's "5/80 rule": 5% of affiliates drive 80% of the work. Telemetry agrees: the top 10% of revenue-generating affiliates produce 58.5% of referred revenue in the median program (FirstPromoter, 2026, 31M-referral dataset), and roughly 10% of affiliates generate a program's total revenue (Rewardful, 2026). Design the rate card for the head, not the long tail - custom rates for top partners matter more than the public headline.
Top-partner instruments, ranked by what they buy per unit of setup and negotiation:
- efficiency: milestone bonus > longer cookie window > private offer > invite-only tier > hybrid placement fee
- value: hybrid placement fee > private offer > invite-only tier > milestone bonus > longer cookie window - the fee is the only instrument that lands a publisher refusing pure performance, which is why it survives its effort
- effort: hybrid placement fee > invite-only tier > private offer == milestone bonus == longer cookie window - the last three tie because each is one field on that partner's record, while the tier needs eligibility rules administered every cycle, the fee needs a negotiation and off-platform invoicing
- compliance cost: hybrid placement fee > private offer > invite-only tier > milestone bonus == longer cookie window - a placement fee is a signed contract with a fixed term, and a private offer is close to irreversible in practice, since withdrawing one costs the relationship it bought
1. **Milestone bonus tied to new-customer revenue** (not gross) - pays only on the outcome, so it cannot exceed the ceiling by surprise.
2. **A longer cookie window as a negotiated perk** - one field, no extra commission rate. Watch that it does not quietly increase last-click capture on demand the partner did not create.
3. **A private offer above the public card** - one rate row, but treat it as permanent for that partner.
4. **An invite-only tier above the public ladder** - buys status, which travels further than money with a handful of partners, at the price of standing eligibility administration.
5. **Hybrid flat-placement-fee + lower percentage** - reserve it for the publisher who will not work on performance at all. Delete it from the menu when no such publisher is in the conversation.
Derive every custom rate from that partner's incremental value. Review the rate card quarterly to stop commission creep.
## Tier design mechanics
Whether to tier at all comes first: `flat > marginal tiers > retroactive tiers` on efficiency. No historical performance data deletes both tiered options - there is nowhere to place a breakpoint - so launch flat and revisit.
**Marginal vs retroactive.** Marginal pays the higher rate only on volume above the threshold. Retroactive pays it back to dollar one for the whole period.
- efficiency: marginal > retroactive
- value (motivation per partner): retroactive > marginal - the cliff is exactly what makes it pull harder
- cost: retroactive > marginal, and unforecastable rather than merely higher, since a partner crossing a breakpoint repriced their whole period
- compliance cost: retroactive > marginal - a tier a partner has earned cannot be taken back, so never cap retroactively - clawing one back destroys trust faster than any rate cut
The cliff also invites junk volume: a partner at 49 of 50 conversions has a strong incentive to push one low-quality sign-up over the line. Marginal is the default for that reason, not just the cheaper one.
**Measurement window** - `quarterly > rolling > monthly` on efficiency:
- quarterly smooths variance and needs one reset cadence to administer - the safest default
- rolling stays fairest in evergreen programs, but recomputes every partner's position continuously - a standing job wherever the platform cannot express it natively
- monthly creates the most urgency and the most breakpoint-gaming, and pays the administration cost twelve times a year instead of four
- Set breakpoints from historical performance: first tier reachable by ~70-80% of active partners, and top tier reserved for the top 10-20%.
- Threshold metric: prefer new-customer revenue over revenue, and revenue over referral count - each step further from new-customer revenue rewards more harvested volume, and all three cost the same to configure.
- When restructuring tiers: grandfather high performers for at least one cycle, and give 60 days notice.
- Documented SaaS tier examples:
- Homesage.ai: 25%/30%/40% (Starter/Growth/Elite)
- Pipedrive: 20% rising to 33% top tier
- beehiiv: Launch/Bronze/Silver/Gold ladder
Tier mechanics are identical for B2B and B2C: only the threshold metric differs (customers or MRR vs orders or GMV).
## Rate migration guardrails
Sequence for changing a live rate card (in addition to the SKILL.md migration workflow):
1. Derive the target structure before announcing anything.
2. Lead with what stays the same. Announce top-partners-first with direct conversations, then broadcast.
3. Grandfather existing affiliates at the old rate, especially high performers for at least one cycle.
4. Provide a named contact and a one-page summary of the change.
Network guardrails are contractual, not courtesy. Awin's published rule on commission decreases, verbatim: "Maximum 20% reduction each time. Can only be done once every 30 days. Partners must be notified at least 7 days prior to the change."
Other documented norms:
- A 4-8 week migration with tiered partner communication and conversion de-duplication during parallel running (impact.com guidance).
- 4 weeks publisher notice before zeroing commission on an old network (DMi Partners).
- TikTok Shop locks a creator's rate for 30 days after they start promoting, regardless of seller decreases.
Fraud note (scope boundary): tier cliffs, retroactive tiers, and high flat CPAs each create incentives for junk volume, self-referrals, and cookie stuffing. Flag the incentive in the spec. The detection ruleset itself belongs to `mbfinotti/partnerships-skills@affiliate-fraud-detection`.
references/rate-derivation.md›
# Rate Derivation - Ceiling Calculations and Pass-Threshold Math
The rate is derived from unit economics, never copied from a benchmark. Two derivation paths - one per business model - plus the duration-cost comparison and the pass-threshold check.
## Ecommerce ceiling: the contribution-margin walk
Sequence (per Track360 and Shopify guides, 2026 - vendor content, practitioner consensus):
1. Gross margin = selling price minus COGS for a representative order.
2. Subtract variable costs (fulfilment, shipping, payment processing, platform fees) → contribution margin.
3. Net out the expected return rate → post-return contribution margin.
4. Pay one-third to one-half of post-return contribution margin.
5. Sanity band: total commission should land at 20-30% of gross margin.
Worked example - $80 AOV physical product:
```
Selling price $80.00
COGS -$32.00 → gross margin $48.00 (60%)
Shipping -$8.00
Fulfilment -$4.00
Payment processing (2.9% + $0.30) -$2.62 → contribution margin $33.38
Expected returns (8%) ×0.92 → post-return contribution $30.71
Pay 1/3 to 1/2 → $10.24 to $15.35 per order
As commission rate → 12.8% to 19.2% of AOV
Sanity check: 20-30% of gross margin ($48) → $9.60 to $14.40 ✓ (overlaps)
Publishable rate → 13-17%
```
A companion formula from Shopify's May 2026 guide (vendor content - practitioner consensus, not peer-reviewed): maximum sustainable affiliate acquisition cost = gross profit per conversion − non-affiliate variable costs − required contribution margin. Its worked example yields a $15 maximum on a representative order.
## SaaS ceiling: the LTV:CAC walk
Commission is part of CAC. Two constraints (practitioner consensus per multiple platform guides):
- Keep LTV:CAC ≥ ~3:1 and blended CAC payback ≤ ~12 months.
- Keep total lifetime commission per customer at 5-15% of LTV, never above 30-40% of gross margin.
Why 3:1 caps the budget: at 80% gross margin and LTV:CAC of 3:1, the total CAC budget is ~27% of revenue LTV (0.80 ÷ 3) - and affiliate commission shares that budget with every other acquisition cost. A 30% lifetime commission alone blows it. A bounded 12-month or tapering model fits.
Worked example (Tapfiliate, vendor blog - practitioner consensus), and a demonstration of why vendor guidance gets checked against your own ceiling rather than copied:
- 85% gross margin
- 18-month average tenure
- $50/mo plan
- $900 LTV
- $765 gross profit
A 30% recurring rate ($15/mo) pays $270 total. That is **30% of LTV - twice the 15% ceiling** - and 35% of gross profit. It fails the LTV leg of the gate below and only scrapes inside the gross-margin leg, and the gate needs both.
Their proposed fix does not rescue it: 20% ($10/mo) pays $180 = 20% of LTV, and the $50-per-10-sales bonus takes it to $185 = 20.6%. Still over.
What fits the ceiling on these numbers is a duration rule, not a lower headline: 30% for months 1-6 then 15% for months 7-12 pays $90 + $45 = $135, exactly 15% of LTV and 17.6% of gross profit, both legs clear. This keeps the 30% headline the recruiting pitch is built on. The next section is that lever.
## The duration rule beats the headline percentage
The single most consequential recurring-commission decision. Worked comparison (Track360, vendor blog - practitioner consensus): $100/mo plan, 30% rate, 20-month average customer tenure ($2,000 revenue):
| Duration rule | Total paid | Effective rate on customer revenue |
| -------------------------------------- | ---------- | ---------------------------------- |
| Lifetime (uncapped) | $600 | 30.0% |
| Capped at 12 months | $360 | 18.0% |
| Taper: 30% months 1-6, 15% months 7-12 | $270 | 13.5% |
Same 30% headline, same recruiting pitch - less than half the cost under the taper. Negotiate duration before percentage: a generous headline with a 12-month cap usually beats a thin lifetime rate on both recruiting and economics.
A 25% rev-share capped at 12 months on a $99/mo product pays a hard maximum of $297 per customer, a number finance can model. Uncapped lifetime has no such number.
## Pass-threshold math
The structure passes only when both conditions hold:
1. **Below CAC**: projected blended cost per incremental affiliate-acquired customer < current blended CAC.
2. **Inside the ceiling**: total commission per customer sits inside the derived margin ceiling.
- Ecommerce: ≤ one-half of post-return contribution margin.
- SaaS: ≤ 15% of LTV and ≤ 30-40% of gross margin.
Compute the projected cost:
```
cost per incremental customer =
(total commissions incl. recurring within the cap + bonuses + network/platform fees)
÷ (affiliate-acquired customers × expected incrementality share)
```
Discount the denominator by incrementality: if coupon partners drive 40% of volume at ~30% incrementality, only that fraction counts as acquired. Ignoring this is how a program "beats CAC" on paper while buying its own existing demand.
## Levers when the check fails, ranked
Rank by cost removed per unit of effort and recruiting damage - not by which is cheapest to type.
- efficiency: shorten duration or add a taper > rebalance the partner-type split > flatten or delay tiers > cut the headline rate
- value (cost removed): shorten duration > rebalance the split > cut the headline > flatten or delay tiers - duration and the split both remove cost without removing acquired customers, because they cut where incrementality is lowest
- effort: rebalance the split > flatten or delay tiers > cut the headline == shorten duration - the last two tie on a pre-launch card, where each is one field, but on a live card both become a migration
- compliance cost (live cards only): cut the headline > flatten or delay tiers > shorten duration > rebalance the split - a rate decrease runs into the network's contractual decrease caps and notice periods (one major network publishes a hard rule: at most a 20% reduction each time, no more than once every 30 days, with at least 7 days' partner notice), while a partner-type split rebalance usually does not, because it adds a rate row rather than cutting an existing one
1. **Shorten recurring duration or add a taper.** Removes the largest share of effective cost, keeps the headline the recruiting pitch is built on, and on most platforms is a single field.
2. **Rebalance the partner-type split** (cap or gate bottom-funnel rates) removes cost concentrated where incrementality is lowest. Needs a new-customer flag in tracking. Without one this drops behind tiers until the flag ships.
3. **Flatten or delay tiers.** Near-zero before launch - just do not ship them - so on a pre-launch card this moves to first. On a live card it is a migration with notice and grandfathering, and stays here.
4. **Cut the headline rate.** Last: it hits recruiting hardest, and it is the least reversible lever on a live card.
What this order starves: rebalancing the partner-type split. It removes cost exactly where incrementality is lowest, so it sits near the top of the value line. But it tops the effort line because it needs a new-customer flag in tracking plus a per-partner-type migration.
That is why it loses to a single duration field every time. Promote it above duration when the program's overpayment is concentrated in coupon/cashback partners and the flag already exists, and when the mandate is a rate card meant to survive several years rather than one quarter's payouts.
Constraints delete a lever rather than demote it: a one-shot ecommerce program has no duration lever at all, and a program with no tiers has no tier lever - do not pad the list with either.
If no combination passes, narrow the program to high-margin SKUs (ecommerce) or high-margin plans (SaaS) where a ceiling exists that partners will still work for. Recommend not launching only when no narrowing leaves one.
Identical math for B2B and B2C - only the inputs differ (churn and trial conversion vs return rate, and LTV vs per-order contribution).
references/spec-and-examples.md›
# Worked Specs and a Negative Example
Two fully worked commission structure specs - one B2B SaaS, one B2C ecommerce - and one negative example that fails the pass threshold. Numbers are illustrative but internally consistent. Recompute with the user's real inputs.
## Worked spec - B2B SaaS
Inputs from the interview:
- Project-management SaaS
- $49/mo entry plan
- 80% gross margin
- 3.5% monthly churn (~28-month average tenure)
- Revenue LTV ~$1,400
- Blended CAC $310
- 14-day free trial
- 30-day refund policy
- Wants content partners and review sites
- A few coupon sites already apply
```
COMMISSION STRUCTURE - <SaaS example>, <date>
Rate model : recurring revenue share - subscription product, retention-aligned partners
Headline rates : content/review/agency 25% recurring; coupon/deal sites 15% recurring
- coupon capped below content per incrementality data
Tiers : flat - revisit after 2 quarters of partner performance history
Recurring duration: capped at 12 months; optional 5% renewal bonus in year 2
- margin (80%) qualifies for longer, but churn data is young; cap first
Attribution : 90-day cookie (content); 7-day (coupon); coupon gated to new customers
Validation : 45-day lock = 14-day trial-to-paid + 30-day refund window
Payment : net-30, $50 minimum threshold; clawback on refund/chargeback,
negative balance carried forward
Economics : max commission/customer = 25% x $49 x 12 = $147
= 10.5% of LTV (inside 5-15%) and 13% of gross-margin LTV (inside 30-40% cap)
projected cost per incremental customer = ($147 + ~15% platform fee) / 0.80
incrementality ≈ $211 < $310 blended CAC → PASS
Validation plan : 30-day holdout on top 3 coupon partners in month 4; track new-customer share
KPIs : cost per incremental affiliate customer vs $310 CAC; effective commission rate;
new-customer share of affiliate sales; reversal rate (expect ~2-3%);
revenue share of top 10% partners
```
Every line traces to an interview answer or a derivation - that is what makes the spec reviewable.
## Worked spec - B2C ecommerce
Inputs:
- DTC skincare brand
- $60 AOV
- COGS $21 (65% gross margin = $39)
- Variable costs $11.04/order (shipping $6, fulfilment $3, processing $2.04)
- 5% return rate
- Blended CAC $22
- Wants creators and content sites
- Two large cashback sites are asking to join
```
COMMISSION STRUCTURE - <ecommerce example>, <date>
Rate model : percentage of order value - narrow AOV spread, incentive-aligned
Headline rates : content/creator 18%; coupon/cashback 8%, new customers only
Tiers : flat - revisit when >20 partners exceed 10 orders/month
Recurring duration: not applicable - one-shot per order
Attribution : 30-day cookie (content/creator); 7-day (coupon/cashback)
Validation : 35-day lock - covers the 30-day return window
Payment : net-30, $50 minimum threshold; clawback on return/chargeback,
negative balance carried forward
Economics : contribution margin = $39 - $11.04 = $27.96; post-return (x0.95) = $26.56
1/3 to 1/2 band = $8.85-$13.28 → 18% ($10.80) sits inside it
and at 27.7% of gross margin (inside the 20-30% sanity band)
projected blended cost per incremental customer ≈ $14-16 < $22 CAC → PASS
Validation plan : 30-day holdout on both cashback sites before granting standard rates;
exclusive codes per creator to measure lift
KPIs : cost per incremental affiliate customer vs $22 CAC; new-customer share;
return-driven reversal rate; revenue share of top 10% partners
```
What differs from the SaaS spec:
- One-shot vs recurring
- 30-day vs 90-day window
- Validation tied to the return window vs trial-to-paid
What is identical:
- Net-30
- $50 threshold
- Clawback carry-forward
- Coupon gating
- The holdout plan
## Negative example - what NOT to do
Inputs:
- Consumer-electronics accessories store
- $200 AOV
- 22% gross margin ($44)
- $18 variable costs/order
- 6% returns
The founder saw beauty programs paying 20% and wants to "match the market to attract affiliates."
```
Proposed (copied) rate : 20% of order value = $40 per order
Contribution margin : $44 - $18 = $26; post-return (x0.94) = $24.44
Result : -$15.56 PER ORDER before any other marketing cost
Ceiling check : max payable = 1/2 x $24.44 = $12.22 → ~6% of AOV, not 20%
Pass threshold : FAILS both conditions - above the ceiling, and effective
cost per customer exceeds any sane CAC
```
Three compounding mistakes:
1. **Copied a benchmark across verticals** - beauty sustains 20% because its margin is 65-80%, while electronics margin is 22%. The rate must come from this catalog's contribution margin.
2. **Flat percentage over a wide AOV spread** - the store sells $15 cables and $400 monitors. 20% of a $400 order is $80 against maybe $50 of margin. One large order wipes out the economics.
3. **The loss is invisible at launch** - it surfaces only after returns net out, weeks into the program, when partners are already recruited at the unsustainable rate and cutting it triggers churn and network notice rules.
The honest recommendation:
1. A derived 4-6% rate, or a flat $10 CPA (consistent with the published 1-10% electronics range).
2. Narrow the program to high-margin accessory SKUs if partners will not work for that.
3. If neither recruits, the affiliate channel does not fit this margin structure: say so rather than launching a program that loses money per sale.
SKILL.md›
---
name: affiliate-commission-structure
description: Design the commission and payout structure of a commission-based affiliate program: rate model (revenue share, flat CPA, hybrid), rate level derived from unit economics, payout tiers, recurring duration and caps, attribution/cookie window, validation, clawback, and payment terms. Covers B2B SaaS and B2C ecommerce programs with professional affiliates. Use whenever the user mentions an affiliate commission rate, commission tiers, lifetime vs 12-month recurring commission, a cookie window, or a rate-card migration, even if they only ask how much to pay affiliates. Do NOT use for end-customer refer-a-friend rewards - use mbfinotti/partnerships-skills@referral-incentive-design instead. Terms drafting, payout auditing, and fraud rules are separate skills.
license: MIT
metadata:
author: Maya-Beth Finotti
version: "1.2.7"
---
# Affiliate Commission Structure
Design the commission and payout structure of an affiliate program: rate model, rate level, tiers, recurring duration, attribution window, and validation/clawback/payment terms.
No named, proprietary framework exists for this discipline. Robert Glazer's _Performance Partnerships_ (2017) and Geno Prussakov's _Affiliate Program Management: An Hour a Day_ (2011) teach doctrine and process, not a branded algorithm. Prussakov's "5/80 rule" (5% of affiliates drive 80% of the work) is the one real, attributable coinage.
What exists instead is a convergent craft, taught in near-identical form across the industry:
- Derive a ceiling from unit economics.
- Set the headline rate below it.
- Differentiate by partner type and incrementality.
- Protect with validation and clawback.
- Reward top performers with tiers.
That derivation is this skill's spine - compute the rate from margin, never copy it from a benchmark.
## Interview
Run these rules before designing anything:
- One question per message.
- Offer multiple-choice answers when possible.
- Skip any question the user already answered.
- B2B SaaS or B2C ecommerce? Subscription or one-time purchase?
- Gross margin? Variable costs per order (COGS, fulfilment, shipping, payment processing, platform fees)?
- Expected return/refund rate (ecommerce) or monthly churn rate (SaaS)?
- AOV or entry-plan price? How wide is the AOV/ACV spread across products or plans?
- Customer LTV? Target CAC and current blended CAC?
- Existing commission rates, if any - and which partners are on them today?
- Which partner types are enrolled or wanted: content/review/comparison sites, coupon/cashback/loyalty, agencies/consultants, creators/influencers?
- Do you have competitor program terms to calibrate against?
- Has finance set a payout budget ceiling?
- What can tracking attribute: last-click cookies, server-side events, new-vs-existing-customer flag, recurring billing events per referred account?
- By what date must the new structure be live and showing results?
- A one-off fix (get this quarter's payouts back inside the ceiling) or a compounding asset (a rate card that survives three years of plan and catalog changes)?
- What is the effort ceiling: who administers the program week to week, and what can the affiliate platform actually express - per-product payout tables, a second rate step for a taper, a new-customer flag, per-partner attribution windows?
Missing margin, churn/return, and CAC answers block the derivation - insist on estimates before proposing any rate.
Those last three answers re-rank every option menu in this skill, and each ranking says which:
- A hard date promotes whatever is one field on the platform and demotes anything needing a negotiation or a tracking change.
- A compounding mandate promotes the derivation and the partner-type split, while a one-off mandate promotes duration and threshold changes that land this cycle.
- A low effort ceiling deletes the options the platform cannot express, rather than demoting them.
Every ordering below is a default, not a law: it shifts with context and with who executes it. Re-rank against what you already know about the user:
- An existing published rate card that network rules make expensive to cut.
- A platform that cannot express a taper.
- A narrow order-value spread.
- An in-house partner manager who can run the per-partner negotiations the default order assumes away.
## Workflow
1. Run the Interview. Collect every economic input before touching a number.
2. Derive the commission ceiling from unit economics - never from a competitor's rate:
- **Ecommerce**: gross margin → subtract variable costs → contribution margin → net out expected returns → pay one-third to one-half of post-return contribution margin. Sanity band: total commission at 20-30% of gross margin.
- **SaaS**: treat commission as part of CAC. Keep LTV:CAC ≥ ~3:1 and CAC payback ≤ ~12 months. Total lifetime commission per customer: 5-15% of LTV, never above 30-40% of gross margin.
- Full worked math in [references/rate-derivation.md](references/rate-derivation.md).
3. Pick the rate model - `percentage of order/revenue > flat CPA > hybrid` on efficiency. Full axes, margin behaviour per model, and the constraints that delete an option: Rate Model section below.
4. For recurring revenue share (SaaS): fix the duration rule before the headline percentage - it moves effective cost far more than the percentage does. Default to a 12-month cap. Ranking and cost arithmetic are in Recurring Duration (SaaS) below.
5. Differentiate rates by partner type, driven by incrementality:
- Content and creator partners run ~78-82% incremental.
- Coupon/cashback partners are often 66-71% non-incremental: they capture last-click credit on demand others created.
- Apply the controls in efficiency order: `new-customer gate > rate cap below content > shorter attribution window > exclusive codes`.
- Delete the gate from the menu when tracking has no new-customer flag, which promotes the rate cap to first.
- Applies identically to B2B and B2C: only the partner mix differs.
- Axes in [references/partner-types-and-tiers.md](references/partner-types-and-tiers.md).
6. Decide tiers - `flat > marginal tiers > retroactive tiers` on efficiency. Launch flat: with no historical performance data there is nowhere to place a breakpoint, which deletes both tiered options rather than demoting them. Axes and mechanics in [references/partner-types-and-tiers.md](references/partner-types-and-tiers.md).
7. Set the payout terms that belong to the structure (details below):
- Attribution window
- Validation/locking period
- Net payment terms
- Minimum threshold
- Clawback clause
8. Check the pass threshold (below). Iterate the levers in the efficiency order given in [references/rate-derivation.md](references/rate-derivation.md) until it holds. If nothing passes, narrow the program to high-margin SKUs or plans first, and recommend not launching only when no narrowing leaves a ceiling partners will work for.
9. Calibrate against benchmarks only after deriving - [references/benchmarks.md](references/benchmarks.md). A derived rate far below the vertical's norm predicts a recruiting problem, not a math error. If you can browse the web, verify any competitor's published terms on its live page - third-party directories often cite stale cookie windows and rates.
10. Present the decisions one section at a time - options, trade-offs, recommendation - and validate each with the user before moving on. After approval, emit the full commission structure spec (below).
11. If your harness has persistent memory, memorize the approved spec's key decisions and economics (ceiling, rates per partner type, duration, windows) so a later revision run starts from them instead of re-interviewing.
## Rate Model
All three models are sized to the same ceiling from step 2 - the model decides who gets paid what inside it, not what the program costs in total. So rank it on effort and reversibility, never on headline generosity.
- efficiency: percentage of order/revenue > flat CPA > hybrid
- value: percentage > flat CPA on a narrow order-value spread, and flat CPA > percentage once the spread is wide, while hybrid > both only for a publisher that refuses pure performance
- effort: hybrid > flat CPA > percentage
- compliance cost: hybrid > flat CPA == percentage - publishing any rate card is already a contractual commitment bound by network decrease rules, which is why those two tie, and only hybrid adds a signed placement contract with its own term on top
| Model | What it buys | Effort | Margin behaviour |
| -------------------------------------------------- | ------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Percentage of order/revenue** (default) | incentive alignment across the whole partner base | near-zero - one field on every affiliate platform | effective rate is constant by construction, so the step-2 ceiling holds at every order size |
| **Flat CPA** | protects unit economics where a percentage would overpay large orders | an hour to derive the payout table, then a standing job to re-derive it whenever plan prices or the catalog move | effective rate swings inversely with order value - across a 25x catalog spread, one payout sits far above the ceiling at the bottom and far below it at the top |
| **Hybrid** (flat placement fee + lower percentage) | access to high-authority publishers who will not work on pure performance | a week of negotiation per partner, then off-platform invoicing and reconciliation every cycle | the fee is paid before any conversion, so it is the only model whose cost the ceiling derivation does not bound |
What this order starves: hybrid. It is the only model that lands a publisher refusing pure performance, the top of the value line for that one job. But it costs a week of negotiation per partner plus off-platform invoicing every cycle, so the ratio buries it in every round it is eligible for.
Promote it deliberately, rather than waiting for a round it cannot win, when a named high-authority publisher has already refused a performance-only deal and the program has the negotiation hours. Say out loud that the fee sits outside the step-2 ceiling: nothing else in this section does.
Constraints delete an option, they do not demote it:
- Narrow order-value spread, or a platform with no per-product payout table: flat CPA leaves the menu - do not present it as an alternative.
- No publisher asking for a placement fee: hybrid leaves the menu - it exists only for that negotiation.
- A hard launch date leaves percentage alone: hybrid cannot close inside one.
## Recurring Duration (SaaS)
Rank the duration rule before negotiating the percentage - it moves effective cost far more than the headline does (arithmetic in [references/rate-derivation.md](references/rate-derivation.md)).
- efficiency: 12-month cap > taper > renewal bonus > lifetime
- cost: on a 30% headline over a 20-month tenure, lifetime pays 30.0% of customer revenue, the cap 18.0%, the taper 13.5% - the renewal bonus sits lowest of all because it only pays on revenue that actually renewed
- value (recruiting pull): lifetime > 12-month cap > taper > renewal bonus - partners compare headline and duration together, and the taper spends its headline in the first six months
- effort: renewal bonus > taper > lifetime == 12-month cap - the last two tie because each is a single duration field and nothing else, while the taper needs a second rate step and the bonus a renewal-event trigger, both of which many platforms cannot express, leaving a standing manual reconciliation
- compliance cost: lifetime > renewal bonus > taper == cap - published lifetime terms commit to an open-ended liability, and retracting one later runs into network decrease caps plus grandfathering for every partner already on it
What this order starves: the taper and the renewal bonus. Both cost less per acquired customer than the cap. On the same 30% headline the taper pays 13.5% of customer revenue against the cap's 18.0%, and the bonus pays only on revenue that renewed.
Yet the cap wins the ratio because it is one duration field. Each of the other two needs a second rate step or a renewal-event trigger, and, on a platform that cannot express it, a standing manual reconciliation. Promote the taper or the bonus above the cap when the payout budget rather than manager hours is the binding constraint, and the platform expresses the mechanic natively.
- Default to a 12-month cap. Use 24 months when recruiting against generous competitors.
- Lifetime is off the menu unless all three hold: gross margin > ~80%, monthly churn < ~5%, and competing programs pay lifetime. Below that bar it is deleted, not demoted - do not price it and do not offer it as the generous option.
- A platform that cannot express a second rate step deletes the taper. The renewal bonus takes its place, or the plain cap does.
- Prefer a renewal bonus (5-10% of renewal value) over uncapped lifetime - keeps partners engaged past the cap without the open-ended liability.
- Pay recurring commission in arrears on confirmed billing events, so churned customers stop costing automatically.
- Uncapped lifetime on a sticky product is a balance-sheet trap: a seven-year customer can earn an affiliate more than that customer's margin.
- B2C ecommerce: recurring duration rarely applies, since commissions are one-shot per order. Skip this section unless the product is a subscription box.
## Payout Terms in the Structure
These terms are part of the rate design, not legal boilerplate - each one changes the effective cost and the program's competitiveness.
- **Attribution/cookie window**: varies by traffic type.
- 24 hours-7 days for impulse and coupon traffic.
- 30 days as the ecommerce default.
- 60-180 days for B2B SaaS with long sales cycles.
- Set coupon/cashback partners shorter than content partners.
Deliberately unranked: these are per-traffic-type defaults, not competing answers to one question - a coupon partner and a B2B content partner never take the same window at any effort budget.
- **Validation/locking**: hold commissions pending 30-60 days. B2C: tie it to the return/refund window. B2B SaaS: tie it to trial-to-paid conversion plus the refund window.
- **Payment terms**: net-30 default. Note the stacking cost: 30-day validation plus net-30 already means affiliates wait ~2-4 months for cash.
- **Minimum threshold**: $50-100.
- **Clawback**: refund, chargeback, or in-window cancellation voids the commission. If already paid, deduct from the next payout and carry negative balances forward. Payout rails rarely reverse a paid commission automatically - a clawback must be explicitly triggered, so write the mechanism into operations, not just the terms.
- Net terms, thresholds, and clawback mechanics work the same for B2B and B2C. Only the window lengths and validation triggers differ.
Payout speed is a recruiting lever - slower terms lose partners to faster-paying rivals - and three levers pull on it. Rank them before shortening anything:
- efficiency: lower the minimum threshold > shorten net terms > shorten validation
- value (speed the partner actually feels): shorten validation > shorten net terms > lower threshold
- effort: shorten net terms > lower threshold == shorten validation - the last two tie because each is a single field, while net terms change the finance cadence every cycle
- reversibility cost: shorten validation > shorten net terms > lower threshold - a shortened validation window pays commissions before refunds land, and a paid commission comes back only through a manual clawback
Lowering the threshold adds no risk at all - the money is owed either way - and it is the lever small and new partners feel first. Shorten validation last, and only once the reversal rate is measured and low.
## Migrating an Existing Rate Card
1. Derive the target structure first - a migration to a copied rate repeats the original mistake.
2. Lead every announcement with what stays the same.
3. Give advance notice: 60 days for tier or rate changes. Never change rates silently - silent migrations are a documented cause of partner churn.
4. Grandfather existing affiliates at the old rate, high performers for at least one cycle.
5. Phase the rollout top-partners-first, with direct conversations before the broadcast.
6. Check network guardrails before cutting rates - networks contractually cap the size, frequency, and notice period of decreases (verbatim example in [references/partner-types-and-tiers.md](references/partner-types-and-tiers.md)).
## The Commission Structure Spec
Deliver every engagement as this artifact - a decision record with a reason on every line, ready for finance and partner-facing docs:
```
COMMISSION STRUCTURE - <program>, <date>
Rate model : % of order | flat CPA | recurring rev-share | hybrid, and why
Headline rates : per partner type (content / coupon-cashback / agency / creator), each with its reason
Tiers : marginal breakpoints + measurement window + reset rule, or "flat - revisit when <condition>"
Recurring duration: cap (e.g. 12 months) or taper or lifetime + renewal bonus, with the margin/churn justification
Attribution : cookie/window length per partner type, new-customer gating
Validation : locking period + what event releases it (return window / trial-to-paid)
Payment : net terms, minimum threshold, clawback clause + negative-balance carry-forward
Economics : ceiling computation shown; projected cost per acquired customer vs current blended CAC
Validation plan : 30-day holdout on top coupon partners; new-customer share tracking
KPIs : cost per incremental affiliate customer vs blended CAC, effective commission rate,
new-customer share, reversal/clawback rate, revenue share of top 10% partners
```
- **Every line carries a reason.** "25% for 12 months = 13% of LTV, inside the 5-15% band" is reviewable. A bare percentage is not.
- **The spec has a pass threshold.** Projected blended cost per incremental affiliate-acquired customer must sit below current blended CAC AND inside the computed margin ceiling. Iterate the levers in their efficiency order until both hold. If nothing passes, narrow to high-margin SKUs/plans, and recommend not launching only when that fails too.
- **The validation plan is not optional.** Last-click attribution structurally overpays bottom-funnel partners. The holdout test is how the spec proves its incrementality assumption.
Worked B2B SaaS and B2C ecommerce specs, plus a negative example, in [references/spec-and-examples.md](references/spec-and-examples.md).
## Failure Modes
| Failure | Why it happens | Fix |
| --------------------------------------------- | ------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------- |
| Rate above contribution margin | Copied from a benchmark instead of derived; loss surfaces only after returns net out | Re-derive the ceiling; cut rate or narrow to high-margin SKUs |
| Tier cliff demotivates or invites junk volume | Retroactive tier near a breakpoint; partner at 49/50 pushes low-quality sign-ups | Marginal tiers; breakpoints from historical data |
| Uncapped lifetime outlives customer margin | Lifetime used as a recruiting weapon on a sticky product | 12-month cap + renewal bonus; buy out legacy lifetime streams |
| Overpaying coupon/loyalty partners | Last-click credits bottom-funnel clicks on demand others created | In order: new-customer gate, cap below content rates, shorter window; exclusive codes and the holdout test to prove it |
| Partner churn after a rate change | Silent or abrupt migration breaks trust and tracking | Notice, grandfathering, top-partner-first phasing |
| Flat percentage over a wide AOV spread | One big order wipes out unit economics | Flat CPA, or percentage banded by product/plan |
One honesty note: the best-sourced program data shows most affiliate programs stall on partner activation, not rate miscalibration - a perfectly derived structure does not rescue a program nobody promotes. Flag this when the user's real problem is recruitment or engagement.
## Invocation Examples
- "We pay 20% recurring forever and finance says it is too expensive - rework the structure. $79/mo plan, 82% margin, 16-month average tenure."
- "Set the commission rate for a new B2C ecommerce affiliate program. AOV $65, 44% contribution margin after returns, and we want coupon partners on a lower rate than content partners."
- "Design payout tiers that reward our top 10 affiliates without blowing the LTV ceiling - here are last year's per-affiliate revenue numbers."
## Reference
- See [references/rate-derivation.md](references/rate-derivation.md) for the two ceiling calculations, the lifetime-vs-cap-vs-taper cost comparison, and the pass-threshold math.
- See [references/benchmarks.md](references/benchmarks.md) for vertical rate tables, cookie-window norms, validation/net-terms/threshold norms, and published program terms - each with source, date, and reliability flag.
- See [references/partner-types-and-tiers.md](references/partner-types-and-tiers.md) for incrementality-based rate differentiation, the holdout test, tier mechanics, and migration guardrails.
- See [references/spec-and-examples.md](references/spec-and-examples.md) for one worked B2B SaaS spec, one worked B2C ecommerce spec, and a negative example that fails the threshold.
- See `mbfinotti/partnerships-skills@partner-economics` for a full channel-partner P&L beyond affiliate rates.
- See `mbfinotti/partnerships-skills@affiliate-program-terms` for drafting the T&C document that encodes this structure.
- See `mbfinotti/partnerships-skills@affiliate-payout-audit` for auditing a payout run downstream of this design.
- See `mbfinotti/partnerships-skills@affiliate-fraud-detection` for the fraud ruleset - this skill only flags where a structure creates fraud incentives.