Trion Documentation V2 · Live on Robinhood Chain
Browse documentation

CMPT methodology factsheet

In one paragraph. CMPT is the benchmark price of renting one H100 SXM GPU for one hour, in US dollars, measured from six named marketplaces and clouds. This one page states the unit, the venues and their weights, the smoothing and trimming rules, the publication cadence, the fixing window, where the evidence lives, and — honestly — what the number is not. The full governance treatment is in the benchmark statement.

What CMPT is

An H100 SXM on-demand rental rate for the US neocloud market. It is the price you would pay, today, to rent one H100 SXM GPU for one hour on demand. It is not a reserved or committed rate, not a hyperscaler list price, and not an executed-trade average.

Unit

USD per GPU-hour ($/H100-hr), displayed to four decimal places. One contract is one GPU-hour. On chain the price is an 18-decimal WAD USD-per-unit value.

Venues and weights

The launch recipe has exactly six venues. Weights are the same in the live index and in the fixing, expressed in parts-per-million:

VenueSeriesWeightppmEvidence
Vast.aiH100 SXM on-demand (median of the 10 cheapest verified, rentable offers)30%300,000console.vast.ai/api/v0/bundles/
RunPodH100 SXM on-demand25%250,000api.runpod.io/graphql
SF ComputeH100 on-demand average; H100 spot average15%150,000sfcompute.com/
LiumH100 SXM on-demand10%100,000lium.io/pricing.json
DataCrunchH100 SXM on-demand10%100,000api.datacrunch.io/v1/instance-types
ShadeformH100 SXM on-demand10%100,000api.shadeform.ai/v1/instances/types

Akash executed H100 leases are published as a reference only, at weight 0 — visible for comparison, never part of the index or the fixing.

Smoothing

Each venue does not contribute its raw latest scrape. It contributes the median of its positive prints over the trailing hour: with at least three prints in the window the median is used; with fewer, the latest print is used verbatim. A single listing spike or one bad scrape therefore cannot move a venue's contribution. A venue whose latest print is older than the staleness bound (one hour) is dropped from the blend entirely.

The on-chain publisher applies the same eligibility, staleness, spread, quorum and trimming rules to each venue's latest approved print; the one-hour median and the self-deviation screen shape the published index history and charts. The two agree while constituents print steady list prices, as every printing venue did on 2026-09-23 once Vast fell silent under its breadth floor; they can differ briefly when a marketplace book moves.

Vast's own constituent is itself a median of the 10 cheapest qualifying offers, not one offer: the collector filters to verified, rentable, on-demand (not spot/interruptible) H100 SXM offers, normalizes each dph_total per GPU, and takes the median of the cheapest ten. If fewer than ten offers qualify, or they come from fewer than five distinct hosts, the venue prints nothing: a thinner book is a handful of quotes, not a market, and one host listing or delisting moves its median (on 2026-09-23 a 7-offer, 4-host book moved between $2.27 and $5.54 within two hours). A silent venue is dropped after the one-hour staleness bound, as above — the same rule the on-chain publisher applies — and its weight is renormalized over the venues that print.

Vast's H100 on-demand constituent and its spot alias start suspended after each collector process restart. They resume only after the verified book has met the 10-offer, 5-host depth floor on every successfully parsed poll for six consecutive hours. A parsed book below the floor restarts this in-memory qualifying streak. A fetch or parse failure emits no rows and neither starts nor resets the streak; a successful qualifying poll is required to resume publication. During the qualifying period, the collector reports the elapsed time and emits no rows. This reinstatement rule changes neither the weights nor methodHash nor the registered source config.

Self-deviation screen

A venue whose trailing-1-hour median deviates more than 25% from its own trailing-24-hour median is carried at that 24-hour median for that bucket (flagged carried on the component), rather than repricing the index on a single venue's book going haywire. The screen touches only per-venue values — it changes neither weightsPpm nor methodHash and needs no governance update. On the 2026-09-18→22 tape it erased the 09-19 vast collapse (a 5.2% composite dip becomes 0.0%) while still reaching the 09-22 rally peak at the same time as the unscreened index.

