Skip to content
Markov

Data sources and how each number is made.

Where every number on Markov comes from, how it’s computed, how fresh it is, and which ones are models. If a panel can’t say where a number came from, it doesn’t show the number.

Measured, computed, modeled.

Three kinds of number, each with its own look, so you can tell them apart without reading the fine print.

Measured

It is read directly from a venue’s public feed, such as a price, a resting order, a fill or a liquidation. It shows as a plain number, drawn with solid lines.

64,180.5Example

Computed

It is fixed arithmetic on measured data, with nothing assumed about the market: session VWAP, the regime score, an annualized funding rate. We state the formula and any approximation.

Σ(price × volume) ÷ Σ volume

Modeled

It is an estimate of something no venue reports, made under stated assumptions, such as dealer gamma levels. It is prefixed ≈ with a dotted underline and drawn dashed, and its basis shows on hover or keyboard focus.

approximately 63,500 (Modeled, example only, not a real level)Example

The freshness chip.

Every data panel carries one: source, state and freshness. The state is a shape first and a colour second, so it reads in greyscale.

live
Streaming now, from the source named on the chip.
building, since you opened
Recording from the moment you opened the page, or from where stored history ends. The chart draws a dashed line where live data begins.
delayed, fixed lag
Arrives on a known lag, and the chip says how long.
stale, quiet
Quieter than it should be. The panel dims and says when it last heard from the source.
blocked here, HTTP 451
The venue refuses your network. The panel names the venue, says what still works, and keeps retrying.

Every source, one by one.

What each surface shows, where it comes from, how it’s computed and which machine fetches it. Most of the free tools fetch straight from the venue in your browser, so those numbers never pass through us.

