Early access Backcast Labs is not on sale yet. The research notebook runs in your browser on simulated data. Join early access
Development notes

What changed in the engine, build by build

Backcast Labs is in early access and nothing has been released publicly yet. These notes follow the internal pre-release builds, so you can see how the product is developing before it goes on sale.

Pre-release. Version numbers below are internal builds. Planned pricing includes an optional update contract; see planned pricing.

The AI Automation Researcher in v1.8.12026-09-08

A capability note rather than a version bump: the engine is unchanged at v1.8.1 · build g7f3a2c. Everything below runs in the free notebook demo on simulated data — no account, nothing installed.

Added
  • An AI Automation Researcher control on the standing bar above the sheet (N, or from the command palette): agents that compose, run and validate candidate notebooks on their own schedule
  • A six-question wizard — risk profile · direction · timeframe or let it choose · edge families · budget in configurations · the house limits it cannot touch — each answer printing what it costs before you take it, and a review step that states what it will do, why, what it will cost and what it will never do. It can be left half-answered and resumed
  • Eight steps a candidate, each logged with what it did, why, and the number: build · run · price the cost model at 1 bp and 45 bps · sweep the neighbourhood · race 400 random entries · cut six folds · resample 1,000 paths · report, including reporting that it found nothing
  • An overview: agents with budget spent of budget set, a ranked results list, a shortlist of what still clears every check, and a one-click list of what it got wrong — candidates that looked good early and failed a later fold
  • A library of fourteen estimators and tests and every dataset the notebook reads, each stating what it assumes and where it fails; every candidate names the dataset it was measured on
Changed
  • Every configuration a researcher evaluates goes on the multiple-testing counter in cell [7], exactly like one you set by hand, and cell [7] now breaks the count out three ways — by hand · from the sweep · from the researcher. Measured on one saved assignment: 49 → 121 configurations, the agent reporting 72 spent, and the deflated Sharpe of your own unchanged result falling 76.9 % → 65.8 %
  • The results list is ranked on the out-of-sample Sharpe the folds printed minus the noise bar in force when the candidate turned up — not raw Sharpe, which is what a long search always maximises. Raw Sharpe is still available as a sort, and the list says in words why it is the wrong one
  • The shortlist is re-read every time it is drawn: three of the six checks move with the configuration counter, so a candidate that cleared them at 54 configurations comes off the list when it stops clearing them at 400, and the list names it
Refusals, on purpose
  • A researcher with no budget ceiling cannot be configured. There is no unlimited option in the wizard and there will not be one
  • Undo takes a candidate off the results list and refunds nothing: the budget stays spent and the counter does not move back, because the configurations were evaluated
  • It will not move a parameter you set, will not size above quarter-Kelly, will not model leverage, will not search a very short-term or day-trading variant, and will not put a number on what anything returns
Known weaknesses
  • A researcher left running for a long session makes every result in the workspace harder to believe — including its own. That is the arithmetic, not a defect, but it is a reason to set a small budget and read the counter rather than leaving one armed and forgetting it
  • Assignments are remembered in this browser; their spend is not, because the configuration counter starts again on a reload. A restored assignment comes back stopped and says why
  • The six folds and the resample cost no configurations but spend the sample: data a researcher has tested on is no longer untouched data for the next question you ask

The quant reviewer in v1.8.12026-09-08

A capability note rather than a version bump: the engine is unchanged at v1.8.1 · build g7f3a2c. This is what the reviewer does, and what it costs. Everything below runs in the free guest notebook — no account, nothing installed.

Added
  • The key in every cell rail: the same reviewer, entered already holding that cell, with three to five actions written for it
  • Six analyst plans it runs itself — is this a real edge · is it better than luck · does it survive its costs · which parameter actually matters · where does it break · can I make it more robust
  • Four standing mandates, said once: tell me when something I am running stops being an edge · keep watching my search count · re-validate anything I adopt · only speak when something actually breaks
  • A second register in the research log (cell [12]) for what the reviewer did unasked, with what it checked, what it found and what it did — exportable as CSV
  • Zero-input onboarding: one question, five answers, and the notebook configures itself — then states what it chose, why, and what the choice costs
