Skip to content

Exchange Rates

Global engineering organizations employ people across multiple countries and currencies. Flowstate's exchange rate system converts all costs to a single reporting currency so that financial data is directly comparable, regardless of where your team members are located.

Why Exchange Rates Matter

Consider an engineering organization with employees in the United States (paid in USD), the United Kingdom (paid in GBP), and Germany (paid in EUR). Without currency conversion, you cannot meaningfully sum their costs -- adding dollars, pounds, and euros produces a nonsensical number.

Flowstate solves this by converting every cost to the organization's reporting currency at the start of the calculation chain. Once converted, all downstream operations -- working days proration, FTE allocation, overhead, and aggregation -- operate in a single currency.

WARNING

Missing exchange rates will cause cost calculations to be incomplete. If an employee is paid in a currency for which no conversion rate exists, their cost cannot be included in reports. Configure exchange rates for every currency in use before relying on cost forecasts.

How Currency Conversion Works

Each employee and contractor has a defaultCurrencyCode field (ISO 4217, e.g., USD, GBP, EUR). Your organization has a reporting currency configured in settings.

When Flowstate calculates costs, the conversion follows this path:

Employee salary in local currency (e.g., 75,000 GBP)
  --> Find the applicable exchange rate (GBP -> reporting currency)
    --> Multiply salary by the rate
      --> Continue with the rest of the cost calculation chain

Currency conversion is the first step in the cost calculation chain. This is a deliberate design choice -- by normalizing early, all subsequent calculations (proration, allocation, overhead) operate on consistent numbers.

The Exchange Rate Model

Exchange rates in Flowstate are defined as directional pairs with an effective date:

FieldTypeDescription
fromCurrencystringSource currency code (ISO 4217, e.g., GBP)
toCurrencystringTarget currency code (ISO 4217, e.g., USD)
ratedecimalConversion multiplier (e.g., 1.27 means 1 GBP = 1.27 USD)
effectiveFromdateThe date from which this rate applies

Directional Rates

Rates are directional: a GBP-to-USD rate is separate from a USD-to-GBP rate. This reflects how exchange rates work in practice -- the buy rate and sell rate are not always exact inverses.

When setting up rates, you need to define a rate from each employee currency to your reporting currency. If your reporting currency is USD and you have employees in GBP and EUR, you need:

  • GBP --> USD
  • EUR --> USD

You do not need to define rates between non-reporting currencies (e.g., GBP --> EUR) unless your organization uses cross-currency comparisons outside of Flowstate.

Time-Based Rates

Exchange rates fluctuate over time, and Flowstate supports this through the effectiveFrom date. You can enter multiple rates for the same currency pair, each with a different effective date. When calculating costs for a given period, Flowstate uses the most recent rate with an effectiveFrom date on or before the calculation date.

For example, if you have the following GBP-to-USD rates:

effectiveFromrate
2025-01-011.27
2025-07-011.31
2026-01-011.25

A cost calculation for March 2025 would use the rate 1.27 (effective January 2025). A calculation for September 2025 would use 1.31 (effective July 2025). A calculation for February 2026 would use 1.25 (effective January 2026).

This time-based approach provides two important capabilities:

  1. Historical accuracy -- Past periods use the exchange rate that was in effect at the time, producing retrospectively accurate cost reports.
  2. Forward projections -- You can enter future exchange rate assumptions to model how currency fluctuations might affect projected costs.

TIP

If you only enter one rate per currency pair with an effectiveFrom in the past, that rate will be used for all calculations -- past, present, and future. Add future-dated rates only when you want to model specific exchange rate scenarios.

Setting Up Exchange Rates

Exchange rates are managed in Flowstate under Settings > Exchange Rates. You can also manage them programmatically through the API.

Initial Setup

  1. Identify your organization's reporting currency (configured in Settings > Organization)
  2. List all currencies in which employees and contractors are paid
  3. For each currency, create a rate to the reporting currency with an effectiveFrom date that covers your earliest data
  4. Optionally add future-dated rates for forecasting assumptions

Ongoing Maintenance

Exchange rates do not update automatically. You are responsible for entering new rates as they change. Most organizations update rates quarterly or monthly, depending on how sensitive their forecasts are to currency fluctuations.

Impact on Forecasting

Exchange rates have a direct and often significant impact on cost forecasts. A 5% movement in GBP/USD on a team of 20 UK-based engineers can shift projected costs by tens of thousands of dollars per quarter.

When reviewing forecasts, keep in mind:

  • Historical periods use the rate that was effective at the time -- these numbers reflect what actually happened.
  • Current period uses the most recently entered rate -- this reflects your current assumption.
  • Future periods use the latest rate unless you have entered forward-dated rates -- if you have not entered future rates, today's rate is carried forward.

WARNING

If your organization operates in volatile currency pairs, review and update exchange rates regularly. Stale rates can cause forecasts to diverge significantly from reality.

Next Steps

Flowstate Documentation