
A multi-currency cash flow forecast projects cash inflows and outflows in each operating currency on its own timing, then consolidates them into the reporting currency using explicit translation assumptions and an FX sensitivity view.
Most SaaS forecasts fail at this point because currency and timing get merged into one blended line. The result is a runway number that moves for reasons nobody can name.
This article shows you how to model native-currency flows, translation assumptions and settlement timing as separate layers. You will also see how to read the output so you can tell when a currency move changes a hiring, pricing or buffer decision and when it is noise.
It covers the currency-and-timing layer only. For direct forecasting, scenario weights and decision cadence, start from the general cash flow forecasting framework. Hedge execution is out of scope.
Key takeaways
- Forecast each currency in its own units and on its own timing before you convert anything.
- Declare rate source, rate date and revaluation rule per currency pair, with a named owner.
- Model three dates per flow: invoice, cash clearing and conversion.
- Run a sensitivity view so you see the size of the swing, not just the balance.
- Treat hedging as a decision the model informs. Execution belongs with qualified treasury or banking channels.
Why a blended cash line hides the swing
A single group cash line tells you what the balance is worth today. It does not tell you what moves it next week.
When you convert every currency at one rate, a EUR receivable, a GBP payroll run and a USD vendor payment collapse into one number. The currency exposure disappears inside the total.
The eyko multi-currency cash forecasting playbook makes the same point from a vendor method perspective: a blended group cash line hides per-currency swings, and static conversion at today's rate shows the balance, not the swing. Treat it as a method reference, not as independent evidence.
The same source notes that translation risk concentrates in the week a large foreign-currency receivable settles. That is why settlement timing and currency belong in separate layers.
"A big annual invoice paid in a non-reporting currency creates a single week where the rate matters far more than in the other fifty."
— Aleksandar Stojanovic, CEO & Founder at FiscallionTooling can also be part of the problem. Intuit's Cash Flow Planner FAQ states that the planner isn't available for companies that have Multicurrency enabled. If your ledger runs on that stack, the native forecasting feature stops exactly when your currency complexity starts, and the forecast has to live outside it. Practitioners have flagged the same limitation outside the official documentation:
For market-level context, the PwC Global Treasury Survey (published 2025-06-25) found that 83% of respondents named FX risk as their most critical economic exposure. The sample is enterprise-heavy treasurers, so read it as framing, not as a SaaS benchmark.
How to build the forecast in four layers
Do not start by converting. Build the layers in order, and keep each one visible in the model.

