Computing the difference the exchange rate should produce, then applying tolerance only to what remains — so genuine breaks are not masked by FX and FX is not mistaken for a break.
Deterministic FX computation from the applicable rate, followed by z-score tolerance on the residual
pandas with an FX rate table