Why Did My Futures Order Fill at Multiple Prices?
Learn why one futures order can execute at several prices, how to calculate the weighted average fill price, and how to reconcile partial fills and remaining quantity.
Direct answer
One futures order can fill at several prices when available quantity is smaller than your order or the book changes during matching. Reconcile each execution and calculate a quantity-weighted average instead of averaging price levels equally.
One order can create several executions
A futures order is an instruction for a quantity, not a promise that every contract will trade at one price.
If a buy order reaches offers at 5,000.00, 5,000.25, and 5,000.50, the matching engine can execute against more than one level when the order type and price boundary permit it.
A limit order still keeps its boundary. A buy limit should not execute above its limit, and a sell limit should not execute below its limit under the applicable exchange rules.
A market instruction prioritizes execution and can interact with several available prices. On CME Globex, Market with Protection also applies an exchange-defined protected range.
Futures market orders versus limit orders explains the price boundary.
Futures order-book priority explains why available quantity can be split.
Calculate the average from quantity at each price
Use a weighted average:
Average fill price = sum of execution price × contracts at that price ÷ total filled contracts.
Suppose a hypothetical buy order for 8 contracts produces these fills:
The weighted total is 2 × 5,000.00 + 3 × 5,000.25 + 3 × 5,000.50 = 40,002.25.
Divide by 8 contracts. The weighted average fill price is 5,000.28125.
Do not calculate (5,000.00 + 5,000.25 + 5,000.50) ÷ 3. That gives 5,000.25 and ignores that more contracts traded at some prices than others.
A broker can display a rounded average while preserving individual executions in the order record. Fees are normally separate from the exchange price and should not be mixed into the raw average fill.
- 2 contracts at 5,000.00
- 3 contracts at 5,000.25
- 3 contracts at 5,000.50
Partial fill and average price answer different questions
An average fill price describes contracts that have already executed. It says nothing by itself about quantity still working.
If 6 of 10 contracts are filled, the current position changed by six contracts. The remaining four can still be working, canceled, expired, rejected after a modification, or subject to another order state.
Check cumulative filled quantity and leaves quantity separately. Re-submitting the original 10 without checking can create a larger position than intended.
CME order materials distinguish order instructions and time conditions, and product-specific rules determine what can remain on the book.
Futures Day versus GTC orders covers how an unfilled remainder can persist or end under its time-in-force instruction.
Why the fills can span several prices
The visible best bid or offer is only one part of the book at one moment. The displayed quantity can be smaller than your order, and orders can enter, cancel, or trade while matching occurs.
CME also uses product-specific matching algorithms. FIFO is not the only allocation method, so the exact product's rules matter when several resting orders compete at one price.
Market by Price data aggregates quantity by price level. Market by Order can expose order-level depth, but a broker screen may not show every detail available in the exchange feed.
A screenshot taken before submission therefore cannot prove what quantity remained when the exchange processed the order.
Reconcile the cash P&L from actual fills
After finding the weighted entry or exit price, use the exact contract specification to translate the price into cash P&L.
Suppose the 8-contract example uses a hypothetical contract worth $20 per index point. If all 8 contracts are later sold at 5,003.00, the price gain is 2.71875 points per contract.
Gross P&L is 2.71875 × $20 × 8 = $435.00.
Then subtract commissions, exchange and clearing fees, and any measured execution costs. Do not replace individual fills with the displayed last price.
How to calculate futures profit and loss shows the full multiplier and tick-value workflow. [!TRYMARK] Rebuild one execution report Take one actual or hypothetical multi-fill order. List every execution price and quantity, calculate the weighted average, confirm filled and leaves quantity, then recompute P&L from the contract specification.
Use an execution checklist before calling the fill wrong
Record the exact product and contract month.
Record buy or sell side, order type, limit or trigger fields, original quantity, and time in force.
Record every execution ID, execution price, execution quantity, and timestamp with time zone.
Calculate the weighted average independently and compare it with the broker display.
Confirm cumulative filled quantity, leaves quantity, cancellation or replacement acknowledgements, and final order status.
Check the product's current matching rules and the market-data source used for any screenshot or ladder comparison.
If the result still differs, compare the exchange or broker order report before assuming the average price is an arithmetic error.
This guide explains execution reconciliation. It does not predict a fill, guarantee displayed liquidity, or recommend a particular order type.
Common questions
Is it normal for one futures order to fill at several prices?
Yes. A larger order can consume compatible quantity at multiple price levels, and the book can change while matching occurs. The exact result depends on the order type, price boundary, available liquidity, and product rules.
How do I calculate a futures average fill price?
Multiply each execution price by the contracts filled there, add those values, and divide by total filled contracts. Keep fees outside the raw exchange-price average unless your broker explicitly labels a net-cost figure.
Why is my broker's average fill price different from my simple average?
A simple average gives every distinct price the same weight. The correct execution average weights each price by the number of contracts filled there. Display rounding can also create a small visible difference.
Does a partial fill mean the rest of my futures order was canceled?
Not necessarily. The remainder can still be working or can later be canceled, expired, or otherwise changed according to the order's time in force and final status. Check leaves quantity and the final acknowledgement.