Siren

Running a Subscription Affiliate Program

How to set up an affiliate program for a SaaS or subscription business, including trial-to-paid attribution, recurring commissions on renewals, plan upgrades, and refund handling.

Last updated: April 10, 2026

Subscription businesses have a few attribution and payout patterns that don’t fit the standard “click, buy, commission” affiliate flow. Free trials blur when the conversion actually happens. Renewals create a new kind of recurring event that most affiliate programs ignore. Plan upgrades change the commission base mid-stream. And refunds on subscriptions behave differently depending on whether the customer cancels or downgrades.

Siren handles all of these, but the configuration isn’t obvious if you’re new to the plugin. This page walks through the most common subscription-specific patterns and shows how to set them up.

It assumes you already understand the basics of creating a program and just need the subscription-shaped answers. If you’re starting from scratch, the quick start is a better first read.

Trial-to-paid attribution

The most common gotcha for SaaS affiliate programs is the gap between when a visitor signs up and when they pay. A free trial might last 14 days. An enterprise trial might stretch to 30 or more. The visitor’s referral cookie could expire before the paid conversion happens, which would leave the affiliate unpaid for a conversion they actually drove.

Siren handles this with the per-program cookie duration setting, covered in detail in Cookie Duration and Attribution Windows. The idea is simple: set your program’s expiration time to comfortably exceed your trial length. If you offer a 14-day trial, set the cookie to 30 days. If you offer a 30-day trial, set it to 60 days or more. You want the attribution window to be longer than the time it could plausibly take a visitor to convert from first click to first paid charge.

When the paid subscription is detected (via your commerce plugin’s order completion hook), Siren looks back to see if the visitor’s cookie is still valid. If yes, the affiliate gets credit. If no, the conversion fires unattributed. There’s no way to reach backward and re-attribute a conversion after the cookie has expired, so the conservative play is to set the cookie duration too long rather than too short.

A practical rule of thumb: take your trial length, double it, and add a week. A 14-day trial gets a 35-day cookie. A 30-day trial gets a 67-day cookie. The buffer accounts for people who sign up for a trial, forget about it, come back to test again, and finally convert in the third week after their first visit. SaaS buying cycles are messy and the attribution window needs to accommodate that mess.

One side effect: longer cookies mean more potential for attribution overlap if a visitor clicks multiple affiliate links. That’s what the program group resolver is for. If you run multiple affiliate programs in a group and want the most recent click to win, use newest-binding-wins. If you want the first click to keep credit, use oldest-binding-wins. For SaaS programs specifically, newest-binding-wins is usually the right call because it gives credit to whoever got the customer over the finish line, not whoever introduced them to the product weeks earlier.

Recurring commissions on renewals

Siren can pay an affiliate on the initial sale and on each renewal of a subscription product. This requires two things:

  1. A commerce integration that supports renewal tracking. WooCommerce Subscriptions, EDD Recurring Payments, and LifterLMS all support renewals. See the Integration Feature Matrix for the full breakdown.
  2. The renewal conversion type enabled in your program.

Renewal conversions are an Essentials-tier feature. Once enabled, each renewal fires a Renewal conversion that runs through the same attribution pipeline as the original sale. The affiliate who got credit for the initial sale also gets credit for every renewal, for as long as the subscription stays active.

If you want the affiliate to keep earning forever, you don’t need any special configuration past turning on renewal conversions. If you want to cap the recurring commissions (say, after 12 months), you’d handle that by rejecting obligations past the cap during your fulfillment review. There’s no built-in “stop paying after N renewals” setting today.

Most SaaS programs that pay recurring commissions either pay forever or cap at 12 months. Paying forever is simpler operationally and makes the program more attractive to affiliates. Capping at 12 months is more common in lower-margin SaaS businesses where the lifetime value math gets tight if you keep paying out on the same customer for three years. Either works, and you can change your mind later by adjusting how you handle renewal obligations in your fulfillment reviews.

Different rates on first sale versus renewals

