Guides · July 25, 2026 · 5 min read
I Sold $80,000 in Shares on June 30 — Why Didn't I Get My Dividend? How to Track Ex-Dividend Dates Across Every Brokerage
If you sold a dividend-paying stock right before the ex-dividend date, the dividend does not follow you. Here is how the ex-div date actually works, why the answer depends on which brokerage held which shares, and how to size your real dividend income across Fidelity, Schwab, Robinhood, and any other account in one Google Sheet.
The cutoff
A dividend is paid to the shareholder of record on a specific date. The ex-dividend date is the cutoff that decides who is on the books on that record date. If you sell your shares before the ex-dividend date, the buyer receives the dividend, not you. The rule is mechanical, runs on a published calendar, and is enforced by the brokerage. It is also the reason a $80,000 sale on June 30 can produce a quarter with zero dividend income from a name you owned for most of the quarter.
Most retail holders do not track the ex-dividend date because the brokerage app does not surface it in a way that connects to the sale decision. You see "dividend $0.28/share, pay date September 15" in the position details. You do not see "if you sell before August 12 you forfeit this payment." The calendar is sitting in the prospectus and the investor relations page. It is not in the app that holds the position.
Why the indirect lines are most of the dividend
A typical diversified retail portfolio earns dividends in at least three places. Directly, from single-stock holdings in a Fidelity or Schwab account where the dividend hits your cash balance four times a year. Indirectly, through an S&P 500 or total-market ETF that pays a quarterly distribution, which you receive as a fund distribution rather than as a named dividend. Indirectly again, through a dividend-focused ETF like VYM, HDV, or SCHD that holds names like JNJ, PG, KO, and XOM as a meaningful slice of its portfolio.
The single-stock line is the easy one to see. The two ETF lines are folded into the fund distribution and you never see them as named dividends. The combined number is usually larger than most holders expect, and the ETF lines are immune to the ex-dividend timing problem because you do not sell partial ETF positions to time a quarterly dividend.
The ex-dividend rule matters most for the direct line. When you hold 200 shares of T in one account and 80 shares in another, the brokerages do not coordinate on the ex-date. Each account holds its own record date and its own pay date. Each account sends you a 1099-DIV at year-end with its own slice of the total. The aggregate is never shown to you in a single number, and the timing risk on each leg is yours to manage separately.
Sizing the direct dividend in one cell
Start with the direct line. Pull every linked brokerage into a single Google Sheet through InvestSheet and read the aggregate for the position:
=IVS_BROKERAGE("qty", "T") // aggregate share count across Fidelity + Schwab + Robinhood
=IVS_BROKERAGE("value", "T") // real mark-to-market across every linked account
=IVS_BROKERAGE("costBasis", "T") // real basis across every account
=IVS_BROKERAGE("gainLoss", "T") // live unrealized P&L on the direct positionThe aggregated qty is the share count that earns the next dividend if you hold past the next ex-dividend date. For a retail holder with 200 shares in Fidelity and 80 in Schwab, the aggregated qty is 280, and 280 times the dividend per share is the expected payment if you hold through the next ex-date and do not sell between now and the record date.
Building the ex-dividend calendar in a helper table
The brokerage app does not put the ex-dividend calendar in front of you when you are about to sell. You have to bring it yourself. Build a small helper table with one row per ticker, columns for the next ex-date, the record date, the pay date, and the dividend per share. Add a fifth column that multiplies the aggregated quantity by the dividend per share to get the expected payment. Add a sixth column that computes days until the ex-date.
ticker | ex_date | record_date | pay_date | div_ps | qty | expected | days_to_ex
T | 2026-08-12 | 2026-08-13 | 2026-09-15 | 0.28 | 280 | 78.40 | 18
JNJ | 2026-08-25 | 2026-08-26 | 2026-09-10 | 1.24 | 150 | 186.00 | 31
KO | 2026-09-01 | 2026-09-02 | 2026-10-01 | 0.485 | 400 | 194.00 | 38The total of the expected column is your real quarterly dividend income from the direct line. The days_to_ex column is the timing window you are working with on any sale decision. If you sell T today with 18 days to the ex-date, you forfeit $78.40. If you wait until August 13, the day after the record date, you keep the dividend and can still sell into the next session without penalty.
Estimating the indirect dividend in a second helper
The indirect dividend is not in the brokerage app under a named ticker line, so you have to back it out. Pull your VYM, HDV, or SCHD share count into a second helper table and multiply by the fund's most recent per-share distribution. For a holder with 200 shares of VYM at a $1.20 quarterly distribution, the indirect dividend is $240 per quarter and it shows up in the brokerage app as a VYM distribution, not as a named stock dividend.
Add the indirect helper to the direct helper to get your real total quarterly dividend income. For most retirement accounts that total lands between 1.5 and 4 percent of the portfolio per year. The ex-dividend timing risk lives almost entirely in the direct line. The ETF lines pay on their own schedule and you do not sell partial ETF positions to time a single quarter.
The ex-date is mechanical, the tracking should be too
The ex-dividend rule is not negotiable. The company publishes the record date, the exchange sets the ex-date one business day before, and the brokerage enforces the cutoff. If you sell on June 30 and the ex-date is July 1, the dividend is gone. The only way to keep it is to hold through the record date, which means not selling on June 30.
The right way to manage the timing risk is to know the date before the sale decision. The brokerage app will not surface the ex-date at the sell ticket. The ex-date is in the prospectus, in the investor relations page, and on any dividend-tracking site. It is not in the app that holds the position. Bringing the calendar into your sheet is what turns the timing decision from a guess into a check on a known number.
The 10-minute setup
Link your brokerages in InvestSheet, install the add-on, and let the first sync pull every direct position into one sheet. Add the four IVS_BROKERAGE reads for each dividend-paying name and build the two helper tables for the direct and indirect lines. The total of the expected column is your real quarterly dividend income. The days_to_ex column is the timing window you have on any sale decision. From there every quarterly payment is a check on a known number instead of a surprise.
A dividend you sold through by accident is a small number that adds up. A dividend you knew about and chose to forfeit is a different number entirely.
See every dividend-paying position in one Google Sheet
InvestSheet links Fidelity, Schwab, Robinhood, and 40+ other brokerages to one spreadsheet. The IVS_BROKERAGE formulas turn every direct holding into a live aggregate across every account, with the dividend per share ready for a helper calendar.
Try InvestSheet free