W.E.T. Geopolitical Risk Index
A severity-weighted, cross-venue benchmark of the adverse geopolitical outcomes prediction markets are pricing.
- 87 constituents are priced from a single venue, so their consolidated price is that venue's price. Cross-venue consolidation is only meaningful where more than one venue lists the question.
- The track record is 7 days long. No calibration or accuracy claim is made, and none will be until the resolved-outcome corpus supports one.
Prediction markets are pricing elevated adverse geopolitical outcomes — conflict, escalation and sanction risk — across venues.
- Fewer than 5 admitted constituents live — the day publishes no value rather than a number (published minimum).
- Weight coverage below the published 95% floor — a gauge computed over whichever subset the venues served is a differently-composed index wearing the same ticker, and none is printed.
- Loss of the disclosed venue base: every constituent that classifies as geopolitical under the published rubric lists on Polymarket Global, and the index would not exist without it (published venue-whitelist disclosure).
No defined evaluation event exists in the published methodology — this is a continuous index. Per WET-LOGIC §11.1 it is tracked for movement and never scored as a resolved forecast.
The W.E.T. Geopolitical Risk Index (WETGRI) is a severity-weighted, cross-venue benchmark of the
adverse geopolitical outcomes prediction markets are pricing.
Methodology version v2.0 · rubric gpr-adapted/v1
The formula
R = 100 · Σ wᵢ sᵢ pᵢ / Σ wᵢ sᵢ
where pᵢ is the consolidated cross-venue probability of constituent i, sᵢ its severity
multiplier, and wᵢ its weight on the two-sided-resting-depth/v1 basis. The
15% cap is enforced on the effective weight
eᵢ = wᵢsᵢ / Σ(w·s) — the vector this average is actually taken over — not on wᵢ alone. See
What the weights are made of below.
Severity enters both numerator and denominator, which makes R a severity-weighted mean probability rather than a severity-weighted sum. The distinction is load-bearing: a board of only-diplomatic markets all priced at 60% reads 60, not 12. The index reports how much of the risk it watches is priced — not how dangerous its watchlist happens to be.
R is the gauge, and it is not the headline number. R is on a 0–100 scale; the chaining basis is
R/100, and the published level is that basis divided by the divisor described under Continuity
below — level = (R / 100) / divisor. So a reader who applies the formula above to the published
constituents gets the gauge and not the level: on the 2026-08-12 close, 35.6134 against a printed 109.67.
(Dividing R by the divisor without first scaling by 100 gives a number a hundred times the
level, which is the arithmetic slip this sentence previously made.) Both are now published on every settlement row (gauge beside value), and the section
below states which is which and which one to quote. Saying only one of them was a defect in this
page, not in the number.
Venue admission — and a disclosure that matters
Eligibility normally requires a CFTC-regulated venue. WETGRI admits one venue beyond that default, under §3.3's "venue whitelist per methodology":
Polymarket Global is admitted by methodology, and it is NOT CFTC-regulated — it is an offshore, on-chain exchange.
The reason is measured, not preferred. Of 4,070 contracts in the politics pool on 2026-08-03, every single one that classifies as geopolitical under the published rubric — 152 of them — is listed on Polymarket Global. Kalshi contributes zero and Gemini zero; their politics coverage is domestic (nominations, impeachment) rather than conflict. A CFTC-only WETGRI is therefore not a thinner index — it is an empty one, and publishing insufficient data in perpetuity would tell a reader less than disclosing the venue does.
The whitelist is recorded on every settlement row, so no reader has to take this page's word for which venues produced a number. It is reviewable through the consultation process, and the honest summary is that WETGRI today measures a market that mostly trades offshore.
Consolidated pricing
Each constituent's probability is the liquidity- and tightness-weighted mean of every eligible venue quoting it, decayed by staleness:
p = Σ_v (w_v · mid_v) / Σ_v w_v, w_v = f(depth, volume, spread) · e^(−Δt/λ)
depth is an argument of that weight function that is EMPTY on every published value. The
settlement path supplies no resting size, so the depth term contributes nothing and the weight that
has actually executed on every close is the volume-and-tightness one. This is disclosed in full,
with the divergence worked from the engine, under Parameters in force → What the weights are made
of below; it is flagged here because this is the section a reader stops at, and a formula naming
an input the desk does not supply is the same defect as a formula with the wrong constant in it.
A quote with no two-sided book, or a spread beyond the quality threshold, is excluded rather than down-weighted — it is not a price. Venues far from the consensus are trimmed by median absolute deviation. A price that moved hard on trivial size is rejected as a thin-book anomaly before weighting, so a manipulated venue with deep historical volume cannot arrive pre-trusted. Constituents priced from a single venue are flagged on every settlement row.
The severity rubric
Fixed, published and versioned. Changeable only through the consultation process — never by editorial discretion at compute time. Adapted from the eight-category taxonomy of the Geopolitical Risk index of Caldara & Iacoviello (Federal Reserve Board, Measuring Geopolitical Risk, American Economic Review 2022) and their split between threats and realised acts. We take their category structure; we do not take their inputs — GPR counts newspaper mentions, this reads market prices.
| Class | s |
Label | Adapted from | Scope |
|---|---|---|---|---|
act-war |
1.00 | Act of war | GPR "Beginning of War" + "Escalation of War" | A state-on-state armed conflict beginning, widening, or a named territory changing hands by force. The reference class the scale is anchored to. |
nuclear |
0.90 | Nuclear | GPR "Nuclear Threats" | Nuclear use, testing, or explicit deployment/alert changes. Weighted near the top even when only threatened, because the severity distribution has no comparable tail. |
act-terror |
0.85 | Act of terror | GPR "Terror Acts" | A realised mass-casualty attack by a non-state actor. |
act-military |
0.70 | Military action | GPR acts family, below declared war | Realised force short of a war beginning: airstrikes, incursions, blockades, naval interdiction, drone strikes, hostage seizure. |
threat-war |
0.50 | War threat | GPR "War Threats" | Explicit threat or credible imminence of armed conflict, including ultimatums and troop-movement deadlines, before any force is used. |
buildup |
0.40 | Military buildup | GPR "Military Buildups" | Mobilisation, force concentration, basing changes, major armament transfers. |
threat-terror |
0.35 | Terror threat | GPR "Terror Threats" | Credible threatened attack by a non-state actor, absent a realised event. |
sanctions |
0.30 | Economic coercion | GPR-adjacent; policy-uncertainty lineage (Baker–Bloom–Davis EPU) | Sanctions, export controls, asset seizure, tariffs imposed as geopolitical instruments. |
diplomatic |
0.20 | Diplomatic rupture | GPR-adjacent, below the threat tiers | Treaty withdrawal, expulsions, recognition changes, collapse of negotiations. |
De-escalation is an orientation, not a class. A ceasefire market is included oriented 1−p and carries the severity of the conflict it would end. Giving it its own low multiplier would shrink the index every time peace became likelier — when a collapsing ceasefire should raise the gauge with the full weight of the war it fails to stop.
Classification
Deterministic and published: given the same market text the classifier returns the same class forever, which is what lets a past settlement be challenged. Rules are evaluated most-severe first, and ambiguity resolves upward by design — under-weighting a realised act is a worse error for a risk gauge than over-weighting a threat. A market matching no rule is not classified and therefore not eligible; guessing would put an arbitrary multiplier into a published formula.
Each constituent records the rule that classified it, so the decision is challengeable rather than asserted.
Continuity
Event contracts resolve and vanish, and a benchmark cannot jump when they do. Composition changes adjust the divisor, never the printed level:
L_t = V_t / D_t, D_new = D_old · V_new / V_old
At a reconstitution the prior composition is valued at today's prices, so the divisor absorbs
only the composition change and never a market move. V_t here is R/100 — the gauge above is the
basis the level is chained from, and there is exactly one place a level can come from.
There is no factor of 100 in the level formula, because V_t already carries it. The scaling
happens once, where the gauge becomes the chaining basis (V_t = R/100), and applying it a second
time here is the same hundred-fold slip the Construction section above warns about — stated twice
on one page, it would have been wrong in one of the two places. Worked from the live row below, and
from the engine: levelFrom(value, divisor) = value / divisor, with value handed to it as
rawValue / 100.
Worked on the 2026-08-12 close, from that row:
V_t = R / 100 = 35.6134 / 100 = 0.356134
L_t = V_t / D_t = 0.356134 / 0.0032473178536431813 = 109.6702
published level: 109.67
A formula carrying a second factor of 100 would return 10967.02 on this same row — a hundred times what was published.
Gauge and level — two numbers, and which one to quote
Every settlement row publishes both, because they answer different questions and only one of them is quotable as "the index".
value — the level |
gauge — the spot reading |
|
|---|---|---|
| What it is | R chained through the divisor | R itself, index points on a 0–100 scale |
| Base | 100 at inception | none — it is a level-free reading |
| Reads as | "risk priced is x% above where it stood at inception" | "this share of the severity-weighted risk we watch is priced" |
| Comparable across a reconstitution | yes — that is what the divisor is for | no — it moves for price and membership at once |
| Recomputable from one row | no — needs the divisor's whole history | yes — from that row's own constituents |
Do not substitute one for the other. The gauge is not the level and the level is not a probability. value is the divisor-chained level (base 100 at inception) and is the number to cite: it is the only one of the two comparable across a change of composition. gauge is the spot severity-weighted mean probability R = 100·Σwᵢsᵢpᵢ / Σwᵢsᵢ that the level is chained from — recomputable from this row's own constituents, but it moves for both price and membership reasons at once and cannot say which. Neither number is the probability of a geopolitical event.
The two are also related by an identity a reader can check: R = 100 · value · divisor. It is worked below from the live row, not from a remembered constant:
100 × 109.67 × 0.0032473178536431813 = 35.613335
stored gauge: 35.6134
The gap is 0.000065, inside the 0.001624 that the level's
two-decimal rounding allows (±0.005 on value scales to ±0.5 · divisor on R). The identity holds.
Do not apply this identity across the re-inception. The rows of the retired v1 series archived
at content/indices/benchmarks/retired-v1-2026-08-05/ were produced by a construction this page no longer describes, and one
of them — the superseded 2026-08-03 print — chained off a functional that was not the
severity-weighted gauge at all, so the identity returns a third number on it that is neither the
level nor any gauge. Those rows are kept as the record of what was published, not as inputs to a
check the current construction defines. See The 2026-08-05 re-inception below.
The gauge is additive disclosure, not a change to the number: the checksum covers slug, date, value, divisor, composition digest and the previous checksum, and a row field outside that set cannot reach it. Publishing a quantity the engine already computed is not a material change and did not require the 14-day consultation. The level's primacy is part of that undertaking — if the gauge were ever moved into the headline slot, that would change the interpretation of every quoted value and would be material.
Adapted from PMF Finance, Stability Index Methodology §11, which publishes a spot gauge beside a continuity level and tells readers not to substitute one for the other.
Governance
This is a benchmark, not a slate — the governed class. It carries versioned methodology, a published rulebook and an immutable track record.
- Methodology change & consultation — material changes are published 14 days before they take effect, with backtested impact, and apply prospectively.
- Restatement policy — a published value is final unless it meets one of three narrow conditions; corrections are appended, never edited in place.
- Cessation & fallback · Conflicts · Data errors · Complaints
Standing disclosure: the independent committee seat is currently vacant, so the administrator is the sole decision-maker on methodology changes. This is stated here rather than omitted.
Parameters in force
Every threshold in the three sections below was already binding on every print in the ledger.
Each is read at render time from the constant the settlement code imports — eligibility/v1
defaults, the consolidation policy, this benchmark's own definition — so this page cannot describe a
number the engine does not enforce, and a constant that moves moves here on the next render.
Disclosure expanded 2026-08-11. No computed value changed, and none could.
What changed is that these parameters are now printed rather than left to be inferred from prose.
Publishing a rule that was already in force is a disclosure improvement, not a methodology change:
methodology version stays v2.0, no value in the track record moves, and
no consultation was required. Changing any VALUE below would be the opposite — material, published
14 days before it takes effect with backtested impact, applied prospectively, and carrying a version
bump on every row settled after it.
Admission — every eligibility threshold, with its units
Admission policy eligibility/v1. Every rule is evaluated and every failure is recorded
— not just the first — so a refusal can be reviewed on its whole picture rather than on whichever
gate happened to fire earliest.
| Rule | In force here | Fleet default | What it tests |
|---|---|---|---|
| Liquidity floor | ≥ 250 | 250 | the greater of the venue's traded-volume field and open interest where a venue reports one, in venue-native units and never a dollar figure. Summed over every mapped venue listing, including any listing consolidation later refuses, because the sum is taken before consolidation and independently of it. No venue currently supplies open interest through this path, so in practice the test binds on volume alone — stated because a rule that reads on two inputs and runs on one should say which. The basis of that volume field is not the same on all three venues, and a reader reproducing the roster needs the difference: on Kalshi (volume_fp/volume) and Polymarket (volumeNum/volume) it is a CONTRACT-level cumulative lifetime total — every trade since that contract listed, never a trailing window. On Gemini it is the parent EVENT's volume, attached to each of that event's contracts, and it falls back to the venue's 24-hour figure when the event document omits the lifetime one — so a Gemini listing can enter this sum on a trailing basis, and an event's volume is counted once per mapped contract of that event. A cumulative total only ever rises and says nothing about whether the contract trades today; that is a known weakness of this gate, and it is the reason the WEIGHTS moved off volume onto resting depth (below) while the ADMISSION floor did not |
| Maximum spread | ≤ 0.1 | 0.1 | the WIDEST bid–ask spread among every mapped venue listing, in probability points — measured before consolidation and independently of it, so a listing that consolidation later drops as spread-too-wide still fails the whole canonical event here rather than being quietly excluded from a price the rest of the venues form. A constituent with no measurable spread fails this rule — it does not pass it by default |
| Price band | 0.02 – 0.98 | 0.02 – 0.98 | the ORIENTED consolidated probability — 1−p on a de-escalation market — so the band is applied to the number the index actually averages, not to the venue-side quote |
| Horizon | 1 – 730 days | 1 – 730 days | days from the close to the EARLIEST venue settlement time across the mapping. A constituent with no readable settlement time fails rather than passes |
| Cross-venue merge confirmation | staged — not enforced | staged — not enforced | whether an unreviewed cross-venue merge is REFUSED or admitted-and-disclosed. Staged during bring-up: unreviewed merges are published as provisional and counted on every row, so the ledger states the gap rather than the index hiding it. A single-venue mapping owes nothing here — there is no merge to review |
| Reference-price settlement | refused | refused | whether a structurally-matched price contract whose venue publishes no rules text may be admitted. Failing closed is the default: an unverifiable settlement authority is not a benchmark input |
This benchmark applies the fleet defaults unchanged — there is no override to justify.
Two gates are not numeric, and they refuse more constituents than the numbers do.
Venue tier. At least one contributing venue must be benchmark-eligible — CFTC-regulated, with a feed we may redistribute — or named on this benchmark's published venue whitelist. A data-only venue may inform the consolidated price of an already-admitted event; it can never be the sole basis for one.
Resolution source. The settlement authority is classified from the venue's own rules text by a
deterministic, published rubric, and the bottom tier is ineligible. Absent or unreadable rules text
classifies as venue-discretion and therefore fails closed — defaulting an unknown settlement
authority to "probably fine" is precisely the assumption a benchmark cannot make.
| Tier | Rank | Eligible | Scope |
|---|---|---|---|
government |
4 | yes | BLS, BEA, the Federal Reserve, an election authority, a statutory filing, an official government announcement. |
court |
3 | yes | A judgment, a sentencing, a regulatory determination — adversarial process, written record. |
major-outlet |
2 | yes | Named wire services or a stated multi-outlet standard. Acceptable, and the weakest tier that is. |
reference-price |
2 | yes | A structurally-parsed price claim — subject, relation, strike, settlement day — where the venue does not publish rules text. The settlement authority is a market price feed by construction, but WHICH feed may differ between venues. Admitted only by a methodology that says so, and only by WETFRAG, where differing feeds are part of the phenomenon being measured rather than a contaminant of it. |
venue-discretion |
1 | no | The venue decides, with no external authority named. INELIGIBLE: a benchmark whose constituent can be resolved at the counterparty’s discretion is not measuring the world, it is measuring the venue. |
Consolidation consolidation/prob-v1 — and the full exclusion cascade
The engine aggregates in probability space, and this page says so. Each constituent's price is a
weighted mean of the surviving venue mids, taken in probability space and stamped
consolidation/prob-v1 — the label for the space the arithmetic runs in. The settlement rows stamp
the policy version the close ran under on their consolidation axis (consolidation/v1
today); the two describe the same executed pipeline from two angles, and both are printed so neither
has to be inferred.
q = Σ_v (w_v · mid_v) / Σ_v w_v
w_v = (1 + 2·ln(1 + depth_v) + ln(1 + volume_v)) · tightness_v · e^(−Δt_v / λ)
tightness_v = max(0.05, 1 − spread_v / 0.1)
λ = 1500 s
depth_v IS ZERO ON EVERY PUBLISHED VALUE, AND HAS ALWAYS BEEN. The settle path supplies no
resting-depth figure to the consolidation — depth is passed as null for every venue quote on
every basis — so ln(1 + depth_v) evaluates to ln 1 = 0 and the doubled depth term contributes
nothing. The weight this desk has actually executed on every close is therefore:
w_v = (1 + ln(1 + volume_v)) · tightness_v · e^(−Δt_v / λ)
The general form is printed above it because it is the expression baseWeight evaluates and the
one a future close would run under if depth were ever supplied — but a third party reproducing a
published number must use the reduced form, and any check against the general form with real depths
will disagree. The disagreement is not small, and the figures below are produced by running the
consolidation twice rather than by being typed here. Two venues quoting 0.40/0.42 and 0.50/0.52
on equal lifetime volume and equal staleness consolidate to q = 0.4600 on the executed
weight (shares 0.5000 / 0.5000); hand the same two books resting depths of 5,000 and 100 and the
general form returns q = 0.4507 (shares 0.5927 / 0.4073) — 0.93
probability points, entirely from a term the engine has never had an input for. This disclosure
follows the same rule as the open-interest note in the admission table above: a rule that reads on
two inputs and runs on one has to say which.
Why the field is empty is a weighting decision, not an oversight, and it is stated here rather
than left to be inferred. One of the mapped venues publishes resting size at the touch and the
others publish none. Populating depth_v today would hand a doubled depth term to that venue and
zero to the others, tilting every cross-venue consolidation toward it for a reason that is an
artefact of which venue documents a size field rather than of which book is deeper. Wiring it in is
a change to the weighting scheme: it needs the other venues measured first, and it would arrive as a
versioned change with its own consultation and backtested impact, never as a quiet population of an
already-printed term.
Cross-venue dispersion is preserved beside the consolidated price, never folded inside it.
A log-odds aggregation is a declared migration target and is deliberately not printed here — not the formula, not its weight decomposition. It has never produced a published value on this desk, and a methodology page that prints arithmetic the engine does not run is worse than one that prints less. When it is enacted it arrives as a versioned change with its own consultation, and this section will state the space it aggregates in on the day it does so and not before.
The exclusion cascade, in the order it is evaluated. The venue-local guards run per quote, first match wins; the consensus trim runs afterwards, on what survived them.
| Refused as | Tier | Threshold in force | What it means |
|---|---|---|---|
no-two-sided-book |
A — no price exists | a bid and an ask are both required | there is no mid, so there is no price to include. Excluded from everything, necessarily |
crossed-book |
A — no price exists | ask < bid | the book is inconsistent with itself; a mid taken across it is arithmetic, not a price |
spread-too-wide |
B — venue-local quality | ask − bid > 0.1 | a mid inside a book this wide is not a price anyone is defending. Excluded, never down-weighted — a bad price scaled down is still a bad price |
degenerate-price |
A — no price exists | mid not strictly inside (0, 1) | a mid at or beyond the bounds of probability is not a probability |
stale-beyond-horizon |
B — venue-local quality | age > 21,600 s (6 h) | past this age the quote is dropped outright rather than decayed toward zero |
thin-book-anomaly |
B — venue-local quality | |last − mid| > 0.15 while venue volume < 100 | a venue that printed a large move on trivial size has told us its book is not defended. Checked BEFORE weighting, so deep historical volume cannot launder it |
mad-outlier |
C — consensus | |mid − median| > 3 × MAD, and only where ≥ 3 venues survived the gates above | decided only by comparison with the other venues. Median absolute deviation, not standard deviation: with three or four venues one bad print moves a standard deviation enough to hide inside it. Skipped entirely when the MAD is zero |
The tiers are not decoration. A Tier A refusal is forced — no mid exists. A Tier B refusal is a JUDGEMENT about what counts as a defended price, decided without looking at any other venue, which is what makes excluding it non-circular. Tier C is decided only by comparison with the other venues, which is right for a consolidated price and fatal for a measurement of disagreement — so the fragmentation reading is frozen before the consensus trim runs and the trimmed venue is still in it.
A constituent whose every venue quote is refused publishes no price and is counted, by reason, in the settlement log. Constituents priced from a single venue are flagged on every settlement row.
Coverage, cap and concentration
| Parameter | Symbol | In force | Where it binds |
|---|---|---|---|
| Weight-basis coverage floor | κ_min | 95.00% | the share of the admitted roster that must carry an OBSERVED two-sided resting depth before any level is printed. The roster is counted AFTER term-structure families and complement pairs collapse to one share each, so κ is measured over questions rather than listings. Below the floor the benchmark publishes insufficient_data and the close exits non-zero — a shortfall is a venue-delivery incident, not a quiet reprice over whoever answered |
| Maximum single-constituent weight | c | 15.00% | the effective weight eᵢ = wᵢsᵢ / Σ(w·s) — the vector the published average is taken over, not the depth weight alone. Enforced by cap-and-redistribute on eᵢ, iterated to a fixpoint. Where the cap is mathematically unreachable — c·n < 1 + 1e-12 (the engine's own test, tolerance included), which on this cap means a roster of fewer than 7 constituents — no valid capped vector exists and this ceiling is NOT enforced. The gauge does not fall back to equal weights there: equal EFFECTIVE weights would flatten the severity axis and turn R into a plain mean of p, which is not the formula this page publishes. It falls back to severity-tilted equal depth weights, eᵢ = sᵢ / Σs, and that vector can and does exceed c — on a 6-name board holding one act-war name against five diplomatic ones the top constituent carries 50.00% of the published number, against this table's 15.00% and against the 16.67% an equal-weight fallback would give. That figure is measured by running the weighting, not asserted here. The row carries degenerateReason saying the ceiling is unenforced on every print where this happens, and this page renders that reason verbatim below rather than restating it |
| Minimum constituents | — | 5 | how many constituents must carry an observed weight basis. Below it the day publishes no value rather than a number computed over a board too thin to carry one |
Measured on the 2026-08-12 close — read from that row's own weighting block, which is
the same object this section renders and the same object a reader of the published JSON gets.
| Reading | Value |
|---|---|
| Weight basis | two-sided-resting-depth/v1 |
| Admitted constituents | 87 |
| Carrying an observed two-sided depth | 87 |
| Served with at least one side empty | 0 — a real observation of a one-sided book, weighted 0 |
| No ladder served by any venue | 0 — nothing was observed, so nothing was weighted |
| Coverage κ | 100.00% against a 95.00% floor |
| Maximum single-constituent weight c | 15.00% — the cap the row itself carries |
| Σ lifetime traded volume over the same roster | 132,234,413 venue-native units, never a dollar figure — the OLD basis, published as context so the change of basis is re-derivable from the row. It is not the weight, and nothing in the engine reads it |
The weight vector on this print is the basis vector, not the equal-weight fallback: no degeneracy was recorded.
Concentration — how many names this number is actually made of. HHI is Σwᵢ² over the published vector and effective N is 1/HHI: the count of equally-weighted constituents this weighting is worth. A roster of ninety names with an effective N of thirty is a thirty-name index that lists ninety, and the gap between those two counts is the thing a cap exists to bound.
| Vector | n | HHI | Effective N | Top 1 | Top 5 | Top 10 | Bottom half |
|---|---|---|---|---|---|---|---|
| Effective risk weight eᵢ = wᵢsᵢ / Σ(w·s) — what the published number averages over | 87 | 0.083898 | 11.92 | 15.00% | 58.24% | 75.35% | 0.91% |
| Capped resting depth wᵢ — what the basket was WEIGHTED by | 87 | 0.078958 | 12.66 | 15.00% | 54.65% | 73.21% | 1.17% |
Both readings are carried on the 2026-08-12 row. They are published side by side and never
merged: how concentrated is the liquidity we weighted by and how concentrated is the number are
different questions, and severity multiplies between them.
What the weights are made of
Weight basis two-sided-resting-depth/v1. One unit of the basis is:
claim units of resting depth near touch — the lesser of the bid-side and ask-side visible resting size within the published band of the best quote on that side, summed over venues. One unit pays $1 on YES on every venue indexed. Never a dollar figure, and never an execution claim: W.E.T. handles no order fulfilment.
This replaced cumulative lifetime volume, which only ever rose, said nothing about whether a contract can be traded today, and could be accumulated for the cost of a spread. Resting depth near touch is capital committed right now, re-posted daily and exposed to being traded through. It is read off the venues' own two-sided books, taken as the lesser of the two sides within each venue before venues are summed — a resting bid on one venue does not fill a missing offer on another for anyone who has to trade on one venue. No concavity transform is applied to it.
The cap is enforced where the gauge averages. R = 100·Σ(wᵢsᵢpᵢ)/Σ(wᵢsᵢ) is an average over the effective weights eᵢ = wᵢsᵢ / Σ(w·s) — severity multiplies the depth weight before the gauge sees it — so a ceiling applied to wᵢ alone is not the ceiling this page advertises. The 15% cap is applied to eᵢ, the vector the published number is an average over. In the retired v1 series it was applied to wᵢ instead and the effective top share measured 17.2% against a published 15% ceiling; that is one of the corrections behind the re-inception below.
Weights are frozen at the close and carried on the row, so a departure re-chains on the weights the close used rather than on weights that drifted after it.
Publication & the close
The official daily print is the WET Close. Every settlement row stamps how that close was
actually taken — closeBasis and closeObservations — so the basis of a print is read off the
print rather than assumed from this page.
The most recent WETGRI row says, in its own words:
This close is ONE instantaneous observation, not a settlement window. The mark tape stores one observation per contract per day (marks is keyed by marketRef), so a window cannot be built from it — it holds 612 contracts and covers 13/87 of this composition. A settlement window needs repeated intraday samples of the SAME contract. A single-read close can be moved by one trade at the final second, and that exposure is published rather than described away.
2026-08-12 · closeBasis: single-observation · closeObservations: 1
That is one instantaneous read, not a volume-weighted settlement window. This page claimed the opposite until 2026-08-05, and the claim was false in the direction that flatters us — it denied the exact exposure the row records.
The window is unavailable by construction, not by accident. The row's own sentence above gives this benchmark's reason — they differ between constructions and the row is the one that knows which applies. The shape is the same in every case: the record settlement reads from cannot hold a second observation of the same input on the same date, so there is nothing for a window to average, and no settlement cadence run against it produces one.
What it would take is a data-collection change, not a formula change: the same input would have
to be sampled more than once inside the close period and stored so both samples survive — which for
a contract-priced benchmark means a tape keyed by marketRef and timestamp rather than by
marketRef alone. That collection does not exist on this desk today, for any benchmark. Until it
does, the stamp on the row is the whole truth about the print.
The exposure, stated rather than described away: a close taken from a single observation can be moved by one trade at the final second. That vulnerability is real for this print today. It is disclosed because it is true — not mitigated, and not written around.
The track record
Every settlement row records the engine, rubric, classifier and methodology versions that produced it, and a checksum chained to the previous day's. Altering any historical value invalidates every checksum after it, so a third party who recorded yesterday's checksum can prove today whether history moved underneath them. That is the difference between a published record and an auditable one.
A day with insufficient data publishes no value — yesterday's number is never carried forward to keep a chart continuous.
The 2026-08-05 re-inception
This series was re-incepted on 2026-08-05; its first close printed on 2026-08-06. The chain
starts there — the ledger's first row carries previousChecksum: null — and nothing precedes
it in the live record.
There was an earlier series. It ran three days and it has been retired, not restated. An adversarial review found the arithmetic sound but several published rules unimplemented by the code: constituents that should have entered oriented 1−p entered at p, weights ran on cumulative lifetime volume rather than resting depth, the weight cap was enforced in the wrong space, departures landed in the level instead of the divisor, quotes were priced off a fabricated band rather than real books, and dated legs of one question each held a separate share. Every one of those corrections changes every value in the series.
Why retired rather than restated. The restatement policy is for correcting a series readers hold. This one was three days old, had never been quoted, cited or licensed, and no value in it survived correction — restating it would have been ceremony over a history nobody was carrying. Re-inception on corrected logic is the honest answer, and it is stated here rather than left for a reader to infer from the length of a ledger.
The record is kept, not deleted. The retired ledgers are archived byte for byte at
content/indices/benchmarks/retired-v1-2026-08-05/, including as-published-on-master/ — the copies exactly as they were
served — so the first construction can be read and diffed against this one.
What is not claimed. The retired values are not comparable to these, and no continuity is asserted across the break. A re-inception starts a new series; this page says so rather than implying an unbroken one.
What this is not
A benchmark reading of market prices. Not a W.E.T. forecast, not advice, and not a performance claim. Where an accuracy scorecard is published it reports calibration — how well the priced probabilities matched outcomes — never returns.