Trimming

With at least five venues responding, the single highest and single lowest venues are dropped before combining, so one bad print on either side cannot move the index at all. The ranking uses each venue's own observed 1-hour median: a venue the self-deviation screen carried is trimmed where it actually printed, so the screen can never pull an extreme venue back into the core. The survivors are combined as a weighted geometric mean, with the nominal weights renormalized over the survivors.

Settlement rule

X is the 24 h time-weighted average of the published CMPT index, sampled every five minutes. Each of the 288 samples is derived exactly as the V2 publisher derives its index price, from approved observations with the same provenance, freshness, spread, contributing quorum and weight checks. Sum the WAD samples, divide by 288, and round down. Settlement uses no separate per-venue double median.

The series' frozen recipeHash binds the source IDs, weights and method hash; a series settles only on its own recipe. The historical on-chain CMPT_TWAP_1800S label is unchanged; the verifier enforces the 24 h window, not the interval suggested by that label.

Publication cadence

Fixing window

The fixing observes the 24 hours ending at expiry, at five-minute boundaries strictly after the window start and including expiry. Every sample must satisfy the live-index quorum. If any sample is unavailable, one grace attempt widens the window to 48 hours and requires all 576 samples. A missing sample in the overlapping primary window still blocks the grace fixing unless the original eligible observations become available; stale or late-received observations are not invented coverage. If neither window qualifies, the 72 h sever backstop applies, subject to the pending-fixing protections in the benchmark statement. A proposal opens a separate 24-hour challenge window before the fixing can become final.

Trading closes 24 h before expiry, when averaging begins. Governance must disable the market at that cutoff; this is not an automatic contract timer. For the first CMPT expiry, 2026-10-30 08:00 UTC, the cutoff is 2026-10-29 08:00 UTC.

Where the evidence lives

EvidenceWhere
Raw observation blobsoverdrive/exchange/data/evidence/<SYMBOL>/<ts>.json, each with a keccak256 evidence hash.
Live quote + evidenceOracle service, GET /v1/quote/:symbol and GET /v1/evidence/:hash (loopback port 8795).
Fixing manifest (hashed body)Persisted per (marketId, expiry); served at GET /v2/fixing/:marketId/:expiry (oracle) and GET /v1/fixing/:symbol/:expiry (matcher proxy).
Archive capturesWayback captures enqueued per observation; published as an unhashed sidecar keyed by evidence hash, with an honest archivedRatio.
On-chain stateTrionPriceVerifierV2 holds final fixings and their recipeHash; FixingCouncilV2 holds the case, seats and bonds.

The on-chain evidenceRoot commits to the hashed manifest: chronological five-minute samples (timestamp, WAD index price, contributing source mask, quote evidence root), recipe, TWAP and source-time bounds. Archive references live only in the sidecar, so capture differences do not change the fixing root. The running estimate reports eligible/elapsed sample counts and is unavailable until at least one sample qualifies; partial coverage is not sufficient for a final fixing.

Known limitations

Source trail: overdrive/exchange/oracle/src/index/cmpt.ts (CMPT_VENUES, CMPT_REFERENCE_VENUES, computeTrimmedWeightedGeoMean, venueMedianValue, venueTrailingMedian, DEFAULT_VENUE_MEDIAN_WINDOW_MS, SCREEN_THRESHOLD, SCREEN_LOOKBACK_MS, staleness and degraded path); overdrive/exchange/oracle/src/collectors/vast.ts (VAST_CMPT_QUERY, parseVastOffers); docs/spec/FIXING_ORACLE_V2.md §2.1; overdrive/exchange/oracle/src/fixing-service.ts; docs/public/developers/data-methodology.md.

Repository-owned documentation · September 2026 · Educational material, not investment advice and not an audit.