Compensation Rules
Compensation Rules are logic-based flows that define how to calculate compensation for your sales team based on conditions, metrics, and record data.
💡 What is a Compensation Rule?
A Compensation Rule defines how payouts (e.g., commissions or bonuses) are calculated and distributed. Rules are configured using a flow diagram made up of nodes that evaluate data, apply logic, and compute values.
Each rule can either run per record (e.g., per deal) or for a given period (e.g., per quarter), depending on how it's configured.
🧱 Compensation Rule Schema
| Field | Description |
|---|---|
| Label | A descriptive name for the rule (e.g., "Q1 Commission Rule"). |
| Description | Explains what the rule calculates and under what conditions. |
| Source | The data source for the rule: deals, invoices, activities, or a custom KPI table. |
| Outcome Period | (Optional) If set, the rule runs once per user per period (month, quarter, half-year, year). If not set, it runs once per record. |
| User Field | (Required if Outcome Period is blank) Identifies the user linked to each record (e.g., sales rep). |
| Accrual Date Field | (Required if Outcome Period is blank) Determines the date used to assign records to a time period. |
| Diagram | The JSON flow structure that defines the logic for the rule. |
| Type | Whether the rule results in a commission or a bonus. |
🧠 Diagram-Based Logic
The diagram defines the flow of logic for calculating compensation. It consists of:
- Nodes — discrete steps in the calculation
- Edges — the flow of execution between nodes
Each node performs a specific role: filtering, branching, calculating, or generating payments.
🧩 Node Types
1. 🧪 Condition Nodes
Used to filter or branch the logic based on data.
| Node Type | Purpose |
|---|---|
| Filter | Narrows down records based on JSON logic filters (e.g., only deals with status = "Won"). |
| If/Else | Splits the flow based on a true/false condition. |
| Multi Path | Evaluates multiple conditions and follows the first that evaluates to true. |
2. 🧮 Calculation Nodes
Used to compute commissions or bonuses.
📌 Commission Nodes (for rules of type commission)
| Type | Description |
|---|---|
| Tiered | Define progressive or regressive tiers (e.g., 5% up to $10k, 7% above). |
| Straight | Apply a flat rate across all values (e.g., 5% of every deal). |
| Piecework | Pay a fixed amount per unit (e.g., $100 per closed deal). |
| Field-Based | Use a percentage dynamically defined in a field (e.g., deal.$custom_commission_rate). |
🎯 Bonus Nodes (for rules of type bonus)
| Type | Description |
|---|---|
| Fixed | A static amount, regardless of performance. |
| Tiered | Vary bonus amounts depending on attainment levels. |
| Proportional | Pay a percentage of the target based on actual attainment (e.g., 75% attainment = 75% bonus). |
➕ Addition Node (Post-processing)
| Type | Description |
|---|---|
| Fixed Amount | Add a constant amount to the current compensation. |
| Percentage of Target Bonus | Add a value based on a percentage of a target’s outcome. |
✖️ Multiplier Node (Post-processing)
| Description |
|---|
| Multiplies the current compensation value based on target or metric-based attainment (via tiers). |
💸 Payment Node
The final node in every rule, responsible for issuing the payout. It supports:
- Multiple phases (e.g., pay 50% next month, 50% end of quarter)
- Custom timing or conditional withholding
- Currency conversion at payment time
- Targeting specific recipients (e.g., deal owner, team manager, custom field)
Each payout includes information like:
valueprofile_idpayment_datewithheldstatus- optional currency conversion metadata