Quant Memo
Advanced

MBS OAS and Monte Carlo Path Pricing

Why mortgage bonds can't be priced off a single discount curve, and how simulating thousands of interest-rate and prepayment paths produces one number, the option-adjusted spread, that captures the cost of the borrower's right to refinance.

Prerequisites: Mortgage-Backed Securities, Monte Carlo Option Pricing

A regular bond has one cash flow schedule, fixed at issuance. A mortgage bond does not, because every borrower in the pool holds a hidden option: the right to refinance and pay off the loan early whenever rates drop enough to make that worthwhile. Price the bond off a single rate scenario and you have priced a security that can't actually exist — you've ignored the one feature that dominates its risk.

Think of it like pricing an umbrella by only checking what it costs to make, ignoring that people buy more umbrellas exactly when it rains. A mortgage pool "rains" prepayments exactly when rates fall — precisely when a fixed-cash-flow valuation would look most attractive. Ignore that link and you overpay.

Why one path isn't enough

Option-adjusted spread (OAS) is the constant spread you'd need to add to a whole family of simulated Treasury paths so that the average discounted cash flow across all of them matches the bond's market price. It is "option-adjusted" because the prepayment behavior embedded in each path already accounts for the borrower's refinancing option — so what's left over, the OAS, is compensation for the risks a plain discount curve doesn't capture: prepayment model risk and liquidity.

The mechanics, step by step:

  1. Simulate many interest-rate paths — hundreds or thousands — using a short-rate model (Vasicek, CIR, or a calibrated Black-Karasinski) that is itself arbitrage-free relative to today's Treasury curve.
  2. On each path, run a prepayment model. Prepayment speeds respond to the simulated mortgage rate on that path relative to the borrower's note rate — the bigger the incentive to refinance, the faster the pool pays down.
  3. Generate cash flows on each path given that path's prepayment speed, and discount them along that same path's short rates plus a trial spread ss.
  4. Average across all paths. Adjust ss until the average present value equals the bond's market price. That ss is the OAS.
P=1Ni=1NtCFi,tkt(1+ri,k+s).P = \frac{1}{N}\sum_{i=1}^{N} \sum_{t} \frac{CF_{i,t}}{\prod_{k \le t}\left(1 + r_{i,k} + s\right)}.

In words: price equals the average, over NN simulated worlds, of that world's cash flows discounted along that world's own simulated short rates plus the spread you're solving for.

Two worked passes

Simplified two-path example. A pool has $100 of principal outstanding. On Path A, rates fall and 40% of the pool prepays this year, returning $40 immediately plus $3 of coupon on the remaining balance, all discounted at that path's average rate of 3%. Present value on Path A: (40+3)/1.0341.75(40 + 3)/1.03 \approx 41.75. On Path B, rates rise and only 5% prepays, returning $5 plus $5.70 of coupon on the larger remaining balance, discounted at that path's higher average rate of 6%: (5+5.70)/1.0610.09(5 + 5.70)/1.06 \approx 10.09. A single-path (static) valuation using just today's forward curve would badly misstate the true expected value; averaging the two paths gives (41.75+10.09)/225.92(41.75 + 10.09)/2 \approx 25.92 for that year's contribution — the Monte Carlo average is what OAS solves against, not either path alone.

Second pass: solving for the spread. Suppose across 2,000 simulated paths the average present value of all the pool's cash flows, discounted at the simulated rates alone (s=0s=0), comes to $98.50, while the bond trades at $96.00. Since the market price is lower than the model value at zero spread, the market is demanding extra compensation — raise ss until the discounted average falls to $96.00. If moving ss from 0 to 45 basis points does that, the bond's OAS is 45bp.

simulated rate paths average PV solve spread s so avg PV = market price
Each rate path drives its own prepayment speed and cash flow schedule. OAS is the single spread that reconciles the average of all of them with what the bond actually trades at.

Where this bites

OAS is only as good as the prepayment model feeding it. Two dealers running the same rate paths through different prepayment assumptions will quote different OAS for the identical bond — the number is a model output, not a market-observed quantity like a Treasury yield. Desks watch OAS move to judge whether a mortgage bond is cheap or rich relative to its own history, but comparing OAS across dealers without checking whose prepayment model produced it is comparing apples grown in different greenhouses.

OAS is the spread that reconciles a Monte Carlo average of simulated cash flows — where prepayment speed responds to simulated rates on each path — with the bond's actual market price. It isolates compensation for risks beyond the embedded refinancing option.

The classic confusion is treating OAS like a Treasury yield spread you can compare across any two bonds without caveats. It's conditional on the prepayment model. A "cheap" OAS can simply mean the desk's prepayment model is too pessimistic about refinancing speed, not that the bond is mispriced.

Related concepts

Practice in interviews

Further reading

  • Fabozzi, The Handbook of Mortgage-Backed Securities (Ch. on OAS)
  • Hull, Options, Futures, and Other Derivatives (Ch. on MBS)
ShareTwitterLinkedIn