Docs·Metrics reference
Metrics reference
Figures we do not publish
Fifteen figures that are derivable and wrong, with the reason each one is refused.
Every figure below is derivable from the chain and wrong. They are listed because a conscientious integrator will otherwise derive them — each one looks like the obvious reading of a variable that exists.
The list#
| Figure | Why not |
|---|---|
| A single marketing-revenue number | Launchpad slots are wei; a market’s featured cut is a settlement-time share of that market’s own currency, with no factory-side accumulator. One number would silently add currencies. Fees. |
A cross-currency marketVolume or openInterest total | Same reason. Per currency, always. |
totalProtocolFeesReceived presented as “revenue” | Under-reports by totalRefusedByCeiling, permanently. Publish lifetimeFeesReceived, or publish both and label them. THD and the fee meter. |
progressBps() for a graduated launch | Reads 0 because realEthReserve is zeroed. Force 10000, as the oracle does. |
realEthReserve() as “raised” | Excludes fees, and is 0 after graduation. Use virtualEthReserve − initialVirtualEthReserve. |
A holder count when countedAt == 0 | That is unknown, not zero. Holders. |
A pool FDV floor when covered == false | The floor is meaningless without coverage — valuation. |
MarketTerms.feeRecipient as a payout wallet | It is PredictionMarketFactory itself. |
| Settler earnings, in ETH | Settlement is permissionless and pays no fee, so an ETH figure would be zero by construction. Settlers do have a THD allocation — 100 bps, 10,000,000 — but it belongs to an emission generation that is not deployed, so there is no figure to publish either. See the eleven allocations. |
launchFeeBps from a deployment record, as the current rate | It is the superseded model. The launch fee is a flat launchFeeUsd priced through an oracle at the moment of the launch, and no record carries either field yet. A wei series built across the two eras is not one series. Fees. |
| A THD figure read from the live emission contract as “the allocation” | The deployed generation carries nine buckets on the superseded split. The eleven-allocation set is specified and deployed nowhere. Reading one and labelling it the other is wrong in both directions at once. |
| Premium or item-mall spending, as revenue | Both are burned. They destroy supply and the fee meter never sees them, so they unlock no THD and belong in no revenue line. The battlepass and the item mall. |
| A total burned built from burn events alone | Undercounts by the adapter’s graduation dust, which emits no burn event. Launches. |
| The rate card from the addresses file | It is not there, deliberately. launchFeeUsd, tradeFeeBps and the graduation ladder are settable, and a build-time copy goes stale silently. Read them live — and launchFeeWei moves with the USD oracle as well. The addresses file. |
A THD unlock percentage without feesToFullEmissionWei | The denominator is a per-deployment immutable, so testnet and production percentages are not comparable. |
Why a refusal rather than a caveat#
The rest are wrong in a direction, and the direction is what makes them dangerous: every one of them under-reports or over-reports consistently rather than randomly, so a series built on one looks perfectly plausible over time and is simply not the quantity it claims to be.