Pro license$19/mo or $199 once

The whole search space, and the tools to trust what you find

Community is not a trial. It runs the same Rust engine at the same speed, with no expiry and nothing withheld from the simulation itself. What Pro lifts is the ceiling on how much of the parameter space you can search at once, and it adds the diagnostics that tell you whether the result that came back is real or just the luckiest cell in the grid.

Or see exactly where Community stops →
Unlimited
parameter combinations per sweep, against 256 on Community
Unlimited
Monte Carlo simulations, against 1,000 on Community
1 minute
output resolution on every timeseries, against daily on Community
5 tools
on top of the caps: safety checks, walk-forward, GPU, cross-exchange, Databento and Massive

What the license unlocks

Three caps come off, and five tools appear. The caps are the ones that decide how much of a strategy you can look at; the tools are the ones that decide whether you should believe what you saw.

Sweeps without a cap

sweeps

Community stops at 256 combinations, which is a 16 by 16 grid and not much of a map. Pro removes the number: the sweep fans out across every core you have, and sweep_columns pulls one metric across a million combinations into a numpy array without building a million Python objects on the way.

Monte Carlo without a cap

monte carlo

A thousand simulations is enough to see the shape of a distribution and not enough to read its tail, which is the part you actually care about. Pro lifts the limit, so probability of ruin and the far percentiles come from as many resamples as the question deserves rather than as many as the tier allows.

Minute-resolution output

resolution

The engine simulates at 1 minute on both tiers, so the trades are the same. What Community caps is what comes back out, a daily equity curve. Pro returns the timeseries at the resolution the engine actually ran, which is what intraday drawdown and exposure analysis need to exist at all.

Safety checks

diagnostics

detect_lookahead tests every signal for future data and names the one that leaks. check_exposure_stability tells you whether exposure holds when you extend or truncate the period. Both failures inflate a backtest quietly, and neither of them shows up in the metrics you would think to read.

See the reports

Built-in walk-forward

validation

Optimize in-sample, validate out-of-sample, then compare the stitched out-of-sample equity against the full backtest. Overfitting stops being a number you have to interpret and becomes a gap between two curves that you can see.

How the workflow fits together

GPU acceleration

cuda

device="auto" moves a large grid onto your NVIDIA card and deliberately leaves small ones on the CPU, where the CPU is genuinely faster. In f64 the results are bit-identical to the CPU path, asserted metric by metric rather than within a tolerance.

Where the GPU wins and loses

Cross-exchange backtesting

execution

Run one strategy across several venues inside the same simulation, instead of assuming that the single book you backtested against is the one you would have traded on. Fees and funding stay attached to the venue they belong to.

Databento and Massive

data

Equities, futures and options, next to the five crypto connectors Community already ships with. You bring your own vendor account and the connector handles ingestion into the Arrow store, with the same merge-without-duplicates behaviour as the CSV path.

Where Community stops

The honest version of a pricing table is the one that makes it easy to decide not to buy. Here is every line, including the ones where the two tiers are identical.

There is no watermark, no nag screen, no expiry and no artificial slowdown on the free tier. The Community sweep still fans out across every core on your machine, and a Community backtest returns the same trades as a Pro one.

So if your research fits inside 256 combinations and a daily equity curve, Community is the whole product and you should not pay for Pro until it stops fitting. The moment it does stop is usually the same moment you start caring about the tail of a distribution rather than its middle.

Free, and staying free
  • +The full Rust engine, at full speed, with no time limit
  • +All 35+ indicators and multi-asset backtests
  • +1-minute engine resolution, the same as Pro
  • +CSV, pandas, Polars and Arrow IPC import
  • +Binance, Bybit, Hyperliquid, dYdX and Bitstamp connectors
  • +The MCP server, for driving research from an AI agent
  • +Tearsheets and export
  • +Reproducible manifests, replayable bit for bit
CapabilityCommunityPro
Rust engine, 35+ indicators, multi-asset
Engine resolution
1m
1m
Crypto connectors
MCP server
Tearsheets and export
Parameter sweep
256 combos
Unlimited
Monte Carlo
1,000 sims
Unlimited
Timeseries output
Daily
Up to 1m
Safety checks (lookahead, exposure)
Built-in walk-forward optimization
GPU acceleration
Cross-exchange backtesting
Databento and Massive connectors

Two ways to pay for the same license

Identical features either way. The only difference is whether you would rather rent the ceiling or own it.

Monthly
$19/mo
Billed monthly, cancel whenever

The license follows the subscription. Cancel and it runs to the end of the period you already paid for, then the library drops back to Community on its next check. Your installs stay where they are, and nothing you have already computed is touched.

Lifetime
$199 once
One payment, perpetual license

A permanent activation code, tied to a single user. No renewal, and no second invoice when you come back to a project two years from now.

Prices in USD, payment handled by Stripe, and promotion codes are accepted at checkout. Licenses are for a single user and sales are final; the terms spell out both. Running a team of five or more, or wanting the data and the compute managed rather than local, is what Firm is for.

Activation is one command, once

Checkout hands you an activation code on the confirmation page. You run it once, and the license is fetched and stored locally from there on.

That matters more than it sounds: because the license lives on the machine and not in the code, it never ends up in a notebook you share, a repository you push, or a screenshot of a cell that happened to include your key.

Nothing about the install changes. pip install manifoldbt is the same package on both tiers, and the same code runs on both. The license only decides how far it is allowed to go.

# Once, after checkout. The code is on your confirmation page.
manifoldbt activate "your-activation-code"
# Or from Python, if you never leave the notebook.
import manifoldbt as bt

bt.activate("your-activation-code")   # once, and only once

# Every later import picks it up on its own. Nothing to
# pass, and nothing to keep in the file.
import manifoldbt as bt

FAQ

Stop tuning a corner of the map

A strategy that survives the whole grid, a walk-forward and a lookahead check is a different object from one that won a 16 by 16 search. Pro is what it costs to tell those two apart.