Small Group Tutorials

Here to help students catch up, keep up, and move ahead. Book a consultation here.

How FX-Forward Pricing Algorithms Turn Interest-Rate Curves into Forward Points: Covered Interest Parity, Discount Factors, Broken Dates, Cross-Currency Basis and No-Arbitrage Diagnostics

Reader question: If EUR/USD spot is known today and euro and dollar interest rates are known, why is the three-month FX forward not simply a forecast of where EUR/USD will trade in three months?

Because a deliverable FX forward is first a no-arbitrage funding calculation, not a directional exchange-rate forecast. The forward price equates two ways of moving value across currencies and time. In its cleanest form, spot FX and the two currency discount factors determine a forward consistent with covered interest parity. Market FX swap points can then differ from that textbook parity because of cross-currency basis, funding demand, transaction costs, balance-sheet constraints, collateral and market conventions.

The algorithmic job is therefore:

spot date + settlement date + spot FX + domestic curve + foreign curve + basis/conventions → forward outright and forward points.

What this page owns — and what it does not

This page owns FX-forward pricing and diagnostics. It does not replace FX cross-rate consistency, which owns triangular relationships among currencies; financial date engines, which own value-date calendars; or day-count fractions.

This is mathematical market-mechanics education, not a forecast of any currency and not personalized financial advice.

Start with the quotation convention

Write the spot quote as:

S = units of quote currency per unit of base currency.

For EUR/USD, EUR is conventionally the base currency and USD the quote currency. A spot of 1.1000 means one euro costs 1.10 dollars.

This orientation matters because reversing the quote reverses the interest-rate relationship. A pricing engine should never infer numerator and denominator from variable names alone; it should store the explicit currency pair convention.

The clean covered-interest-parity derivation

Assume the investor wants one unit of base currency at future date T. There are two synthetic routes.

Route A: invest directly in the base currency.

Route B: convert at spot into quote currency, invest in quote currency, and use an FX forward to remove future exchange-rate risk.

Under frictionless covered interest parity, the future values must match or an arbitrage would exist.

Using discount factors:

F(T) = S × DFbase(T) / DFquote(T)

for the common market convention where S is quote currency per base currency and discount factors are measured from the common spot/value date to maturity.

The formula can look reversed in textbooks that define the exchange-rate quote differently. The robust implementation test is dimensional: the result must still be quote-currency units per base-currency unit.

Why discount factors are safer than a single interest-rate formula

A classroom approximation may write:

F ≈ S × (1 + rquoteT)/(1 + rbaseT).

That can be useful under matched simple-compounding assumptions. Production systems usually prefer discount factors because each currency can have its own day-count convention, compounding convention, collateral curve and term structure.

Using curves also allows the same pricing engine to handle one week, three months, thirteen months or a broken date without pretending one constant interest rate describes the entire horizon.

A simple numerical example

Suppose EUR/USD spot is 1.1000. Let the three-month euro discount factor be 0.9925 and the dollar discount factor be 0.9875.

Then:

F = 1.1000 × 0.9925 / 0.9875 ≈ 1.10557.

The forward is above spot because, under these illustrative discount factors, the quote-currency funding rate is higher than the base-currency funding rate.

Forward points

Market dealers frequently quote the forward as points added to or subtracted from spot:

Forward Points = F − S.

For the example:

1.10557 − 1.10000 = 0.00557.

For a currency pair quoted to four decimal places, that corresponds to roughly 55.7 pips. Exact point scaling depends on the pair’s market convention.

Forward premium does not mean expected appreciation

If the forward is above spot, the base currency is at a forward premium under the quote convention. That premium is primarily a funding relationship, not proof that traders expect the base currency to appreciate.

A forward can trade above spot even when market participants expect spot to fall, because expectation and no-arbitrage carry are different objects.

Spot date is part of the mathematics

Most deliverable currency pairs settle spot after a market-specific number of business days. Forward maturity is usually measured from that spot/value date, not blindly from the trade timestamp.

This is why FX pricing depends on the calendar engine. A holiday in either currency can move spot or forward settlement and change the accrual fractions used by the two curves.

Broken-date forwards

A requested maturity may fall between standard market tenors such as one month and two months. A weak system simply interpolates quoted forward points linearly by calendar days.

A stronger system interpolates the underlying discount factors or basis-adjusted curve consistently with the curve-building method, then recomputes the forward.

Linear point interpolation may be acceptable over very short smooth intervals, but it is a convention-sensitive approximation rather than a universal arbitrage law.

FX swaps and outright forwards

An FX swap combines two opposite currency exchanges on two dates, commonly spot versus forward. The far-leg price is often quoted as swap points relative to the near leg.

An outright forward has one future exchange. The mathematical forward-point relationship is closely related, but settlement cash flows and trade representation differ.

A pricing library should therefore separate:

  • forward-rate calculation;
  • trade cash-flow representation;
  • quote formatting;
  • settlement-date construction.

Where cross-currency basis enters

Textbook covered interest parity predicts a forward from spot and risk-free funding rates. Since the global financial crisis, persistent deviations from simple CIP have been documented across major currencies.

BIS research describes the cross-currency basis as the difference between market FX-forward pricing and the forward implied by comparable cash-market interest rates. Balance-sheet costs, hedging demand, liquidity, regulation and funding conditions can prevent arbitrageurs from eliminating the basis completely.

A practical basis-adjusted representation can be written schematically as:

Fmkt = FCIP × basis adjustment.

The exact market convention may instead quote basis in basis points on one currency curve.

Basis is not automatically an arbitrage profit

A measured deviation from simple CIP can look like a free return if the calculation assumes unlimited borrowing and lending at benchmark rates with no balance-sheet, credit, liquidity, transaction or capital costs.