Live now

  • Candles

    MeasuredLive now

    Chart

    Candle snapshots when the chart opens, then Hyperliquid’s live candle stream at 1, 5 or 15 minutes. A live candle that arrives after a gap (a reconnect, a laptop waking from sleep) triggers a backfill of the missed bars before it is drawn.

    Source
    Hyperliquid
    Freshness
    Live, streaming
    Fetched by
    Your browser → Hyperliquid
  • Resting liquidity

    MeasuredLive now

    Chart · Liquidity layer and depth profile

    Markov subscribes to the book twice, at 4 significant figures for detail near price and at 3 for the wider range, about 20 price levels a side each. Each 1-minute column of the heatmap is the time-averaged resting size per price row over that minute. The depth profile at the right edge is the latest book.

    It shows size that is resting, not intent. Orders can be pulled before price reaches them, and one venue’s book is not the whole market.

    Source
    Hyperliquid order book (l2Book)
    Freshness
    Several book updates a second, drawn at most once a second, with up to 12 hours kept in your tab
    Fetched by
    Your browser → Hyperliquid
  • Whale prints

    MeasuredLive now

    Chart · Whales layer and tape

    Fills are folded into one print per aggressive order (same time, side and taker wallet), so an order that sweeps many makers counts once, at its volume-weighted price. Prints from $10k are kept. Bubbles start at each coin’s threshold ($100k for BTC and ETH by default, and you can change it).

    Side is the taker’s: an aggressive buy or an aggressive sell. Wallets are public Hyperliquid addresses, not identities.

    Source
    Hyperliquid trades
    Freshness
    Live
    Fetched by
    Your browser → Hyperliquid
  • Liquidations

    MeasuredLive now

    Chart · Liquidations layer, and the Liquidations page

    On the chart, Markov reads Binance’s forceOrder stream, Bybit’s allLiquidation stream and OKX’s liquidation-orders channel. These are forced liquidations that actually printed, with longs marked below the bar and shorts above. CEX 1 and CEX 2 report at most one liquidation per second, so totals are a floor. Stored history from Markov’s collector carries the same three venues. Bybit reports each liquidation at the position’s bankruptcy price, a few tenths of a percent past where the market traded, so live Bybit prints are placed at the nearest price Bybit traded in that minute. The collector’s history keeps the price Bybit reported.

    These are liquidations that happened. Markov doesn’t draw projected “liquidation levels”, which are a guess about where leverage sits. The Liquidations page reads the same three venues (Binance for every perp, Bybit and OKX for its six coins) and keeps what it has seen on your device, so repeat visits within a day fill its map in. From the US it fills from OKX, whose share of a total is a floor like Binance’s.

    Source
    Binance USDⓈ-M, Bybit linear and OKX swap liquidation streams, the same three in stored history (chart) and on the Liquidations page
    Freshness
    Live. Binance and Bybit refuse US networks (HTTP 451 and 403), so the chart and the Liquidations page say “blocked here” for those two and keep retrying every 15 seconds. OKX answers from the US, so both stay live there
    Fetched by
    Your browser → Binance, Bybit, OKX (chart and Liquidations page)
  • Open interest

    MeasuredLive now

    Chart · OI pane, and the Derivatives page

    On the chart, Markov reads Hyperliquid’s asset context, open interest × mark price in USD, sampled every 30 seconds, with the collector’s stored samples (one per bar) before that when history is available. On the Derivatives page it reads Binance’s openInterest and openInterestHist endpoints. Where Binance refuses your region, the panel falls back to OKX’s open interest, read through Markov’s edge, and labels it. The two are never mixed.

    Source
    Hyperliquid (chart) · Binance, with an OKX fallback (Derivatives)
    Freshness
    Every 30 s on the chart, and every 60 s on Derivatives (every 2 minutes on the OKX path)
    Fetched by
    Your browser → Hyperliquid, Binance · Markov’s edge → OKX
  • Funding

    MeasuredLive now

    Chart · Funding pane, and the Derivatives page

    On the chart, Markov reads Hyperliquid’s hourly funding settlements. On the Derivatives page it reads Binance’s current rates, ranked by distance from its default 0.01% per 8 hours so the unusual ones come first. Where Binance refuses your region, the table falls back to Hyperliquid and labels it. The two are never mixed.

    The annualized figure is a straight-line estimate that assumes the current rate holds. It is arithmetic, not a forecast.

    Source
    Hyperliquid (chart) · Binance, with a Hyperliquid fallback (Derivatives)
    Freshness
    Every 5 min on the chart while the pane is on, and every 60 s on Derivatives
    Fetched by
    Your browser → Hyperliquid, Binance
  • Session levels

    ComputedLive now

    Chart · Levels layer

    Prior UTC day high, low and close (only when that day is nearly complete in the data), the 00:00 UTC open, and session VWAP: Σ(typical price × volume) ÷ Σ volume over today’s 15-minute candles. That VWAP is a candle approximation of the trade-by-trade figure, and is labelled as one.

    They are measured from real candles, so they draw as solid lines. Modeled levels will draw dashed.

    Source
    Hyperliquid 15-minute candles
    Freshness
    Every 2 min while the Levels layer is on
    Fetched by
    Your browser → Hyperliquid
  • Market heatmap

    MeasuredLive now

    Heatmap page

    Crypto shows Hyperliquid’s 60 perpetuals with the most open interest, sized by it, and their 24-hour change, through Markov’s edge cache. Forex shows ECB reference rates from Frankfurter, through Markov’s edge cache. US stocks, indices, commodities and futures come from Finnhub, through the same cache, and a board whose source isn’t answering says so.

    Tile size is open interest on crypto and a fixed market-cap weight on stocks. Forex, indices, commodities and futures are equal tiles, and colour is the recent move. Futures, indices and commodities are ETF proxies (SPY for ES, GLD for gold, USO for crude…), not CME futures prices or index levels, and the futures tab names them that way.

    Source
    Hyperliquid · Frankfurter (ECB reference rates) · Finnhub
    Freshness
    Every 60 s, and Markov’s edge holds a board for up to 2 min
    Fetched by
    Markov’s edge → Hyperliquid, Frankfurter, Finnhub
  • Regime score

    ComputedLive now

    Regime Compass, on TradingView

    It blends three reads of price, each rescaled to −100…+100, in a 40/35/25 mix: volatility percentile (ATR as a share of price, ranked against its own history), Kaufman’s efficiency ratio (net travel over total path) and persistence (a variance ratio of n-bar against 1-bar returns). Above the threshold it reads Expansion, and below the negative threshold it reads Compression.

    It is derived from price only. It is a proxy for expansion or compression, never dealer gamma. It evaluates on confirmed bars, so it doesn’t repaint.

    Source
    Price
    Freshness
    Each confirmed bar
    Fetched by
    Computed inside TradingView (Pine)
  • Gamma levels · BTC and ETH

    ModeledLive on Elite outside the US · modeled

    Chart · Options layer (Elite, not offered in the US)

    It is gamma exposure per strike from Derive’s options: each option’s gamma × open interest × spot² × 1%, summed by strike with calls and puts kept apart, over strikes within ±30% of spot and expiries up to 35 days out. Who is long or short isn’t published, so dealer positioning is signed by a heuristic (calls +, puts −) that can be wrong. It is one venue, not the whole market. The call wall, put wall and gamma flip draw dashed, labelled modeled, with the venue and the time named.

    Positioning is regime and risk context. The backtest evidence we’ve seen suggests its independent edge largely disappears once the volatility regime is known, so we never frame it as a signal.

    Source
    Derive options (BTC and ETH), read by Markov’s collector
    Freshness
    Recomputed at most every 5 minutes, and the chart asks every 60 s while the layer is on
    Fetched by
    Derive → Markov’s collector (/gex) → your browser

Not live: positioning

