← VTR-1 · the standard
Companion · Non-normative · CC BY 4.0

VTR-1 for Quants

The deflation mathematics in display form, a worked example with real numbers from the published conformance vector, and what to implement — in order.

Companion to VTR-1 v1.0 (frozen) · mizan.market/standard-spec · August 2026

Read this first This document is not normative. Where anything here differs from VTR-1 v1.0, the standard governs and this document is wrong. It exists because the standard is written to be precise and this is written to be fast — and those are not the same job. Requirement identifiers (R-30, R-32…) point back to the binding text.

1The one-paragraph version

You have a backtest. Everyone who reads it knows two things you cannot prove: that you ran it the way you say, and that you did not try three hundred variants and show them the best one. Every correction for the second problem — deflated Sharpe, multiple-testing haircuts — needs the number of trials, N, and you are the one who reports N. VTR-1 makes that number structural instead: you commit the whole search before evaluation, N becomes the leaf count of that commitment, the statistics are recomputed inside a zero-knowledge proof, and anyone can re-check the result in milliseconds against their own copy of the data without trusting you. Your strategy is never revealed.

2What a credential proves that a tearsheet does not

Question a reader hasTearsheetVTR-1 credential
Did you run this on the data you claim?Take my wordVerifier re-derives the data root from its own copy R-01
Were costs actually charged?Take my wordCharged in-circuit on every transaction; floor re-checked R-02
How many strategies did you try?Take my wordLeaf count of a commitment made before evaluation R-06
Is this the best of many, shown as if it were the only one?UnanswerableWinner forced in-circuit to be the max of the committed set
Are you showing me only what passed?Usually yesEvery computed statistic reported, pass or fail R-07
Can I see the strategy?No — so I discount everythingNo — and you don't need to

The last row is the commercial point. Disclosure and verification have always been a trade: to be believed you had to reveal, and revealing destroyed the thing worth believing in. A proof separates them.

3Does this apply to you?

It applies if your strategy's decisions can be reconstructed from a committable price series, and your result does not depend on fills the data cannot justify. Concretely:

4Vocabulary

The standard uses a few terms that are not standard quant vocabulary. They are not jargon for its own sake — each names something that has to be checkable.

TermWhat it means to you
credentialThe proof object. Carries the metrics, the verdict, and the commitments — not the strategy. PASS and FAIL are both valid credentials.
eraA specific compiled version of the judging program, identified by its image hash. Your credential names the era that judged it and verifies against that era permanently, so nobody can change what your past result meant by shipping new code.
gate policyThe thresholds your metrics are tested against. Pinned by the era and published — you cannot choose your own bar per credential R-37. The standard deliberately does not prescribe the values; those are a risk posture, not a property of verifiability.
trial ledgerThe commitment to your search. N is its leaf count. This is the whole idea.
committed dataA price series bound to a Merkle root. The verifier rebuilds the root from data it obtained and rejects on mismatch.
sealed / committed representationYou execute the strategy; only the position stream is committed. Any logic is expressible this way.

5Notation

SymbolMeaning
ri, nPer-period returns of the winning strategy, and their count
ŜRPer-period Sharpe — never annualised inside a test
γ₃, γ₄Skewness and raw fourth-moment ratio (3 for a normal, not excess)
NTrial count = leaf count of the committed ledger
σSRPopulation sd of per-period Sharpe across the resolved trials R-38
SR₀Expected maximum Sharpe of N trials — the bar selection alone would clear
ρ, neffLag-1 autocorrelation; effective sample size after the AR(1) correction
Φ, Φ⁻¹Standard normal CDF and its inverse

6The mathematics

This is Appendix D of the standard, set as display math with the reasoning attached. The equations are identical; only the typography and the commentary differ.

6.1 Moments R-30

μ=1niri m2=1ni(riμ)2,σ=m2 zi=riμσ,γ3=1nzi3,γ4=1nzi4 SR̂=μσ

Three conventions decide whether your implementation matches anyone else's. Population denominators, not n1. Raw kurtosis, not excess. Per-period Sharpe, not annualised. Get any of the three wrong and every downstream number differs while every individual step looks defensible — which is exactly why the standard pins them rather than citing a paper and hoping.

6.2 Probabilistic Sharpe Ratio R-31

PSR(SR0)=Φ((SR̂SR0)(n1)ŝ)

where the denominator — the sampling error of a Sharpe estimated from non-normal returns — is

ŝ=(1γ3SR̂+γ414SR̂2)

The probability that the true Sharpe exceeds a benchmark, given the sample's length and its non-normality. Negative skew and fat tails widen ŝ, which is the correct direction: a return stream that occasionally detonates deserves less confidence than a Gaussian one with the same mean and variance. The radicand is floored at the smallest positive representable value so a pathological moment combination degrades the statistic rather than dividing by zero.

6.3 The deflation benchmark R-32

SR0=σSR[(1γ)Φ1(11N)+γΦ1(11Ne)]

The Sharpe you would expect from the best of N worthless strategies. γ is Euler–Mascheroni, 0.5772…, from the expected maximum of N draws. Note what multiplies the bracket: σSR, the dispersion across your trials. That is the term an adversary attacks — see 6.7.

The trap that voids a deflation silently For large N, 1/N falls below the representable grid, and forming (11/N) loses it entirely. The quantile must be evaluated directly from ln(1/N)=lnN instead. An implementation that skips this silently saturates SR0 as the trial count grows — the benchmark stops rising exactly when the search gets large enough to matter, which is the one regime the whole correction exists for. It fails quietly and looks correct.

6.4 Effective sample size R-33

