Open-source backtest validation

Find where youralpha breaks.

Lacuna checks statistical evidence, leakage, robustness, costs, and reproducibility before you trust a backtest. Completely open-source.

Lacuna audit · zsh

Walk-forward validation

The edge weakens out of sample.

FAIL

Reported Sharpe

2.14

Purged Sharpe

0.71

252 sessions · 12 foldsΔ Sharpe -1.43

Compatible with the
tools you already use

  • Polars
  • pandas
  • NumPy
  • Apache Arrow
  • any backtester

The evidence gap

A backtest can look convincing and still be wrong.

Apparent alpha can disappear under unseen data, realistic costs, and leakage-aware validation.

Backtest

Unseen data

Edge gone

Same strategy.Data it never saw.

How it works

Bring a signal.
Leave with evidence.

Lacuna turns your signal and prices into structured findings, uncertainty, and provenance you can inspect.

import lacuna as lc

study = lc.SignalStudy(

signal=signal,

prices=prices,

)

report = study.audit()

report.show()

One audit path

Your backtester stays in place.

01 · Input

Signal + prices

The research data you already have.

02 · Check

lc.audit()

Only supported checks run.

03 · Report

Findings + evidence

Inspect, export, and reproduce every result.

Structured findingsSource metricsInput provenance

Performance by architecture

Python outside.
Rust inside.

Write Python. Lacuna moves columnar data through Arrow and runs hot paths in Rust.

You write

Python API

Typed studies and audits

Data crosses

Arrow contract

Columnar and low-copy

Lacuna runs

Native analysis

Rust · Polars · SciPy

Every chart keeps its source data, method, and assumptions.

JSON · Markdown · HTML

Built in public

Make every backtest earn your trust.

Open source for quantitative researchers who want evidence, not another backtester.

Follow on GitHub