The Compensation Framework
Understand how Dolfin’s compensation engine connects source data, metrics, targets, and compensation rules into a unified workflow.
🧭 Overview
Dolfin’s compensation system is designed as a flexible, composable framework that connects your raw performance data with payout logic. This page explains how the different pieces link together—from your CRM and ERP data to final commission and bonus calculations.
🛠️ Source Data
Your source data is the foundation for all metrics and compensation logic. Dolfin supports four core types of data:
| Source | Description |
|---|---|
| Deals | Data related to opportunities or closed-won business. |
| Invoices | Billing and payment information linked to deals. |
| Activities | Logged actions (calls, meetings, emails, etc.) typically performed by sales reps. |
| KPIs | Custom tables that store time-bound performance data outside of core objects. |
📁 These sources are ingested and made queryable in Dolfin's metric engine.
📊 Metrics
Metrics are calculated values based on your source data. Each metric is:
- Tied to a single source (e.g., deals, invoices, or a KPI table)
- Evaluated per record and grouped by period
- Defined using fields, filters, aggregation logic, and a date range
| Example Metric | Source | Format | Aggregation |
|---|---|---|---|
Total Revenue | Deals | 💰 Monetary | Sum |
Paid Invoices Count | Invoices | 🔢 Count | - |
Meetings Held | Activities | #️⃣ Numeric | Sum |
📌 You can attach filters to narrow down the records (e.g., only include Won deals).
🔎 Metric Filters
Metric filters allow you to narrow the dataset before aggregation. They use JSON Logic to define conditions that records must meet.
| Example Use Case | Filter Logic |
|---|---|
| Only count Won deals | { "==": [ { "var": "stage" }, "Won" ] } |
| Include deals over $10,000 | { ">=": [ { "var": "amount" }, 10000 ] } |
| Filter invoices that are paid and due in last 30 days | { "and": [ { "==": [ { "var": "paid" }, true ] }, { ">=": [ { "var": "due_date" }, "today_minus_30" ] } ] } |
| Only include activities of type "meeting" | { "==": [ { "var": "type" }, "meeting" ] } |
🧠 Filters are evaluated per record and affect which rows are included before applying aggregation (sum, count, etc.).
🎯 Targets
Targets define the expected value for a metric in a specific time period. They allow Dolfin to measure achievement, a value from 0 to 1, which reflects how close someone came to the goal.
Targets can be:
| Type | Scope |
|---|---|
| Global | Applies to all users |
| Team-based | Different targets per team |
| Individual | Specific to a user |
Targets are used in compensation logic to:
- Enable tier-based commission rates
- Gate eligibility for bonuses
- Drive multipliers based on over- or underperformance
🧮 Achievement =
metric_value / target_amount(or inverse, if upper bound is enabled)
🧩 Compensation Rules
Compensation Rules define the logic that determines how compensation is calculated.
Each rule:
- Is tied to a source (e.g., deals, invoices)
- Optionally runs over a time period (
outcome_period) or per record - References metrics and/or targets to determine payouts
- Is implemented as a diagram composed of nodes (e.g., filters, calculations, conditions)
| Node Type | Description |
|---|---|
| Filter / If / Multi-Path | Applies conditional logic |
| Commission | Calculates based on deal amount or metric |
| Bonus | Assigns a fixed, tiered, or proportional bonus |
| Addition / Multiplier | Modifies compensation after calculation |
| Payment | Defines when and how the compensation is paid |
🔗 Compensation rules connect directly to the metrics and targets you’ve defined, forming the final step in the chain.
🔄 End-to-End Flow
Here’s how everything fits together:
-
Start with Source Data Deals, invoices, activities, and KPIs form the foundation.
-
Define Metrics Metrics extract performance insights from your data.
-
Set Targets Targets define what “good” looks like for each metric.
-
Build Compensation Rules Rules combine metrics, targets, and logic to calculate payouts.
-
Run Execution Engine Dolfin evaluates the logic and computes compensation values.
-
Generate Statements Results are shown to users in readable statements.
🔗 Example
| Step | Example |
|---|---|
| Metric | Total Deals Won (count of deals where stage = "Won") |
| Target | 10 deals per month |
| Rule | Tiered bonus: $500 if ≥10 deals, $1000 if ≥15 |
| Result | User closes 12 deals → earns $500 bonus |
✅ Summary
Dolfin's architecture ensures traceability, flexibility, and precision. By separating data, metrics, targets, and rules, each layer can be independently maintained while feeding into a unified compensation engine.