---
title: What is a markout in trading? How to check your fills
url: https://comparand.xyz/blog/trading-markouts-explained
description: 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.
updated: '2026-10-21'
category: How-to
---

# 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.

*Diagram: Show a buy fill on a price line, with arrows to the price 1 minute and 5 minutes later; one path goes up (positive markout), one goes down (negative markout).*
## 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](https://comparand.xyz/blog/crypto-trading-fees-backtest-impact).

## 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.

| 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](https://comparand.xyz/blog/most-volatile-hours-crypto-utc).

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](https://comparand.xyz/blog/crypto-weekend-volatility).

*Diagram: Show mean absolute hourly Bitcoin move for each UTC hour of the day as bars, with a dashed line at the 0.05% fee for comparison.*
## 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.

| 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](https://comparand.xyz/blog/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](https://comparand.xyz/docs) to connect your agent, check [pricing](https://comparand.xyz/pricing), or [try 3 coins free](https://comparand.xyz/try) 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.