neff=n1ρ+1+ρ+,ρ+=max(0,ρ)

Overlapping or serially correlated returns carry less information than their count suggests. The correction is deliberately one-sided: positive autocorrelation shrinks the sample and makes the test harder, while negative autocorrelation is floored at zero rather than allowed to inflate n. So neff never exceeds n, and the correction can never flatter you. Floored at 2 to keep the PSR defined.

6.5 Deflated Sharpe and Minimum Backtest Length R-34

DSR=PSR(SR0)evaluated atneff MinBTL:n>(EunitSR̂)2

DSR is one number: the probability your edge is real given how hard you looked. MinBTL answers the inverse question — how much history you would need before a Sharpe like yours means anything at N trials. It is rounded up and floored at 2: rounded against the claimant, like every other tie-break in the standard.

6.6 Probability of Backtest Overfitting R-39

Split the sample into S contiguous equal sub-periods. For every balanced partition — all C(S,S/2) of them, each partition and its complement both counted — rank the trials in-sample, take the in-sample best, and record whether its out-of-sample rank falls below the median. PBO is that fraction. At S=16 that is 12,870 partitions. No distributional assumption anywhere.

Three things are normative and all three are about removing your discretion: the split is canonical, not prover-chosen; every trial's per-sub-period Sharpe is re-derived from its committed spec, never declared; and the procedure fails closed at PBO = 1.0 on any degeneracy rather than erroring in a way a reader might skim past.

6.7 Why integers, and why no tolerance R-28 R-29

Everything above runs in fixed-point integer arithmetic at scale 106, no floating point anywhere in the evaluated path, division truncating toward zero. Two reasons. Inside a zero-knowledge circuit floats are ruinously expensive. And more importantly, verification equality is exact — no tolerance, deliberately.

Why a tolerance would be a hole, not a convenience In ordinary quant work you would compare to 1e-9 and move on. Here you cannot: a verifier that accepts "close enough" cannot distinguish a rounding difference from a manipulated statistic. Any tolerance is a budget, and a budget is something an adversary can spend. Integer determinism means two conforming implementations agree bit-for-bit, or one of them is wrong — and you can tell which.

7A worked example, with real numbers

These are the actual published outputs of conformance vector 1.1 — the DSR credential in the kit. Run it yourself and you will get these digits.

./verifiers/mizan-verifier-v10-macos-arm64 vectors/mizan_dsr.bundle \
    data/btc_4h.csv --dsr --aux vectors/mizan_dsr_parts.json
QuantityValue
Trials committed, N10
Observed Sharpe, SR̂ (per-period)0.031
Deflation benchmark, SR00.027
Deflated Sharpe0.6779
Significance bar0.95
VerdictNOT significant

Read what those numbers are saying. The strategy's per-period Sharpe is 0.031. The bar that the best of ten random strategies would be expected to clear is 0.027. The entire edge is the gap between them — 0.004 — and once that gap is divided by the sampling error of a Sharpe estimated over neff serially-correlated observations, the confidence that the true Sharpe beats the selection benchmark is 68%. The bar is 95%. So it fails.

Why this is the flagship example This credential is the reference implementation's own strategy, and the standard's author published it as a failure — permanently, in the registry, beside every pass. It is also the vector that tests the whole of Appendix D: reproduce 0.6779 to the digit and your moments, your benchmark, your neff and your arithmetic are all correct simultaneously. An implementation that computes a defensible DSR by a different convention will miss it — and that is the intended behaviour. Exact reproducibility is the requirement, not statistical reasonableness.

8What you implement, in order

  1. Commitments first R-40. SHA-256, domain-separated prefixes, leaves binding index and full OHLC, promotion on odd levels — never duplication (that's CVE-2012-2459, and it lets distinct leaf sets collide to one root). Nothing else works until the roots match. Appendix E of the standard.
  2. The trial ledger R-06. Leaf binds sequence, spec commitment, registration time and resolved Sharpe, so trials can be neither reordered nor re-scored after the fact. N is the leaf count.
  3. Evaluation with costs R-05. Charged on every transaction. No lookahead: position at bar t depends only on data through t.
  4. Moments and PSR R-30 R-31 — the three conventions of 6.1.
  5. The benchmark, with the log-tail branch R-32. Do not skip it.
  6. Effective sample size R-33, one-sided.
  7. Run the vectors. Nine of them, with normative exit codes.

9How to test your build

The conformance vectors are the point of contact between your implementation and this standard. Five must verify, three must be rejected, and one is a published honest failure. The negative ones carry the most weight — a mutated copy of the committed data must be rejected, a sealed credential missing its aggregate must fail closed rather than degrade to a partial pass, and a credential shown to the wrong era's engine must fail on the image identifier.

A vector that passes when it should fail is a soundness bug. One that fails when it should pass is a completeness bug. The first kind is the one that matters.

10What it will not do for you

Stated plainly, because a verification standard that oversells itself is worth nothing:

11Where to push back

VTR-1 v1.0 is frozen, which means corrections are published as errata with attribution rather than applied silently to the text — including corrections that do not flatter the standard. If you implement it and find that something is ambiguous, unreproducible, or wrong, that is the most useful thing anyone can currently send us: a specification with one implementation is a description of that implementation, and it stops being that on the day someone else's code reproduces the vectors.

Errata and soundness reports: [email protected]. Named or anonymous, your choice; published either way.


VTR-1 for Quants — a non-normative companion to VTR-1: The Verifiable Track Record Standard, Version 1.0 · Mizan Verification, Inc. · CC BY 4.0. Where this document and the standard differ, the standard governs.

The standard → Conformance vectors → Errata → Verify a credential →