Changed
  • Every configuration the reviewer prices now counts against your multiple-testing bar, tagged with who ran it. On the guest notebook's default run, asking “is this a real edge?” takes cell [7] from 49 configurations · deflated Sharpe 76.9 % to 50 configurations · deflated Sharpe 76.7 %. Autonomy is not free, and the counter says so
  • Undoing a standing-review action restores the parameter but not the count — the log now states this outright: a configuration it already priced cannot be un-counted
  • Repeated identical “nothing crossed” entries fold into one row with a consecutive-check counter rather than filling the record with duplicates
Refusals, on purpose
  • It will not move a parameter you set. Where it wants one moved it asks, and the log reads “Reported it and stopped. I do not move a parameter you set.”
  • It will not size above quarter-Kelly, will not model leverage, and will not put a number on what a strategy returns — monthly, annually or as a range
  • It will not rank two configurations whose gap is inside the standard error, and it will not plan on a result the engine has disowned or while a run is in flight
Known weaknesses

v1.8.1 latest internal build2026-08-30

Added
  • Monte Carlo plot cap: fans above 1,000 paths render a density band plus the P5/P50/P95 lines instead of every path — six times faster on 10k-path runs
  • Portfolio-level slippage: same-bar legs are aggregated per venue and impact is computed on the total (config costs.portfolio_level)
  • Trades tab: a per-trade realized-slippage column
Fixed
  • The walk-forward efficiency ratio showed n/a when the last fold ended exactly on the data-range end
  • Heatmap month labels shifted by one in ranges starting mid-year
  • macOS: the engine did not restart after sleep
Changed
  • Default block size for the block bootstrap: 10 → 20 trades
  • The report header now prints both the engine hash and the config hash

v1.8.02026-08-05

Added
  • Deflated Sharpe ratio, with automatic trial counting across parameter grids and folds
  • Tick-level fill model (fill: tick) for the crypto perps tick pack
  • Signed .forge-live.json export with the validation summary attached
Fixed
  • Strategy import: an exit carrying both a limit and a stop created two orders
  • Sortino used total instead of downside deviation when a window held no negative returns
Changed
  • Export disabled below efficiency 0.5 without an acknowledgement
  • Minimum bundled Python runtime 3.11 → 3.12

v1.7.22026-07-08

Added
  • US equities EOD pack: delisting reasons (merger / bankruptcy / voluntary) in the symbol metadata
  • Sensitivity sweep: slippage 0–50 bps in one chart
Fixed
  • Anchored walk-forward off-by-one in the first fold's in-sample end
  • The CSV importer accepted naive timestamps when the header contained “UTC” — it now always refuses them
Changed
  • Guest-mode history 14 → 30 days

v1.7.02026-06-10

Added
  • Anchored walk-forward mode (previously rolling only)
  • Stationary bootstrap for Monte Carlo
  • Macro pack (FRED + GDELT aligned) and the macro regime-switch template
Fixed
  • The drawdown halt in Monte Carlo paths applied one bar late
  • Pie-chart legend overflow with more than eight legs
Changed
  • Portfolio per-asset cap default 10 % → 7.5 %
  • Kelly fraction shown explicitly in the sizing panel (default 0.25)

v1.6.22026-05-14

Added
  • Data adapter for an additional perpetuals venue (funding history included)
  • Parquet streaming for packs larger than RAM
Fixed
  • Options chain pack: the implied-vol column was mislabeled for puts
  • Windows: the interface failed to start when the user path contained non-ASCII characters
Changed
  • Reports embed the engine build hash

v1.6.02026-04-22

Added
  • Strategy import: bring a Python strategy in as a notebook, with a repainting audit
  • Worst-of-bar stress fill model
  • Monthly-returns heatmap in the Portfolio tab
Fixed
  • Commission applied once per round trip instead of per side
Changed
  • Default slippage 10 → 20 bps (pessimistic-defaults policy)
  • Side panel: strategies sorted by last run
Follow along. Join early access and we will tell you when the first public build is available.