These are modeled, and nothing is shown until the data behind them is approved or licensed.

  • Gamma levels · ES and NQ

    ModeledNeeds a data licence

    Nowhere yet

    Options positioning mapped onto ES and NQ with a live index-to-futures basis. Not available until the options data is licensed. Whether the first version uses options on the futures themselves or index options mapped onto them isn’t decided.

    Source
    Licensed options data
    Freshness
    Once a day, from end-of-day open interest
    Fetched by
    Markov’s positioning engine (in development)

Rolling out

The collector.

A browser tab only sees what happens while it’s open. The collector is Markov’s own recorder: it keeps listening when nobody has the chart open, so the chart can open on recent history instead of an empty canvas.

Stored history draws to the left of a dashed boundary and this tab’s live data to the right. Book history is the time-averaged resting size per price level for each bar. A response carries at most the 500 largest whale prints and the 1,000 largest liquidations in its window. When there were more, the chart says from when, and above what size, its lists are complete.

Records
Every minute, Hyperliquid’s book at both resolutions and each coin’s asset context (mark price, open interest, funding, premium). Continuously, whale prints above a floor and Binance, Bybit and OKX liquidations.
Runs on
A Cloudflare Worker with a SQLite Durable Object, independent of anyone’s browser.
Keeps
Seven days of raw records, then deletes them. The chart opens on up to the last 24 hours of it (6 hours on 1-minute candles).
Gaps
Stretches it didn’t record are drawn “not recorded” and left out of every count, layer by layer: a liquidation feed dropping doesn’t blank the book history. Nothing is interpolated.
When it’s down
The chart builds live from the moment you open it, says so, and retries in the background.

Known limits, stated plainly.

  • Options open interest is end-of-day. Every intraday positioning value will be a model, not a measurement.
  • The dealer-positioning sign is a heuristic, a convention rather than an observed dealer book. It can be wrong in speculative regimes.
  • Resting size is not intent. Orders can be pulled before price arrives, and Hyperliquid’s book is one venue’s book.
  • Liquidation totals are floors. CEX 1 and CEX 2 report at most one liquidation per second.
  • Some venues refuse some regions. Binance returns HTTP 451 and Bybit 403 to US addresses, but OKX, Hyperliquid and Lighter answer. The tools name the venue, say what still works, and keep retrying. We don’t suggest workarounds.
  • Session VWAP on the chart is a candle approximation, from 15-minute candles rather than every trade.
  • The heatmap’s futures tab is ETF proxies, not futures prices.
  • Exchange figures can lag, gap or be revised. We show them as reported, with the source.
  • Times are in your browser’s timezone. Crypto’s session boundary on the chart is 00:00 UTC.

What Markov never does.

  • Tell you what to trade.

    There are no buy or sell calls, no “take this trade” and no signals. It is context, never instructions.

  • Publish win rates or profit figures.

    There are no win rates or profit figures, on the site or in the scripts. The NY open brief shows how often its range held on past sessions it wasn’t fitted to. That is a hypothetical backtest, not a trading record.

  • Pass a model off as a measurement.

    Modeled values carry ≈, dashed lines and their assumptions. Measured values are plain.

  • Fill gaps with invented data.

    Time nobody recorded is drawn “not recorded” and left out of every count. Nothing is interpolated.

  • Show a number without its source.

    Every panel names its source, its state and how fresh it is. Without a chip, there is no number.

  • Place orders or hold funds.

    Markov reads public market data. It doesn’t execute trades, take custody or copy trades between people.

Credits.

Market data
Hyperliquid, Binance, Bybit, OKX, Lighter, Derive, Frankfurter (European Central Bank reference rates), Finnhub.
Charts
TradingView Lightweight Charts, Apache License 2.0. The chart keeps TradingView’s attribution.
Icons
Lucide, ISC License.
Type
Geist and Geist Mono, SIL Open Font License, served from this site.

Names are trademarks of their owners. Markov isn’t affiliated with or endorsed by them.

Coming to ES/NQ · in development

Why options positioning matters.

Price is pushed and pinned by how options dealers hedge. The biggest strikes become walls. The line where dealer gamma flips sign sets the regime of the session.

That structure is computable from the options chain, but it lives in markets you aren’t watching. Markov is being built to draw it where it matters: on the ES and NQ chart you trade.

Open interest is end-of-day. Anything intraday is modeled, and we show the assumptions rather than hide them. Positioning is regime and risk context, not a signal.

Above the flip

Dampened

Dealers sell strength and buy weakness. Volatility tends to compress and price to pin toward the big strikes.

Below the flip

Amplified

Dealers hedge with the move. Trends can extend and breaks can run, and risk of ruin climbs.

SchematicHow each regime tends to behave, as a drawing rather than data.
  • Live today · crypto

    This is the measurable side of the same idea: where size rests, where leverage breaks and who is paying to hold the crowded side. Open chart

  • In development · ES/NQ positioning

    Gamma walls and the flip, modeled from options open interest and drawn on your futures. It waits on options-data licensing. How we’ll model it

See every chip on the live chart.

Each layer names its source and freshness right where you read it. A free account opens it, with no card.