Spot rate derivation mechanics

Table of Contents

Summary

Once the CRM topology is fixed, the actual numbers come from no-arbitrage parity. Many systems store only the USD discount curve plus forward points for all USD crosses and derive the rest, holding rates internally as discount factors. Covered interest-rate parity ties forward to spot; forward points follow from spot and the two interest rates; pips (and the pip scaling factor, mfactor) convert quoted ticks to absolute rate moves. The parity argument and the QuantLib discount-factor formula are covered in depth in Covered Interest Parity and FX Forward Pricing — this note records only the CRM-specific use.

Detail

  • Storage: often just the USD discount curve + forward points for USD crosses; rates held as discount factors.
  • Covered interest-rate parity (no-arbitrage forward vs spot): \(F = S\,\frac{1 + i_d}{1 + i_f}\), with \(S\) spot, \(F\) forward, \(i_d\) domestic and \(i_f\) foreign interest rates.
  • Forward points from spot and rates: \(P = S \left[ \frac{1 + \left(\frac{R_2}{100}\cdot\frac{N}{B_2}\right)}{1 + \left(\frac{R_1}{100}\cdot\frac{N}{B_1}\right)} \right] - 1\), with \(R_1\) the USD rate, \(R_2\) the other currency's rate, \(N\) days, and \(B_1, B_2\) the day-count bases. The same relation inverts to back \(R_2\) out of observed forward points.
  • Pips / mfactor: pips are pair-specific (designed to quote with least redundancy); the pip scaling factor (mfactor) converts pips to absolute rate moves. Majors other than JPY are conventionally priced to four decimals.
  • Spot-day differences between legs (see FX spot date) require interest rates and interpolation to reconcile on a common settlement convention.

See also

Emacs 29.3 (Org mode 9.6.15)