Quotes, Spreads & Liquidity
Depth & Slippage Simulator
Investment Education, Research & Tools for Smarter Decisions.
See exactly how a market order walks through price levels and what it costs. Enter a price, spread, and order size, then choose a liquidity profile, the simulator shows your fill level-by-level, your volume-weighted average fill price, and the total slippage against the mid.
Direct Answer
The depth and slippage simulator shows how a market order of a given size walks through an order book's price levels and what that costs, based on a price, spread, order size, and chosen liquidity profile. It returns the level-by-level fill, the volume-weighted average fill price, and the total slippage against the midpoint.
Educational tool only. All outputs are hypothetical scenarios computed from user-entered assumptions. No real market data is used. This is not investment advice, a trade recommendation, or a guarantee of fill quality. Past and simulated slippage does not predict future execution costs.
Simulate an Order
Configure your order below. The simulator builds a synthetic order book from the profile you choose, then walks your order through it level by level.
Simulation Results
Order Book Walk
Highlighted rows show levels consumed (fully or partially) by your order. Bid side shown for reference only.
| Side | Price | Available (shares) | Depth bar | Filled (shares) | Status |
|---|
Slippage Sensitivity
How slippage changes as order size varies, holding all other inputs constant.
| Order size (shares) | Avg fill price | Slippage / share | Slippage % | Total slippage cost | Filled |
|---|
Methodology
The simulator uses a synthetic order book model, no live market data is fetched. All results are hypothetical and depend entirely on the assumptions you enter.
Formula
For a market buy order of N shares:
- The best ask = mid price + (spread / 2), rounded to the nearest cent.
- Ten price levels are constructed: level k = best ask + (k − 1) × $0.01, for k = 1…10.
- Each level holds a quantity from the selected liquidity profile (Deep, Normal, Thin, or Custom).
- The order sweeps levels in ascending price order, consuming shares until filled or the book is exhausted.
- VWAP fill price = ∑(shares filled at level k × price at level k) / total shares filled.
- Slippage per share = VWAP fill price − mid price (positive = paid more than mid).
- Slippage % = (slippage per share / mid price) × 100.
- Total slippage cost = slippage per share × shares filled.
For a market sell the same logic applies in reverse: the best bid = mid − (spread / 2), levels descend in $0.01 steps, and slippage per share = mid price − VWAP fill price.
Worked example
Mid = $50.00, spread = 2¢ (best ask = $50.01), order = 5,000 shares to buy, Normal profile (levels: 2,000 / 3,000 / 4,500 / 6,000 / 8,000 / 12,000 / 18,000 / 25,000 / 35,000 / 50,000 shares).
| Level | Price | Available | Filled | Remaining |
|---|---|---|---|---|
| 1 | $50.01 | 2,000 | 2,000 | 3,000 |
| 2 | $50.02 | 3,000 | 3,000 | 0 |
| 3-10 | N/A | N/A | 0 | 0 |
VWAP = (2,000 × $50.01 + 3,000 × $50.02) / 5,000 = ($100,020 + $150,060) / 5,000 = $250,080 / 5,000 = $50.016.
Slippage per share = $50.016 − $50.00 = $0.016. Slippage % = 0.016 / 50.00 × 100 = 0.032%. Total slippage cost = 0.016 × 5,000 = $80.00.
Liquidity profiles
| Level | Deep | Normal | Thin |
|---|---|---|---|
| 1 (best) | 5,000 | 2,000 | 300 |
| 2 | 8,000 | 3,000 | 500 |
| 3 | 12,000 | 4,500 | 800 |
| 4 | 18,000 | 6,000 | 1,200 |
| 5 | 25,000 | 8,000 | 2,000 |
| 6 | 35,000 | 12,000 | 3,000 |
| 7 | 50,000 | 18,000 | 4,500 |
| 8 | 70,000 | 25,000 | 6,500 |
| 9 | 100,000 | 35,000 | 9,000 |
| 10 | 150,000 | 50,000 | 12,000 |
Rounding
Prices are rounded to the nearest $0.01. VWAP is computed in floating-point and displayed to four decimal places. Share quantities are integers. Slippage percentages are displayed to four significant figures.
What this model does not capture
- Market impact feedback. In a live market, a large order signals demand and can cause resting orders to be cancelled or repriced before they are filled. This model holds the book static.
- Hidden and iceberg orders. Reserve orders refresh as they are hit; this model does not model refresh cycles.
- Time-of-day effects. Book depth is thinner at open, close, and during low-volume periods. The simulator uses a single static snapshot.
- Exchange fees and rebates. Maker-taker fee structures affect effective execution cost but are not included. See the Execution Cost Calculator.
- Partial days and circuit breakers. Halt conditions are not modeled.
Frequently Asked Questions
-
Slippage is the difference between the expected price of a trade and the actual price at which it is executed. It happens because a market order does not guarantee a specific price, it simply asks the market to fill as many shares as possible at the best available prices. When your order size exceeds the quantity available at the best bid or ask, the order "walks" into progressively worse price levels, and your average fill price moves away from the mid-price you saw before submitting. Even with a small spread, a large order can generate significant slippage in a thin book.
-
Order book depth refers to the total quantity of resting limit orders available at each price level above and below the current best bid and ask. A "deep" book has large quantities stacked across many price levels, which means a large market order can be filled without pushing prices far. A "thin" book has small quantities, so even a modest order can consume the visible supply and cause meaningful price impact. Depth is dynamic, it changes in milliseconds as orders are placed, cancelled, and executed. The simulator uses a static snapshot model rather than a live feed, which is why its outputs are for education rather than live trading decisions.
-
VWAP (Volume-Weighted Average Price) fill price is the shares-weighted average of all the prices at which your order was filled across multiple levels. For example, if you buy 1,000 shares, 600 at $50.01 and 400 at $50.02, your VWAP fill price is (600 × $50.01 + 400 × $50.02) / 1,000 = $50.014. This is the true economic cost of your trade, not just the price at any single level. Slippage is then measured as the difference between this VWAP fill price and the theoretical mid-price you would have received if infinite liquidity existed at that price.
-
They are related but distinct costs. The bid-ask spread is the minimum cost a market-taker always pays, buying at the ask means you're immediately starting at a price above the mid, and selling at the bid means starting below it. This happens even for a single share. Slippage is the additional cost above the spread that occurs specifically because your order is large enough to exhaust one price level and fill at worse levels further into the book. A 100-share order in a liquid stock might pay only the spread cost with zero slippage. A 50,000-share order in the same stock might walk through 8-10 levels and pay both the spread cost and significant slippage on top.
-
A limit order specifies a maximum price (for a buy) or minimum price (for a sell). Because it will not execute at a worse price than specified, it eliminates price-walking slippage. However, limit orders carry non-fill risk, if the market moves away before your order can be matched, you don't get filled at all. In fast markets, you can be in the awkward position of missing the trade entirely or having to chase the price with successive limit orders, which may produce worse total costs than a market order would have. The right choice depends on order size, urgency, and current market conditions.
-
Several techniques exist, each with tradeoffs. Slicing the order (breaking a large order into smaller child orders executed over time) avoids depleting any single price level at once, but it introduces timing risk, the market may move against you over the execution window. Algorithmic execution strategies such as TWAP (time-weighted) or VWAP (volume-weighted) automate slicing around average volume patterns. Limit order strategies queue shares as a maker rather than taker, avoiding spread cost and slippage but accepting non-fill risk. Dark pool routing attempts to match with a contra-side block without touching the lit order book, though access to such venues depends on broker and order size. Retail traders generally have access to the first two strategies through their broker's order types.
-
The Thin profile approximates conditions found in low-float small-cap stocks, thinly traded ETFs, individual options contracts, or any stock during after-hours and pre-market sessions when market makers are not actively quoting. It can also approximate intraday conditions around major news events or circuit-breaker reopenings when many resting orders have been cancelled. Under Thin conditions, even a few hundred shares can exhaust several price levels and cause slippage that would be unacceptable in a normal market. The model is also useful for stress-testing position-exit scenarios: if you hold a large position in a stock where liquidity can deteriorate rapidly, the Thin profile shows the worst-case exit cost.
-
It walks a static snapshot of depth, so it assumes nothing is added while the order consumes levels. In a real market, resting interest is replaced continuously, which usually makes a worked order cheaper than a static walk suggests. The static assumption is therefore closer to the cost of taking everything at once than to the cost of executing gradually, and it should be read as an upper bound for the second case.
-
Comparing requires the depth that existed at the moment the order was sent, which is rarely recorded, so the honest comparison is against a snapshot taken at a similar time of day in similar conditions. What the comparison can show is whether realized cost sits broadly inside the modelled range or well outside it. A realized cost far above the model usually points to thinner conditions than assumed rather than to an execution error.