Why is price but not volume adjusted for dividends?

Using the IEX feed through the HTTP interface, I have noticed that the volume in dividend adjusted data is not adjusted while the price is adjusted. Here is an example of KO on February 1st 2022:

KO unadjusted:
 2022-02-01T00:00:00  61.01  61.12  60.16  60.53  926053.0

KO adjusted:
 2022-02-01T00:00:00  58.81  58.91  57.99  58.35  926053.0

(columns are: time, open, high, low, close, volume)
The volume column does not change!

For split adjustment, both price and volume are adjusted correctly, e.g. GOOG:

GOOG unadjusted:
 2022-02-01T00:00:00  2759.48  2759.48  2693.06  2758.26  124897.0

GOOG adjusted:
 2022-02-01T00:00:00  137.97  137.97  134.65  137.91  2.49794e6

Am I correct in assuming that no matter whether the adjustment is due to split or dividend, both price and volume should be adjusted?

Can anyone confirm my findings on HTTP, Python or another interface?

@MortenTrader Whether a dividend adjusts the volume depends upon the type of dividend, but let’s first start with how adjustments for stock splits impact share price and volume. Effectively, a stock split doesn’t impact either shareholder equity or a company’s market capitalization. If there is, for example, a 2:1 stock split there are extra shares issued by the company (1 extra share for each current share). Assuming nothing else changes, the price would be reduced by half accordingly. For stock splits both price and volume are therefore adjusted.

If a dividend is paid out as shares, it is similar to a stock split. If, for example, a company pays a .5% stock dividend the company issues extra shares and ‘pays’ them to shareholders (.005 extra shares for each current share). Assuming nothing else changes, the price would be reduced accordingly similar to a stock split. For stock dividends both price and volume are therefore adjusted.

If a dividend is paid out as cash (ie a Cash Dividend) then a company simply ‘pays’ each shareholder in cash. There is no adjustment to the number of shares. Shareholder equity however goes up. If the company pays a .5% cash dividend then the shareholder has .5% more (cash + stock) than previously. To ‘adjust’ for this the previous stock prices are reduced by .5%. There isn’t however any adjustment to volume. The number of shares outstanding remains the same. For cash dividends only price is therefore adjusted.

There is a pretty good explanation of this on the NASDAQ site here.

Does that help?

1 Like

Thank you for your explanation @Dan_Whitnable_Alpaca . I don’t really agree with your explanation for cash dividends because market cap and volume are two different things. When price is adjusted it artificially deflates the dollar volume if adjusted volume is the same as volume. In my opinion the role of adjusting the volume should be to neutralise any error on dollar volume. In other words, the following should be enforced:

  volume * price = adjusted volume * adjusted price

and this should be applicable whatever the cause of the price adjustment.

Having said that, I did some more investigation and found that Tradingview does volume adjustments the same way that Alpaca does, so I guess that it is a defacto standard (the link that you provided does not mention volume at all, so it sheds no light on what the usual practice is in this regard) which I can accept as a reason for Alpaca to follow this method. To Alpacas credit, you do provide a column with the dollar volume which many other data providers do not.

Thank you for your explanation @Dan_Whitnable_Alpaca . I don’t really agree with your explanation for cash dividends because market cap and volume are two different things. When price is adjusted it artificially deflates the dollar volume if adjusted volume is the same as volume. In my opinion the role of adjusting the volume should be to neutralise any error on dollar volume. In other words, the following should be enforced:

volume * price = adjusted volume * adjusted price

and this should be applicable whatever the cause of the price adjustment.

Having said that, I did some more investigation and found that Tradingview does volume adjustments the same way that Alpaca does, so I guess that it is a defacto standard (the link that you provided does not mention volume at all, so it sheds no light on what the usual practice is in this regard) which I can accept as a reason for Alpaca to follow this method. To Alpacas credit, you do provide a column with the dollar volume which many other data providers do not.

@MortenTrader The comment price x volume should remain the same isn’t exactly true.

“the equation volume * price = adjusted volume * adjusted price should be applicable whatever the cause of the price adjustment”

While we typically think of adjusted data as adjustments to general historical data, those exact same adjustments can be made to ones individual holdings. In fact it’s adjusting ones actual holdings where the need for separate price and volume adjustments becomes apparent.

Consider how holdings look with 3 different ‘adjustment scenarios’ - a stock split, a stock dividend, and a cash dividend.

In the case of a stock split, the company issues more shares (eg 2x in the case of a 2:1 split). In order to not make it look like the shareholder just increased percent ownership of the company (because their shares held just doubled), their previous holdings are multiplied by 2. Therefore the ‘equivalent’ or ‘adjusted’ shares before the split would be 2x their current holdings. The adjusted price would be 1/2 the current price so their ‘net equity’ would remain the same.

net_equity = (price x n) x (shares x 1/n) = price x shares.

A similar thing happens with a stock dividend. The company floats more shares with the dividend, but in order for it not to look like the shareholder increased their percent ownership of the company, their previous holdings are increased by a factor. The price is adjusted down by a proportional amount so, again, the ‘net equity’ remains the same.

In both these instances volume * price = adjusted volume * adjusted price because the shareholders ‘net equity’ remains the same.

Now consider a cash dividend. The company doesn’t float any more shares. The shareholder doesn’t see any change in their shares held, but they do see a change in their ‘net equity’ because they now have cash they didn’t have before. The price of their shares before the dividend is adjusted down by some amount to reflect that increase in equity. The quantity of their shares however is not adjusted. If one were to adjust the quantity of shares, since the company didn’t change the shares outstanding, it would imply their percent ownership somehow changed. Therefore, share volumes are not adjusted by a cash dividend.

In this instance volume * price != adjusted volume * adjusted price . This also makes sense since, different from the previous two instances, shareholder ‘net equity’ did increase. If volume * price = adjusted volume * adjusted price it would imply there was no change to shareholder ‘net equity’ which is clearly wrong because the shareholder is monetarily better off after a cash dividend (unlike after a stock split).

Does that make sense?

Hi,

I live in France, and I write a Python library for technical analysis in my spare time. I discovered Alpaca while working on that, as I searched the web for information on how to adjust the historical stock volume for dividends.

The answer given by Dan above makes sense to me—albeit potentially problematic since it requires knowing how dividends were distributed, which means crosslinking the price data at my disposal with some other source.

Anyway, I revived this thread because I noticed the linked webpage on nasdaq.com didn’t mention volume at all. @Dan_Whitnable_Alpaca, do you have any reference material about that topic I could quote from my library’s documentation for future reference?

@Sylvain_Leroux I see the original NASDAQ link no longer includes information on adjusted volume (as you noted). I wasn’t able to find a similar resource but this document by Xignite (a large data provider) has a bit.

You mentioned needing to know how dividends were distributed (eg cash or shares). The Alpaca Corporate Actions endpoint may be able to help? Check it out in the docs here.