Strasmore Research
Learn Matt ConnorBy Matt Connor · data as of August 21, 2026 · refreshed weekly

How Order Flow Moves Implied Volatility

How does order flow move implied volatility? Walk one strike from a balanced book to one-sided call buying, with real daily vol and volume figures.

Order flow moves implied volatility one quote at a time. A market maker quoting an option is not taking a view on where the stock is heading: they post a price on both sides, and when the buying keeps arriving on the same side, they lift the volatility they are willing to offer until the flow slows or the cost of carrying the position is covered. The stock itself can sit still through the whole sequence, and often does.

What a market maker is actually quoting

An option has a dollar bid and a dollar offer, but the desk on the other side of it works in volatility. Implied volatility is the annualized percentage move that an option's price is consistent with, given the strike, the days left to expiry, the stock price, and the interest rate. Put a price into a pricing model and the volatility number falls out. Put the volatility in and the price falls out. Implied volatility is a price restated in different units, which is why options are quoted in volatility between professionals rather than in dollars.

Take a hypothetical to fix the idea. A $220 call with a month to run is offered at $5.20 in the morning. By the afternoon the same contract is offered at $5.60, the stock is still $220, and there is one day less on the clock. The strike did not change, the rate did not change, and the passage of a day pushes an option's price the other way. Those extra 40 cents live in the volatility input, and nowhere else.

How order flow moves implied volatility at a single strike

The panel below takes every AAPL option within 5% of the stock price carrying 20 to 45 days to expiry, and measures each session three ways: the share of that day's contract volume that traded in calls, the average implied volatility those near-the-money contracts carried, and where the stock closed against its level on the first day of the window.

QueryDaily call share of near-the-money AAPL volume against the vol those contracts carried
The exact SQL behind every number
WITH
    (
        SELECT toFloat64(close)
        FROM global_markets.stocks_daily_aggs
        WHERE ticker = 'AAPL'
          AND date >= '2026-05-01'
        ORDER BY date
        LIMIT 1
    ) AS start_close
SELECT
    toString(date)                                                                             AS date,
    round(100 * sumIf(volume, startsWith(lower(toString(option_type)), 'c')) / sum(volume), 1) AS call_share_pct,
    round(100 * avg(implied_volatility), 1)                                                    AS atm_iv_pct,
    round(100 * (toFloat64(any(underlying_close)) / start_close - 1), 1)                       AS stock_pct_vs_start
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
  AND date BETWEEN '2026-05-01' AND '2026-06-30'
  AND iv_converged = 1
  AND volume > 0
  AND days_to_expiry BETWEEN 20 AND 45
  AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
GROUP BY date
ORDER BY date
Run this yourself

Across 41 sessions in May and June 2026, call share opened the window at 71% of near-the-money volume and finished it at 80.7%. The volatility on those same contracts went from 22.5% to 27.8%, over a stretch in which the stock ended 3.2% from where it started.

The two lines do not track each other session by session, and that is the honest version of the mechanic. One day of lopsided buying nudges a quote by a tick. A run of days moves the level, since the maker is being asked to hold more of the same position each morning at a price that has not yet slowed the demand. Nothing in that sequence requires the stock to go anywhere.

Why one strike prints a higher IV than its neighbours

Freeze a single session and look across strikes instead of across days. The panel below holds the date and the expiry fixed, and walks the busiest expiration on that session from below the stock price to above it.

QueryOffered volatility by strike, one AAPL expiry, one session
The exact SQL behind every number
WITH
    (
        SELECT max(date)
        FROM global_markets.options_greeks
        WHERE underlying_symbol = 'AAPL'
          AND date <= '2026-06-30'
    ) AS session_date,
    (
        SELECT expiration_date
        FROM global_markets.options_greeks
        WHERE underlying_symbol = 'AAPL'
          AND date = session_date
          AND iv_converged = 1
          AND volume > 0
          AND days_to_expiry BETWEEN 20 AND 45
        GROUP BY expiration_date
        ORDER BY sum(volume) DESC
        LIMIT 1
    ) AS busy_expiry
SELECT
    concat('$', toString(toUInt32(round(toFloat64(strike_price))))) AS strike,
    round(100 * avg(implied_volatility), 1)                         AS offered_iv_pct,
    sum(volume)                                                     AS contract_volume
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
  AND date = session_date
  AND expiration_date = busy_expiry
  AND iv_converged = 1
  AND volume > 0
  AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) <= 0.06
GROUP BY strike_price
ORDER BY strike_price
Run this yourself

Every contract in that panel sits on the same stock, on the same day, expiring on the same date. The strike is the only thing changing from row to row, and the offered volatility changes with it: 26.2% at the $275 strike against 23.3% at $305, across 7 strikes in all. That spread from one strike to the next is the volatility skew, and the balance of buying and selling is one of the things that shapes it. Demand does not arrive evenly across a chain. It arrives at the strike somebody wants, and the quote at that strike is the one that moves.

Splitting the same session by option type sharpens the picture, since calls and puts at matched distances from the stock price are quoted by the same desk at the same moment.

QueryCall and put volatility at matched distances from the stock price
The exact SQL behind every number
WITH
    (
        SELECT max(date)
        FROM global_markets.options_greeks
        WHERE underlying_symbol = 'AAPL'
          AND date <= '2026-06-30'
    ) AS session_date
SELECT
    multiIf(bucket = 0, 'at spot',
            bucket < 0, concat(toString(abs(bucket)), '% below'),
            concat(toString(bucket), '% above'))  AS strike_vs_spot,
    round(100 * avgIf(iv, is_call), 1)            AS call_iv_pct,
    round(100 * avgIf(iv, NOT is_call), 1)        AS put_iv_pct
