Skip to main content

Effective Spread

Quick Reference

PropertyValue
Dimensionexecution
Categorystatistics
Versionv0.9.0 (Beta)
Output Columneffective_spread

Effective spread: 2 * abs(trade_price - mid_price) - the true cost paid by liquidity takers

Formula

abs((price - mid_price)) * 2.0

CDM Inputs

ColumnCDM TableDescription
pricecdm_*CDM source table
mid_pricecdm_*CDM source table

Parameters

This FeatureType has no configurable parameters.

Output

Column: effective_spread

Effective spread in price units

Market Intuition & Trading Rationale

Effective spread measures the cost a liquidity taker actually pays: 2 * |trade_price - mid_price|. The factor of 2 converts the one-way deviation into a round-trip cost — buying at the ask then selling at the bid. Unlike the quoted spread (the cost advertised by resting limit orders), effective spread accounts for price improvement, hidden liquidity, and walking the book beyond the touch.

A trade at the mid-price produces zero effective spread — the taker paid no immediacy premium. A trade at the ask produces an effective spread equal to the quoted spread. Trades that execute inside the quoted spread (via dark pools, midpoint pegs, or hidden liquidity) produce narrower effective spreads, while trades large enough to walk the book beyond the touch produce effective spreads wider than the quoted spread.

The key patterns that drive trading decisions:

  • Effective spread < quoted spread: Price improvement. Hidden liquidity or multi-level fills absorbed the order before it consumed the full quoted size. Common in deep books with small touch sizes — the visible spread overstates the true cost.
  • Effective spread > quoted spread: Book walking. The quoted touch size was too thin for the aggressive order. Large orders in shallow books exhibit this — the true execution cost exceeds what the quoted spread suggests.
  • Systematic widening: When effective spreads rise across consecutive trades, liquidity is deteriorating in real time. Market makers are pulling depth or widening quotes. This often precedes volatility events — the cost of immediacy is the market's early-warning signal.
  • Negative effective spread: Trade executed better than the mid-price. Occurs with midpoint fills, crossing networks, or when a stale passive order is accidentally aggressed in a fast market. Persistent negative effective spreads suggest the venue provides natural price improvement.

Usage Cases

  • Execution benchmarking: Compare your fill prices to the venue's effective spread distribution. Consistently above the median for your trade size means your algo is capturing worse prices than the typical taker — route elsewhere or reduce aggression.
  • Liquidity regime throttling: Use effective_spread as a live execution quality proxy. When it widens beyond a rolling baseline, defer or slow execution. feature sets include it as an execution_features dimension precisely for this — scale position sizes inversely with execution cost.
  • Market impact decomposition: Pair with realized_spread. effective_spread captures the immediate cost (the liquidity premium). effective_spread - realized_spread isolates the permanent impact — the information content that persists after the liquidity rebound.
  • Venue quality monitoring: Track effective_spread / quoted_spread over time. Ratio < 1 means consistent price improvement (healthy venue). Ratio > 1 means the quoted book is too thin relative to typical trade sizes — the venue is undercapitalized for its order flow.

YAML Definition

name: effective_spread
description: 'Effective spread: 2 * abs(trade_price - mid_price) - the true cost paid by liquidity takers'
category: statistics
version: v0.9.0 (Beta)
dimension: execution
status: Pre-release
required_inputs:
- price
- mid_price
output_column: effective_spread
output_description: Effective spread in price units
parameters: {}
formula: abs((price - mid_price)) * 2.0