qNEVAqNEVA

Field notes

Documentation · how State.OS works

Notes from the field.

Full documentation on how State.OS reads, normalizes and displays market state.

Concepts

Normalization

Why a reference price and a pool price aren't the same number until you scale them onto one axis.

A reference price and a pool price rarely quote in exactly the same terms. One might be denominated against a stablecoin, another against a wrapped asset, each with its own rounding and update cadence. Normalization takes every quoted price and maps it onto a single comparable scale — the reference — before anything else is computed. Only after that mapping does a gap between two numbers mean anything; comparing un-normalized quotes from two different venues is comparing two different units and calling it a spread.

A worked example

Take a reference price of $229.58 for an asset. One tracked pool quotes $229.593 for the same asset. Normalization doesn't change either number — it's the step that establishes they're now on the same axis, so the difference between them, ((229.593 − 229.58) / 229.58) × 10,000 ≈ +0.6bp, is a real, comparable deviation rather than an artifact of quoting convention.

That +0.6bp figure is what shows up as a pool's "Δ Ref" in Markets and as its Normalized-vs-Reference row in the Topology inspector. It's a small, unremarkable number precisely because the normalization step already did the work of making the two prices comparable.

What normalization is not

It's not a fair-value model and it doesn't smooth or average anything. It's a unit conversion, applied once per pool, per read. State.OS normalizes on read, not on write — the raw pool quote is always kept alongside the normalized figure, so a divergence can be traced back to exactly which pool produced it and what its unconverted number was.