· MARKET DATA
How CME MDP 3.0 delivers market data
CME MDP 3.0 sends numbered binary packets over two identical multicast feeds. One sequence of ES packets shows how a gap is filled and how the book recovers.
SHORT ANSWER
CME MDP 3.0 is the feed CME Globex uses to publish futures and options data. It sends binary messages in numbered packets over UDP multicast, on two identical feeds called A and B. A receiver uses the sequence numbers to spot a missing packet, takes it from the other feed, and rebuilds the book from a snapshot feed if both lose it.
CME MDP 3.0 delivers market data as numbered binary packets sent over UDP multicast, twice, on two identical feeds. MDP 3.0 is the market data platform that CME Group uses for its CME Globex futures and options. Each ES price you see on a heatmap, DOM or tape comes from a message on this feed. This note follows a short run of packets and shows how a receiver keeps its copy of the book correct. The note on MBP and MBO, two ways to describe the same book covers the two book formats the feed carries.
What the feed sends
MDP 3.0 sends messages in Simple Binary Encoding, or SBE. SBE is a compact binary format that a program can read without converting text. CME groups products into channels, and each channel carries one set of instruments, such as the equity index futures.
Each channel has three kinds of feed.
- The incremental feed sends every change as it happens. That covers book updates, trades, statistics such as the session high and volume, and changes in trading status.
- The market recovery feed repeats snapshots of the book on a loop.
- The instrument definition feed lists the contracts in the channel, with tick sizes and other settings.
Each kind comes as a pair, feed A and feed B, with the same packets on both.
What a packet holds
A packet starts with a sequence number and a sending time. The sequence number goes up by one for each packet on a channel. Inside the packet sit one or more messages. A book update names the instrument, the side, the price, the level and the new size. A trade summary reports a trade with its price, size and aggressor side, which is the side of the order that crossed the spread.
For the market by price book, CME sends ten levels for most futures. The market by order data lists each resting order with its own ID. The note on why heatmap depth stops at ten levels on some feeds shows what that ten level limit does to a chart.
A run of ES packets
Here is an invented run of packets on the incremental channel that carries ES. All numbers are an example.
| Sequence | Arrived on A | Arrived on B | Content |
|---|---|---|---|
| 80,401 | Yes | Yes | Bid at 5,050.00 changes from 160 to 172 |
| 80,402 | Yes | Yes | Trade of 5 at 5,050.25, buyer aggressor |
| 80,403 | No | Yes | Offer at 5,050.25 changes from 45 to 40 |
| 80,404 | Yes | Yes | New bid level at 5,049.75 with 88 |
| 80,405 | Yes | No | Trade of 2 at 5,050.00, seller aggressor |
A receiver reads both feeds and keeps the first copy of each sequence number it sees. This step is called arbitration. Feed A lost 80,403 and feed B lost 80,405. Arbitration takes 80,403 from B and 80,405 from A, so the receiver applies all five packets in order and its book stays correct.
If the receiver had applied 80,404 without 80,403, its book would show 45 contracts at 5,050.25 instead of 40. Every later change at that price would start from the wrong size.
When both feeds lose a packet
Now suppose packets 80,410 to 80,412 never arrive on either feed. The receiver sees 80,409 and then 80,413. It knows three packets are missing, and it cannot know what they changed. It marks the book as unreliable and keeps the new incremental packets in a buffer.
Next it reads the market recovery feed. Each snapshot carries the sequence number of the last incremental packet it includes. Suppose the next ES snapshot says it includes everything up to 80,415. The receiver replaces its book with the snapshot, drops the buffered packets up to 80,415, and applies 80,416 onward. The receiver waits for one snapshot, and its book is correct again from 80,416.
A platform that skips this step can show sizes on the DOM that no longer exist on the exchange.
Where the vendor fits
Most retail platforms do not read MDP 3.0 themselves. A data vendor such as Rithmic, CQG or dxFeed receives the CME feed, runs the arbitration and recovery, and sends the result to your platform in its own format. The vendor also decides how much depth to pass on. The costs page lists the data fees each platform quotes, and the glossary defines the book and depth terms used here.
A check you can run
Open the DOM in two platforms on the same contract during a quiet minute. Pick one bid price and compare its size on both screens every few seconds. If the sizes differ for more than a moment, one of the two platforms is receiving data late or has missed an update.
Questions
What is CME MDP 3.0?
MDP 3.0 is CME Group's market data platform for CME Globex. It publishes book updates, trades and statistics as binary messages over UDP multicast.
Why does CME send two identical feeds?
UDP multicast does not resend lost packets. CME sends every packet on feed A and feed B, so a receiver that misses a packet on one feed can usually take it from the other.
What happens if a receiver misses a packet on both feeds?
It cannot trust its book for that instrument. It reads the market recovery feed, which repeats snapshots of the book, then applies the incremental messages that came after the snapshot.
Do retail platforms connect to MDP 3.0 directly?
Usually not. A data vendor such as Rithmic, CQG or dxFeed receives the CME feed and passes the data to your platform in its own format.
Educational content about market data and charting software. It is not trading or investment advice. Trading involves risk.