Interest Rate Curves
Table of Contents
Interest rate curves are a core market data input in ORE Studio. ORE uses them as discount and projection curves throughout valuation. This document covers day-count conventions, the bootstrapping process, and interpolation. For tenor labels and settlement conventions see Time Structures and Tenors. Return to Knowledge.
Overview
An interest rate curve (also called a discount curve or yield curve) is a term structure of discount factors — one for each tenor — that expresses the time value of money. Given a discount factor function \(DF(t)\), the present value of a future cash flow at time \(t\) is obtained by multiplying by \(DF(t)\). By convention \(DF(0) = 1\) and \(DF\) is monotonically decreasing for positive rates.
The process of constructing a curve from observable market instruments is called bootstrapping. It proceeds tenor by tenor from the short end to the long end, selecting the discount factor at each pillar that reprices the corresponding instrument at its current market rate.
Rates are stored internally as discount factors (typically to 15 decimal places). Interest rates — whether discrete or continuous — are derived from discount factors as required.
Day-Count Conventions
A day-count convention specifies how to convert a date interval into a fraction of a year (the day-count fraction or year fraction) for the purpose of computing interest. Different instruments and currencies use different conventions; mixing them silently is a common source of error.
| Convention | Description | Typical use |
|---|---|---|
ACT/360 |
Actual calendar days divided by 360 | Money market (USD, EUR deposits) |
ACT/365 |
Actual calendar days divided by 365 | GBP money market, GBP IRS |
ACT/ACT |
Actual days in period divided by actual days in year (ISDA or ICMA) | Government bonds, IRS in some ccys |
30/360 |
Each month treated as 30 days, year as 360 | Fixed-rate bonds (USD, EUR) |
BUS/252 |
Business days divided by 252 | BRL and some LatAm money markets |
The day-count fraction \(\Delta t\) appears directly in coupon and interest calculations:
\[\text{Interest}(t_n, t_{n+k}) = \left[ \frac{DF(t_n)}{DF(t_{n+k})} - 1 \right]\]
A single currency may use different conventions for its money market and its
swap market. For example, a GBP IRS conventionally has a 6-month floating
period on an ACT/365 basis.
Day Basis vs. Spot Days
The day basis (day-count convention) for the money market of a currency can differ from the FX day basis used when computing forward points for that currency. These must not be conflated.
Discount Factors and Rates
Discount Factor to Rate Conversion
Given a discount factor \(DF\) over \(D\) calendar days, the discrete (money market) rate is:
\[r = \left[ \left( \frac{1}{DF} \right)^{365/D} - 1 \right] \times 100\]
where 365 is replaced by the appropriate day basis for the currency.
A continuous rate \(r_c\) converts to a discrete rate as:
\[r_d = \left( e^{r_c/100} - 1 \right) \times 100\]
Internal implementations prefer continuous rates because they are additive in log space; market quotations are always discrete.
Spot Interest Rate
A spot interest rate for maturity \(M\) is an interest rate payable on a spot loan of maturity \(M\) that accumulates interest to maturity. Discount factors therefore reflect discounting to the spot date, not to today — a convention that must be tracked when computing present values.
Zero Coupon Normalisation
Because different instruments embed different coupon structures, bootstrapped curves are normalised to zero coupon (ZC) curves — continuous rates where every tenor carries the same economic meaning (yield of a zero-coupon bond). This allows discount and projection curves built from different instruments to be compared and combined consistently.
Input Instruments
The instruments used to build a curve are called pillar instruments. Each instrument fixes one point on the curve. The bootstrapped curve must reprice every pillar instrument at its observed market rate.
Deposits (Depos)
A deposit is a single-period instrument: cash is placed (lent) at the near leg
and returned with interest at the far leg. Deposits are the primary instrument
for the very short end (O/N through to 6M), quoting rates directly as
LIBOR or equivalent fixings. The instrument defines:
- Near leg: cash outflow on start date
- Far leg: return of principal plus interest on maturity date
- Rate: fixed on trade date; day basis is currency-specific
Forward Rate Agreements (FRA)
An FRA is like a deposit that starts in the future. It locks in a fixed rate
for a specified future period against the floating fixing at settlement. FRAs
have zero value at initiation (fixed rate equals expected floating rate). They
are used to bootstrap the curve in the 3M--12M region where deposits
become illiquid.
Interest Rate Swaps (IRS)
An IRS exchanges two streams of interest payments — typically fixed vs. floating — on a notional principal over multiple periods. The fixed rate (the swap rate) is set at inception to make the trade NPV-zero:
\[PV_{\text{fixed}} = \sum_{i=1}^{n} N \cdot r_{\text{fixed}} \cdot \Delta t_i \cdot DF(t_i)\] \[PV_{\text{float}} = \sum_{j=1}^{m} N \cdot r_{\text{fwd},j} \cdot \Delta t_j \cdot DF(t_j)\]
IRS are the primary pillar instrument for tenors from 1Y to 30Y. Each
currency has a standard IRS description specifying payment frequency and day
count (e.g. GBP: 6M period, ACT/365).
Key IRS types:
- Fixed/Floating, same currency: the vanilla swap; floating leg typically LIBOR or SOFR
- Fixed/Floating, cross-currency: fixed rate on one currency notional vs. floating on another; introduces FX risk
- Floating/Floating, same currency (Basis Swap): two different floating indices (e.g. 3M LIBOR vs 6M LIBOR); used to capture tenor basis
- Floating/Floating, cross-currency: two floating indices in different currencies; carries both IR and FX risk
Short-Term Interest Rate (STIR) Futures
Exchange-traded quarterly contracts (Eurodollar, Short Sterling) priced off
3M rates at IMM dates. Used to fill the 6M--2Y gap where liquid deposit
and swap quotes are sparse. The bootstrapper takes the nearest IMM quarterly
futures and discounts back to derive the curve.
OIS (Overnight Index Swap)
An OIS exchanges a fixed rate for a compounded overnight rate (Fed Funds, EONIA, SONIA, SOFR, etc.) over a given period. Post-2008, OIS curves became the standard collateralised discount curve. The OIS rate represents near-risk-free funding; the spread over OIS is the basis adjustment for uncollateralised exposure (relevant for FVA and MVA calculations).
Bootstrapping: USD Curve Construction
The USD discount curve is the foundation of most FX and rates market data systems. Many systems store only the USD curve plus forward points for all USD crosses, deriving other curves from these.
Bootstrapping proceeds in segments by instrument type:
| Tenor range | Instrument | Notes |
|---|---|---|
O/N – 1M |
Cash deposits / LIBOR | May extend to 6M for some currencies |
6M – 1Y |
STIR Futures (quarterly IMM) | Nearest contracts discounted back |
1Y – 7Y |
1M Fixed IRS, time-valued | Covers 1Y, 2Y, 3Y, 4Y, 5Y, 6Y, 7Y |
18M |
3M Fixed IRS, time-valued | Odd pillar between 1Y and 2Y |
2Y – 10Y |
3M Reset IRS, time-valued | Overlaps with above for cross-check |
<15Y odd |
Interpolated | No liquid instrument; interpolate |
15Y, 20Y, 25Y, 30Y |
Plain IRS | Long end liquid vanilla swaps |
At each pillar, the bootstrapper solves for the discount factor that makes the
instrument NPV zero, taking all shorter-maturity discount factors as given.
Longer pillars require accounting for all intermediate coupon payments (e.g.
an 18M IRS has two legs: a 12M leg reusing the already-bootstrapped 12M
point, plus a new 6M leg from 12M to 18M).
The USD curve is then used to derive forward rates for other currencies via forward point arithmetic.
Projection Curves
A discount curve tells us the time value of money; a projection curve tells us what future floating fixings are expected to be. A system maintains multiple projection curves per currency — one for each floating tenor (3M LIBOR, 6M LIBOR, etc.) — because basis spreads mean 3M and 6M projections diverge. All projected cashflows are discounted using the funding (discount) curve.
Interpolation Methods
A bootstrapped curve is defined only at its pillar tenors. Interpolation is required for any date between pillars.
Local Methods
Local methods use only the immediately bracketing pillars; changing one pillar does not affect distant tenors.
- Log-Linear (Linear in log-DF): Discount factor changes by a constant ratio every day within an interval. Daily forward rates are constant within each interval. Simple and stable; the industry default for the short end.
- Zero-Linear (Linear in zero rate): Linear in \(-\ln(DF)/t\). Daily forward rates change at a constant rate within each interval.
Both perform well in low-curvature regimes.
Non-Local Methods
Non-local methods take into account the full shape of the curve, producing smoother results but introducing the risk that changing one pillar affects distant tenors.
- Cubic Spline: Piecewise cubic polynomial fitted globally. Produces smooth forward curves but can generate oscillations and negative forward rates in extreme cases.
- Monotone Spline: A shape-preserving variant of the cubic spline that prevents oscillations while maintaining smoothness.
A single curve may use different interpolation methods at different tenor
ranges (e.g. log-linear at the short end, cubic spline beyond 2Y). A curve
split tenor (typically 5Y) separates the short-end and long-end spline
segments, preventing changes at one end from propagating to the other.
It is critical that all systems consuming the same curve agree on the interpolation method; different methods will produce different forward rates at off-pillar dates.
ORE Studio Notes
ORE models interest rate curves in curveconfig.xml (curve pillar
definitions and instrument choices) and market.xml (which curves serve as
discount vs. projection for each currency). Bootstrapping is performed
automatically by ORE at the start of each analytics run before any pricing
takes place. The interpolation method for each curve is set in curveconfig.xml.
ORE Studio exposes these configurations through the reference data domain
(ores.refdata) and will eventually surface them as editable entities in the
UI.