docs
Platform guides

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:

  1. The rules are tried from the top of the list down.
  2. The first active rule that applies to the sale decides it.
  3. 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".
  4. The first branch that matches sets the rate.
  5. 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

  1. Open Commission rules and press New rule.
  2. Pick a template. Each one is a working rule you then adjust.
  3. Work through the four steps below: General, Trigger, Action and Branches.

The branches a template creates are ordinary branches, and you can edit them.

TemplateWhat it doesExample
One-timePay on a customer's first payment only30% of the first payment, nothing on renewals
RecurringPay on every payment for as long as the customer stays20% of every payment, for life
Monthly vs yearlyA different rate for monthly and yearly plans20% on monthly, 15% on yearly
Time-based decayA rate that steps down the longer a customer has been around30% in year one, 20% in year two, 10% after that
Tiered by customersA higher rate for partners who have referred more customers20% up to 4, 30% from 5 to 19, 40% from 20
Time-limitedPay for a customer's first N months, then stop25% 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:

  1. Make a second rule at 20%, for those partners or their group.
  2. Give it a lower priority number, so it wins.
  3. 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:

EventRaised whenWhat it carries
rule.updatedYou save an editrule_id and the name, plus the rate, priority and status before and after
rule.status_changedYou switch a rule on or offrule_id, the name, and the new status
rule.deletedYou delete a rulerule_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_changed instead.
  • 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.