CSM: retention and expansion

Renewals and expansion at different rates, with a clawback if the account churns quickly.

Worked example

A $200,000 renewal pays $6,000, reversed if the customer churns within 120 days.

The plan definition

This is the plan exactly as the product would create it. Rates are decimal strings rather than numbers throughout, because binary floating point cannot represent most of them exactly and a commission rate is not a place to discover that.

id: csm-retention
version: 1
effective_from: 2026-01-01
period: quarterly
currency: USD
components:
  - id: renewal
    label: Renewals
    applies_to: 'allocation.deal.deal_type == "renewal"'
    basis: allocation.amount
    rate:
      type: flat
      rate: "0.03"
  - id: expansion
    label: Expansion
    applies_to: 'allocation.deal.deal_type == "expansion"'
    basis: allocation.amount
    rate:
      type: flat
      rate: "0.07"
adjustments:
  - id: churn_clawback
    type: clawback
    trigger: 'deal.churned_on != null and days_between(deal.closed_on, deal.churned_on) <= 120'
    amount: original_commission
    window: rolling_12

Starting from this template gives you an editable copy, it is not locked, and the editor validates as you type.

← All templates