BIS and Federal Reserve research show why that inference can fail. The observed basis can be compensation for real intermediation constraints.

The diagnostic therefore asks not merely “is basis non-zero?” but “is the deviation larger than the feasible arbitrage band after costs and constraints?”

Bid-ask consistency

A forward pricing engine must preserve executable sides. Combining a spot mid with borrowing and lending mids can produce a theoretical number that is not tradeable.

For arbitrage diagnostics, use consistent bid/ask pathways:

  • the side at which the base currency can actually be bought or sold;
  • the relevant deposit/borrowing side of each curve;
  • transaction costs and settlement constraints.

An apparent one-pip arbitrage can disappear after executable spreads.

Triangular consistency across forwards

If EUR/USD, USD/JPY and EUR/JPY forwards all refer to the same settlement date, their outrights should satisfy the same cross-rate identity as spot, subject to consistent market sides:

FEUR/JPY ≈ FEUR/USD × FUSD/JPY.

This extends the logic of the FX cross-rate article into the forward dimension.

Mark-to-market of an existing forward

Suppose a contract fixed an old forward rate K, while the current market forward for the same remaining settlement date is Ft.

The contract’s value is based on the difference between those future exchange amounts, discounted appropriately. For one unit of base currency under a simple collateralized representation:

PV ≈ DFquote(t,T) × (Ft − K).

Notional scaling and exact collateral/CSA conventions must be applied consistently.

Inputs and outputs

A robust FX-forward engine can require:

  • currency pair and quote direction;
  • trade date, spot date and maturity date;
  • spot bid/ask or mid;
  • base-currency discount curve;
  • quote-currency discount curve;
  • cross-currency basis where relevant;
  • day-count and compounding conventions;
  • holiday calendars;
  • collateral agreement where valuation requires it;
  • point/pip scaling convention.

Outputs can include forward outright, forward points, broken-date interpolation diagnostics, basis, mark-to-market, bid/ask forward range and no-arbitrage residuals.

Evidence polarity

Evidence for confidence includes forward prices that reproduce market swap points from the same timestamp, stable round trips between outright and points, consistent triangular forwards, correct holiday treatment, and small residuals when reconstructing forwards from the same curves used to calibrate them.

Evidence against confidence includes reversed premium signs after quote inversion, large discontinuities at standard tenor dates, inconsistent spot dates across currencies, a broken-date interpolation that creates artificial arbitrage, or an apparent basis that disappears when executable bid/ask and borrowing costs are used.

Counterexample: higher domestic rate does not have one universal sign

Statements such as “higher domestic rates mean the forward is lower” are dangerous unless “domestic” and the quote convention are explicitly defined.

Reverse the currency pair and the algebraic sign reverses. A good engine stores units, not verbal shortcuts.

Counterexample: a forward is not a forecast

If one-year EUR/USD forward is 1.12 and spot is 1.10, it does not follow that the market expects spot to be 1.12 in one year. The forward embeds carry, basis and market conventions.

Counterexample: simple CIP can be wrong while the market is internally consistent

A market forward can differ persistently from a benchmark-rate CIP calculation because the actual funding/balance-sheet economics contain a non-zero cross-currency basis. That does not automatically imply bad data.

Weak links

Quote inversion. Curves are applied to the wrong numerator/denominator.

Spot-date mismatch. Interest accrual starts on trade date rather than spot date.

Calendar mismatch. One currency holiday is omitted.

Curve mismatch. Different collateral assumptions are mixed.

Point scaling error. Pips and outright decimals are confused.

Broken-date interpolation error. Raw points are interpolated across a discontinuous turn or holiday period.

Basis double count. A curve already embedding basis receives an additional basis adjustment.

Diagnostics

  • spot-forward round trip: compute points from outright and reconstruct the exact outright.
  • quote inversion test: price both A/B and B/A and verify reciprocal consistency.
  • zero-differential test: identical curves should return forward approximately equal to spot absent basis.
  • calendar test: move through joint holidays and verify value dates.
  • tenor-knot test: inspect continuity around one-, three-, six- and twelve-month curve nodes.
  • triangular-forward test: compare direct and synthetic cross forwards.
  • basis reconstruction: derive implied basis from market forward and recover the market quote.
  • bid-ask arbitrage test: test executable rather than mid-market pathways.
  • mark-to-market parity: a newly struck at-market forward should have near-zero PV under consistent curves.

What would falsify confidence?

Confidence should be withdrawn if reciprocal pairs disagree materially, a newly struck forward has non-zero value without fees, direct and synthetic forward crosses disagree beyond executable spreads, calendar changes alter unrelated tenors, or the system cannot reconstruct observed forward points from the curves it claims to use.

Alternatives and limits

Simple interest-rate-differential formulas are excellent for teaching short maturities. Discount-factor pricing is stronger for real curve systems. Basis-adjusted multi-curve pricing is necessary when market forwards depart from simple CIP. None of these methods predicts future spot FX without an additional statistical or economic forecasting model.

How this connects to the surrounding estate

The day-count engine supplies accrual fractions. The date engine supplies joint settlement dates. The cross-rate engine supplies triangular consistency. Together they create an auditable FX-forward pipeline without collapsing distinct jobs into one page.

Verification and update triggers

Preserve quote convention, curve identities, collateral assumptions, spot-lag rules, calendars, point scaling and basis methodology. Revalidate after benchmark transitions, collateral-policy changes, currency-holiday changes, large quarter-end basis moves, curve-library migrations or unexplained forward-point reconciliation breaks.

Primary and high-quality references

Educational boundary: This article explains FX-forward pricing mathematics and market diagnostics. It does not forecast exchange rates or recommend currency trades.

Discover more from Bukit Timah Tutor

Subscribe now to keep reading and get access to the full archive.

Continue reading