FROM
(
    SELECT
        implied_volatility                                                                     AS iv,
        startsWith(lower(toString(option_type)), 'c')                                          AS is_call,
        round(((toFloat64(strike_price) / toFloat64(underlying_close)) - 1) * 100 / 2.5) * 2.5 AS bucket
    FROM global_markets.options_greeks
    WHERE underlying_symbol = 'AAPL'
      AND date = session_date
      AND iv_converged = 1
      AND volume > 0
      AND days_to_expiry BETWEEN 20 AND 45
      AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) <= 0.10
)
GROUP BY bucket
HAVING countIf(is_call) > 0 AND countIf(NOT is_call) > 0
ORDER BY bucket
Run this yourself

At 7.5% below the puts were carrying 30% against 27.6% on the calls. At 10% above the same two measurements printed 33.3% and 25.7%. Same stock, same minute, same model. The differences live in the strikes people keep asking for.

The maker keeps quoting the other side

Marking an offer higher is not a refusal to trade. A desk that keeps selling calls into steady demand ends up short those calls, and the standard defence is to buy stock against them. That is delta hedging: a stock position sized to offset the option's directional exposure, adjusted as the stock moves. The hedge is not free. Rebalancing costs money every time the stock travels, and the part of the risk that stock cannot offset, the position's sensitivity to volatility itself, grows with every contract sold.

The higher offer is the price of taking on one more unit of the same risk. The bid moves up with it, since the desk would happily buy those calls back at a better level, and the spread between the two sides is how market makers make money rather than any bet on direction.

What an electronic quote can and cannot see

On the trading floor, an order arrived as a person. A broker walked into the crowd, and the makers standing there could see the size and the firm behind it. That context was part of the price they gave. Screens removed it. A modern maker reads the shape of the flow off the tape afterwards: volume by strike and expiry, the overnight change in open interest (the count of contracts still outstanding), how quickly a resting offer gets lifted, and whether the buying comes back once the volatility is marked up. Most of the time there is no way to separate an institutional order from a retail one. The quote adjusts to the pattern of the trading, never to the identity of the trader.

QueryCall share of near-the-money volume and the vol carried, six names, one session
The exact SQL behind every number
WITH
    (
        SELECT max(date)
        FROM global_markets.options_greeks
        WHERE underlying_symbol IN ('AAPL', 'MSFT', 'NVDA', 'AMZN', 'KO', 'SPY')
          AND date <= '2026-06-30'
    ) AS session_date
SELECT
    underlying_symbol                                                                          AS symbol,
    round(100 * sumIf(volume, startsWith(lower(toString(option_type)), 'c')) / sum(volume), 1) AS call_share_pct,
    round(100 * avg(implied_volatility), 1)                                                    AS atm_iv_pct
FROM global_markets.options_greeks
WHERE underlying_symbol IN ('AAPL', 'MSFT', 'NVDA', 'AMZN', 'KO', 'SPY')
  AND date = session_date
  AND iv_converged = 1
  AND volume > 0
  AND days_to_expiry BETWEEN 20 AND 45
  AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
GROUP BY underlying_symbol
ORDER BY call_share_pct DESC
Run this yourself

On that session, AMZN sat at the top of the group with 91.9% of its near-the-money volume in calls, and near-the-money vol of 38.7%. Read the two columns down the panel and they do not line up row for row. A day of flow is one input into a surface that also carries each name's own trading history and whatever position the desk is already sitting on.

What this does not mean

A quote is not a forecast. A higher offer says the desk wants more compensation for the next contract it sells, and it says nothing about where the stock is going next. Implied volatility is a price, set by what people are paying, and the gap between implied and historical volatility is where a reader can watch how often the price and the outcome disagree. A strike quoted at 40% vol has not predicted a 40% move. It has been bid up by somebody who wanted that contract.

How these panels are measured

Every panel filters to contracts where the model's volatility solution converged and where the contract actually traded that day, then keeps only near-the-money strikes with 20 to 45 days to expiry, the standard window for reading a volatility level without the distortions of very short or very long dated contracts. Averages are unweighted across contracts in the bucket. The call share counts contracts traded, not the direction of the customer, since the tape does not label a trade as a buy or a sell.

FAQ

Does buying options push implied volatility up?

Sustained one-sided buying at a strike coincides with a higher offered volatility at that strike. The desk on the other side is selling contracts it then has to hedge, and the offer is where it prices the next one. A single small order rarely moves a liquid name's volatility in any visible way.

Do market makers take a directional view?

Quoting a two-sided market is a business built on the spread between the bid and the offer, with the stock exposure hedged rather than held. A maker who ends up long or short is usually there from filling other people's orders.

Why do two strikes on the same stock have different implied volatilities?

Each strike is its own contract with its own supply and demand. Skew is the name for the pattern that leaves downside and upside strikes quoted at different volatilities on the very same expiry.

Does rising implied volatility mean the stock will move?

No. Implied volatility is the price of an option restated in percentage terms, and a price is what people are paying today. Realized moves land below or above what the option market charged for them all the time.

Can a market maker tell who is buying?

Electronically, usually not. The tape shows contracts, strikes, expiries, and time stamps, with no customer name attached. On the floor a maker could see the broker in the crowd, and that context went away with the move to screens.


Every panel above ships with the SQL that produced it, so the same measurement can be pointed at any other name or any other week. Ask it in plain English on the Strasmore terminal.

#implied volatility#market makers#order flow#options#volatility skew