Skip to content

Multi-currency and historical rates

Your people, clients, and partners can each be billed and paid in their own currency. StaffMargin reports all of it in one currency you choose, and it converts each month at that month’s own rate. So a margin you read for last quarter still reads the same next year, even as exchange rates move.

This page explains the reporting currency, where the rates come from, and why the past stays put.

Every figure on the dashboard is shown in a single reporting currency, set by the currency control at the top. Change it and every amount reconverts: revenue, salary cost, allocated costs, and the margins.

An amount already in the reporting currency is never touched. Conversion only happens when a native currency differs from the one you are reporting in, so a workspace that runs in one currency sees no FX at all.

The underlying records never change. A salary in PLN stays in PLN, a client billed in USD stays in USD. The conversion is applied when the report is built, not written back onto the data.

StaffMargin uses official reference rates, refreshed daily.

  • The primary source is the European Central Bank, through the Frankfurter service. These are the daily euro reference rates.
  • A secondary source fills only the currencies the ECB set does not cover, and never overrides an ECB rate.
  • Pegged currencies are handled explicitly. A currency the reference set omits but which tracks another (for example the Macedonian denar against the euro) is folded in at its peg, so conversions to and from it work.

Rates are stored against the euro as the base, so any pair is a cross-rate: the rate from A to B is B’s euro rate divided by A’s. The set refreshes every day.

When StaffMargin builds a report, it converts each month using the rate that was in effect on or before that month, not the latest one. June’s figures use June’s rate, March’s use March’s. New rates landing today do not move a closed month.

StaffMargin keeps two years of daily history, seeded backward so the depth is there from the start. If a record predates that window, the oldest rate on file is used rather than failing, which is the closest honest answer.

The result is reproducibility. Two ingredients combine: the rate is pinned to the month, and the records themselves are effective-dated, so the same period always rebuilds to the same number. The same principle covers salary cost through versioned payroll rules.

Currency is set where the money lives, and each is converted at report time.

  • A salary is entered in the employee’s currency, and its employer cost is computed there before conversion.
  • A project assignment bills in the rate’s currency, which sets the revenue.
  • A cost is recorded in its own currency and converted as part of each person’s loaded cost.
  • A partner commission is a share of the assignment’s bill rate, so it follows that assignment’s currency. See partner and subcontractor margins.

Because everything is normalised to one reporting currency before the margin arithmetic runs, figures in different currencies can be compared and added without you doing the maths.

Say you report in euros. An employee on a €4,000 monthly salary bills a US client at a USD day rate, and pays for a tool in Polish zloty.

For each month in the report, StaffMargin takes the USD revenue at that month’s USD rate, the PLN cost at that month’s PLN rate, and the euro salary as-is, then computes the margin in euros. Re-open that month a year later and the rates used are unchanged, so the margin is identical. Only the live, still-open month tracks the latest rate, because it has not closed yet.

FAQ

Can I report margin in any currency?
Yes. Pick the reporting currency at the top of the dashboard. Every figure reconverts into it, while the underlying records keep their own currencies.
Where do the exchange rates come from?
The European Central Bank's daily euro reference rates, through the Frankfurter service, with a secondary source only for currencies the ECB set does not cover. The rates refresh every day.
Will a past month's margin change when exchange rates move?
No. StaffMargin converts each month at the rate in effect on or before that month, so a closed month keeps its figures. Only the current, still-open month tracks the latest rate.
How far back do the historical rates go?
StaffMargin keeps two years of daily rates, seeded backward. For a record older than that window, the oldest rate on file is used rather than failing.
What about a currency the ECB does not publish, like the Macedonian denar?
Pegged currencies are handled explicitly. A currency that tracks another at a fixed peg is folded into the rate table at that peg, so conversions to and from it work.
Does converting change my salary, cost or billing amounts?
No. Amounts stay in the currency you entered them in. Conversion into the reporting currency happens only when the report is built, never written back onto the records.