Commission rules
Multi-branch commission rules: how rules are judged, the six templates, conditions, priority, approval, and the preview.
A commission rule decides what a sale earns. Here's how a sale gets its rate:
- The rules are tried from the top of the list down.
- The first active rule that applies to the sale decides it.
- Inside that rule, the branches are checked in order. A branch is an exception with its own rate, such as "30% for partners with 5 or more customers".
- The first branch that matches sets the rate.
- If no branch matches, the rule's own fallback rate applies.
So one rule can hold a whole commission structure. A three-tier ladder is one rule with three branches. Your plan counts rules, not branches.
The rules list
Each rule is a card, numbered in the order rules are tried. A card answers three questions:
- When: every payment or a signup, and how many exceptions (branches) are checked first
- Pays: the rate, and how the commission gets approved
- Scope: the whole program, one group or one partner
The number that sets the order (its priority) sits under Details on each card, with a link to the preview.
To change the order, drag the cards, or use the up and down arrows. The arrows work from a keyboard too. The first active rule that applies still decides the sale.
Creating a rule
- Open Commission rules and press New rule.
- Pick a template. Each one is a working rule you then adjust.
- Work through the four steps below: General, Trigger, Action and Branches.
The branches a template creates are ordinary branches, and you can edit them.
| Template | What it does | Example |
|---|---|---|
| One-time | Pay on a customer's first payment only | 30% of the first payment, nothing on renewals |
| Recurring | Pay on every payment for as long as the customer stays | 20% of every payment, for life |
| Monthly vs yearly | A different rate for monthly and yearly plans | 20% on monthly, 15% on yearly |
| Time-based decay | A rate that steps down the longer a customer has been around | 30% in year one, 20% in year two, 10% after that |
| Tiered by customers | A higher rate for partners who have referred more customers | 20% up to 4, 30% from 5 to 19, 40% from 20 |
| Time-limited | Pay for a customer's first N months, then stop | 25% for the first 12 months, then nothing |
General
This step sets:
- the name
- an internal description
- who it applies to: every partner, one group, or one partner
- priority, under "Advanced: priority and tie-breaks"
That priority section opens on its own from your second rule onwards.
Lower priority numbers run first, and new rules start at 100. When two rules tie on priority, a partner rule beats a group rule, and a group rule beats a program-wide one. So an individual deal wins without any setup. You can also drag rules into order on the list page.
Trigger
- New payment: a referred customer pays. That covers first purchases and every renewal.
- New signup: a referred customer signs up, before any payment. Use it with a fixed amount to reward leads.
"One-time" isn't a separate trigger. The template builds it as a branch on First payment is true, with a fallback rate of zero.
Action
The rule pays a commission, and this step sets the fallback rate. That's a percentage or a fixed amount, used when no branch matches.
Set it to zero to pay nothing outside the branches. A rate of zero books no commission row at all.
This step also sets approval:
- Approve automatically: approved on the sale. Like every commission, it's payable after the holding period.
- Approve by hand: waits in the commissions queue until someone decides.
Branches
Branches are checked top to bottom. The first branch whose conditions match sets the rate. Ranges include both ends, so "5 to 19 customers" pays on 5 and on 19.
A condition is built from groups of all of these (and), any of these (or) and none of these. Groups can sit inside other groups. The fields come in three families:
- Payment: amount, currency, billing type, billing interval, product id, product name, first payment, payment number, coupon code, tracked by
- Customer: months since conversion, customer status, customer country
- Partner: partner, partner group, referred customers, partner tags
The operators run from is and is one of through to between (inclusive), contains and starts with.
Durations count whole months since conversion, and N means N. The editor shows the last date that qualifies, so you always know where a boundary falls.
The preview
On a phone or a narrow window, the preview sits under the wizard. A Jump to preview link at the top takes you there.
When you edit a rule that already pays partners, Who a change affects sits beside the preview too. That keeps the warning about future sales in view on every step.
Before saving, press Preview against recent sales. It runs your unsaved draft through the real pricing engine, against your last 90 days of sales, alongside your existing rules. It tells you:
- how many commissions it would have produced, and their total
- which sales matched but earn nothing
- which sales a higher-priority rule takes instead
- which partners are most affected
You get to watch a rule run before you trust it.
Editing a rule
A change applies from the moment you save it, to everyone. The rate is read fresh on every payment. Let's say a customer was referred a year ago: their next renewal is priced by the rule as it stands today, not as it stood when that partner joined.
The same goes for switching a rule off or deleting it. Sales it used to price earn nothing.
Nothing already earned moves. A commission keeps the amount it was created with forever, along with a record of the exact rule that priced it, so lowering a rate never claws anything back or rewrites a partner's history. (A clawback is money you take back after you've already paid it.)
We built it this way on purpose, and it gives you a job to do. Let's say you recruited partners on 20%, and you want to keep them there while new partners join at 15%. The old rate won't linger. Here's how:
- Make a second rule at 20%, for those partners or their group.
- Give it a lower priority number, so it wins.
- Set the program-wide rule to 15%.
Both rates then show on the rules page, and you can retire the older one whenever you've told those partners.
The editor tells you how big a change is before you save. Next to the rate, on a rule that already exists, it names two numbers:
- how many active partners the rule prices
- how many customers they've referred
Those customers are the subscriptions whose next renewal moves. It counts the partners the rule wins for, not every partner it's scoped to, so a rule that a more specific one outranks isn't credited with partners it never prices.
Run Preview against recent sales as well before saving any rate change. It prices your draft against your last 90 days and shows which partners are most affected. That's the closest you'll get to seeing the change land before it lands.
Every change is on the record
Editing, switching off or deleting a rule raises a webhook event. A webhook is a message we send to your own systems when something happens, so a change to what your partners earn is never silent.
There are three events. Subscribe to them like any other, under Settings, Webhooks:
| Event | Raised when | What it carries |
|---|---|---|
rule.updated | You save an edit | rule_id and the name, plus the rate, priority and status before and after |
rule.status_changed | You switch a rule on or off | rule_id, the name, and the new status |
rule.deleted | You delete a rule | rule_id and the name |
rule.deleted and rule.status_changed are worth listening for, even if you never automate anything else. Say the rule you removed was the last one that applied to a partner. Their next renewal earns nothing, and no other event fires to tell you, because there's no commission to report.
The full payloads are in the event catalogue.
What the rule used to say
Open a rule and scroll down to History to see every edit you've ever saved, newest first.
Each entry says what changed, such as "Rate changed from 20% to 15%" or "Branch 2 was removed. It paid 30%", with the dates that version was in force and the name of whoever saved it. API edits are marked.
You can't turn it off. The record is written in the same step as the edit, so there's no way for a rule to change without a matching entry landing here too.
Two things are left out of the list on purpose:
- Switching a rule on or off isn't an edit. It raises
rule.status_changedinstead. - Dragging rules into a new order isn't an edit either. Otherwise one drag would fill the history of every rule on the page with a row nobody asked for.
History doesn't give you old rates back. It's a record, and a rule change still applies to every payment from the moment you save it. Want a group of partners kept on the old rate? Make the second rule described above.
The same history is readable over the API at GET /v1/rules/{id}/revisions, newest first, and each revision carries the whole rule exactly as it stood before that edit.
Answering "why this commission?"
Every commission records which rule and which branch priced it.
- On Commissions, each row has a View calculation link that opens that record.
- Each commission's own page has the same link.
Below the math, the page lists what happened next, oldest first. That includes the payout that carries the commission:
- Sent to PayPal or Wise.
- Paid by PayPal or Wise, or marked paid by hand.
- Didn't go through, or checked and cleared after a hold.
When a partner disputes an amount, send them a link instead of digging through records.
Plan limits
The Launch plan includes 3 rules. Grow and above are unlimited.
One rule holds many branches, so three rules go a long way. A full tiered structure, a launch bonus and an override for one partner all fit. When you're near the limit, the rules page shows your usage next to New rule.