A very common pattern: pay 30% on the initial sale, 10% on each renewal. The initial sale is worth more because it represents new customer acquisition. Renewals are lower because the affiliate’s contribution is smaller after the first sale.

Siren handles this by running two programs in parallel, NOT in a program group. Here’s the configuration.

Your first program fires on Sale conversions only, with the 30% rate. This program triggers when the initial subscription is purchased and never again for that customer. Your second program fires on Renewal conversions only, with the 10% rate. This program triggers on every renewal charge after the first one and keeps firing for as long as the customer stays subscribed.

Both programs target the same engagement triggers (link clicks, coupons, whatever the affiliate uses to drive traffic). When the initial sale happens, the first program fires. When the customer renews next month, the second program fires. The collaborator earns from both, which is exactly what you want.

Keep these programs separate, not in a program group. Program groups are for resolving conflicts when multiple programs could claim the same conversion. Here, there’s no conflict: the first sale is always a Sale conversion and never a Renewal, so the two programs never compete.

Plan upgrades and downgrades

When a customer upgrades from a $29/month plan to a $99/month plan, the next renewal commission is calculated against the new price. Siren reads the renewal amount from the commerce plugin’s transaction data rather than from a stored snapshot of the original purchase, so upgrades and downgrades propagate automatically. The affiliate earns 10% of $99 on the next renewal instead of 10% of $29, without you touching any program settings.

This also means the reverse is true for downgrades. If a customer drops from $99 back to $29, the next renewal commission is calculated against $29. There’s no grace period and no snapshot behavior. Siren always pays against the actual charged amount, which is almost always what you want.

If you want a different commission rate based on plan tier (for example, higher commission on enterprise plans), you’d need to use line item filters by SKU and run separate programs per tier. This is more complex than most subscription programs need, and most operators stick with a single rate across all plans. It’s an option if you really need it, and Beacon can walk you through the line item filter configuration if you want to go that route.

Trial expirations without conversion

If a trial ends and the customer never pays, no conversion fires and no commission is owed. The original engagement (the click that brought the visitor to the trial signup) is still on file, but it never produces a payout. This is the right behavior: you don’t want to pay affiliates for trials that never convert.

If you want to track “trials started” as a metric, or if you want to pay affiliates a small bounty for every trial signup in addition to the bigger commission on conversion, run a Lead conversion program in parallel. Lead conversions fire on a signup event rather than a sale, and they’re an Essentials-tier feature.

The two-program structure here is: a Lead program pays (say) $1 per trial started, and a Sale program pays the full 30% on conversion to paid. The affiliate gets both when a paid conversion happens and just the $1 when a trial doesn’t convert. This is useful if you have affiliates driving high trial volume but lower conversion rates, because it rewards the upstream work even when the downstream conversion doesn’t happen. It’s less useful if your trial conversion rate is high, because the added complexity of running two programs isn’t worth the small bounty.

Tracking who actually drove the sale

For SaaS products with long buying cycles, one of the hardest questions is whether an affiliate actually drove a sale or whether the customer was going to buy anyway. A visitor who was already considering your product clicks an affiliate link out of convenience and then buys the product they were going to buy regardless. Siren has no way to distinguish this from a “real” affiliate-driven sale, and frankly neither does any other affiliate platform.

The pragmatic answer is to trust the attribution within your cookie window and accept that some percentage of affiliate commissions are going to customers who would have converted on their own. This is a cost of running an affiliate program, not a defect in the tracking. If the total commission you pay is less than the total new revenue the program generates, the program is working even if some of the individual attributions aren’t “correct.”

If you’re seeing an unusually high percentage of affiliate conversions from a single affiliate and suspect they’re gaming the system (clicking their own link before known customers complete purchases), the fix is to investigate and manually reject suspicious conversions. Siren’s conversion rejection is one-click, so cleaning up bad attributions is quick.

Annual versus monthly subscriptions

