OperationsMetric 33 of 35

Multi-Currency Reporting (FX-Normalised MRR)

One true MRR number when customers pay in different currencies.

The practice of converting every subscription's native billing currency into a single reporting currency before summing MRR, so a $10,000 USD customer and a €10,000 EUR customer don't just get added as if 1 USD = 1 EUR. Without it, any account billing in more than one currency reports a meaningless MRR total.

Formula

Reporting MRR = Σ (native-currency MRR × FX rate at time of conversion, normalised to one reporting currency)

Worked example

60 customers billed in USD totalling $45,000, plus 20 customers billed in EUR totalling €12,000. At 1 EUR = 1.08 USD, reporting MRR (USD) = $45,000 + $12,960 = $57,960 — not $57,000.

Benchmark

FX drift tolerance
Tight
Rates refreshed daily
Acceptable
Rates refreshed weekly
Distorted
Stale rates > 1 month

Why it matters

The moment you have even one customer paying in a second currency, every metric that sums money — MRR, ARR, churn MRR, LTV — silently becomes wrong unless it's converted to one basis first. Worse, using a stale FX rate can make a perfectly stable customer look like they expanded or contracted purely because the exchange rate moved, which sends you chasing a phantom trend.

Common mistakes

  • Summing raw currency amounts across a multi-currency book without converting first.
  • Converting once at signup and never refreshing the rate, so old customers drift further from reality every month.
  • Picking an arbitrary reporting currency (e.g. whichever the founder happens to use) instead of matching where the majority of revenue and your investors are.

Tracked in FlowMRR

Top bar → currency selector normalises every chart to one reporting currency on multi-currency accounts; Data Health flags mixed-currency books.

Top bar → currency selector normalises every chart to one reporting currency on multi-currency accounts; Data Health flags mixed-currency books.