ReconFiles

Guide4 min read

How to handle foreign currency differences when reconciling payments

When two systems convert the same currency at slightly different rates, you get tiny differences that aren't real errors. Here's how to tell genuine discrepancies apart from FX noise using tolerance thresholds.

Here's a situation that confuses a lot of people the first time they hit it. You're reconciling two systems, everything matches perfectly on the GBP transactions, but the foreign currency ones are all off by a few pence. Nothing's actually wrong — but your reconciliation is flagging dozens of "mismatches" that are really just rounding noise. This guide explains why that happens and how to handle it properly.

Why the same payment shows two different amounts

When a payment is made in a foreign currency — say USD, EUR, or DKK — but your books are kept in GBP, someone has to convert it. The problem is that different systems convert at different moments, using different exchange rates.

Your payment processor might convert at the rate at the instant the payment settled. Your accounting system might use the daily rate, or the rate on the date the invoice was raised, or a month-end rate. None of these is wrong — they're just different reference points for the same underlying amount.

The result: a $100 payment might appear as £78.42 in one system and £78.45 in the other. Both are legitimate. The 3p difference is purely an artefact of when and how each system did the conversion.

The key insight

A small difference on a foreign currency transaction is usually not an error — it's the unavoidable consequence of two systems converting the same amount at slightly different rates.

The problem with exact matching

If your reconciliation demands that amounts match to the penny, every foreign currency transaction becomes a false positive. You end up with a mismatch list full of 2p and 5p differences that you have to manually confirm are fine — which defeats the entire purpose of automating the reconciliation.

Worse, when genuine errors are buried in a long list of trivial FX differences, they're easy to miss. The noise hides the signal.

The solution: tolerance thresholds

The fix is to allow a small, defined tolerance — a threshold below which a difference is treated as "close enough" and not flagged. But a single threshold isn't quite enough, because the right tolerance depends on the size of the transaction. There are two kinds worth combining:

Why you want both

Consider the two extremes. On a £5 payment, a 0.5% tolerance is only 2.5p — too tight to absorb normal FX rounding. On a £50,000 payment, a flat £0.05 tolerance is far too strict, since even a tiny rate difference produces pounds of variation.

The robust approach is to flag a difference as a genuine mismatch only when it exceeds both thresholds at once. A difference sails through if it's within either the absolute floor or the percentage floor — which means small rounding on small amounts passes, proportional drift on large amounts passes, but a real discrepancy of any meaningful size is still caught.

How the dual threshold behaves
AmountDifferenceAbs £0.02Pct 0.5%Result
£78.42£0.03overunder (39p)OK
£12.00£0.01underunder (6p)OK
£5,000.00£4.00overunder (£25)OK
£120.00£8.50overover (60p)Flag

Only the last row exceeds both thresholds, so only it gets flagged as a real mismatch.

Choosing your thresholds

Sensible starting points for most finance work:

The right numbers depend on your data. Start conservative, look at what gets flagged, and adjust until the mismatch list contains only differences that genuinely warrant investigation.

What still needs investigating

Tolerance handles rounding — it should never hide real problems. A difference that exceeds your thresholds could mean a payment recorded at the wrong amount, a missing transaction inflating or deflating a summed total, a rate applied to the wrong date entirely, or a genuine short payment. Those are exactly the cases you want surfaced, which is why the goal is to tune tolerance to silence the noise without silencing the signal.

Built-in FX tolerance

ReconFiles lets you set both an absolute and a percentage tolerance, so foreign currency rounding doesn't clutter your mismatch list.

Try the reconciliation tool →

The bottom line

Foreign currency differences are a normal part of reconciling across systems, not a sign something's broken. The trick is to stop demanding penny-perfect matches and instead define a sensible tolerance — ideally combining an absolute floor and a percentage floor — so that rounding noise passes quietly while real discrepancies still get flagged for you to investigate.