Layer A: native-currency sub-forecasts
Build one forecast per operating currency, in that currency's units. Each one needs its own drivers:
- Billing mix: which customers are invoiced in this currency, on what cadence, annual or monthly.
- Collections behavior: how that customer group actually pays, not how the contract says they pay.
- Outflows in the same currency: payroll, contractors, local vendors and tax payments.
- Net position: inflows minus outflows, so natural offsets are visible before any conversion.
A currency where you collect and spend roughly the same amount carries little translation exposure. A currency where you only collect carries the most.
Layer B: translation assumptions
Translation is a set of declared assumptions, not a background setting. Write them down per currency pair, and give each a named owner.
| Currency pair | Rate source | Rate date | Revaluation rule | Owner | Review frequency |
|---|---|---|---|---|---|
| Fill in per pair | Named source, such as your bank or a published reference rate | Contract rate, forecast-date spot or budget rate | When balances are restated, and at which rate | Named person, not "finance" | Set a fixed cadence |
Three choices matter most:
- Rate source: pick one source per pair and keep it. Mixing sources creates variance that is not real.
- Rate date: a contract rate, a forecast-date spot rate and a budget rate answer different questions. Choose deliberately and label the column.
- Revaluation rule: state when held balances are restated, so a reporting-currency change is traceable.
Unowned assumptions are the most fragile part of any forecast. If nobody owns the EUR/USD line, nobody updates it.
Layer C: settlement timing
Invoice-date cash is not settlement-date cash. For each flow, model three dates:
- Invoice date: when the receivable is raised.
- Clearing date: when funds are actually available in the bank account, after payment behavior and bank clearing delays.
- Conversion date: when funds are moved into the reporting currency, if they are moved at all.
Then time-bucket the net exposure by week. A large foreign-currency receivable should show up in the week it clears, with its currency labeled, so the exposure is visible before it lands.
"Money in transit is not available cash. If your runway view counts it as available, your buffer is overstated by whatever is still clearing."
— Aleksandar Stojanovic, CEO & Founder at FiscallionLayer D: FX sensitivity and consolidation
Only now do you convert. Roll each native forecast into the reporting currency using the Layer B assumptions, then add a sensitivity table that shows the effect of a fixed move in each pair.
Here is a hypothetical illustration. The assumptions are declared, not market data: a EUR 200,000 annual receivable, a reporting currency of USD and a base assumption of 1.08.
| Scenario | EUR/USD assumption | Receivable in USD |
|---|---|---|
| Euro weakens 5% | 1.026 | 205,200 |
| Base case | 1.080 | 216,000 |
| Euro strengthens 5% | 1.134 | 226,800 |
The point is not the rate. It is that you can now see a USD 10,800 swing on a single settlement in either direction, and you know which week it lands.
How to read the output without overreacting
Separate operating variance from translation variance before you discuss any miss. Otherwise a late customer payment and a rate move get blamed on each other.
Use the same driver-owner-decision structure as a standard forecast variance review, with one extra bucket:
- Operating variance: volume, price, collections timing.
- Translation variance: the change in reporting-currency value from rate moves on unchanged native flows.
- Timing variance: the same cash arriving in a different week, which changes both the balance and the rate applied.
A currency swing matters when it changes a decision. Set the thresholds yourself against your buffer and your commitments, then pre-agree the response before the move happens.
- Hiring: does a weaker collection currency push a planned start date past your minimum cash line?
- Pricing: is a currency now carrying margin pressure that justifies a price or billing-currency change?
- Buffer: does the sensitivity range exceed the buffer you hold for forecast error?
- Transfer timing: does the settlement week suggest moving or holding funds? Execute through your bank or treasury channel if you choose to act.
Everything outside those four questions is noise. Log it, do not debate it.
What to do next
Run this sequence before your next board meeting:
- List the currencies cash actually sits in and moves through, not only the ones you invoice in.
- Split your existing forecast into one native-currency view per currency.
- Build the translation assumption table and assign an owner to every pair.
- Add the three-date settlement columns for your largest foreign-currency receivables.
- Run the sensitivity view and bring the range, with the decisions it affects, to the board.
PwC's survey lists poor data quality as the top forecasting obstacle, cited by 76% of respondents. Most of that work is in step 1 and step 4, not in the model formulas.
Common mistakes and replacement moves
| Mistake | Why it distorts the forecast | Replacement move |
|---|---|---|
| Converting every line at one blended rate | Hides per-pair exposure and mixes sources | Set a rate source and date per currency pair |
| Treating invoice-date cash as settlement-date cash | Overstates available cash in the week of the invoice | Add invoice, clearing and conversion dates per flow |
| Treating FX as a treasury-only problem | Nobody owns the assumption inside the model | Assign a named model owner and review frequency |
| Rebuilding in a new tool when the gap is ownership | A new tool inherits the same unowned assumptions | Fix assumption ownership first, then test tools |
| Folding rate moves into "other variance" | Operating performance becomes unreadable | Keep a separate translation variance bucket |
Hedging deserves a note. A forecast shows the exposure and the range, and that is the input to a hedging decision. If you decide to hedge, that execution runs through qualified treasury or banking channels, not through the forecast.
The open multi-currency forecast worksheet
Use this structure to build the worksheet yourself. It is fully readable here, with nothing behind a form. Alex Stojanovic announced the free cash-flow template resource this structure builds on:
| Tab or block | What it holds | Owner |
|---|---|---|
| Per-currency tabs | Native-currency inflows, outflows and net position, weekly | Finance lead or model owner |
| Translation assumption table | Rate source, rate date, revaluation rule, review frequency per pair | Named per pair |
| Settlement-lag columns | Invoice date, expected clearing date, conversion date per flow | Collections owner |
| Sensitivity row | Reporting-currency effect of a fixed rate move per pair | Model owner |
| Consolidated view | Reporting-currency cash, with operating, translation and timing variance buckets | Model owner |
Each Fiscallion client works directly with Aleksandar Stojanovic at the CFO layer, with senior-partner ownership on every engagement. His FP&A leadership experience gained through the growth of a SaaS company to €100M ARR shapes how the assumption table and variance buckets are set up.
If you want that worksheet built into your forecast and owned alongside your board reporting, see Fiscallion's financial modeling and board reporting service. Fiscallion does not execute hedges or run treasury transactions. It builds the model that tells you whether the decision is worth making.
Multi-currency forecasting FAQ
How do you separate currency translation from operating cash flow timing in a multi-currency SaaS forecast?
Forecast each currency in its own units first, with its own invoice, clearing and conversion dates. Convert only in the consolidation layer, using declared rates. Then split variance into operating, translation and timing buckets, so a late payment and a rate move are never netted against each other.
What FX assumptions should a multi-currency SaaS cash flow model include without involving hedge execution?
Include a rate source, a rate date and a revaluation rule for each currency pair. Add a named owner and a review frequency, plus a sensitivity range for a fixed move in each pair. No hedge assumptions are needed. The model shows the exposure, and any hedge decision is taken and executed outside it.
Can I build a multi-currency forecast on top of my existing bookkeeper's cash flow spreadsheet?
Usually yes, as long as the underlying ledger data is reliable, but the translation and settlement assumptions still need accountable senior judgment, not just spreadsheet skill. Your bookkeeper keeps the books, and the forecast uses their data. Fiscallion works above the ledger, and any ledger gaps that would distort the forecast surface during onboarding. Check one limit first: Intuit states its Cash Flow Planner isn't available when Multicurrency is enabled, so a QuickBooks Online file with that setting needs a forecast built outside the planner.
How do settlement timing and bank clearing delays change the cash position in a multi-currency SaaS forecast?
They move cash between weeks, and they change the rate that applies. A receivable that clears a week later lands at a different rate, and money still in transit should not count as available cash. Model the clearing date separately from the invoice date, and bucket net exposure by week.
Decide what the currency swing changes
A multi-currency forecast earns its place when it answers one question: does this rate move change a decision? Native-currency views, declared translation assumptions and a visible settlement week give you that answer without arguing about a blended number.
Start with the assumption table and the owner column. Tooling matters less than someone being accountable for each rate line.








