Average Fill Price: 6 Steps to Check Your Execution

Average fill price answers a precise question: what price per unit did the selected executions produce? Weight each price by its filled quantity, exclude unfilled orders, and keep fee-inclusive cost separate from the raw execution price.

Average fill price answers a precise question: what price per unit did the selected executions produce? Weight each price by its filled quantity, exclude unfilled orders, and keep fee-inclusive cost separate from the raw execution price.

A weighted average, not an average of rows
3 × 100First fill: value 300
2 × 105Second fill: value 210
102Total value 510 ÷ total quantity 5

Dividing the two prices by two gives 102.5. That is an unweighted price average and does not describe these quantities.

BTKWIN.COM · EDUCATIONAL EXAMPLE

The average fill price formula

Multiply each fill’s unit price by its quantity to obtain its value. Add the values and divide by the total quantity filled. If an export already provides a value field, check its definition and whether it includes fees before using it. The final unit should be quote currency per unit of the asset, not a mixture of unrelated currencies.

For three units filled at 100 and two at 105, the values are 300 and 210. Their sum is 510 for five units, so the weighted average is 102. Check it backwards: five units multiplied by 102 returns the value of 510. This is an arithmetic reconciliation; it does not depend on the asset’s current price or market direction.

FillQuantityUnit pricePrice × quantity
First3100300
Second2105210
Total5Average 102510

The number of fill rows does not determine their weight

Suppose the second fill is shown as twenty rows of 0.1 unit at 105 rather than one row of two units. Nothing economic has changed: two units still cost 210. A simple average across the twenty-one displayed prices would give 105 far more weight just because the record was split into smaller rows.

Always use total value and total filled quantity. Keep fill identifiers so you can distinguish independent executions from repeated updates to one execution. If you copy an order screen and also import an export for the same period, do not combine them until duplicates have been removed. Duplicating rows can distort both the quantity and the average.

Partial fills: exclude the quantity that never executed

Imagine the original order requested ten units but only the five units above executed. The average remains 102 for those five units. Dividing 510 by the ten requested units and reporting 51 would treat the unfilled portion as a free purchase. An order request is not evidence that you acquired the requested quantity.

If the other five units later execute at 104, they add value of 520. The completed order totals 1,030 for ten units and the final average becomes 103. A previously recorded partial average of 102 was not necessarily wrong; it described an earlier stage. Record the calculation time and order status when comparing partial and final figures.

Combining two partial averages also requires quantity weights. Five units averaging 102 and five averaging 104 produce 103 because the quantities happen to be equal. One unit averaging 102 and nine averaging 104 would not give the same result. Averaging two averages without their associated quantities is not a general reconciliation method.

Fees change all-in cost, not the historical fill price

Add a hypothetical cash fee of 1.02 in the quote currency to the 510 purchase while retaining all five units. Total cash outflow is 511.02 and all-in cost per unit is 102.204. The raw average execution price remains 102. Both figures are useful, but they answer different questions and should have different labels.

If instead 0.01 unit of the acquired asset is deducted and cash outflow remains 510, net quantity is 4.99. Cost per net unit is 510 ÷ 4.99, approximately 102.2044. In that net-cost model, do not also add the fee’s converted value to the numerator if its effect has already been captured by reducing the denominator.

A fee paid in a third asset needs its own quantity and unit. If you express it in the quote currency, document the conversion price and time. Do not silently use today’s price to describe a historical expense. Keep a later withdrawal charge separate from the commissions on the order’s fills.

One order is not the whole holding

Suppose you already held five units bought for a raw cost of 450 and then bought the five units costing 510. The new order’s average fill price is 102. The combined raw purchase average is 960 ÷ 10, or 96, assuming no other movements. The difference between 96 and 102 reflects a different scope rather than an arithmetic error.

Earlier sales, transfers, rewards or asset-denominated fees make a holding-cost calculation broader than a single-order calculation. Define the method and use the complete records required for that purpose. Do not turn one order’s average into an accounting or tax treatment for an entire portfolio.

A current valuation is another measure: current quantity multiplied by a current valuation price. That can differ from the acquisition cost even when both calculations are correct. A market chart does not rewrite a price at which an older execution took place.

Choose records that answer the question

To reconstruct execution price, obtain the pair, side, price, filled quantity and order identifier. To reconcile the actual balance change and fee currency, you may also need account ledger entries. A trade screen and a cash or asset ledger are related records, but they do not necessarily display the same measures.

When working with an API export, read the units rather than relying on a field name. The Coinbase List Fills documentation describes price, size, order and trade identifiers and a size-in-quote indicator. Check the product’s definitions before assuming that every field called size means base-asset units.

Why your figure may differ from an app

Start with the selected scope: one order, all purchases that day, or a whole holding? Check the pair and side next. Values from purchases in two quote currencies cannot simply be added before choosing a common measure. Combining buys and sells into one average can also produce a number that usefully describes neither.

Check completeness. A download may cover only a limited period, and an API may return the first page of a longer result set. A response without an error is not proof that all relevant fills are present. Use the documented date filters and pagination, then reconcile the total filled quantity with the order summary.

Keep full precision during calculation and round for display at the end. Two one-unit fills valued at 10.004 each total 20.008 and average 10.004. Rounding each value first to 10.00 produces 20.00. A small difference may come from precision; a large difference should first prompt checks of rows, units, fees and duplication.

A six-step reconciliation worksheet

  1. Define the order ID, pair, side and time range.
  2. Collect actual fills and remove duplicates or cumulative updates.
  3. Record quantity, price and value with their units.
  4. Divide total values by total filled quantities.
  5. Reconcile fees separately, distinguishing cash outflow from net units received.
  6. Match final quantity and value to the completed records, then round the displayed result.

Test the worksheet by splitting the three-unit fill at 100 into three identical one-unit rows. The example’s average must remain 102. If the result changes simply because there are more rows, the formula is giving row count a weight it should not have.

An accurate average describes execution; it does not prove the purchase was well timed or suitable. Use it to reconcile records and understand costs. If evaluating execution quality, define an appropriate benchmark and timestamp separately.

Continue reading

English content and examples reviewed: 27 October 2026. Read the Arabic edition.

تامر طعمه
تامر طعمه
Articles: 332