Trion Documentation Options live · Perps in open beta
Browse documentation

CMPT-USD perp index methodology

In one paragraph. The CMPT-USD perp index is the price the CMPT-USD perpetual (open beta) marks to. It is a second, separate index from the CMPT options index: same unit (USD per H100 SXM GPU-hour), different recipe. The options index (engine trion-cmpt-v1, six venues, methodology factsheet) settles the capped options and is unchanged. The perp index (engine trion-cmpt-v2-linked, ten venues) is a chain-linked, equal-weight trimmed geometric mean that is published on Robinhood Chain about once a minute and has been the on-chain CMPT-USD price since 2026-09-25 21:33 UTC. This page states the venues, the target, the linking and glide rules, the caps, the freshness rules, and how a recipe change is activated.

Two indices, one unit

CMPT (options index)CMPT-USD perp index
Enginetrion-cmpt-v1trion-cmpt-v2-linked
VenuesSix: Vast.ai, RunPod, SF Compute, Lium, DataCrunch, ShadeformTen: RunPod, DataCrunch, Lium, Shadeform, Lambda, Nebius, Crusoe, Hyperstack, Voltage Park, Akash
WeightsFixed (30/25/15/10/10/10 %)Equal, after trimming
CombinationTrimmed weighted geometric mean (top and bottom venue dropped)Trimmed equal-weight geometric mean (top 20 % and bottom 20 % dropped), reached through chain-linking and a glide
FeedsCMPT capped options (V2 pool series, V3 order book): expiry fixing XCMPT-USD perpetual beta: index I and mark M (mark = index, funding off)
Where documentedMethodology factsheet, benchmark statementThis page

Both are USD per H100 SXM GPU-hour on demand. They are computed from different venue sets, so their levels differ. Do not read one as the other: an option settles on the options index, a perp position is marked on the perp index.

Unit

USD per GPU-hour ($/H100-hr). One CMPT-USD contract is one H100 GPU-hour at the index price; 730 contracts is about one GPU-month. On chain the price is an 18-decimal WAD USD-per-unit value.

Venues

Ten venues, each contributing a public H100 SXM on-demand price, except Akash, which contributes an executed price:

VenueWhat it contributes
RunPodH100 SXM on-demand
DataCrunchH100 SXM on-demand
LiumH100 SXM on-demand
ShadeformH100 SXM on-demand
LambdaH100 SXM on-demand
NebiusH100 SXM on-demand
CrusoeH100 SXM on-demand
HyperstackH100 SXM on-demand
Voltage ParkH100 SXM on-demand
AkashMedian price of active on-chain leases for exactly one H100 — executed prices, not a list price

The venues are data sources, not partners. Listing a venue here does not mean it endorses Trion or licensed its data for any purpose beyond what Trion's own rights records state (see the constituent criteria in the benchmark statement).

Target: trimmed equal-weight geometric mean

At each update the engine computes a target from the venues that are live (fresh, see below):

  1. Sort the live venue prices.
  2. Drop the highest 20 % and the lowest 20 % of them (floor(n × 0.2) on each side: with all ten live, two on each side; six remain).
  3. Take the equal-weight geometric mean of the survivors.

The target exists only when at least 6 venues are live. With fewer, no target is computed and the published price is carried by the linking rule alone (see next section); it does not jump and it does not fall back to a stale or reference value.

Hypothetical example: ten live prices sorted are 1.70, 2.30, 2.55, 2.60, 2.70, 2.75, 2.80, 2.90, 3.20, 3.90. Drop 1.70, 2.30, 3.20, 3.90. Target = geometric mean of 2.55, 2.60, 2.70, 2.75, 2.80, 2.90 ≈ 2.72.

Chain-linking

The published price is not the target printed directly. Each update starts from the previous accepted on-chain price and moves it by the average price change of the venues that were present in both the previous and the current sample (the average of their log returns). A venue dropping out, or coming back, is therefore not by itself a price move: only the venues that printed on both sides contribute a change. If no venue is present on both sides, the linked level equals the previous price.

Glide toward the target

After linking, the price glides toward the target at up to 2 % per hour, pro-rated by the time since the previous update. If the target is within that band, the published price equals the target; if it is further away, the price moves the full 2 %/h in that direction and keeps closing the gap on later updates. This is what makes a recipe change, or a venue repricing, arrive gradually instead of as a step.

Safety caps

Two caps are applied after the glide, and the on-chain price verifier (TrionPriceVerifierV2) rejects an update that breaks them:

If the two bounds ever disagree, the price is held at the previous value rather than pushed through either cap. Both caps sit below the verifier's 3 % single-step halt rule described in Prices.

Freshness rules

A venue counts as live only while its data is fresh:

A stale venue is dropped from the sample; it is never carried forward at its last value. When it returns, it re-enters the target immediately and re-enters the linking on the next update after it has printed on both sides.

Publication

flowchart LR
  V[Ten venues, fresh rows only] --> T[Target: trim 20/20, equal-weight geo mean, >=6 live]
  P0[Previous accepted on-chain price] --> L[Link by average change of common venues]
  V --> L
  L --> G[Glide toward target, max 2%/h]
  T --> G
  G --> C[Caps: 2.5% per update, 2.5% per hour]
  C --> S[Signed with evidence root, ~1/min]
  S --> O[(TrionPriceVerifierV2)]

Changing the recipe

The venue set and the engine method are registered on chain. Changing them requires a governance source-configuration update that becomes effective only after the registry's 3-hour activation delay. A recipe change never restates published history; because of the linking and glide rules, its effect arrives gradually over the hours after activation.

The 25 September 2026 activation

The ten-venue, chain-linked recipe was activated on chain at 2026-09-25 21:33 UTC. At that moment the published level was 2.3586. Over roughly the next eight hours it glided to about 2.74, at the 2 %/h rate, toward the new ten-venue target. GPU rental prices themselves did not change during that window; the move was the recipe change (a different venue set and an equal-weight trim) working through the glide. The options index, which kept its six-venue recipe, did not move for this reason.

Known limitations

Source trail: overdrive/exchange/oracle/src/index/linked.ts (computeLinkedIndex, computeTrimmedGeo, LinkedEngineConfig); overdrive/exchange/oracle/src/v2-runtime.ts (validateLinkedEngineConfig, validateMarketPolicy); overdrive/exchange/oracle/src/publication-evidence.ts (trion-cmpt-v2-linked derivation from the previous accepted snapshot); overdrive/exchange/oracle/src/collectors/akash.ts (active-lease median); overdrive/exchange/oracle/src/quality.ts (SOURCE_AGE_SEC); overdrive/shared/v2/MarketRegistryV2.sol (activationDelay); overdrive/deployments/v2/4663.perps.json (market CMPT-USD).

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