Market Depth Elasticity
Quick Reference
| Property | Value |
|---|---|
| Dimension | execution |
| Category | order_flow |
| Version | v0.9.0 (Beta) |
| Output Column | depth_elasticity |
Market depth elasticity: price_move / change(order_book_depth) - how sensitive price is to changes in resting liquidity
Formula
price_move / (abs(diff(order_book_depth, 1)) + epsilon)
CDM Inputs
| Column | CDM Table | Description |
|---|---|---|
order_book_depth | cdm_* | CDM source table |
price_move | cdm_* | CDM source table |
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
epsilon | float [0.0, 1.0] | 1e-10 | Small constant to prevent division by zero |
Output
Column: depth_elasticity
Price sensitivity to changes in available liquidity depth
Market Intuition & Trading Rationale
Depth elasticity measures how much price moves when depth changes: price_move / |Δdepth|. A high elasticity means prices are hypersensitive to liquidity changes — even small depth withdrawals cause large price moves. A low elasticity means prices are stable despite depth fluctuations — the market can absorb liquidity changes without repricing.
This feature captures a fundamental property of limit order books: the relationship between liquidity stock (resting depth) and price flow (transaction prices). When depth is abundant (deep books), the elasticity is low — removing some depth barely moves prices because there's plenty of backup liquidity. When depth is scarce (shallow books), elasticity spikes — pulling even modest depth causes disproportionate price moves because there's no cushion.
Elasticity rises during three scenarios: (1) pre-news — market makers pull depth ahead of expected volatility, (2) during stress — liquidity evaporates as providers become risk-constrained, (3) post-large-trade — the book needs time to replenish after a large order consumes multiple levels. Each scenario has different implications for execution strategy.
Usage Cases
- Execution sizing: When depth_elasticity is elevated, reduce order sizes. The market can't absorb normal size without significant price impact — your execution costs will be multiples of normal. When elasticity is low, larger orders are feasible.
- Liquidity regime classification: Elasticity provides the continuous "fragility score" for the market. Classify: low elasticity = resilient regime (normal execution), medium = fragile (reduce size), high = brittle (defer or use limit orders only).
- Pre-event positioning detection: Rising elasticity with stable depth suggests market makers are becoming jumpy — they'll pull quotes on the next adverse tick. This is a leading indicator for spread widening and should trigger a shift from aggressive to passive execution.
- Market impact model input: Depth elasticity is a state-dependent multiplier for trade impact models. Rather than assuming constant Kyle's lambda, scale lambda by elasticity — impact per unit of order flow is higher when the book is more elastic.
YAML Definition
name: market_depth_elasticity
description: 'Market depth elasticity: price_move / change(order_book_depth) - how
sensitive price is to changes in resting liquidity'
category: order_flow
version: v0.9.0 (Beta)
dimension: execution
status: Pre-release
required_inputs:
- order_book_depth
- price_move
output_column: depth_elasticity
output_description: Price sensitivity to changes in available liquidity depth
parameters:
epsilon:
type: float
description: Small constant to prevent division by zero
required: false
default: 1.0e-10
constraints:
min: 0.0
max: 1.0
formula: price_move / (abs(diff(order_book_depth, 1)) + epsilon)