What is a markout in trading? How to check your fills

A markout is the price move after your fill. Learn to work it out, what it says about being picked off, how fees count, and what a normal Bitcoin hour is.

A markout is the price move after your fill, measured a set time later. To check your fills, compare each fill price with the price a few seconds or minutes later, flip the sign for sells, take off the fee, and look at the average over many fills. For scale: on Binance, Bitcoin's BTCUSDT perp moved a mean of 0.42% per hour on weekdays and 0.29% on weekends (ignoring direction), across 44,544 weekday and 17,814 weekend hourly moves from September 8, 2019 to October 20, 2026.

A weekday hour moved more than eight times the 0.05% fee we use as an example below.

These are hourly averages from past data, not a forecast. A markout over seconds or minutes is a smaller window, and we did not measure it.

What is a markout?

A fill is a trade that actually happened on your order. A markout looks at the price some time after that fill and asks: did the price move with you or against you?

For a buy, the markout is the later price compared with your fill price, in basis points. A basis point (bp) is one hundredth of one percent, so 100 bp is 1%. For a sell, you flip the sign: a lower later price is good for you.

  • A positive markout means price moved your way after the fill.
  • A negative markout means price moved against you.

You pick the time yourself: 1 second, 30 seconds, 5 minutes. Each choice answers a slightly different question.

Here is the math. For a buy, the markout is (later price ÷ fill price − 1) × 10,000. Say you buy and 60 seconds later the price is 4 bp lower. Your markout is −4 bp. If you had sold instead, the same drop would be a markout of +4 bp.

A buy fill and its markout at 1 minute and 5 minutes: price rises or fallsIllustration, not real prices. Two panels share a time axis with the fill at the left and marks at 1 minute and 5 minutes after it; the 5-minute mark is drawn five times as far from the fill as the 1-minute mark. In the first panel the price line rises after a buy fill, so the price at both marks is above the fill price and the markout is positive. In the second panel the price falls, so the markout is negative. For a buy, the markout is the later price divided by the fill price, minus 1, times 10,000 basis points. A basis point is one hundredth of one percent. For a sell the sign flips.ILLUSTRATION / MARKOUTMarkoutThe price move after your fill, measureda set time later.Positive markoutBuy fills, then price rises.fill+1 min+5 minmarkoutNegative markoutBuy fills, then price falls.fill+1 min+5 minmarkoutHOW IT IS SCOREDBuy: later price ÷ fill price − 1In bp: × 10,000. 100 bp = 1%.Sell: flip the sign.Illustration: invented prices, no real data.comparand.xyz
A buy fill and its markout at 1 minute and 5 minutes: price rises or falls

Why does a markout show you were picked off?

Say you leave a buy order resting on the book: a maker order, one that waits for someone else to trade with it. A taker order trades right away at the price on offer.

Now suppose a trader who knows the price is about to fall sells into your resting buy. You get filled, and the price drops. That is being picked off: you traded with someone who had better timing than you.

A single negative markout proves nothing. Prices wobble. But if the average markout of many resting-order fills is negative, you may often be filled just before moves against you.

How do fees enter?

A fee is a cost you pay no matter where the price goes. It is a fixed number of bp on each fill.

Here is an example with a 0.05% fee, which is 5 bp. If the price moves your way by 3 bp after a fill, you are still behind by 2 bp. If it moves your way by 30 bp, the fee is a small part of it. So take the fee out before you judge a fill.

That is why the markout tool takes a fee in bp for every fill. To see how fees add up over a whole trading rule, read how trading fees change a backtest.

How do you check your own fills, step by step?

  1. Export your fills: coin, time, price, side (buy or sell) and fee.
  2. Pick one horizon, for example 60 seconds.
  3. For each fill, get the price at that later time from the same exchange you traded on.
  4. Work out the markout, flip the sign for sells, and take off the fee.
  5. Split the results: maker fills apart from taker fills, and busy hours apart from quiet ones.
  6. Look at the average and at how many fills it uses. An average over a handful of fills can swing a lot by chance.

How big is a normal price move to compare with?

A markout means more when you know what a typical move looks like. Here are measured moves for Binance's BTCUSDT perp. A perp is a futures contract that never expires.

Each row is the mean absolute hourly move: the size of the move between two hourly closing prices with the plus or minus sign removed. The data runs September 8, 2019 to October 20, 2026.

How big is a normal price move to compare with?
Group Mean hourly move Hourly moves counted
Weekdays (Monday to Friday) 0.42% 44,544
Weekends (Saturday and Sunday) 0.29% 17,814
Saturday only 0.27% 8,904
Sunday only 0.32% 8,910

The time of day matters too. Across all days, the quietest UTC hour (the world clock hour) was 04:00, with a mean move of 0.30%. The busiest was 14:00, at 0.54%. UTC is the shared world clock; we explain how to turn it into local time in which hours move crypto the most.

So if you compare a markout from a quiet Saturday with one from a busy weekday afternoon, you are comparing different market speeds. A fair check groups your fills by time of day first. The weekend gap itself is covered in is crypto more volatile on weekends.

