Fixed Income Course
Yield Curve Bootstrapping
Build a full OIS discount curve and SOFR forward curve from market instruments in Python.
Enrol now
- Lifetime access — all lessons & updates
- 10 lessons across 2 structured parts
- Fully worked Jupyter notebooks
- Market datasets + published benchmark prices
- Free lesson previews before you buy
- 14-day money-back guarantee
Secured by a no-questions-asked 14-day refund.
Overview
Introduction
Every rate on every swap, bond and derivative is ultimately a read from a curve. Before you can price anything, you need to understand exactly how that curve is built — not as a black box, but as a sequence of explicit steps you can verify, stress and trust. This course walks you through the full construction process from first principles.
You will build two curves that professional desks use in tandem: an OIS discount curve, stripped from overnight-indexed swap quotes using sequential root-finding, and a SOFR 3M forward curve, anchored to CME futures prices. Both are interpolated with cubic splines fitted to log-discount factors, which guarantees positive forward rates and smooth curve shapes.
By the end you will understand day-count conventions deeply enough to spot a convention mismatch in the wild, you will know exactly why OIS and SOFR curves diverge, and you will have a dual-curve pricer that correctly discounts with the OIS curve while projecting SOFR forwards — the industry-standard post-LIBOR setup.
Hands-on
The project you'll build
The project is a self-contained Python library for building and querying a rates curve. You start with raw market data: a short-end money-market deposit, a series of OIS swap quotes at standard tenors, and a strip of SOFR 3M futures prices. Your first task is to implement the three main day-count conventions — Act/360, Act/365 and 30/360 — correctly enough to replicate exchange-quoted year fractions to the day.
With the foundations in place you implement the OIS bootstrap: for each tenor, you solve for the discount factor that prices the OIS swap at par, conditioning on all shorter-dated factors already solved. You then extend the curve to the IMM futures dates using SOFR futures prices, and interpolate both curves using a cubic spline on the logarithm of the discount factors, which is the interpolation method used by most professional curve engines.
The final deliverable is a dual-curve pricer: given a fixed-for-floating swap, you value it by projecting cash flows with the SOFR forward curve and discounting them with the OIS discount curve. You then stress the curve with parallel and key-rate shifts and observe the sensitivity of par swap rates and DV01 — the exact workflow a rates quant uses to build and validate a new curve.
Outcomes
What you'll learn
Day-count conventions
Implement Act/360, Act/365 and 30/360 correctly and understand when each is used on a rates desk.
OIS bootstrapping
Strip discount factors from OIS swap quotes using sequential root-finding, handling short-end deposits and long-dated swaps.
SOFR futures and forwards
Build the 3M SOFR forward curve from IMM futures prices and understand the convexity adjustment.
Spline interpolation
Fit a cubic spline to log-discount factors and explain why this choice guarantees positive instantaneous forwards.
Zero and forward rates
Derive zero rates and instantaneous forward rates from a bootstrapped discount curve and interpret their shapes.
Par swap pricing
Compute at-market par swap rates directly from the bootstrapped OIS curve and verify against market quotes.
Curve stress testing
Apply parallel shifts and key-rate perturbations to the curve and observe the resulting changes in discount factors and DV01.
Multi-curve framework
Explain why OIS discounting and SOFR projection are done on separate curves and implement a dual-curve swap pricer.
Stack
Tools & technology
The course teaches a workflow, not just a toolset — here is what we use and what you could swap in.
| Tool | Used for | Alternatives |
|---|---|---|
| Python 3 | Primary implementation language for the bootstrapper and pricer | Julia, MATLAB, C++ |
| NumPy | Array operations for discount factor arrays and date arithmetic | Pure Python, pandas |
| SciPy | Root-finding (brentq) for the bootstrap and cubic spline interpolation | Custom bisection, numpy.interp |
| pandas | Loading and structuring market quote data and dates | Plain dicts, polars |
| matplotlib | Plotting zero curves, forward curves, and stressed curve scenarios | plotly, altair |
| Jupyter | Step-by-step notebook development with inline plots and verification | VS Code, plain .py scripts |
Syllabus
Course curriculum
10 lessons across 2 parts. Lessons marked Free preview can be read before you enrol.
Part 1 — Discount Curve MechanicsDay counts, OIS bootstrapping, SOFR futures and cubic spline interpolation.
- 1.Introduction & the discount curveWhat P(0,T) is, why it matters, and what you will build.Free preview
- 2.Day count conventions: Act/360, Act/365, 30/360Implement the three main conventions used on a rates desk.Free preview
- 3.Bootstrapping the OIS curveStrip discount factors from OIS swap quotes sequentially.
- 4.SOFR futures and the forward curveBuild the 3M SOFR forward curve from IMM futures.
- 5.Cubic spline on log-discount factorsInterpolate the curve smoothly between pillars.
- 6.Zero rates and instantaneous forward ratesDerive zero and forward rates from the bootstrapped curve.
Part 2 — Validation & VisualisationStress-test the curve and visualise par rates, forward rates and discount factors.
- 1.Par swap rates from the curvePrice at-market swaps using your bootstrapped curve.
- 2.Curve stress and parallel shiftsShift the curve and observe the impact on discount factors.
- 3.Multi-curve framework overviewWhy OIS and SOFR curves differ and how to use both.
- 4.Conclusion & production considerationsWhat changes in production: multi-curve, date rolling, calendars.
Before you start
Prerequisites
- Comfortable with Python and NumPy — loops, array slicing, basic functions.
- Fixed-income fundamentals: what a discount factor is, what a swap is, and the relationship between price and yield.
- Basic calculus at the level needed to follow how forward rates are derived from the discount curve.
- Familiarity with SciPy's root-finding and interpolation routines is helpful but not required.
Fit
Who this course is for
Rates quants and developers
You are building or maintaining a curve engine and want to understand every design choice — interpolation method, bootstrapping order, convention handling — from the ground up.
Derivatives traders and structurers
You consume curves every day but want to understand exactly what the system is doing when it builds them, especially after the LIBOR transition to SOFR.
Quant-finance students
You know the theory of discount factors and forward rates and want to see how a real curve is constructed from market instruments, not textbook toy examples.
Risk and analytics developers
You build downstream tools that consume curves and need to understand the inputs well enough to detect and debug bad curve data.
Faculty
Your instructor
QuantIndex Faculty
QuantIndex Faculty are practising quantitative analysts and former rates-desk developers. The curriculum is written by quants who have built, maintained and stress-tested curve engines in production across multiple currencies and rate environments, and it is reviewed for both mathematical rigour and code correctness before publication.
Benchmarked & verified
Every price you compute is checked against published results from leading textbooks and market data. You do not finish the course hoping your model is right — you finish it knowing.
Questions
Frequently asked questions
Do I need to know anything about the LIBOR transition to SOFR?
No prior knowledge of the transition is assumed. The course explains the multi-curve framework from scratch: why OIS and SOFR curves are built separately, and how they are combined in a dual-curve pricer.
Is this relevant outside the US? My desk uses ESTR or SONIA.
Yes. The bootstrapping methodology is identical for ESTR-based EUR curves and SONIA-based GBP curves — only the convention details change. The course teaches the method, and a short appendix covers the main convention differences across the major currencies.
What exactly is a day-count convention and why does it matter?
A day-count convention determines the year fraction for accrual periods. Getting it wrong by even one convention can produce meaningfully different cash flows on a large swap. The course implements all three conventions from scratch so you never have to guess.
Will the code work with real market data I download myself?
Yes. The course uses a realistic market dataset and the bootstrapper is designed around the same inputs you would pull from a Bloomberg or Reuters feed.
Is there a refund policy?
Yes — a 14-day, no-questions-asked money-back guarantee. If the course is not right for you, email us and we will refund you in full.
How does this course relate to the Short Rate Models and HJM courses?
Yield Curve Bootstrapping is the foundation: you build the initial term structure that the Short Rate Models and HJM courses take as input. Taking it first gives you a much cleaner understanding of what it means to 'calibrate to the market curve'.
Ready to start?
- Lifetime access — all lessons & updates
- 10 lessons across 2 structured parts
- Fully worked Jupyter notebooks
- Market datasets + published benchmark prices
- Free lesson previews before you buy
- 14-day money-back guarantee
Secured by a no-questions-asked 14-day refund.