The thing I keep coming back to about range contracts is that most people trade them one bucket at a time, and that is the whole problem. You see a market for CPI coming in between 2.9 and 3.1 percent, you have a view, you buy or fade that single line, and you move on. But the exchange has usually listed the neighboring buckets too. Below 2.7, 2.7 to 2.9, 2.9 to 3.1, and so on up the scale. Once you look at all of them at once instead of one at a time, you are not staring at a handful of separate bets anymore. You are staring at a probability distribution for the underlying variable, drawn out for you by the crowd, and you can read it the same way you would read your own model output.
That reframing changes what you are hunting for. You stop asking whether a single market is cheap. You start asking whether the shape is wrong.
Turning the ladder into a distribution
Each bucket price is roughly the market's probability that the outcome lands inside that range. A contract that settles at one dollar if CPI is between 2.9 and 3.1 trading at 22 cents is the crowd saying there is about a 22 percent chance of that. Line up every bucket on the same scale and you have a discrete probability mass function. The buckets are the bins, the prices are the heights of the bars.
A few mechanical things to get right before you trust the picture. Prices on these venues include the spread, so use the midpoint between bid and ask, not the last trade, which can be stale or one-sided. Strip out fees if you are going to compare against real edge later. And be honest that a yes price is not exactly a probability. It is a probability under the market's risk preferences plus whatever premium sits in the spread. For most reading purposes that distinction is small, but it stops being small when you are deciding whether a two-cent gap is worth trading.
Coherence checks come first
Before you compare the implied distribution to anything, make it internally consistent, because it usually is not. The buckets on a well-designed market are mutually exclusive and collectively exhaustive, which means their probabilities have to sum to one. In practice they sum to something like 1.04 or 1.07, because every bucket carries a bit of spread and the overpricing stacks up across the ladder. That excess is the vig. You normalize it out by dividing each bucket price by the total, which gives you a clean distribution that actually integrates to one.
Here is the short checklist I run before I believe a shape:
- Do the normalized buckets sum to one after you strip the overround. If the raw sum is way above one, the spreads are wide and every edge you think you see is smaller than it looks.
- Are the tails priced at all. Illiquid outer buckets often sit at a penny bid with nothing on the offer, which quietly hides real tail mass and distorts everything to their inside.
- Does the cumulative version behave. Convert the buckets into a cumulative distribution, meaning the probability of landing at or below each threshold, and confirm it only ever goes up as you move across the scale. If the cumulative curve dips backwards anywhere, two adjacent buckets are mispriced relative to each other and you have found something before you have even opened your model.
That last check is the one that pays. A backwards step in the cumulative curve is a pure arbitrage in miniature. It means you can construct a spread across those two buckets that has to make money regardless of where the number lands, spread and fees permitting. Most of the time the gap is too small to clear costs, but the check is free and it also tells you which part of the ladder the market is being sloppy about.
Finding the mispriced bucket, not the mispriced market
Now overlay your own distribution. You need a view on the underlying that produces a full shape, not a point forecast. If your CPI model spits out a single number, that is not enough to trade a distribution, because the whole game is in the spread and skew around that number. Give your estimate an honest standard deviation, decide whether you think the risk is symmetric or leans one way, and lay your implied bars over the market's bars.
What you are looking for is the single bucket where the disagreement is largest relative to what it costs to express. Almost always the market has the center roughly right, because the center is where everyone is looking and the liquidity is deepest. The edge lives in the shoulders and the tails, where fewer people are paying attention and the pricing is lazier. You might agree with the crowd on the most likely outcome exactly while thinking they have far too little mass in the bucket just above it. That is a trade you would never have found looking at the headline market, because the headline market was fairly priced. The specific bucket was not.
A rule of thumb I use: rank every bucket by your probability minus the market's probability, in cents, then divide by the round-trip cost to trade that bucket. Trade the top of that list, not the bucket with the biggest raw disagreement. The biggest raw gap is often a dead tail bucket where the spread eats everything, and the real opportunity is a fat shoulder bucket with a smaller gap but tight, tradable pricing.
The failure modes worth naming
The one that has cost me the most is treating a thin bucket's midpoint as gospel. If the offer is a penny and the bid is empty, the midpoint is fiction, and your implied distribution inherits that fiction as confident tail mass that is not really there. When liquidity is that bad, mark the bucket as unknown rather than pretending you have a number.
The second is forgetting that the settlement definition is the whole trade. Whether a print rounds, which release the market settles against, how a revision is handled. These decide your payout, and they vary by venue. Read the rules for the exact contract before you map any of it to your model, because your model is estimating the true underlying while the contract pays on a specific measured proxy, and the two can differ by exactly enough to matter.
The third is trusting the shape near an event that will reprice everything at once. Right before a release, the whole ladder gets sticky and quotes lag. The distribution you read in that window is a snapshot of stale opinion, not a live one, and any edge you spot is usually just latency.
None of this requires fancy math. It is normalization, a cumulative check, and an honest overlay of your own uncertainty. But it moves you from betting on a number to pricing a whole shape, and once you have seen the ladder as a distribution it is genuinely hard to go back to trading one bucket at a time.