Fidelity Lab
You send us your trades. We tell you whether the edge is real — the same way we tell ourselves. Point-in-time walk-forward, cost-netted from the venue's own fee schedule, with a contamination report that names the specific artefact and the specific legs.
Run a free report See pricingThree answers, and one of them is a refusal
A verdict you can act on has to be able to come back negative. All three of these are real outputs.
What we check, and where each check came from
Eleven contamination detectors. Every one of them exists because it caught us first, on our own book — each has a planted failure case that must trip and a healthy control that must stay clear.
| Detector | Severity | What it catches |
|---|---|---|
| Lookahead | BLOCKER | An outcome or a feature stamped before entry, or a record created after the outcome it predicts. |
| Oracle lag | MATERIAL | Settled win-rate far above the price paid — a stale quote scored the fill. On our own kalshi book this one turned an apparent +$3,406 gross into −$7,355 net once the flagged cells were removed. |
| Crossed book | MATERIAL | ask < bid, dead rows, and outcome sets that are not mutually exclusive and collectively exhaustive. |
| Signed-PnL direction | BLOCKER | NO-side legs scored with the YES convention — a sign bug that manufactures profit. |
| Hindsight selection | MATERIAL | The cohort was chosen because it was already profitable; in-sample rank fails to predict out-of-sample rank. |
| Mark tautology | BLOCKER | The exit price is the contemporaneous mid, so the P&L is an accounting identity, not a trade. |
| Unrealised as P&L | MATERIAL | Open positions and markout rows summed as if they were realised. |
| Zero fee | MATERIAL | A zero fee charged on a venue the schedule prices as non-zero. |
| Duplicate legs | MATERIAL | Identical (timestamp, ticker, side, size, price) rows inflating the sample. |
| Degenerate pin | ADVISORY | Binary contracts entered at ~0 or ~1, where the apparent hit-rate is structural. |
| Span adequacy | MATERIAL | The whole submission lives in too few independent days to support any conclusion. |
The right ruler for the market, or none at all
One metric for every market is how a binary book gets graded with an instrument built for continuous prices. Fidelity Lab routes by market family — and returns UNRULED and refuses rather than grading a family it has no ruler for.
Closing-line value
Direction-corrected CLV against a de-vigged sharp closing line — computed only from a close_fair column you supply. We do not redistribute a line; if you don't have one, the report says CLV is unmeasurable, which is not the same as zero.
Arrival slippage + IC
Implementation shortfall against your arrival VWAP/mid, plus the information coefficient of your signal. Needs an arrival_vwap or arrival_mid column from you; without it the slippage field is reported null, not guessed.
Variance premium
Entry implied vol against subsequently realised vol. Needs entry_iv and realized_vol from your own records.
Basis + funding carry
Carry decomposition from basis and funding_rate, so a funding-harvest book is not graded as if it were directional.
Real fee schedule
We ignore the fee in your file and re-net from a per-venue schedule, labelling each leg SOT_MODELED, SOT_REALIZED or FLOOR_UNMODELED. The last one says out loud that we have no model for that venue and applied a 2% floor.
Adequacy + multiplicity
Day-clustered effective sample size with lag-1..5 autocorrelation inflation, and Benjamini-Hochberg at q=0.05 across every train-frozen rule you evaluated. Send twenty cohorts and the bar moves.
What you'll get
One JSON document, and the same thing rendered as HTML. This is an abridged real report shape — the numbers below are from our own equities book run through the customer path.
// GET /fidelity/report/{run_id} { "verdict": "UNTESTABLE", "reason": "n_eff = 3.0 day-clusters against 256 required for this effect size, and no train-frozen rule survived on held-out test.", "pnl": { "as_submitted_usd": 1284.11, "after_exclusions_usd": -311.40, "cost_source": "venue fee schedule (SOT_MODELED 2790 legs, FLOOR_UNMODELED 0)" }, "contamination": [ { "code":"UNREALIZED_AS_PNL", "severity":"MATERIAL", "legs":5627, "detail":"open markout rows summed as realised (-$527.29)" }, { "code":"ZERO_FEE", "severity":"MATERIAL", "legs":10651, "detail":"fee 0 on a venue the schedule prices non-zero" }, { "code":"DUPLICATE_LEGS", "severity":"MATERIAL", "legs":8252, "detail":"77.48% share an identical (ts,ticker,side,size,price) tuple" } ], "ruler": { "family":"equities", "name":"VWAP_SLIPPAGE_AND_IC", "information_coefficient": 0.270, "pairs": 2790, "slippage_bps": null, "slippage_note":"no arrival_vwap column supplied" }, "walk_forward": { "split_date":"2026-08-27", "gap_days":1, "threshold_frozen_on":"TRAIN", "test_net": -0.02521, "t": -18.16 }, "adequacy": { "n_legs":10651, "n_eff_day_clusters":3.0, "required":256, "binding_constraint":"independent days, not legs" }, "multiplicity": { "method":"benjamini_hochberg", "q":0.05, "K":2, "survivors":0 }, "provenance": { "engine":"f4236.1.0", "report_sha256":"…" } }
Note the shape of that answer: a real information coefficient of +0.270 in sample, and the walk-forward still dissolves. That contrast is the entire product.
Pricing
Annual billing is two months free (16.7% off). Prices in USD, exclusive of tax. No contract, cancel any time.
Fidelity Lab is billed separately from the TradeHouse platform tiers — it grades your own trades and needs no TradeHouse data subscription.
Free
- 1 report per month
- up to 5,000 legs
- all 11 contamination detectors
- cost-netted P&L from the fee schedule
- full walk-forward verdict
Starter
- 10 reports per month
- up to 100,000 legs
- CSV and JSON upload
- per-market rulers
- BH-FDR across every cohort you send
- HTML + JSON report, downloadable
Pro
- unlimited reports
- up to 2,000,000 legs per run
- report API + webhook
- scheduled re-runs of a saved book
- read-only broker connect — rolling out
- priority support
Enterprise
- everything in Pro, no leg limit
- custom per-market ruler built for your book
- bring your own closing line or reference feed
- analyst review of every verdict
- private deployment option
- named contact, SLA on turnaround
What is live today, and what is not
- Live: CSV and JSON upload of your own legs, all 11 detectors, per-market rulers, fee-schedule cost netting, walk-forward with a TRAIN-frozen threshold, BH-FDR, HTML and JSON reports, and the report API.
- Rolling out on Pro: read-only broker and venue connect (Alpaca, Tradier, Kalshi, IBKR, Coinbase). The adapters are built and the scopes are read-only — we will never request an order scope — but connect is not open to self-serve signup yet. Until it is, Pro is billed for unlimited runs and the API, and connect arrives at no extra charge.
- We do not sell you a closing line. The CLV ruler runs on a
close_faircolumn you supply. If you don't have one, the report tells you CLV is unmeasurable rather than substituting something we invented. - We do not sell you a price tape. Slippage and IC are computed against your arrival prices. Running a rule over our own market data is a separate, licensed conversation, family by family.
- We grade, we do not advise. Fidelity Lab is backward-looking analytics on data you supply. It is not investment advice, it produces no signals, and it executes nothing.
Questions
- Is this a backtester?
- No, and it is not trying to replace one. QuantConnect, TradingView, AmiBroker and the rest run your strategy and hand you a number. Fidelity Lab takes the result you already have and adversarially checks whether it means anything. Most customers use both.
- Why would I pay for a second opinion?
- Because the failure mode is expensive and invisible. Every detector on this page fired on our own book first. One of them turned a $3,406 apparent profit into a $7,355 loss.
- What do I have to send?
- At minimum: entry timestamp, venue, side, size. Everything else unlocks a specific check, and
GET /fidelity/schematells you exactly which column would buy you which detector or ruler before you pay anything. - Where does my data go?
- Into an isolated database on a separate server, under a database user with no grant to anything else, keyed to your tenant on every query. It is never joined to, mixed with, or used to train anything on our own trading data.
- What if my book is too small to grade?
- You get UNTESTABLE and the number of independent days you would need. That is a real answer and it costs you a report credit — we would rather tell you that than sell you a false positive.
TradeHouse provides data and tools, not advice. Fidelity Lab performs backward-looking statistical analysis on data the customer supplies. Nothing here is a personalized recommendation, an offer, or a solicitation to buy or sell any security or contract. Past performance is not indicative of future results (CFTC 4.41(b)). Pattern-A compliance.