Skip to main content

ZABR Model

ZABR is SABR with a general backbone: instead of forcing a fixed power-law relationship between price and vol, you plug in any smooth function. Not "choose an exponent" but "draw whatever curve you want."

This matters when SABR's rigid backbone visibly misfits the data -- asymmetric wings, negative rates, or kinks in the price-vol relationship that a single beta cannot capture. The implied volatility smile produced by ZABR can take shapes that standard SABR structurally cannot reach.

💡
ZABR in a nutshell

SABR says "vol scales with price as a power law." ZABR says "vol scales with price however the data says it should." More flexible, but more complex. For most crypto work, SABR or SVI is plenty.

See the Difference

Each curve below uses identical stochastic parameters (rho, nu) -- only the backbone function changes. Notice how different backbone choices produce different smile shapes, especially in the OTM wings.

ZABR Backbone Comparison

Fixed parameters: ρ = -0.4, ν = 0.5, α = 0.28. Toggle each backbone to compare smile shapes. Highlighted regions show where backbones diverge most.
OTM putsOTM calls11%21%32%758595ATM105115125StrikeImplied Vol (%)Square root (standard SABR)LognormalNormalPiecewise (asymmetric)

All curves share the same skew, vol-of-vol, and vol level. The only difference is the backbone choice. Notice how the smiles diverge most in the wings (shaded regions) while staying close near ATM.

What Changed from SABR

Small change in notation, large change in consequence.

Aspect
SABR
ZABR
Backbone
Power law (F^beta) -- one parameter
Any smooth function z(F) -- as flexible as you need
Wing control
Put and call wings tied by a single beta
Independent control of each wing via the backbone
Negative rates
Problematic for fractional beta
Handles negative forwards with the right backbone
Speed
Microseconds (Hagan formula)
Milliseconds (PDE) to seconds (Monte Carlo)
Fitting
2-param fit, fast and stable
Harder -- more parameters, no formula

Common Backbone Choices

Backbone
When to use it
Parameters
F^beta (standard SABR)
Default -- use this unless it visibly misfits
1
Piecewise power law
Put and call wings have different curvatures that one beta cannot capture
3
sinh (shifted SABR)
Negative rates or zero-crossing dynamics
2
Free-form spline
Maximum flexibility -- backbone fitted from data. Powerful but dangerous (overfitting risk)
N knots
💡
What ZABR teaches about SABR

ZABR is the "if SABR is not flexible enough" fallback. Rarely needed for crypto. But it shows what beta in SABR is really doing: choosing one specific backbone from an infinite family. The skew and vol surface shape depend on how the backbone interacts with the stochastic vol dynamics.

Pricing Under ZABR

Unlike SABR, ZABR has no closed-form implied vol formula. The Hagan formula relies specifically on the power-law structure, and that structure is gone once you generalize z(F). You must use numerical methods to recover Black-Scholes implied vols from ZABR option prices.

Method
Speed
When to use
PDE (Andreasen-Huge)
Milliseconds per option
Default approach for production
Monte Carlo
Seconds per option
Validation, exotic payoffs
Perturbative expansion
Microseconds per option
Quick approximation when backbone is near-SABR

When ZABR Is Worth the Complexity

Scenario
Why ZABR helps
Which backbone
Negative interest rates
SABR backbone undefined for negative forwards with fractional beta
Shifted (sinh)
Asymmetric wing behavior
Put and call wings have different curvatures (different butterfly profiles) that one beta cannot capture
Piecewise
Visible backbone misfit
SABR backbone systematically over/under-estimates vol in a region
Spline or piecewise
Exotic pricing
Barrier and path-dependent options where accurate local vol structure matters
Best fit to observed dynamics

Practical checklist before reaching for ZABR

  1. Is the SABR backbone actually misfitting? Plot the backbone (set vol-of-vol to zero) against the observed smile. If it tracks reasonably, SABR is fine.
  2. Is the misfit in the backbone or the vol-of-vol? A poor SABR fit might need different rho/nu, not a different backbone. Check delta-space residuals before changing the model.
  3. How many extra parameters are you adding? Each one must be justified by better fit and increases overfitting risk. Watch for calendar arbitrage violations when fitting multiple expiries.
  4. Do you have the tooling? ZABR requires a PDE solver. If your library only supports SABR's Hagan formula, switching is a significant engineering investment.
ℹ️
Skip this for crypto

ZABR is almost never needed for crypto options. SVI handles smile fitting and SABR provides adequate dynamics. The bigger challenges in crypto are data sparsity and microstructure noise, not backbone shape. Vega and term structure exposures are better managed with simpler models that fit cleanly to available ATM and strike data.

Equation Explorer

Convert between implied vol, total variance, log-moneyness, and option prices.

Equation Explorer

w = σ2 × Ttotal variance = IV2 × time
%
The implied volatility
days
Calendar days to expiration
Total Variance (w)
0.022225
Annualized Variance (σ²)
0.2704
Round-trip IV
52.00%
Total variance is what SVI and other models fit. It scales with time, so a 50% vol for 30 days has less total variance than 50% vol for 90 days.

Test your understanding before moving on.

Q: You set z(F) = F^0.5 in ZABR. What model have you recovered?
Q: A swaption desk observes that their SABR fit systematically underprices deep OTM puts but overprices deep OTM calls. Could ZABR help?
Q: Why can you NOT use the Hagan formula to price options under ZABR with a sinh backbone?
Q: In crypto options markets, when would you choose ZABR over SABR or SVI?

💡 Tip: Try answering each question yourself before revealing the answer.

Building mathematical intuition

Learn ZABR from scratchInteractive lesson · no prerequisites

This lesson explains ZABR as "SABR with a custom backbone," then shows what the backbone actually does, how the equations change, and when the added complexity is justified.


See also: