TradeHouse  prediction-market data & tools
TradeHouse · strategy validation

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 pricing
The only validator that is allowed to say no. Every other tool returns a number. Ours returns UNTESTABLE when your book cannot answer the question — and tells you exactly which column would make it answerable.

Three 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.

SURVIVESA rule frozen on the training window still pays after costs on data it never saw, and clears Benjamini-Hochberg across everything you submitted.
DISSOLVESThe in-sample edge does not reproduce out of sample, or it does not survive the venue's real fees. The report says which of the two killed it.
UNTESTABLEThe book cannot answer the question — too few independent days, no entry-time signal to freeze, or an unrecognised market family. We refuse to grade it rather than invent a number.

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.

DetectorSeverityWhat it catches
LookaheadBLOCKERAn outcome or a feature stamped before entry, or a record created after the outcome it predicts.
Oracle lagMATERIALSettled 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 bookMATERIALask < bid, dead rows, and outcome sets that are not mutually exclusive and collectively exhaustive.
Signed-PnL directionBLOCKERNO-side legs scored with the YES convention — a sign bug that manufactures profit.
Hindsight selectionMATERIALThe cohort was chosen because it was already profitable; in-sample rank fails to predict out-of-sample rank.
Mark tautologyBLOCKERThe exit price is the contemporaneous mid, so the P&L is an accounting identity, not a trade.
Unrealised as P&LMATERIALOpen positions and markout rows summed as if they were realised.
Zero feeMATERIALA zero fee charged on a venue the schedule prices as non-zero.
Duplicate legsMATERIALIdentical (timestamp, ticker, side, size, price) rows inflating the sample.
Degenerate pinADVISORYBinary contracts entered at ~0 or ~1, where the apparent hit-rate is structural.
Span adequacyMATERIALThe 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.

predictions

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.

equities & spot

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.

options

Variance premium

Entry implied vol against subsequently realised vol. Needs entry_iv and realized_vol from your own records.

perps & futures

Basis + funding carry

Carry decomposition from basis and funding_rate, so a funding-harvest book is not graded as if it were directional.

every family

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.

every submission

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

$0
no card required
  • 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
Start free

Starter

$49/mo
or $490/yr — 2 months free
  • 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
Choose Starter or pay annually — $490
MOST CHOSEN

Pro

$199/mo
or $1,990/yr — 2 months free
  • 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
Choose Pro or pay annually — $1,990

Enterprise

$499/mo
or $4,990/yr — 2 months free
  • 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
Talk to us

What is live today, and what is not

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/schema tells 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.