If you sell both annual and monthly plans, think about how you want to handle the difference in affiliate payouts. An annual plan at $240/year generates a single large commission at signup (30% of $240 = $72), while a monthly plan at $20/month generates a smaller commission at signup ($6) plus renewal commissions over time.

Most SaaS programs pay the same percentage on both plans and let the math work out naturally. The affiliate earns the $72 upfront on annual customers and the $6 + 10% renewals on monthly customers, and over a year or two the totals tend to converge. This is the simplest approach and the one most affiliates expect.

If you want to encourage annual sales specifically (because annual customers have lower churn and are more valuable to your business), you can offer a higher rate on annual plans via line item filters. Set a 40% rate on any line item with “annual” in the SKU, and 30% on everything else. This incentivizes affiliates to push annual plans and gives you a cleaner lifetime value picture.

Add-ons and cross-sells

SaaS products often sell add-ons alongside the main subscription. Extra user seats, additional storage, premium support, training hours, a second product bundled with the first. The question is whether affiliates should earn commission on these add-ons.

There’s no universal answer. If you want affiliates to earn on everything, just use a single program with no line item filters. Every purchase (main plan, add-on, anything with a price) generates a conversion and a commission.

If you want affiliates to earn only on the main plan, use line item filters by SKU to exclude add-on products. The affiliate gets credit for the $99/month plan and no credit for the $20 extra seat. This is the cleaner approach if your add-ons have thin margins or if they’re typically added by existing customers rather than purchased during initial signup.

If you want different rates on add-ons versus main plans, run two programs with line item filters: one that includes only main plan SKUs with a 30% rate, another that includes only add-on SKUs with a 10% rate. This is more configuration work but gives you precise control over what each affiliate earns on what.

Subscription refunds

Siren’s refund pipeline, covered in How Refunds Work, handles full subscription cancellations the same way as one-time purchase refunds. The conversion is rejected, and the obligation is rejected too if it hasn’t been paid out yet. If the obligation has already been fulfilled, Siren leaves it alone and you handle recovery manually.

Partial refunds are where subscription handling gets awkward. If a customer downgrades mid-cycle and gets a prorated credit, Siren does NOT automatically reduce the commission. The conversion stays at full value. You’d need to manually adjust the affected obligation.

This is a known limitation. If you issue a lot of prorated refunds, the simplest workaround is to delay fulfillment until your refund window has closed, then review the obligations for adjustments before sending payouts. A seven-day review window before each monthly payout catches most of the prorated refund cases and keeps the manual work to a minimum.

Cancellation of a subscription future renewal (where the customer stops auto-renewing but keeps access through the current period) is not a refund. No conversion is rejected, no obligation is touched. The affiliate keeps credit for the sales that already happened, and future renewals simply stop firing because there are no future renewals to charge. This is the right behavior, because the affiliate did earn the commissions that have already been paid, and the customer cancellation is unrelated to the quality of the referral.

For a SaaS business launching its first affiliate program, start with the basic affiliate program recipe and adjust the cookie duration to exceed your trial length. That gets you a working 20-30% commission on new sales with standard click attribution. It’s the quickest path from zero to a functioning program, and you can layer on renewal commissions and lead bounties later.

For a setup with separate first-sale and renewal commission rates, use the business partner revenue share recipe or the channel partner program recipe as a starting point, then add a second program for the renewal rate. Both recipes ship with percentage-of-transaction incentives that are easy to duplicate and modify. The channel partner recipe also includes manual attribution, which is useful if you have some deals closed through direct sales conversations rather than tracking links.

If the patterns above don’t cover your situation, describe your requirements to Beacon and ask it to generate a custom recipe. Beacon understands the subscription-specific constraints and can produce a fully-configured recipe matching your exact trial length, commission rates, and refund policies.

For deeper reference, the two most useful pages for subscription programs are Cookie Duration and Attribution Windows and the Integration Feature Matrix. The first tells you how to size your attribution window. The second tells you which features actually work on your commerce stack. If you’re on a combination that doesn’t support renewal conversions, you’ll need to either change your setup or accept that you’re running a first-sale-only program.