The pipeline

The strategy lifecycle in Forven — quick screen, gauntlet, paper, live and the graveyard: what each stage proves, the gate to advance, and how to read the Pipeline board when a strategy stops moving.

The pipeline is the spine of Forven. Every strategy travels the same road, and each stage exists to kill it before the next one costs more — compute, then time, then capital. Nothing reaches real money until it has survived everything upstream.

This page maps the lifecycle, what each stage proves, the gate to advance, and how to read the Pipeline page when a strategy stops moving. Every number here is a Default-stance policy value.

The stages

quick_screen → gauntlet → paper → live_graduated
StageIn the appWhat happens there
quick_screenQuick screenCheap triage. Overfitting guardrails reject curve-fit junk before any expensive testing. A strategy lands here once it's registered and backtested.
gauntletGauntletThe robustness battery: timeframe sweep, optimization, confirmation, then walk-forward, parameter jitter, cost stress, Monte Carlo and regime split.
paperPaperSimulated trading forward in time on real market data. No capital at risk.
live_graduatedLiveReal capital on a staged ramp, watched by a decay kill switch. Live is unsupported in the open-source build — paper is where Forven stops by default.

Everything else is in the graveyard: archived, rejected and backtest_failed. A strategy is either in the pipeline or in the graveyard — there is no side lane.

A strategy that can't be fairly tested — it never trades in the window, trades too rarely to judge, its code breaks, or its data is suspect — is archived as untestable, with a reason starting untestable:. That isn't a verdict on merit: it skips the post-mortem and the negative learning signal, and The Forge's graveyard shows an Untestable badge. Recovering one from the graveyard re-runs the intake checks.

Older versions

Older builds had a research_only ("Parked") lane. It's retired; existing parked strategies moved to the graveyard, and the name survives only as a compatibility alias. Legacy spellings map one-to-one: researching/developing mean quick_screen, backtesting means gauntlet, deployed means live_graduated, retired means archived.

The marketing site uses simpler words: screen is quick_screen, candidate is paper, live is live_graduated.

Where strategies come from

From the agents' strategy-creation loop (Auto mode), from ideas you submit in The Forge, from the Strategy Creator (Send to Forge →), from The Forge's Import, and from AI clients through the MCP tools. All of them enter at quick screen and face the same gates.

How a strategy advances

Each transition is a gate. A gate reads the strategy's metrics and validation evidence, compares them to pipeline policy, and either lets it through or blocks it with a reason code. Passing one gate doesn't exempt it from the next.

  • Cheap first. Tests run from cheapest to most expensive, so weak strategies fail fast. You only pay for a stage if the strategy cleared the one before it.
  • Achievable paper, strict live. The gate into paper is deliberately reachable so the funnel keeps moving in an adverse market. The gate from paper into live is strict, because live capital is unforgiving.

A stance preset — Relaxed, Default or Strict in Settings → Lab — moves the thresholds below together, and editable safety floors stop any preset admitting a zero-trade or deep-drawdown strategy.

Quick screen: the overfitting gate

By default the quick screen judges a fair sample of the strategy:

  • The window widens until it holds at least 20 trades — it doubles from the default backtest window (730 days) up to 1,460 days, as far as history allows (older history is downloaded first). Only a strategy that trades less than about five times a year is untestable.
  • The whole window is judged: Sharpe above 0, profit factor at least 1.0, total return at least 0% and max drawdown no worse than 30%.
  • The out-of-sample slice only has to avoid losing badly: its Sharpe must be above −0.5.
  • The in-sample/out-of-sample gap and ratio are recorded, not enforced. They appear in the pass message.

