Deep Dive

Multi-Currency Commission Plans in Spiff: A Practical Guide

Running a global sales team means your commission platform needs to handle multiple currencies accurately and consistently. Spiff does this well — but only when configured correctly. This guide covers the practical steps: how to set up currency handling, how to map fields from Salesforce, which exchange rate approach to use, and the edge cases that cause disputes if you don't plan for them.

Isma Delgado · Spiff Implementation Consultant · SpiffRevOps

When I rebuilt the Spiff instance for Storyblok, one of the core requirements was multi-currency support across 8 currencies for their international sales team. Getting this right was foundational — commission calculations that are wrong by even a few percent due to currency handling errors erode rep trust fast.

This guide reflects what I learned doing that implementation and others. It assumes you're using Salesforce as your CRM, though the principles apply to HubSpot too.

Why Multi-Currency Spiff Implementations Often Go Wrong

The problem isn't usually that Spiff can't handle multiple currencies — it can. The problem is that currency handling touches several layers of the system simultaneously: CRM field configuration, Spiff plan logic, rep quota settings, and payout calculations. When any one of these layers has a gap, the others can't compensate.

The most common failure modes are:

Step-by-Step: Setting Up Multi-Currency in Spiff

1

Enable multi-currency in Salesforce first

Before touching Spiff, confirm that Salesforce has multi-currency enabled and that your opportunity records carry the correct currency code at the deal level. In Salesforce, this means the CurrencyIsoCode field is populated on every opportunity. If Salesforce is storing all deals in a single corporate currency and converting at the CRM level, you'll need to decide whether to use the converted amount or the original deal currency — and that decision affects how you configure Spiff.

2

Map the right currency fields in the Spiff integration

When configuring the Salesforce–Spiff integration, you need to explicitly map the currency code field alongside the deal amount. Map CurrencyIsoCode from the Opportunity object so Spiff knows which currency each deal is in. Also confirm whether you're pulling Amount (native currency) or ConvertedAmount (converted to corporate currency). For international teams where reps close deals in their local currency and are paid commissions in that same currency, you want the native Amount field.

3

Set rep quotas in the correct currency

Each rep's quota in Spiff should be set in the same currency as the deals they close. A rep in Germany with a €500k quota should have their attainment calculated in EUR, not converted to USD and compared to a USD quota. Mismatching quota currency and deal currency is the most common cause of incorrect attainment percentages in multi-currency implementations.

4

Define your exchange rate approach and apply it consistently

Choose one exchange rate approach and apply it to every plan. The three options are: a fixed rate updated monthly by Finance, the Salesforce dated exchange rate (updated automatically), or a contract rate locked at deal close. Each has tradeoffs — see the comparison table below. The important thing is consistency: mixing approaches across plans means two reps closing the same deal type may have commissions calculated differently.

5

Configure payout currency separately from calculation currency

In some organisations, commissions are calculated in local deal currency but paid out in a base corporate currency (usually USD or EUR). If that's your setup, the conversion needs to happen at payout time, not at calculation time — and the rate used should be clearly documented so reps can verify their statement. Spiff supports this, but it needs to be explicitly configured rather than assumed.

6

Test against real deals in every currency before go-live

Run the plan logic against at least 3–5 real historical deals per currency before going live. Compare the Spiff output to what was actually paid. This is where configuration errors surface — not in sandbox testing with dummy data. For the Storyblok implementation, we tested across all 8 currencies before any rep saw their first statement, which is why there were no currency-related disputes after launch.

Exchange Rate Approaches: A Comparison

Approach How it works Best for Watch out for
Fixed monthly rate Finance sets a rate at the start of each month. All deals that month use that rate. Teams that want predictability and Finance control Rate updates must happen consistently — a missed month causes errors
Salesforce dated exchange rate Uses the exchange rate recorded in Salesforce at the deal close date Teams with Salesforce Advanced Currency Management enabled Requires Salesforce currency tables to be kept current
Contract rate Rate locked at contract signature, stored as a custom field on the opportunity Long-cycle enterprise deals where rate volatility is a concern Requires a custom field and a process to populate it at deal close

The Edge Cases That Cause Disputes

Multi-currency splits

When two reps share credit on a deal — one based in the US, one in Germany — and the deal is in EUR, you need a clear rule for how split credit is handled. Is each rep's portion calculated in EUR and then converted for the US rep at payout? Or is everything converted to USD before the split? The answer needs to be in your comp policy before you build it in Spiff.

Quota changes mid-quarter

If a rep's quota is adjusted mid-quarter (territory change, ramp adjustment), and their quota is in a non-base currency, the attainment calculation needs to handle the partial-period correctly. Define whether attainment is pro-rated, reset, or carried forward — and in which currency the calculation runs.

Refunds and clawbacks on multi-currency deals

If a deal closes in EUR in month one and churns in month three triggering a clawback, which exchange rate applies to the clawback? The rate at deal close, the rate at churn, or the current rate? This sounds like a detail but it matters — and reps will ask.

The most expensive mistake: setting up plans that look correct in Spiff's UI but are silently calculating attainment in the wrong currency. This typically goes unnoticed until the first commission cycle when a rep in Germany notices their EUR €500k quota attainment is being compared to deals in USD — and the numbers don't match what they expected. By then, trust is already damaged.

Working through a multi-currency implementation? This is one of the more technically involved parts of a Spiff setup. If you'd like a direct conversation about your specific currency setup, book a free discovery call — I can usually identify the configuration approach that fits your team in 30 minutes.

Need help with a multi-currency Spiff setup?

Multi-currency is one of the trickier parts of a Spiff implementation. Let's talk through your specific setup.

Book a Free Discovery Call