Skip to main content

svi-py

CI/CD PyPI Python Downloads codecov Docs License: MIT

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.

Examples

The examples/ directory walks a real SPY option chain (fetched via yfinance) from raw quotes to a priced, verified, serialized surface — five runnable scripts exercising the complete public API, including the no-lookahead snapshot discipline and a survey of implied-vol inversion methods. See the examples guide.

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

Metadata

Release files for svi-py 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for svi-py 1.0.0
File Size Uploaded
svi_py-1.0.0.tar.gz 231.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for svi-py 1.0.0
File Interpreter ABI Platform
svi_py-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 287.2 kB

Release files / svi_py-1.0.0.tar.gz

Download URL svi_py-1.0.0.tar.gz
Size 231.0 kB
Tags Source
SHA-256 checksum
How to use checksums
e6ede60c64f048e7daea49fb73c75ef755527759ee664c44dc9e4052e81f25a7
BLAKE2b-256 checksum
How to use checksums
37be564a514d62521f33ca32e23513515d6fda9faf17e588c1e21da73c908b03
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 Oct 11, 2026.

Transparency log

Release files / svi_py-1.0.0-py3-none-any.whl

Download URL svi_py-1.0.0-py3-none-any.whl
Size 56.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4c7ea5da54d22c26e7581cad90193ee0ed17ac8f8e17e2862961b85bd8d15296
BLAKE2b-256 checksum
How to use checksums
20890747e6b6675320f9c962a89e44b34bf64af96a668fb74234f297274a57fd
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 Oct 11, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page