Average Bitcoin hourly move for each UTC hour, against a 0.05% example feeMean absolute one-hour move of the Binance BTCUSDT perpetual by UTC opening hour, 00:00 0.44%; 01:00 0.40%; 02:00 0.36%; 03:00 0.33%; 04:00 0.30%; 05:00 0.31%; 06:00 0.32%; 07:00 0.33%; 08:00 0.37%; 09:00 0.34%; 10:00 0.34%; 11:00 0.34%; 12:00 0.41%; 13:00 0.47%; 14:00 0.54%; 15:00 0.50%; 16:00 0.44%; 17:00 0.41%; 18:00 0.40%; 19:00 0.40%; 20:00 0.41%; 21:00 0.39%; 22:00 0.38%; 23:00 0.37%. Quietest hour 04:00 at 0.30%, busiest 14:00 at 0.54%. A dashed line marks the 0.05% example fee on the same zero-based scale; every hour is above it. Based on 62,358 hourly price changes.BITCOIN / HOURLY MOVE SIZE0.30–0.54%Mean size of Bitcoin's one-hour move byUTC hour, direction ignored. Quietesthour 04:00, busiest 14:00.Mean absolute move per hour0.0%0.2%0.4%0.6%0.30%0.54%000408121620UTC hour (opening hour of each bar)0.05% example fee (5 bp)Source: Binance BTCUSDT perp hourly bars,Comparand archive. 62,358 hourly moves, Sep2019 to Oct 2026, every day.comparand.xyz
Average Bitcoin hourly move for each UTC hour, against a 0.05% example fee

Does the price source change a markout?

Yes. A markout needs a price at the later time. If you pull that price from a different exchange than the one you traded on, the two prices may not agree.

We matched hourly closing prices of Coinbase's BTC-USD spot market with Binance's BTCUSDT perp, for 62,342 hours. A positive gap means Coinbase was higher.

Does the price source change a markout?
Measure Gap in bp
Median 3.26
5th percentile −12.36
95th percentile 15.05

The median is the middle result. About one hour in twenty was below the 5th percentile, and one in twenty above the 95th. For a close look at those gaps by year, see why Bitcoin price differs between exchanges. Yearly medians ran from −1.01 bp in 2026 (a partial year) to 5.33 bp in 2025.

Part of this gap is a unit difference (US dollars versus USDT, a dollar-linked token) and part is spot versus perp. It is not a profit you could take. But it shows the size of the error you can add by mixing price sources: a few bp at the middle, and more than a 5 bp fee at the tails.

What does this data not show?

We did not measure any real fills. We did not measure markouts at seconds, minutes, or any horizon shorter than one hour. We cannot say what a typical markout is for makers or takers, or how much a trader loses to being picked off.

How we measured this

For the move table, we used public Binance hourly bars for the BTCUSDT perp. For each hour we took the percent change from the previous hourly close, dropped the sign, and averaged by weekday and UTC hour. The first bar had no earlier close and was left out.

For the gap table, we matched Coinbase BTC-USD and Binance BTCUSDT closes at the same UTC time and computed 10,000 × (Coinbase close ÷ Binance close − 1). Missing bars were left missing, not filled. Both tables describe past history on a selected market and include no fees, spreads or funding. The markout steps above are an explanation, not a measured result.

Try this in Comparand

Ask your connected AI agent: "Here are my fills from Hyperliquid: coin, time in milliseconds, price, side and fee in bp. Show the markout of each at 60 seconds."

  • hl_fills_markout returns fill markouts for the fills you pass in. Each fill needs a coin, a time in milliseconds, a price, a side and a fee in bp. You choose the horizon in seconds. A call takes up to 5,000 fills.
  • It costs $0.30 per 1,000 fills from your credits, with a minimum of $0.02 per call. Each answer includes a meter block that shows what the call cost.

To see what a wallet traded, ask: "Show the fills for this Hyperliquid wallet address." Your agent can then pass those fills, with your fee in bp, to the markout tool.

  • hl_wallet looks up one wallet address, read live from Hyperliquid's public API. It returns fills by default, or its state or its orders. It costs $0.03 per call from your credits.

Every answer also carries a prov block that records where its data came from. See the tool docs to connect your agent, check pricing, or try 3 coins free to explore past charts. These are past cases, not a forecast.

The short version

  • A markout is the price move after your fill, in bp, measured at a time you choose.
  • A negative average markout on many resting orders can be a sign of being picked off.
  • Fees come off the markout: a 0.05% fee is 5 bp.
  • Binance BTCUSDT moved a mean of 0.42% per hour on weekdays and 0.29% on weekends, with quiet and busy hours in between.
  • Mixing price sources can add a gap of a few bp at the middle and up to 15.05 bp at the 95th percentile.

Questions people ask

What is a markout in trading?

A markout is how far the price moved after one of your fills, measured a set time later and written in basis points (one hundredth of one percent). For a buy it is (later price ÷ fill price − 1) × 10,000; for a sell, flip the sign. A negative markout means the price moved against you.

What does a negative markout tell you?

It means price moved against you after the fill. If this happens on most of your resting orders, it can mean other traders hit your orders just before a move. That is often called being picked off.

How do fees change a markout?

Take the fee off the markout. A fee of 0.05% is 5 basis points, so a fill with a markout of +3 basis points is still 2 basis points behind after that fee.

How large is a normal Bitcoin move to compare with?

On Binance, the BTCUSDT perp averaged a 0.42% move per hour on weekdays and 0.29% on weekends, ignoring direction, from September 2019 to October 2026. That is an hourly figure. A markout over seconds or minutes covers much less time, and we did not measure it.

Which price should I use to measure a markout?

Use one source and keep it the same. In our test, Coinbase BTC-USD hourly closes were a median 3.26 basis points above Binance BTCUSDT, with the middle 90% of gaps from -12.36 to +15.05 basis points. Mixing sources can add a gap about as large as a fee.

Read next