CVD Inside the Order Flow Dynamics Desk: Who Led the Session, and When Price Stopped Agreeing
On NASDAQ on 22 August 2023, sellers crossed the spread for more AAPL volume than buyers did from the open to the close, and AAPL’s mid price still finished higher.
A price chart tells you where the market traded. It does not tell you who made it trade there. Every print has a taker, the order that crossed the spread and executed against a resting one, and the side of that taker is the most direct record of aggression a feed carries. Cumulative Volume Delta (CVD) adds it up over the session.
In plain terms, CVD is the running score between buyers who pay the offer (the ask) and sellers who hit the bid. When it climbs, buyers are paying up to trade. When it falls, sellers are. That is why traders watch it: it shows whether a move is being paid for, or only quoted.
CVD is one of the three tiles on the Order Flow Dynamics Desk in VisualHFT Terminal, the surface that answers one question: who is pressing the market, and how hard? Last week we covered its book-side partner, Order Flow Imbalance. This post is about CVD: what it counts, how to read its sign and its slope, and what it means when CVD and price stop moving together.
1. What CVD counts
CVD is buy-taker volume minus sell-taker volume, added up since a start point. A trade where the buyer crossed the spread adds its size. A trade where the seller crossed subtracts it. The number is signed, in the venue’s own trade-size unit: shares on a stock, bitcoin on BTC/USD.
A worked example. Three trades print: 500 shares where the buyer lifted the offer, 200 shares where the seller hit the bid, and 100 shares the venue reports with no taker side. CVD rises by 500 minus 200, a net +300. The 100 shares go to the Side unknown bucket below.
The side comes from the venue’s own report and nothing else. CVD never guesses. A trade the venue reports without a taker side goes to a separate Side unknown bucket and adds nothing, so the number is built only from trades whose aggressor is on record. The live status shows the accounting: buy, sell and side-unknown volume, and the share of volume with a known side.
That record is worth reading. On 54,040 trades in seven held-out NASDAQ symbols (22 August 2023, 09:45 to 15:50 ET), the taker side of a trade called the direction of the mid change from one trade to the next 79.7% of the time, more than 40 points ahead of a last-tick reversal rule. CVD adds that record up over the session.
2. Session aggression: the sign and the slope
The tile shows the session total so far, green above zero and red below. Two readings come off it, and they answer different questions.
The sign says who has led since the start. A positive CVD means more volume traded with the buyer as the taker than with the seller, over the whole session. It is the session’s balance of aggression in one number.
The sign can flip. At 09:32:52, almost three minutes after the open, NFLX’s CVD read −744. Twelve seconds later it read +3,561, and the mid had lifted 1.355.
The slope says who is leading now. Rising means buy-taker volume is being added faster; falling means sell-taker volume is. CVD can fall while it is still positive: buyers led the day, sellers are leading this minute. The chart makes the slope readable, one point per closed bar (1 second by default), so a burst of selling inside a buyer-led session shows as a bend in the line, not a change of colour.
NFLX showed it on the same replay. From 12:05:22 to 12:16:50 the mid fell 1.76, from 411.565 to a low of 409.805, and CVD fell from +12,708 to +9,236. It dipped and stayed above zero, and NFLX’s session CVD ended at +14,877.
A burst shows as one step. At 15:59:35, 25 seconds before the close, AAPL’s CVD tile dropped from −363,778 to −377,299 in about two seconds: a net 13,521 shares sold into the bid.
On the NASDAQ replay of 22 August 2023, AAPL’s CVD tile read −373,538 shares a second before the 16:00 close: over the session, sellers took more. The mid still finished higher: 176.99 one second after the open, 177.22 at 16:00. The sign told you who led. It did not tell you the price would follow, and that gap is the subject of the next section.
3. When CVD and price disagree
The CVD chart plots each bar’s value against the mid price at that bar’s last trade, on one time axis. That is what makes the most-used CVD reading visible: divergence.
- Price makes a new high, CVD does not. The mid is above its last high, but the taker flow behind it is weaker than it was at that high. Price got there with less buying from takers.
- Price makes a new low, CVD does not. The mid is below its last low, while sellers are taking less than they did at that low, or buyers are already taking more.
Here is one from the same replay. At 09:39:36 AMZN’s mid reached 135.025 with CVD at +6,230. Eight minutes later, at 09:47:50, the mid made a higher high at 135.105, and CVD stood at −42,505. The price climbed past its earlier high while CVD fell 48,735 between the two highs: the new high came with takers selling.
The image at the top of this post is the same pattern on AAPL. At 15:46:14 the mid stood at 177.275, above its 15:38:27 high of 177.205. CVD read −534,701 against −504,408 at that high: takers sold 30,293 more shares than they bought while the price rose.
The mirror case, on NFLX. At 10:27:47 the mid made a low at 410.175 with CVD at +14,729. At 10:34:18 the mid fell to 409.055, 1.12 lower, and CVD read +16,257, which is 1,528 higher. AMZN did the same at 11:33:58: the mid fell to 135.015, 0.085 under its 11:26:30 low, while CVD read −22,602 against −33,715, which is 11,113 higher.
Price and CVD also agree, and that is a reading too. From 10:47:03 to 10:57:04 AMZN’s mid rose 0.61, from 134.665 to 135.275, and CVD rose 28,554 (−91,911 to −63,357): takers bought the rally. From 12:56:39 to 13:02:00 AAPL’s mid fell 0.485, from 177.260 to 176.775, and CVD fell 32,609 (−395,274 to −427,883): takers sold the decline.
A divergence tells you what happened, not the cause. A price can rise with weak taker buying because offers were pulled, because a resting buyer stepped up the bid, or because sellers simply stopped. That is where the other two tiles on the Desk come in.
4. Reading a divergence with the rest of the Desk
Delta of Trades answers whether the aggression is still there. It is buy-taker minus sell-taker volume over the last 10 seconds by default. CVD flattening while price rises, with Delta of Trades near zero, is a market rising without takers pushing it.
OFI answers whether the displayed book agrees. Positive OFI with that rising price, while Delta of Trades sits near zero, means bids are building or offers leaving at the touch: quotes are being rewritten, not traded.
Read the three together and the divergence becomes a specific picture: is the price moving on trades, or on quotes?
5. Using it well
Choose the start point. CVD counts from the study start, a manual reset, or a daily reset. The daily reset is on by default at 00:00 UTC, and its time and time zone are settings: on a live feed, set it to your market’s open so the session total means the session. Reset now zeroes the count without touching the settings.
Filter by size when you want the big prints. Minimum size and Maximum size are inclusive filters. With a minimum set, CVD counts only the trades at or above it, so you can read the large-print flow on its own.
Watch the feed marks. After a disconnect or reconnect the value carries an amber warning mark and the live status says trades around that time may be missing or repeated; a reset clears it.
One venue, one symbol. The tile reads one feed. The Desk’s gear points all three tiles at the same instrument, so the sign, the slope and the divergence all describe the same tape and the same book.
6. One Desk, one question
CVD is the tape’s long memory: who has led the session, and whether the price still agrees with them. On the Order Flow Dynamics Desk it sits beside OFI, the book’s lean, and Delta of Trades, the last few seconds of aggression, with the Footprint chart and the Smart Tape in the window for where the volume traded and how it arrived. The Desk’s own headline, Directional Flow Pressure, puts the answer in one signed number from −100 to +100.
Next week: Delta of Trades, the last few seconds of who crossed the spread, and how much. The guide to every tile, with its inputs, settings and feed conditions, is here: Reading the Order Flow Dynamics Desk.
Related reading
OFI Inside the Order Flow Dynamics Desk: See the Book Lean Before the Quote Ticks
Order Flow Imbalance is one tile on the Order Flow Dynamics Desk, the surface that answers one question: who is pressing, how hard? OFI shows where pressure is building at the top of book, every 100 ms. Here is how to read its lean, persistence, shifts and quiet, and what to read it with.
From Signal to Trade, Part 2: Reading Book Churn and Sweeps on the Screen
Part 2 of the series: two order-flow tiles a desk reads for context. OTR flags a book that churns while nothing trades; TTO makes many sweeps visible at a glance.
From Signal to Trade, Part 1: Turning Book Imbalance and Toxicity into Desk Rules
Why a 73.9% directional hit rate still loses to the spread when traded alone, how Touch-Weighted LOB Imbalance lifts reversal entries to 78.2%, and how to automate multi-tile alerts in the VisualHFT Trigger Engine.