Skip to content

Amihud's Illiquidity Measure: The Price Impact per Dollar Traded

Amihud (2002) captured illiquidity with a single division: absolute return over dollar volume. It needs nothing but prices and volume, which is why it became the standard in asset-pricing research. Here's what it actually estimates, how to read its magnitudes, and where each of its flaws comes from.

3 of 12 ~11 min

Liquidity is one of those words everyone uses and nobody defines precisely. You know illiquid when you see it (try selling $10M of a small-cap biotech at 3:50 PM on a Friday), but doing research requires a number you can compute. Which raises a question that sounds unreasonable on its face: how could a single number possibly contain something as large as “liquidity”?

Amihud’s (2002) answer is a division — the Amihud illiquidity ratio:

ILLIQt=∣rt∣DVOLt\text{ILLIQ}_t = \frac{|r_t|}{\text{DVOL}_t}

where rtr_t is the return on day tt and DVOLt\text{DVOL}_t is the dollar volume traded that day. Absolute return over dollar volume; that’s all. The intuition fits in one sentence too: a stock that moves a lot on little volume is illiquid, and one that barely moves on huge volume is liquid.

The division is deceptively simple. This article pins down three things: what it actually estimates (answer: a rough proxy for Kyle’s lambda); why it swept through hundreds of asset-pricing studies to become a standard member of the liquidity-factor zoo (alongside bid-ask spread, turnover, and the Pastor-Stambaugh factor — Harris places it in the broader liquidity taxonomy in Ch. 21 and Ch. 19); and how every one of its known flaws grows out of the numerator ∣rt∣|r_t|.

Magnitudes: Learn to Read the Number First

For a single stock, average over TT days:

ILLIQ‾=1T∑t=1T∣rt∣DVOLt\overline{\text{ILLIQ}} = \frac{1}{T} \sum_{t=1}^{T} \frac{|r_t|}{\text{DVOL}_t}

The units are (return / dollar volume) = 1/dollar, so the number is tiny and you read it by order of magnitude. Build the feel with an example you can actually compute. For an Apple-like large cap, a 1.5% daily volatility means a typical day’s ∣rt∣|r_t| is around 1.2% (under normality, E∣r∣≈0.8σE|r| \approx 0.8\sigma), and take $5B in daily dollar volume:

ILLIQ=0.0125×109≈2.4×10−12 per dollar\text{ILLIQ} = \frac{0.012}{5 \times 10^9} \approx 2.4 \times 10^{-12} \text{ per dollar}

A small cap that typically moves 0.5% a day on just 5Mofvolume:ILLIQ=5M of volume: ILLIQ = 0.005 / 5\times10^6 = 1\times10^{-9}$per dollar — roughly 400 times the large cap. That is the liquidity gap expressed as a number. Spread the whole US cross-section out by ILLIQ and the most liquid decile sits around$10^{-12}toto10^{-11}$, the least liquid around $10^{-8}$or higher; crypto majors run about$10^{-9}toto10^{-8}$, and alts start at $10^{-6}$. Liquid and illiquid assets differ by 4–5 orders of magnitude — and that enormous span is precisely what makes ILLIQ useful: it puts the entire spectrum on one ruler.

One crude but handy reading: multiply ILLIQ by your trade size and treat the product as expected impact. Trading 1Mina1M in a 10^{-9}$ name, expect a move on the order of 10 bps. The linear reading overstates for large orders (impact is empirically sub-linear — see the square-root law article), but as an order-of-magnitude estimate it earns its keep.

Python Implementation

import numpy as np
import pandas as pd

def amihud_illiquidity(returns, dollar_volume):
    """
    Compute the Amihud (2002) illiquidity ratio.
    returns: pd.Series of daily returns (decimal)
    dollar_volume: pd.Series of daily dollar volume
    Returns: average ILLIQ over the sample.
    """
    illiq = returns.abs() / dollar_volume
    return float(illiq.mean()), illiq


# Toy data
rng = np.random.default_rng(42)
n_days = 252
returns = pd.Series(rng.normal(0.0005, 0.015, n_days))
dollar_volume = pd.Series(rng.lognormal(20, 0.5, n_days))
avg_illiq, daily = amihud_illiquidity(returns, dollar_volume)
print(f"Average ILLIQ: {avg_illiq:.3e}")
# With these toy parameters (mean dollar volume ~ $0.5B) this prints
# on the order of 1e-11; see the article body for real large-cap magnitudes

For a cross-sectional study, compute ILLIQ‾\overline{\text{ILLIQ}} per stock and rank. That’s the whole procedure.

What It Actually Estimates

The Amihud measure captures price impact per unit of trading. Linearize impact — assume the price move is proportional to traded flow — and “absolute return over dollar volume” is exactly that slope, which is Kyle’s lambda:

ILLIQt≈λt\text{ILLIQ}_t \approx \lambda_t

So ILLIQ is essentially a non-parametric price-impact estimator that requires no model setup at all. That explains why it works: it never pretends to measure “liquidity” as a grand concept. It measures the one facet of liquidity with the most economic bite — how far the price moves when you trade.

