# empyrical-reloaded

The maintained fork of Quantopian's empyrical — risk statistics, no plots.

*https://stockmarketstack.com/tools/empyrical-reloaded · Market Analysis & Portfolio Optimization Libraries*

## Facts

### At a glance

| Field | Value |
| --- | --- |
| Vendor | Stefan Jansen |
| Category | Market Analysis & Portfolio Optimization Libraries |
| Job | performance_analytics |
| Website | https://empyrical.ml4trading.io |
| Pricing model | open-source |
| Free tier | true |
| Open source | true |
| Licence | Apache-2.0 |
| Self-hosted | true |
| Tested hands-on | false |
| Last updated | 2026-09-19 |

### Coverage

| Field | Value |
| --- | --- |
| Asset classes | stocks, etf |
| Markets | global |
| Works outside the US | true |
| Data latency | none |
| Platforms | library |
| AI features | none |

### Interfaces

| Field | Value |
| --- | --- |
| API | false |
| Webhooks | false |
| Scripting | Python |
| Python | true |
| Spreadsheet add-in | false |
| MCP server | false |
| Export | none |

### Capabilities

Yes: none

No: charting, screening, scanning, backtesting, automation, live_trading, paper_trading, portfolio_tracking, broker_import, tax_reporting, alerts, news, options_analysis

*Verified: pricing 2026-09-19; capabilities 2026-09-19; coverage 2026-09-19.*

## What it is

empyrical is the statistics layer that Quantopian pulled out of Zipline and pyfolio — plain
functions over an array or Series of returns. `sharpe_ratio`, `sortino_ratio`, `calmar_ratio`,
`omega_ratio`, `max_drawdown`, `tail_ratio`, `value_at_risk`, `alpha_beta` against a benchmark,
up and down capture ratios, and a `roll_*` variant of most of them for windowed calculation.
NumPy arrays and pandas Series both work, and the return type follows the input.

Quantopian closed in late 2020 and the package froze with it. This is Stefan Jansen's fork — the
same maintainer who keeps [Zipline-reloaded](https://stockmarketstack.com/tools/zipline-reloaded), pyfolio-reloaded and
alphalens-reloaded alive — under the original Apache-2.0 licence and the original `empyrical`
import path. What the fork has bought is compatibility rather than features: Python 3.10 through
3.13, pandas 2, NumPy 2, wheels on PyPI and conda-forge, and a docs site the original never had.

## Pricing

Free, Apache-2.0, nothing to buy. The fork keeps Quantopian's copyright notice in `LICENSE`.

## Data & coverage

Numbers in, numbers out — the library holds no market data and no instrument model. Two optional
extras exist for convenience rather than for production: `empyrical-reloaded[yfinance]` downloads
price series from Yahoo Finance, and `empyrical-reloaded[datareader]` fetches Fama-French risk
factors and FRED treasury yields through pandas-datareader. The README warns that
pandas-datareader does not work on Python 3.12 or newer, which makes the factor helper unusable
on a current interpreter.

## Integrations

It is the metrics layer underneath the reloaded Quantopian stack — Zipline-reloaded,
pyfolio-reloaded and alphalens-reloaded all depend on it — and it drops into anything that can
produce a returns Series.

## Limitations

- Repository activity, checked 19 September 2026. Release 0.5.12 on 1 June 2025, last commit to
  `main` on 29 July 2025, one open issue, not archived, maintained by one person. Fifteen months
  without a release is not dead, but it is not a project absorbing changes either.
- `pip install empyrical` still gets Quantopian's 2020 package, sdist only, whose install
  requirements pull pandas-datareader unconditionally. The obvious install line is the wrong one.
- No plotting and no reporting of any kind. You get floats and Series.
- The base install pins `peewee<3.17.4` — an ORM, inside a statistics package, capped for build
  reasons — which can collide with anything else in the environment that wants a newer peewee.
- PyPI still classifies it Development Status :: 4 - Beta, inherited from the original.

## Alternatives

[QuantStats](https://stockmarketstack.com/tools/quantstats) for the same family of metrics plus charts and an HTML tearsheet;
[ffn](https://stockmarketstack.com/tools/ffn) if your input is a price DataFrame rather than returns and you want a comparable
statistics table with portfolio weighting on top.

## FAQ

### Is the original empyrical dead?

In every practical sense, yes. Quantopian's last release was 0.5.5 on 13 October 2020 and the last commit to `master` landed the next day — a packaging fix adding `six` to the requirements, which never shipped because the release had already gone out. The repository is not archived and 28 issues are open, but nobody has answered one since 2020.

### What do I actually install?

Run `pip install empyrical-reloaded`, or `conda install empyrical-reloaded -c conda-forge`. The import path is still `empyrical`, so existing code needs no edits — and for the same reason you should not install both packages into one environment.

### Is empyrical-reloaded itself actively developed?

It is maintenance-only. Release 0.5.12 shipped 1 June 2025 and the last commit to `main` was 29 July 2025, a README typo fix; the last substantive change was NumPy 2.0 compatibility in September 2024. One issue is open and the repository is not archived. Treat it as a library that is kept installable rather than one that is growing.

### How is this different from QuantStats?

empyrical returns numbers and nothing else — no plots, no report, no tearsheet. QuantStats wraps a similar set of statistics in charts and an HTML tearsheet, and carries yfinance as a hard dependency to do it. If you are computing metrics inside your own pipeline, the smaller dependency is this one.

## Also from Stefan Jansen

- [Zipline-reloaded](https://stockmarketstack.com/tools/zipline-reloaded.md)

## Also worth comparing

- [ffn](https://stockmarketstack.com/tools/ffn.md) — Performance stats, drawdowns and portfolio weights from a DataFrame of prices.
- [QuantStats](https://stockmarketstack.com/tools/quantstats.md) — HTML tearsheets and about eighty risk metrics from one pandas series of returns.
- [arch](https://stockmarketstack.com/tools/arch.md) — GARCH and the rest of the volatility-model family, plus the tests you need around them.
- [pandas-ta](https://stockmarketstack.com/tools/pandas-ta.md) — The DataFrame indicator library whose repo is gone and whose last release is a year old.
- [PyPortfolioOpt](https://stockmarketstack.com/tools/pyportfolioopt.md) — Prices in, weights out — efficient frontier, Black-Litterman and HRP.
- [Riskfolio-Lib](https://stockmarketstack.com/tools/riskfolio-lib.md) — Twenty-six convex risk measures, four objectives, one cvxpy-backed optimiser.
