The thing that trips people up about futures is that a position you never touch still bleeds. You buy a contract, you hold your view, price does exactly what you thought it would, and somehow the return you booked is smaller than the move on the screen. The gap is the roll. Every futures contract expires, and if you want to keep the exposure past that date you have to close the expiring one and open the next month. The price you pay to do that is almost never zero, and over a year it adds up to a number that quietly changes whether a strategy is worth running at all.
I ignored this for longer than I should have. When I was mostly trading spot and perps, roll was somebody else's problem. Then I started backtesting trend and carry ideas on quarterly futures, and the same signal that looked great on the underlying spot price looked mediocre once I forced it to actually roll every contract. Nothing about the signal changed. The mechanics of staying in the trade ate the edge.
What the roll actually is
A futures contract is an agreement to transact at a set date. As that date approaches, the contract stops being useful for anyone who wants ongoing exposure, so you sell it and buy a further-dated one. The two contracts trade at different prices, and that difference is the whole story.
If the further-out contract is more expensive than the one you are leaving, the market is in contango. You are selling low and buying high every time you roll, so the roll is a cost. If the further-out contract is cheaper, the market is in backwardation, you sell high and buy low, and the roll pays you. That credit is roughly what people mean when they talk about a positive carry or a roll yield.
The important part is that this has nothing to do with your directional call. You can be dead right on the direction of the underlying and still lose to the roll if you are long a contango market, or pick up a tailwind you did not earn if you are long a backwardated one. The move in the underlying and the shape of the futures curve are two separate engines, and your realized return is both of them stacked together.
Computing the annualized drag
You do not need a model to size this. You need two prices and the number of days between them. Take the price of the contract you hold and the price of the next contract you would roll into. The percentage difference between them is your roll return for that one roll. Then you scale it to a year based on how far apart the two contracts settle.
The rough version I use in my head:
- Take the near contract price and the next contract price.
- Roll return equals (near minus next) divided by near. Positive means backwardation is paying you, negative means contango is charging you.
- Count the calendar days between the two settlement dates.
- Annualize by multiplying the roll return by 365 divided by that day count.
So if the next contract is about half a percent more expensive and the contracts are three months apart, you are looking at roughly a half percent cost every quarter, which annualizes to something like two percent a year of drag before you have made a single dollar on direction. That is the number that has to clear your hurdle. If your trend strategy historically earns mid-single digits a year and the curve is quietly charging you two of those points, half your edge is gone to a mechanic you were not even watching.
A couple of honest caveats. This assumes the curve shape holds, which it does not always do, so treat the annualized figure as a run-rate estimate rather than a promise. And the front of the curve is usually steeper than the back, so the drag you measure between the first two contracts tends to overstate what you would pay rolling further out. Measure it where you actually plan to hold.
Why timing crowds around the same dates
Here is the part that turns a static cost into something you can occasionally play. Most large, rules-based holders roll on a schedule. Index products and many commodity funds roll during a known window each period, often a handful of business days in a predictable stretch of the month. Everyone reads the same methodology, so a wall of selling in the expiring contract and buying in the next one shows up at roughly the same time.
When flow is that concentrated and that predictable, the curve tends to steepen right into the window as front-running traders lean on it, and it can relax afterward. If you are a discretionary holder with no rule forcing you into that window, you are not obligated to roll into the crowd. Rolling a few days early or a few days late, away from the concentrated flow, is one of the few free-ish improvements available on a futures position. It is not enormous, but on a strategy that rolls twelve times a year, small per-roll savings compound into something you notice.
The failure mode I have watched people walk into is rolling on autopilot at the exact moment the largest, most mechanical participants are transacting, then wondering why their fills are consistently a touch worse than the mid they saw an hour earlier. They are paying a small crowding tax on top of the structural roll cost, and because it hides inside an already-expected roll, it never gets attributed.
Folding it into strategy expectations
The practical move is to stop treating roll as an execution afterthought and start treating it as a line item in the expected return, right next to fees and slippage. Before I deploy anything on futures I want three numbers written down. The strategy's expected return from the signal alone. The annualized roll drag or credit given the current curve shape. And the direction of that carry relative to my position, because a trend strategy that tends to be long in persistently contango markets is fighting a headwind that a carry strategy would be collecting.
That last point is worth sitting with. Carry and trend can sit on opposite sides of the same roll. A carry strategy is often explicitly harvesting backwardation, so the roll is the trade. A trend strategy does not care about the curve, so it takes whatever the roll gives it, good or bad, and in markets that are structurally contango it takes the bad side more often than not. Two strategies, same instrument, and the roll is a paycheck for one and a tax on the other.
When I am pressure-testing an idea, I run the backtest on the actual rolled contract series rather than the spot underlying, so the drag is baked into the equity curve instead of appearing as a mystery gap between paper and live. We built the backtesting in Blockcircle to use rolled series for exactly this reason, because a signal that only works on a frictionless spot price is not a signal you can trade. If a strategy still clears its hurdle after the roll is subtracted honestly, it has a real chance of surviving contact with a live account. If it only worked because the backtest quietly assumed a free roll, better to find that out now than three months and twelve rolls later.