But the same lens exposes all of its flaws, because the numerator ∣rt∣|r_t| contains more than price impact.

The biggest confound is volatility. ∣rt∣|r_t| correlates with fundamental volatility: a high-vol stock shows high ILLIQ even when its liquidity is fine, because the price is moving anyway, pushed or not. Dividing by volume mitigates this only partially — it is the number-one caveat to keep in mind whenever you use ILLIQ. Next is asymmetry: ∣rt∣|r_t| treats up and down moves identically, but negative returns tend to be larger in magnitude (the leverage effect), which is why some researchers use max⁡(0,−rt)\max(0, -r_t) and look only at the downside. Then come three data problems, all concentrated in illiquid stocks — exactly the assets you most want to measure. Zero-volume days leave ILLIQ undefined or infinite (drop them or winsorize). A few extreme days — earnings, M&A — dominate the average (winsorize at the 99th percentile, or use the median). And the closing price itself may be stale: for rarely traded names (some bond ETFs, microcaps) the close can be a stale quote or a single outlier block, so a day with one big block makes ILLIQ look spuriously low, while a no-trade day with a stale quote makes it look spuriously high. Bid-ask bounce injects pure noise on top: close prices hop between bid and ask, adding phantom moves of up to half the spread to daily returns (it inflates measured return variance by roughly s2/2s^2/2 — Roll’s classic result). For an illiquid stock with a 1% spread, those phantom moves run tens of bps a day, enough to drown the true impact signal — use midprice returns instead of close-to-close whenever you have them.

Flaws and all, Amihud remains the standard for cross-sectional liquidity research for a bluntly practical reason: it needs only prices and volume, and those exist everywhere. It’s a “good enough” measure — provided you know where it isn’t.

The Asset-Pricing Thread: The Illiquidity Premium

What made the measure famous is not its definition but its relationship with returns. The theoretical scaffolding is the Amihud-Mendelson (1986) liquidity-adjusted CAPM:

E[ri]=rf+βi⋅E[rm−rf]+λ⋅ILLIQiE[r_i] = r_f + \beta_i \cdot E[r_m - r_f] + \lambda \cdot \text{ILLIQ}_i

where λ>0\lambda > 0 captures the compensation investors demand for holding illiquid assets. Note this is an empirical regularity, not a theorem derived from axioms. It holds in the cross-section: controlling for market beta, higher-ILLIQ stocks earn higher average returns. It also holds in the time series: when aggregate ILLIQ rises, future excess returns tend to be higher.

Magnitude: Amihud (2002) sorted US stocks into ILLIQ deciles and computed equal-weighted returns; the top decile beat the bottom by about 6% per year (1963–1997 sample), and subsequent literature puts the premium roughly in the 4–6% annual range — one of the largest “anomalies” in the factor zoo. As liquidity-factor investing grew popular the premium has been partly arbitraged away, but it’s still there.

Don’t book the whole premium to “compensation for illiquidity,” though. High-ILLIQ stocks are simultaneously exposed to other factors (small-cap, value); ILLIQ correlates with information asymmetry, and slow information diffusion carries return predictability of its own; and part of it reflects lottery preferences — some investors simply like the high-vol tail of illiquid names. Amihud’s measure bundles all of these together, so the “true” illiquidity premium is probably smaller than the raw ILLIQ premium. Harris Ch. 19 states the practitioner position: illiquid assets earn premia, but the magnitude is debated.

The thread extends beyond US equities. Amihud, Hameed, Kang, and Zhang (2015) confirmed the premium in global equities across 45 markets. In corporate bonds the premium exists but is hard to estimate because trading is sparse (Dick-Nielsen, Feldhutter, Lando, 2012). In crypto, the validity of low-frequency liquidity proxies — Amihud included — has been tested directly (Brauneis, Mestel, Riordan, Theissen, 2021), while the premium evidence there is volatile and regime-dependent. Commodity futures have their own literature on liquidity measurement and commonality (Marshall, Nguyen, Visaltanachoti, 2013). The cross-asset consistency is reassuring: ILLIQ captures something real about liquidity premia.

When running this kind of study yourself, two pitfalls do more damage than the measure’s own flaws. One is survivorship bias: your universe must include delisted stocks — Amihud’s original CRSP sample does, many follow-ups don’t, and delistings cluster exactly in the most illiquid deciles, so dropping them biases the premium. The other is look-ahead bias: using today’s ILLIQ to predict today’s return conditions on information you didn’t have at trade time; use lagged values (e.g., month t−1t-1 ILLIQ to predict month tt returns). Harris Ch. 19 covers the practical side of these pitfalls; Hasbrouck (2007) Ch. 3 gives the formal treatment.

Its Place in the Family of Measures

Liquidity has more than one measure, and each captures a different facet: the bid-ask spread prices immediacy; the effective spread measures actual execution cost against the midprice (more honest than the quoted spread); the Roll measure infers the spread from price changes; turnover (volume / shares outstanding) tracks trading activity but not cost; Pastor-Stambaugh (2003) builds a factor from return reversals attributed to liquidity; Kyle’s lambda is the theoretical impact per unit of flow. These are correlated but not identical — Hasbrouck (2007) Ch. 3 has a clean comparison.

