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:

SourceDescription
DealsData related to opportunities or closed-won business.
InvoicesBilling and payment information linked to deals.
ActivitiesLogged actions (calls, meetings, emails, etc.) typically performed by sales reps.
KPIsCustom 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 MetricSourceFormatAggregation
Total RevenueDeals💰 MonetarySum
Paid Invoices CountInvoices🔢 Count-
Meetings HeldActivities#️⃣ NumericSum

📌 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 CaseFilter 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:

TypeScope
GlobalApplies to all users
Team-basedDifferent targets per team
IndividualSpecific 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 TypeDescription
Filter / If / Multi-PathApplies conditional logic
CommissionCalculates based on deal amount or metric
BonusAssigns a fixed, tiered, or proportional bonus
Addition / MultiplierModifies compensation after calculation
PaymentDefines 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:

  1. Start with Source Data Deals, invoices, activities, and KPIs form the foundation.

  2. Define Metrics Metrics extract performance insights from your data.

  3. Set Targets Targets define what “good” looks like for each metric.

  4. Build Compensation Rules Rules combine metrics, targets, and logic to calculate payouts.

  5. Run Execution Engine Dolfin evaluates the logic and computes compensation values.

  6. Generate Statements Results are shown to users in readable statements.


🔗 Example

StepExample
MetricTotal Deals Won (count of deals where stage = "Won")
Target10 deals per month
RuleTiered bonus: $500 if ≥10 deals, $1000 if ≥15
ResultUser 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.

On this page