It also rejects implausible metrics — a Sharpe of 5.0 or more, or a profit factor of 8.0 or more — as a look-ahead signature (for example, accidentally reading tomorrow's bar). The same check runs again at the gauntlet gate. A strategy that never fires on the 900-bar look-ahead probe is probed again over 3,600 bars before it's reported as unverifiable.

Strict quick screen (Settings → Lab → Quick Screen (Step 1) → Quick-screen rule) restores the old screen: a fixed window, in-sample and out-of-sample Sharpe each at least 0, an IS/OOS Sharpe ratio no higher than 3.0, never in-sample negative while out-of-sample is positive, and profit factor at least 1.0 in both slices.

Unmeasured evidence is never a merit failure: a window with no trades, fewer trades than the minimum, or a metrics-integrity problem archives the strategy as untestable rather than as a loser.

The gauntlet: robustness battery

Once a strategy clears quick screen, the gauntlet sweeps timeframes, optimizes parameters (applying them only if they hold up out of sample), confirms them, and runs the robustness tests:

TestWhat it provesDefault pass bar
walk_forwardEdge holds on unseen dataOOS degradation ≤ 35%; ≥ 33% of judgeable folds profitable; ≥ 2 folds
param_jitterEdge isn't a fragile parameter knife-edge≥ 50% of jittered reruns pass
cost_stressEdge survives higher costsSharpe degradation ≤ 60% at 2× fees and slippage
monte_carloTail risk is bounded≥ 65% of resamples profitable; 95th-percentile drawdown ≤ 40%
regime_splitEdge generalizes across regimesProfitable in ≥ 50% of regimes

Every test has to run and save a verdict before paper. With the default research door (below), a failed verdict is recorded — shown on the strategy page and used to rank the paper queue — and enforced at paper → live, together with the rest of the battery. Under Strict paper the required tests must pass before paper, as before: walk_forward and param_jitter with the Default stance, plus cost_stress with Strict. A genuine test failure doesn't retry; transient blocks (a data hiccup, a timeout) retry with backoff and never count as a merit failure.

Paper: the achievable gate

Once every test has run, the strategy meets the door into paper. Paper risks no capital, so the default research door stops only strategies that are broken or clearly losing. Its confirmation backtest needs:

  • at least 20 trades and a total return of at least 0%;
  • out-of-sample profit factor of at least 1.0 and out-of-sample Sharpe above 0;
  • max drawdown within 30%, no implausible metrics, and a Monte Carlo 95th-percentile drawdown within 40%;
  • no loss under 2× costs.

The selection-bias checks are recorded here and enforced at paper → live: the deflated Sharpe (bar 0.90 — the probability the edge is real after allowing for how many variants were tried), walk-forward fold rate, regime split, parameter jitter, the Monte Carlo and cost-stress verdicts, and the robustness score. A forward audit found these tests don't predict how a strategy does in paper, so they now guard the step where capital is at stake.

The held-back test moves with them. The most recent 3–6 months (the last full quarter and the current one) are held back from all research; each new candidate gets one walk-forward run on them when it applies for live, and a pass is required. Strategies created before the holdout existed are exempt and judged on forward results.

The walk-forward is also compared with buy-and-hold and a simple trend rule over the same days (the baseline hurdle). At this gate that's observed, not enforced.

Strict paper (Settings → Lab → Door into paper) restores the old door exactly: every gauntlet verdict, robustness score ≥ 30, out-of-sample profit factor ≥ 1.05, deflated Sharpe ≥ 0.90 and a passing held-back test, all before paper. It doesn't change the live gate — that's the separate Live gate evidence rule below. You can also switch any single recorded check back to enforce.

Clear the door and the strategy enters paper automatically — that's the default — or joins the paper queue if the pool is full. To approve each promotion yourself, switch off Auto promotions on the Approvals page.

The paper pool

At most 40 strategies paper-trade at once, at most 3 on one coin and 10 from one family (EMA, funding, mean reversion…). A strategy that clears the door while its slot is full waits in the paper queue, ranked by the evidence the door recorded: deflated Sharpe, robustness score, out-of-sample Sharpe and the breadth test. Waiting is capacity, not a rejection — it never counts toward an auto-archive. A queue entry that isn't re-confirmed for 14 days drops off.

Every hour the pool retires paper strategies whose forward record says they're losing: 15 or more closed trades with a negative average and a t-stat below −1, a 15% forward drawdown, 60 days without a trade, or forward trades that contradict the backtest. They're archived as paper_retired:<reason>; live strategies are never touched. Freed slots go to the best-ranked waiting strategy. All of these limits are in Settings → Lab → Paper pool.

A paper strategy whose breadth test reads general also paper-trades the coins where its unchanged rule made money in that test — its home coin first, up to 6 in all — as one record with equal risk per coin. Trades closed on the same day count as one day of evidence. See paper trading.

In paper, the execution kernel runs the strategy forward on real market data and simulates every fill in the app; nothing is sent to an exchange. Fees, slippage and funding are charged as in the backtest. Paper fills carry no exchange order ID, so paper P&L is not a proxy for live P&L — treat it as forward evidence of edge, not a profit forecast. See paper trading.

Paper → live: the strict edge proof

The gate from paper to live_graduated is the hardest, because it's the last one before real money. By default the strategy must pass a sequential evidence test:

  • It waits for at least 20 closed paper trades and 30 days in paper.
  • Its forward results must not be significantly worse than its backtest.
  • Backtest and forward evidence combined — the backtest weighted half, since it was selected and forward trades weren't — must clear a bar corrected for how many strategies were in paper over the last 90 days, at a 5% false-positive rate. The more strategies in paper, the higher the bar.
  • Its forward Sharpe must be positive.

The test is re-run after every trade and reads collecting, continue, go or fail; a fail retires the strategy from paper. Go never promotes anything on its own. The gate also enforces:

  • Every check the research door only recorded — walk-forward, parameter jitter, the robustness score and the strict battery (Monte Carlo, cost stress, regime split) — plus the deflated Sharpe on backtest and forward trades together, and the one-shot held-back test.
  • Paper return above 0% and paper drawdown below 15%; historical profit factor ≥ 1.5.
  • Funding-data completeness and validation data within 2% of the live venue.
  • The baseline hurdle. A strategy that doesn't beat buy-and-hold and the trend rule stays in paper; it isn't archived.
  • The breadth test. The rule, run unchanged on 15 coins, must have a current verdict other than home only (an edge on its home coin alone). A missing run is started automatically and keeps the strategy in paper.
  • A multi-coin paper strategy stays in paper — Multi-coin live review pending — until the live order path supports several coins per strategy.

Fixed floors (Settings → Lab → Paper to Live gates → Live gate evidence rule) restores the old forward floors instead of the sequential test: 14 days and 10 closed trades (Strict: 50), paper Sharpe ≥ 1.0 and paper profit factor ≥ 1.2.

Only paper trades recorded by the current execution engine count. Going live is also refused, even when forced, if another live strategy already trades the same coin and side, or if a wallet couldn't hold every live strategy's margin at once.

Promotion into live always needs your explicit confirmation: the GO LIVE dialog requires a per-asset notional ceiling and a typed GO LIVE. An Allow automatic go-live setting exists and is off by default. An optional graduation recommender (forven-live-graduation-scan, off by default) can queue a recommendation when a paper strategy clears the gate; approving it records intent only. See live safety.

Live: allocation ramp and the decay kill switch

A graduated strategy doesn't get full size on day one: 25% in weeks 1–2, 50% in weeks 3–4, 100% from week 5. Each live strategy sizes inside its own slice of the account, so promoting another divides risk instead of adding to it. A decay kill switch watches every live strategy and retires it to archived if its Sharpe falls by 30% or more over its rolling window. See live trading.

The Pipeline page

Pipeline in the sidebar (/pipeline) has three tabs: Strategies (the default), Processes and Code Review.

The Pipeline page's Strategies tab: WAITING ON EVIDENCE 4 and RUNNING 2 counts, preset DEFAULT, and four columns — Quick Screen with three cards waiting on evidence, Gauntlet with two running validation, Paper with one waiting on robustness evidence, and Live empty.Every card says what it's waiting for and the next action: run a backtest, wait for the workflow, or re-run missing validation tests.

Strategies: why is my strategy stuck?

A strip across the top counts strategies by status — READY, RUNNING, WAITING ON EVIDENCE, FAILED GATE, SLOT CONTENTION, NEEDS YOU, LIVE, UNKNOWN — with the active stance (preset: DEFAULT) on the right. Below it are four columns, Quick Screen, Gauntlet, Paper and Live, with one card per strategy.

Each card shows the strategy's ID and name (a link to its page), market, time in stage and rejection count, a status, its top blocker and → the next action. Click ▸ details for the rest:

  • Next — what happens next and what triggers it.
  • All blockers — each as [kind] reason (current / threshold). Evidence blockers mean something hasn't happened yet (a test still running, stale evidence awaiting re-validation, paper warm-up); merit blockers mean it genuinely failed a gate.
  • Validation evidence — each test's age, with STALE chips.
  • The last backtest and optimization, and for paper strategies the warm-up progress: paper days and closed trades against the gate minimums, and the last paper trade.
  • Any pending approval, and the last rejection with its gate and code.

The board is read-only: it runs the real gate evaluators in a no-write dry run, so looking can never change state or count toward an auto-archive. The same data is at GET /api/lifecycle/pipeline/explain (every strategy) and GET /api/lifecycle/strategies/{id}/explain (one).

Its status words differ from The Forge's for the same states — FAILED GATE here is Blocked on merit there, NEEDS YOU is Needs your review.

Processes

Active Processes (running gauntlet steps, scans and tournaments), a read-only Autopilot card (running or paused, workers, queued jobs, dead letters, health) and Recent Completions. Scheduled jobs are no longer listed here: the page links to Agents → Schedules, where you can see, edit and pause them.

Code Review

Code suggestions agents logged for manual review — "Implement from your IDE."

Demotion, archiving and overrides

  • Demotion thrash. A failure the gauntlet enforces demotes the strategy back to quick screen. On the third demotion it's archived as untestable, so a perpetual failure can't loop forever burning compute.
  • Repeated-failure auto-archive. Five genuine failures at the same gate archive the strategy. Evidence-absence blocks and waiting in the paper queue never count.
  • Re-queue an archive. python -m forven.agent readmit-candidates --days 30 lists recent archives the research door would have admitted; python -m forven.agent requeue sends archives back to quick screen for a fresh run under today's settings.
  • Frozen at capital stages. Once a strategy reaches paper or live, its parameters and traded asset are locked against background writers. Only an explicit operator action changes them, and changing them means revalidating — the strategy page's Execution check flags any drift from what was validated.
  • Operator overrides. You can override a gate rejection — say a paper Sharpe of 0.95 against a 1.0 floor — but only through an explicit, informed-consent confirmation with a recorded reason. Automated actors can never force past a capital gate.

Autonomy and the testing bypass

Two switches change how the pipeline runs, never what it checks:

  • System mode — Manual (the fresh-install default) freezes all autonomous background work; Semi stops the agents writing new ideas on their own while your submitted ideas and existing strategies are fully evaluated; Auto runs everything, including the creation loop. Use the MANUAL / SEMI / AUTO control at the top of every page. See autonomy modes.
  • testing_mode — bypasses the non-capital gates (quick screen and gauntlet) for rapid iteration. It never skips the paper or live gates.

Steps: move a strategy through by hand

  1. Open the strategy from The Forge. Note its stage and the Next gate on its lifecycle rail.
  2. If it has no backtest, click Run backtest — a strategy with no results can't be judged.
  3. Use the stage control to promote it to the gauntlet. If the quick-screen gate blocks, the reason names the guardrail.
  4. Let the gauntlet run its steps, or use Run robustness suite. Retry any step that blocked on a transient error.
  5. When every gauntlet test has run and the strategy clears the door, it enters paper — automatically, unless you've turned Auto promotions off — or waits in the paper queue if the pool is full.
  6. Let paper run: the live gate starts judging after 20 closed trades and 30 days. Track progress on the Pipeline board.
  7. Go live only if you've deliberately opted into the unsupported live path: approve in Approvals, enter the per-asset ceiling and type GO LIVE.

A research tool, not a forecast

Every threshold and ramp on this page is a discipline mechanism, not a promise. Paper results are simulated and don't reconcile with any exchange, live results aren't predictive, and nothing here is financial advice. The pipeline's job is to make it hard for a fragile strategy to reach your capital — not to guarantee that one which does will profit.