How a quote is made
Every quote here is a replay over recorded pool history, priced net of adverse selection and every cost of being there.
Why the quote says 362.9h and the tape says 725.7h
One replay is one observation, so the tape is cut into 20 overlapping sub-windows and the policy is replayed in each.
| Metric | Value | Note |
|---|---|---|
| tape span | 725.7h | everything the replay saw |
| × 0.50 | 362.9h | one sub-window |
| windows | 20 | overlapping, not disjoint |
| × perturbations | 3 | γ and κ, each side of nominal |
| = observations | 60 | the denominator on every verdict |
Disjoint, these would be 36.3h each against 362.9h overlapping. Overlap buys length at the cost of independence. A5
The 5 floors
Each can stop this product printing a number, at the value the code enforces. A floor a UI could get wrong is not a floor.
20 usable sub-windows
Below this the quote is withheld entirely rather than estimated from a handful. A5
24h per window
A window shorter than the policy horizon measures nothing, however many of them there are.
168h before annualising
This run is over it at 725.7h, so the quote reads annualised — a 725.7h result multiplied up to a year.
30 observations before a verdict
Below it the tearsheet prints “no verdict” and the count that was missing. A confident number on a tiny sample is worth less than a refusal.
70.0% of the time in range
The one floor that calls a verdict rather than withholding a number: below it, in-range fails on every card.
Why the replay cannot cheat
Look-ahead is prevented structurally rather than by review.
- The estimators cannot read a clock. The pure layer — policy, estimators, LVR, replay — is forbidden from importing web3, sqlite3, asyncio or the wall clock, and a test walks the imports to enforce it. Time arrives as an argument.
- Ingest asserts on future events. Any event newer than the decision time raises, unconditionally, in both the live and the replay driver. There is no flag to disable it. A3
- The tape bounds itself in SQL. The frontier is a bind parameter on the query, not an
ifin Python, so there is no in-memory future available to leak.
Verified by tests T1–T4 and L1 — make replay-tests.