For choosing among them, a practical division of labor:

Use CaseRecommended Measure
Cross-sectional asset pricingAmihud
Time-series of single asset liquidityBid-ask spread (effective)
Execution algo calibrationKyle’s lambda
Market quality monitoringEffective + realized spread
Comparing assets across classesAmihud
High-frequency impact estimationKyle’s lambda (regression)

The logic behind that table is worth unpacking one level, and the Amihud-versus-effective-spread contrast shows it most clearly: both measure transaction costs, but they answer different questions. The effective spread is an instantaneous snapshot — if you traded $1M of Apple at the touch right now, it is the cost of that trade; so execution algo calibration uses it (with realized spread), because what you care about is the next fill. Amihud is a **long-run average** — if you traded $1M of Apple every day for a year, it approximates your average daily cost; so portfolio construction, risk management, and factor research use it, because what they need is a stable time series. When you have both, they should be positively correlated — a high-spread stock should also be high-Amihud. When they diverge, something is usually wrong: stale quotes, or a stock whose liquidity regime is mid-transition. That cross-check is itself a useful sanity test.

A side note on routing: modern smart order routers run mainly on per-venue effective spreads, queue depth, and maker-taker fees. Amihud doesn’t enter the routing logic directly, but when quote data is sparse it’s a useful fallback for deciding whether a venue belongs in the rotation at all.

Putting ILLIQ to Work

For practitioners, ILLIQ has three direct jobs, running from pre-trade to real time.

First, pre-trade cost forecasting. Before you send the order, what do you expect to pay? The simplest forecast:

cost^=α⋅ILLIQ‾⋅Q\hat{\text{cost}} = \alpha \cdot \overline{\text{ILLIQ}} \cdot Q

where QQ is your trade size in dollars, ILLIQ‾\overline{\text{ILLIQ}} is the trailing ILLIQ, and α\alpha is a scaling factor (typically 0.5–2.0 depending on urgency and market conditions). Trading 1Mina1M in a \overline{\text{ILLIQ}} = 10^{-9}$stock, expected cost at$\alpha = 1$is 1 bp — reasonable for a liquid name; the same$1M in a 10−710^{-7} name is 10 bps. Comparing this pre-trade number against realized post-trade cost is execution-quality evaluation at its most basic. Run the other way, it’s a lie detector for backtest assumptions: if your backtest in Arithmion assumes 5 bps of impact on a name whose Amihud is 10−810^{-8}, you’re an order of magnitude too optimistic — mismatches like that are a classic source of backtests that look great and live trading that doesn’t.

Second, pacing execution. The same logic in reverse: in high-ILLIQ names, trade slowly, lean on passive orders, accept longer horizons, and pay the spread to avoid impact; in low-ILLIQ names, go faster with market orders over short horizons. A simple rule is to target impact at some fraction of the bid-ask spread (say 10%) — ILLIQ tells you how fast you can go while honoring that target. This is the core logic of adaptive execution algorithms.

Third, real-time monitoring. Compute ILLIQ on a rolling 20-day window and alert when it breaks above its historical 95th percentile — deteriorating liquidity usually shows up in this number before it shows up as ugly execution reports. For a market-making or execution desk it’s a cheap sentinel worth having: on alert, cut size or pull quotes. For monitoring (and any institutional use), the data hygiene above is not optional: use intraday data when you have it, drop or mark zero-volume days as missing, and treat ∣rt∣>5%|r_t| > 5\% days with no news as stale quotes.

What Amihud Doesn’t Measure

Draw the boundary before closing. Amihud captures price impact per dollar traded — nothing else. It does not capture the bid-ask spread (the cost of immediacy), quote depth (size available at the touch), volatility itself (the informational environment), or resilience (how fast prices recover from shocks). For a full liquidity assessment, pair it with effective spread and turnover — it is the most-cited measure in the family, never the only one you need.

That a single division travels this far owes nothing to cleverness and everything to low data requirements plus a plain meaning: for every dollar traded, how far does the price move? Know that it’s estimating Kyle’s lambda, know that volatility and noise are mixed into the numerator, know how to read its magnitudes — and the number will serve you well.

References

  • Harris, L. Trading and Exchanges: Market Microstructure for Practitioners. Oxford University Press, 2003. Ch. 21 (liquidity), Ch. 19 (asset pricing implications). ISBN: 978-0-19-514470-3.
  • Amihud, Y. “Illiquidity and Stock Returns: Cross-Section and Time-Series Effects.” Journal of Financial Markets, 2002.
  • Amihud, Y., Mendelson, H. “Asset Pricing and the Bid-Ask Spread.” Journal of Financial Economics, 1986.
  • Pastor, L., Stambaugh, R. “Liquidity Risk and Expected Stock Returns.” Journal of Political Economy, 2003.
  • Hasbrouck, J. Empirical Market Microstructure. Oxford University Press, 2007. ISBN: 978-0-19-518115-9 (hardcover) / 978-0-19-539320-0 (paperback).