Multi-currency
Who this is for: admins with reps who sell or are paid in more than one currency, and reps who want to know how their figures are converted. Setting up for the first time? Read Set up your organization and Add your team first.
Multi-currency is included on every plan, including the free one.
The three currencies
| Currency | Belongs to | What it's for |
|---|---|---|
| Quota currency | Each person | The currency their quota is set in. Deals are converted into it, and attainment and commission are calculated in it. |
| Payout currency | Each person | The currency they're paid in. Defaults to the quota currency. |
| Base currency | Your organization | The currency organization-wide totals are reported in: analytics, and the totals admins see. |
A London rep might have a GBP quota and GBP payout in a USD-based company. A deal they close in euros is converted to pounds for their commission, and their pay is converted to dollars for company reporting.
Where each currency is set
| Currency | Set in | Codes allowed |
|---|---|---|
| Base | Set up your organization at first sign-in, then Settings → Features → Base Currency | USD, EUR, GBP, SGD, JPY, CHF, AUD, CAD, INR, CNY |
| Quota and payout, one person | Organization → People → Invite User: Quota Currency and Payout Currency | The same ten codes |
| Quota and payout, many people | People Bulk Upload columns currency and payoutCurrency | Any ISO 4217 code |
| Quota and payout, by API | The people API fields currency and payoutCurrency | Any ISO 4217 code |
| A deal's currency | The currency column or field on each deal, or the Currency list in Add Entry (ten codes) | Any ISO 4217 code by upload or API |
Codes are checked against the ISO 4217 list. A code that isn't on it fails with Unknown currency code "BTC" — not a recognised ISO 4217 currency. Cryptocurrencies aren't supported.
How a deal becomes pay
- The deal is stored in its own currency. Nothing is converted when you import it.
- Commission is calculated in the quota currency. Each deal is converted into the rep's quota currency, and attainment, tiers and commission are worked out there.
- Pay is converted. The result is converted to the payout currency for the rep's pay and to the base currency for reporting.
- Publishing freezes it. A published payout keeps its amounts, currencies and rates. Later rate changes never alter it.
With credit splits, each rep's share is converted into that rep's own quota currency.
Worked example
Rates here are made up for the example. A rep has a GBP quota, GBP payout and a 10% rate, in a USD-based organization. They close a €50,000 deal on March 10, 2026.
| Step | Rate used | Result |
|---|---|---|
| Deal to quota currency | EUR to GBP on March 31: 0.85 | £42,500 counts toward quota |
| Commission | 10% | £4,250 |
| To payout currency | GBP to GBP | £4,250 paid |
| To base currency | GBP to USD on March 31: 1.27 | $5,397.50 in company totals |
Which exchange rate is used
Earnest converts at the rate as of the last day of the period being calculated: March 31 for a March payout. Every deal in the period uses that one rate for its currency pair, whatever its booking date. The rate is the most recent one synced on or before that day.
The same rule applies to drafts, the rep and manager dashboards, the earnings planner and analytics. Analytics converts each month at that month's last-day rate.
The booking-date rate is used only as a fallback, if a currency pair is missing from the rates loaded for the period.
What this means in practice:
- While a month is still open, its last day is in the future, so the newest rate is used. A dashboard or a draft can move a little from day to day as rates update.
- A draft regenerated after the month ends uses the month-end rate.
- A published payout never changes. When the payout currency differs from the quota currency, the statement PDF shows the conversion and its rate date, for example "Converted: £3,357.50 in GBP (rate: 0.7900 as of 2026-03-31)".
Some older deals were converted when they were imported, before Earnest worked this way. Those keep their stored rate for the rep they were converted for, and their payout detail shows "Converted Amount (Quota Currency)" and "Exchange Rate Used".
Where rates come from
A daily job runs shortly after midnight UTC. It fetches the day's rates against the US dollar from an external rate provider and stores them centrally. Every other pair is worked out through the dollar. If today's rates are missing when a calculation runs, Earnest tries to fetch them then.
Every organization reads the same table, so a short provider outage doesn't stop calculations. They keep using the most recent rates.
You can't enter or override a rate. If a deal must count at a specific rate, record its amount in the rep's quota currency instead.
When a rate is missing
Earnest never silently treats two currencies as equal. When a rate can't be found it steps down in this order.
Fallback rates and the admin banner
If the daily rates are unavailable, Earnest uses a built-in table of approximate rates covering USD, EUR, GBP, SGD, JPY, CHF, AUD, CAD, INR and CNY. While that happens, admins see a warning at the top of every admin page, such as "No exchange rates have been synced yet — calculations are using hardcoded fallback values." or "The daily exchange-rate sync hasn't succeeded in 30h. … Calculations are using rates from" a given date.
Publishing on non-live rates
Publishing locks in the converted amounts. If you publish payouts that involve a conversion while rates are on the fallback table or out of date, Earnest asks first: Publish on non-live exchange rates? The message ends "Confirm to publish anyway." Cancel and wait for live rates unless you're sure.
Deals dated before rates were synced
Live rates exist only from the date Earnest started syncing them. A period earlier than that, such as a backfill of last year's deals, converts on the fallback table. Publishing it asks for confirmation with "No live exchange rate exists on or before this payout period — these amounts were converted using hardcoded fallback rates, not live FX. Publishing is final. Confirm to publish anyway."
A currency outside the ten in the fallback table has no rate at all for those periods.
"No exchange rate"
If no rate exists at all between a rep's currencies, the rep's row on Payouts reads No exchange rate, with "No exchange rate for this rep's currencies in" that month. Their commission can only be priced in the quota currency, so it isn't shown, totalled or exported as a payout, and generating drafts refuses them. On Analytics, such people are left out and a notice names them.
The usual cause is a mistyped code that is still a real ISO code, such as GPB for GBP, or CUC. Fix the person's currency and the row prices normally.
Changing currencies later
Base currency
Go to Settings → Features → Base Currency, choose a code and click Save. Before you save, the page explains the effect:
- Future payout runs use the new currency.
- Analytics shows every month, past ones included, in the new currency.
- Published payouts keep the currency they were paid under.
- Existing drafts keep their old currency and are held from publishing until you regenerate them.
A person's quota or payout currency
There's no field for this in the app after the person is created. Edit Position doesn't change
currencies. To change one, send the new currency or payoutCurrency through the people API (see
Imports and API reference).
A quota-currency change is refused if a manager above the person has already published pay priced on the old currency: "Cannot change the quota currency of … from GBP to USD - a manager above them has already published pay through … keep GBP." A change marks the person's drafts out of date.
Where you see each currency
| Screen | Currency shown |
|---|---|
| Rep dashboard | Quota currency |
| Statement PDF | Pay in the payout currency, with the conversion line when it differs |
| Analytics | Base currency |
| Manager team export | One "Currency" column: the base currency |
| Payroll export | A "Currency" column per row; see Payout pipeline reference |
FAQ
My deal and quota are in the same currency. Is anything converted? No. The amount counts at face value.
Why did my dashboard figure change when no new deals came in? For an open month, conversions use the newest rate, which updates daily. The figure settles when the month's payout is published.
Does each deal convert at its own booking-date rate? No. All deals in a period convert at the rate for the period's last day. The booking-date rate is only a fallback.
Can I set a fixed exchange rate for the year? No. Rates come from the daily sync and can't be overridden.
Why can't I pick my currency in Invite User? Invite User offers ten codes. For any other ISO currency, add the person with People Bulk Upload.
A rep shows "No exchange rate". What do I do? Check their quota and payout currency codes for a typo, and check for a rate warning at the top of the page. Once a rate can be found, generate their draft again.