svi-py
Stochastic volatility inspired (SVI) parametrizations of the implied volatility surface in Python — plus the SABR stochastic volatility model.
svi-py calibrates smooth, arbitrage-aware total variance surfaces from panels of European option prices: raw SVI, natural SVI, SSVI, eSSVI, jump-wings, DirectSVI, and SABR behind one interface, with configurable no-arbitrage constraints and a full data-preparation pipeline.
Full documentation: pysvi.readthedocs.io
Installation
pip install svi-py
Requires Python >= 3.13. For JIT-accelerated calibration (togglable at runtime via pysvi.use_numba), install the numba extra:
pip install "svi-py[numba]"
Quick start
You need a DataFrame with columns for strike, implied vol, time to maturity, and implied forward:
from pysvi import get_model, calibrate_slice, apply_slice
# df_slice: single-maturity cross-section with columns
# strike, iv, maturity, implied_forward
model = get_model("svi")
params = calibrate_slice(df_slice, model)
fitted = apply_slice(df_slice, params, model)
print(fitted[["strike", "iv", "fitted_iv", "residual_iv"]])
The factory accepts "svi", "natural" (or "nsvi"), "ssvi", "essvi", "jumpwings" (or "jw"), "directsvi" (or "dsvi"), and "sabr". Some models take extra per-slice arguments (theta for SSVI/eSSVI, T for jump-wings, T/F/beta for SABR) — see the documentation for each parametrization's formulas, parameters, and usage, plus arbitrage-constraint options and the input-preparation helpers.
Contributing
Contributions, bug reports, and feature requests are welcome. Open an issue or submit a PR on GitHub. See the contributing guide.
Wanted: the original Gamma-Vanna-Volga paper. The Gamma-Vanna-Volga parametrization is something of a holy grail in the quant vol surface literature and would be a great addition to this library. If you have a copy of the original paper, please send it to marwin.steiner@gmail.com.
License
MIT
Release files for svi-py 0.8.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| svi_py-0.8.0.tar.gz | 140.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| svi_py-0.8.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 177.0 kB
Release files / svi_py-0.8.0.tar.gz
| Download URL | svi_py-0.8.0.tar.gz |
|---|---|
| Size | 140.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5df5bfa79910e94f474a8e22f9ea00945200e086056bf269a1fcfbe338a3a257
|
|
BLAKE2b-256 checksum How to use checksums |
0d4b49ec61d245593a114ea9aba12c5ff556194a7b37c3a7096a46b9c607d625
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 20, 2026.
Transparency logRelease files / svi_py-0.8.0-py3-none-any.whl
| Download URL | svi_py-0.8.0-py3-none-any.whl |
|---|---|
| Size | 36.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a405eaf0498b988047de1f951a748e1dcd56e089f6da9ff76852852ca858dae4
|
|
BLAKE2b-256 checksum How to use checksums |
36cb6b0617808903876c1eedd17052fa038268530279c14b5389d580df67dd0b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 20, 2026.
Transparency log