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

FieldDescription
LabelA descriptive name for the rule (e.g., "Q1 Commission Rule").
DescriptionExplains what the rule calculates and under what conditions.
SourceThe 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.
DiagramThe JSON flow structure that defines the logic for the rule.
TypeWhether 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 TypePurpose
FilterNarrows down records based on JSON logic filters (e.g., only deals with status = "Won").
If/ElseSplits the flow based on a true/false condition.
Multi PathEvaluates 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)

TypeDescription
TieredDefine progressive or regressive tiers (e.g., 5% up to $10k, 7% above).
StraightApply a flat rate across all values (e.g., 5% of every deal).
PieceworkPay a fixed amount per unit (e.g., $100 per closed deal).
Field-BasedUse a percentage dynamically defined in a field (e.g., deal.$custom_commission_rate).

🎯 Bonus Nodes (for rules of type bonus)

TypeDescription
FixedA static amount, regardless of performance.
TieredVary bonus amounts depending on attainment levels.
ProportionalPay a percentage of the target based on actual attainment (e.g., 75% attainment = 75% bonus).

➕ Addition Node (Post-processing)

TypeDescription
Fixed AmountAdd a constant amount to the current compensation.
Percentage of Target BonusAdd 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:

  • value
  • profile_id
  • payment_date
  • withheld status
  • optional currency conversion metadata