LZLZL/Prediction markets/Research method
FREEBUILD IT F · MethodFlagship

Replays must state their bias

2026-08-21 · "inaccurate" is fine; "inaccurate in an unknown direction" is not

Every backtest is an approximation — that is not the problem. The problem is not knowing which way it errs. A number labelled "optimistic upper bound" is still usable; an unlabelled number cannot support any decision, because you cannot tell "slightly short" from "nowhere near".

1Common approximations and their directions

ApproximationDirectionWhy
Fill at the best priceoptimisticlive orders walk the book
Fill at the midpointmore optimisticthe spread is not counted at all
Assume resting orders filloptimisticfilling is not random
Drop unfilled orders from the sampleseverely optimisticthat is selection on the outcome
Conservative queue assumptionspessimisticless benign flow, more toxic flow
Simulate a short tenor from long-tenor flowoptimisticshort-tenor flow is sparser
Ignore price drift during executionoptimisticdrift is large on short tenors

Note the distribution: six of seven lean optimistic. Not a coincidence — each simplification exists to make the backtest runnable, and simplifications almost always remove a cost, rarely a revenue.

2Measured: one approximation overstated by 2.1×

I needed to estimate how much of a maker's inventory would pair into sets. Version one used truncated replay: take a long-tenor wallet's real flow, pretend it were a short holding window, recompute.

Later I replayed against recorded real books plus complete tape:

TenorTruncated replayFull simulationOverstated
5 minutes47.0%36.3%1.3×
15 minutes70.9%33.6%2.1×
1 hour95.4%54.9%1.7×
⚠ The cost: fifteen minutes nearly got through

It had been "undecided" — 70.9% looked high enough to be worth trying. The full simulation returned 33.6%, worse than five minutes. Killed outright.

The failure was not inaccuracy. It was that I had not judged in advance which way it would err. Thinking through "does simulating a short tenor from long-tenor flow overstate or understate pairing" would have marked 70.9% an optimistic upper bound — unusable for a decision.

3★ The right output is a range, not a number

Once you know the direction, something useful becomes available: quote both bounds. For one path I had two numbers:

SourceResultDirection
Full simulation, conservative queue−3¢/sharepessimistic lower bound
A skilled operator's measured result+0.1¢/shareoptimistic upper bound
the conclusion is a range: −3¢ to +0.1¢ per share which turns the decision into a specific question

Namely: is there evidence I would land at the good end? There was not, so the line was never run. With one mid-point number that question cannot even be posed — you would think you had an answer when you had an unattributed point estimate.

4Why lean pessimistic

AssumptionIf wrongCost
Optimisticbacktest positive, live negativediscovered with real money; unbounded
Pessimisticbacktest negative, live might have workeda missed opportunity; bounded

The two errors have wildly asymmetric costs, so wherever it is genuinely uncertain, resolve it against yourself. That is not pessimism, it is asymmetric risk management.

5A self-check to copy

AskFailing answer
How was the fill price determined?"the close" — no spread, no book-walking
How do resting orders fill in this model?"the framework default" — you do not know the direction
Where did unfilled orders go?"filtered out" — the sample is contaminated
Is this an upper or a lower bound?cannot say → unusable
Is there evidence for the good end?"probably fine"
Which ruler judges wins?not the one the market settles on → see below

The last cost me the most: the ruler judging wins disagreed with market settlement on 10.1% of all windows, with a direction — enough to manufacture a stable-looking pattern. That is beyond a bias direction; it is the wrong instrument entirely — see the broken ruler.

6One line to keep

Every backtest number should carry one sentence: is this an upper bound or a lower bound? Without it the number cannot support a decision, because you cannot distinguish "slightly short" from "nowhere near" — and those differ by an order of magnitude in cost.

EvidenceCheck it yourself

Overstated pairing truncated replay against full simulation: 5m 47.0/36.3, 15m 70.9/33.6, 1h 95.4/54.9.
Range not point −3¢/share conservative lower bound against +0.1¢/share skilled upper bound; no evidence of reaching the upper, so the line was not run.
Conservative queue rules all displayed size at posting ranks ahead; cancellations do not promote you. See queue position.
Instrument failure 10.1% of all windows judged differently by the two rulers, with direction (125:82).
Checked 2026-07 to 2026-08.

NextWhere to go

B · REBATES
Queue position and conservative assumptions
G · ENGINEERING
Walking the book
F · METHOD
When the instrument itself is wrong
F · METHOD
Null models
This is an educational and research record. It is not investment advice, promises no returns, and offers no personalised trading recommendations. Rules and API behaviour are per the official documentation; this page states when it was checked and both can change without notice. Prediction markets are restricted or unavailable in some jurisdictions — confirm your own before taking part.