Ho-Stoll (1981): The Inventory Risk Model

The trading-fundamentals article introduced the market maker’s dilemma: earn the spread, but bear the risk of inventory moving against you. Ho and Stoll (1981) turned this intuition into a precise result using expected utility theory.

This is the first of the three canonical microstructure models. It answers: how should a risk-averse market maker set quotes given their current inventory?

Setup

A monopolist market maker quotes a bid and ask for a single asset. The true (efficient) mid-price is . Between quote updates, the asset price moves with variance . The maker currently holds inventory units.

The maker has CARA (constant absolute risk aversion) utility:

where is the coefficient of absolute risk aversion and is terminal wealth.

Why CARA?

CARA gives a closed-form solution because it separates the effect of wealth level from risk attitude. Under CARA, the certainty equivalent of a normal gamble is:

This mean-variance tradeoff is exact (not approximate) for CARA + normal returns — a convenient analytical property that makes the derivation tractable.

Derivation

Step 1: Wealth Under Each Scenario

If a buy order arrives (the maker sells one unit at the ask ):

The maker receives , but now holds units exposed to the uncertain future price .

If a sell order arrives (the maker buys one unit at the bid ):

If no trade occurs:

Step 2: Indifference Condition

The maker sets and so that they are indifferent between trading and not trading. Using the CARA certainty equivalent:

Ask (indifference between selling and no trade):

Solving for :

Bid (indifference between buying and no trade):

Solving for :

Step 3: The Key Results

The adjusted mid-price (midpoint of the maker’s quotes):

This is the central result:

The maker shifts their entire quote schedule away from inventory:

  • Long inventory (): lower the mid to attract sellers and repel buyers, reducing the position
  • Short inventory (): raise the mid to attract buyers

The magnitude of the shift scales with risk aversion , price variance , and inventory level . Each multiplier is intuitive: more risk-averse makers adjust more; more volatile assets require larger adjustments; larger positions demand more aggressive rebalancing.

The spread:

The spread is independent of inventory. Inventory affects where the quotes are centered, not how wide they are. Width is determined solely by risk aversion and volatility.

Interpretation

The Ho-Stoll model separates two distinct effects:

  1. Spread width (): compensation for bearing one unit of price risk across one trading interval
  2. Quote skew (): inventory management through asymmetric pricing

A market maker with zero inventory quotes symmetrically around the true mid. As inventory accumulates, quotes slide — the maker uses price to manage risk, not just to earn fees.

Connection to AMM Impermanent Loss

Constant-product AMMs (Uniswap v2) are market makers with — they never adjust their mid in response to inventory. The bonding curve mechanically sets prices based on reserves, but it cannot skew quotes to shed unwanted inventory.

This is precisely why impermanent loss exists: the AMM keeps quoting symmetrically even as informed flow pushes its inventory in one direction. A Ho-Stoll market maker would widen or skew; the AMM cannot. The LP absorbs the inventory risk that a rational market maker would price.

Uniswap v3’s concentrated liquidity gives LPs partial control — they can choose a range, effectively setting a conditional skew. But it is still reactive (withdraw and reposition) rather than continuous (adjust quotes in real time).

Limitations

  • The model assumes a monopolist market maker. In competitive markets, spreads compress below as makers compete for flow.
  • No adverse selection: all traders are equally uninformed. This is the gap that glosten-milgrom-model fills.
  • Single period: the maker optimizes over one interval. Multi-period extensions (Avellaneda & Stoikov 2008) add optimal control.
  • Normal returns: CARA + normal is tractable but ignores fat tails.

Companion notebook: notebooks/market-microstructure/03-ho-stoll.py — simulate a Ho-Stoll market maker, visualize quote skew as inventory changes, compare P&L against a symmetric quoter.

Questions to sit with:

  1. If sets the spread, what happens in a market where volatility suddenly doubles? How quickly must the maker react?
  2. The AMM has no parameter — it always trades. Is there a DeFi mechanism that could introduce inventory-dependent skew on-chain?
  3. The spread is independent of inventory in this model. Is that realistic? Under what conditions would you expect spread to widen with inventory?