Skip to main content

Tutorial · market depth

Market depth shows how an order size walks through the book.

This is an execution-risk read over supplied order-book ladders: how much slippage a 1, 5, 10, 25, 50 or 100 MWh order eats, and whether available depth is exhausted. It is not a price forecast, not an order recommendation and not a guarantee of future fill.

walk-the-book240 real hoursnot a forecast

Tutorial · market depth

What depth shows

Slippage

Median UAH/MWh difference between the best price and the volume-weighted price after walking the ladder.

Exhaustion

Share of hours where the requested size exceeded available bid or ask depth; Alvo flags it instead of inventing liquidity.

Validation

The core was checked on 72 hours from 2021-07 and 168 hours from 2024-12, two real Ukrainian DAM regimes.

Scope

The result is retrospective execution risk over stored ladders, not a live order-book feed and not a period-wide liquidity study.

HowTo: read market depth

1. Start with ladder context

Check market, zone, delivery day and stored snapshot count. An empty or one-sided book should stay in an awaiting-data state.

2. Read slippage by size

1-10 MWh may clear at the best price, while 25-100 MWh reveals where the book starts to steepen.

3. Check exhaustion separately

Zero slippage does not mean unlimited fill; exhaustion says whether the order size exceeded the available side of the book.

4. Do not compare Kyle-lambda across regimes

The single coefficient is a coarse shape summary inside one ladder; per-size slippage is the more stable signal.

5. End with the caveat

Use it as an execution-risk display. Do not turn depth into a forecast, an order, or a guarantee of future fill.

What not to claim

No forecast

Market depth does not predict the clearing price; it walks an already supplied or stored bid-ask ladder.

No order recommendation

High or low slippage is not a command to buy or sell. The final decision stays with a human.

No fill guarantee

Even validated historical depth does not guarantee future fill or current-hour liquidity.

Tutorial · market depth

Checklist and fields

Depth read

Minimal sequence before a sizing discussion.

1. Pick the market, zone, delivery day and order sizes.
2. Read the stored bid/ask ladder before reading any summary.
3. Compare median slippage at 1, 5, 10, 25, 50 and 100 MWh.
4. Check exhaustion separately from slippage.
5. Carry the caveat: this is execution risk, not a forecast or fill promise.
Fields to inspect

Summary fields that should not be collapsed into one liquidity score.

marketDepth.summary[size] = {
  medianBuySlippageUahMwh: cost to walk the ask ladder,
  medianSellSlippageUahMwh: cost to walk the bid ladder,
  buyExhaustionRate: share of hours where the asked size exceeded asks,
  sellExhaustionRate: share of hours where the asked size exceeded bids
}

validation = {
  sample: 240 real Ukrainian DAM hours across 2021-07 and 2024-12,
  scope: behaviour validation, not a period-representative liquidity study
}

Tutorial · market depth

Market depth FAQ

What did the 2021 vs 2024 validation show?

In the thin 2021 window, buy slippage rose from about 8 to 18 UAH/MWh for 25 to 100 MWh. In the deeper 2024 window, slippage stayed near zero up to 100 MWh. That confirms data-driven core behaviour, not a universal market law.

Why are 240 hours not a full liquidity study?

This is bounded behaviour validation across two regimes: monotonicity, no imputation, exhaustion handling and data-driven slippage. Period-representative liquidity needs a separate multi-month study.

How is this different from the forecast band?

The forecast band describes price uncertainty. Market depth describes how a sized order walks through an available book and what execution risk is visible in the ladders.

Want execution risk beside the forecast?

The workspace shows a market-depth card beside DAM/IDM, the forecast band and the decision brief; when stored rows are absent, the card should show an honest awaiting-data state.

Open workspace