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 chainCurrency 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:
| Field | Type | Description |
|---|---|---|
fromCurrency | string | Source currency code (ISO 4217, e.g., GBP) |
toCurrency | string | Target currency code (ISO 4217, e.g., USD) |
rate | decimal | Conversion multiplier (e.g., 1.27 means 1 GBP = 1.27 USD) |
effectiveFrom | date | The 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:
| effectiveFrom | rate |
|---|---|
| 2025-01-01 | 1.27 |
| 2025-07-01 | 1.31 |
| 2026-01-01 | 1.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:
- Historical accuracy -- Past periods use the exchange rate that was in effect at the time, producing retrospectively accurate cost reports.
- 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
- Identify your organization's reporting currency (configured in Settings > Organization)
- List all currencies in which employees and contractors are paid
- For each currency, create a rate to the reporting currency with an
effectiveFromdate that covers your earliest data - 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
- API Reference: Exchange Rates -- Create, read, update, and delete exchange rates via the REST API
- Exchange Rates configuration -- Configure rates in the Flowstate UI
- Cost Attribution -- See how currency conversion fits into the full cost calculation chain
- Employees -- Understand how employee currency codes are set