Strasmore Research
Learn Matt ConnorBy Matt Connor · data as of October 4, 2026 · refreshed weekly

VOO Dividend: Ex-Dividend Dates & Yield

VOO dividend: the latest declared ex-dividend date, the trailing twelve month payout per share, the yield it works out to, and why the calendar is an estimate.

The VOO dividend arrives four times a year. Vanguard's S&P 500 ETF collects the dividends paid by the roughly 500 companies in the index and passes that cash to shareholders quarterly, net of the fund's expenses. The most recent declared distribution went ex on Sep 28, 2026 at $1.8226 per share, payable Sep 30, 2026. Across the trailing twelve months ending Sep 28, 2026, VOO paid out $7.4282 per share, a distribution yield of 1.06% measured against the fund's closing price on that date.

When is VOO's next ex-dividend date?

The honest answer, and the one most dividend calendars skip: it has not been set yet. Vanguard declares each VOO distribution only a few days before the shares trade ex, and that single declaration fixes the amount, the ex-date, the record date and the pay date at once. Until it posts, every forward-dated row on a full-year VOO dividend calendar is a projection from prior years. It is an estimate, never a schedule.

What is knowable is the pattern. VOO's ex-dates have clustered in four months of the year, and inside each of those months they have fallen within a narrow band of days. That makes a next-quarter guess usually good to within a week, which is useful for planning and worthless as a commitment. For dates that are confirmed rather than modelled, see our upcoming ex-dividend dates list, and for the mechanics of the date itself, what an ex-dividend date means.

VOO dividend history: every recent declared payment

Every figure on this page comes out of the declared dividend record, reduced to one row per ex-date. The panel below is the raw history: the ex-date, the record date, the pay date and the cash amount per share across the last three years of quarterly payments.

QueryVOO declared distributions: ex, record and pay dates with the per-share amount
ex_dateex_date_labelrecord_labelpay_labelcash_amount
2023-09-28Sep 28, 2023Sep 29, 2023Oct 3, 20231.4925
2023-12-20Dec 20, 2023Dec 21, 2023Dec 26, 20231.8011
2024-03-22Mar 22, 2024Mar 25, 2024Mar 27, 20241.5429
2024-06-28Jun 28, 2024Jun 28, 2024Jul 2, 20241.7835
2024-09-27Sep 27, 2024Sep 27, 2024Oct 1, 20241.6386
2024-12-23Dec 23, 2024Dec 23, 2024Dec 26, 20241.7385
2025-03-27Mar 27, 2025Mar 27, 2025Mar 31, 20251.8121
2025-06-30Jun 30, 2025Jun 30, 2025Jul 2, 20251.7447
2025-09-29Sep 29, 2025Sep 29, 2025Oct 1, 20251.74
2025-12-22Dec 22, 2025Dec 22, 2025Dec 24, 20251.771
2026-03-27Mar 27, 2026Mar 27, 2026Mar 31, 20261.8724
2026-06-26Jun 26, 2026Jun 26, 2026Jun 30, 20261.9622
2026-09-28Sep 28, 2026Sep 28, 2026Sep 30, 20261.8226
The exact SQL behind every number
SELECT
    toString(ex_dividend_date)                                      AS ex_date,
    concat(formatDateTime(ex_dividend_date, '%b '),
           toString(toDayOfMonth(ex_dividend_date)), ', ',
           toString(toYear(ex_dividend_date)))                      AS ex_date_label,
    concat(formatDateTime(max(record_date), '%b '),
           toString(toDayOfMonth(max(record_date))), ', ',
           toString(toYear(max(record_date))))                      AS record_label,
    concat(formatDateTime(max(pay_date), '%b '),
           toString(toDayOfMonth(max(pay_date))), ', ',
           toString(toYear(max(pay_date))))                         AS pay_label,
    round(toFloat64(max(cash_amount)), 4)                           AS cash_amount
FROM global_markets.stocks_dividends
WHERE ticker = 'VOO'
  AND ex_dividend_date >= today() - 1150
  AND ex_dividend_date <= today()
GROUP BY ex_dividend_date
ORDER BY ex_dividend_date
Run this yourself

That is 13 declared distributions. The oldest in view went ex on Sep 28, 2023 at $1.4925 per share. The newest went ex on Sep 28, 2026 at $1.8226, with the cash reaching accounts on Sep 30, 2026. Read down the amount column and the uneven shape is the first thing to notice. VOO pays no fixed rate per share, and quarter to quarter wobble of this size is ordinary for a pass-through fund.

What is VOO's dividend yield?

A distribution yield divides what a fund has actually paid over the trailing twelve months by its share price. It looks backward at cash already delivered, so it is a measurement rather than a promise. The panel below recomputes that figure at every ex-date: it sums the four most recent declared distributions and divides by VOO's closing price on the day.

QueryVOO trailing-twelve-month payout per share and the yield it works out to
ex_dateas_of_labelttm_per_sharettm_yield_pct
2023-09-28Sep 28, 20236.22781.58
2023-12-20Dec 20, 20236.35721.48
2024-03-22Mar 22, 20246.41271.34
2024-06-28Jun 28, 20246.621.32
2024-09-27Sep 27, 20246.76611.29
2024-12-23Dec 23, 20246.70351.23
2025-03-27Mar 27, 20256.97271.34
2025-06-30Jun 30, 20256.93391.22
2025-09-29Sep 29, 20257.03531.15
2025-12-22Dec 22, 20257.06781.12
2026-03-27Mar 27, 20267.12811.22
2026-06-26Jun 26, 20267.34561.1
2026-09-28Sep 28, 20267.42821.06
The exact SQL behind every number
SELECT
    toString(r.ex_date)                                             AS ex_date,
    concat(formatDateTime(r.ex_date, '%b '),
           toString(toDayOfMonth(r.ex_date)), ', ',
           toString(toYear(r.ex_date)))                             AS as_of_label,
    round(r.ttm_per_share, 4)                                       AS ttm_per_share,
    round(100 * r.ttm_per_share / p.close, 2)                       AS ttm_yield_pct
FROM
(
    SELECT
        ex_date,
        sum(amount) OVER (ORDER BY ex_date ASC ROWS BETWEEN 3 PRECEDING AND CURRENT ROW) AS ttm_per_share,
        count()     OVER (ORDER BY ex_date ASC ROWS BETWEEN 3 PRECEDING AND CURRENT ROW) AS quarters_counted
    FROM
    (
        SELECT
            ex_dividend_date            AS ex_date,
            toFloat64(max(cash_amount)) AS amount
        FROM global_markets.stocks_dividends
        WHERE ticker = 'VOO'
          AND ex_dividend_date <= today()
        GROUP BY ex_dividend_date
    )
) AS r
INNER JOIN
(
    SELECT
        date,
        toFloat64(max(close)) AS close
    FROM global_markets.stocks_daily_aggs
    WHERE ticker = 'VOO'
      AND date >= today() - 1500
    GROUP BY date
) AS p ON p.date = r.ex_date
WHERE r.quarters_counted = 4
  AND r.ex_date >= today() - 1150
ORDER BY r.ex_date
Run this yourself

At the start of the window, on Sep 28, 2023, the trailing twelve month total stood at $6.2278 per share and the yield at 1.58%. At the most recent ex-date, Sep 28, 2026, the total measured $7.4282 and the yield 1.06%. The two lines move differently on purpose. The dollar total tracks the cash the index companies hand over, while the yield also carries the share price in its denominator, so a climbing price alongside a flat payout prints as a falling yield. For the index-level number underneath all of this, see the S&P 500 dividend yield, and for how a dividend-screened fund compares, SCHD vs VOO on dividend yield.

The month and week pattern behind VOO's ex-dividend dates

Since the forward calendar is guesswork, the useful thing is the shape of the past. This panel counts how often each calendar month has hosted a VOO ex-date over roughly the last decade, and how early or late in the month it landed.

QueryWhich month and which week VOO's ex-dividend date has landed in
ex_monthex_dates_seenearliest_daylatest_dayavg_day
March10102722.9
June10233027.8
September11132925.7
December10172621.6
The exact SQL behind every number
SELECT
    any(monthName(ex_date))              AS ex_month,
    count()                              AS ex_dates_seen,
    min(toDayOfMonth(ex_date))           AS earliest_day,
    max(toDayOfMonth(ex_date))           AS latest_day,
    round(avg(toDayOfMonth(ex_date)), 1) AS avg_day
FROM
(
    SELECT ex_dividend_date AS ex_date
    FROM global_markets.stocks_dividends
    WHERE ticker = 'VOO'
      AND ex_dividend_date >= today() - 3700
      AND ex_dividend_date <= today()
    GROUP BY ex_dividend_date
)
GROUP BY toMonth(ex_date)
ORDER BY toMonth(ex_date)
Run this yourself

The ex-dates sort into 4 calendar months. In the March slot, across 10 payments, the earliest ex-date fell on day 10 of the month and the latest on day 27, with an average of day 22.9. The December slot runs from day 17 to day 26. A band that wide is a planning aid and nothing firmer. Anyone publishing a full-year VOO dividend calendar is reading this same distribution and rounding to a day.

Ex-date, record date and pay date under T+1

Three dates decide who receives a distribution. The ex-date is the first session on which the shares trade without the upcoming payment attached. The record date is the day the fund's books are read to see who holds shares. The pay date is when the cash lands in the account. Under T+1 settlement, in force for US equities since May 2024, a purchase settles one business day after the trade executes. Buy VOO on the ex-date and settlement happens after the books are read, so the seller keeps that distribution. Buy during the session before the ex-date and the shares are yours of record in time.

QueryCalendar days from each VOO ex-date to its record date and pay date
25 rows (showing 20)
ex_dateex_date_labelex_to_record_daysex_to_pay_days
2020-09-29Sep 29, 202013
2020-12-22Dec 22, 202016
2021-03-26Mar 26, 202135
2021-06-29Jun 29, 202113
2021-09-29Sep 29, 202115
2021-12-21Dec 21, 202116
2022-03-24Mar 24, 202215
2022-06-29Jun 29, 202216
2022-09-28Sep 28, 202215
2022-12-20Dec 20, 202213
2023-03-24Mar 24, 202335
2023-06-29Jun 29, 202316
2023-09-28Sep 28, 202315
2023-12-20Dec 20, 202316
2024-03-22Mar 22, 202435
2024-06-28Jun 28, 202404
2024-09-27Sep 27, 202404
2024-12-23Dec 23, 202403
2025-03-27Mar 27, 202504
2025-06-30Jun 30, 202502
The exact SQL behind every number
SELECT
    toString(ex_dividend_date)                                      AS ex_date,
    concat(formatDateTime(ex_dividend_date, '%b '),
           toString(toDayOfMonth(ex_dividend_date)), ', ',
           toString(toYear(ex_dividend_date)))                      AS ex_date_label,
    dateDiff('day', ex_dividend_date, max(record_date))             AS ex_to_record_days,
    dateDiff('day', ex_dividend_date, max(pay_date))                AS ex_to_pay_days
FROM global_markets.stocks_dividends
WHERE ticker = 'VOO'
  AND ex_dividend_date >= today() - 2200
  AND ex_dividend_date <= today()
GROUP BY ex_dividend_date
ORDER BY ex_dividend_date
Run this yourself

On the oldest row, Sep 29, 2020, the record date sat 1 days after the ex-date. On the most recent, Sep 28, 2026, that gap measures 0 days. In every row the record date falls on or after the ex-date, and the shorter settlement cycle coincided with the two dates converging. The pay date is the longer wait: 2 calendar days past the ex-date on the latest distribution.

Why the VOO dividend amount changes every quarter

VOO's distribution is a pass-through, not a coupon. Each quarter the fund receives whatever dividends its holdings happen to pay inside that window, subtracts its expenses, and distributes the remainder. Four things move the per-share figure around: the payout policies of the index members, the calendar timing of those payments relative to the fund's quarter end, index changes that swap one payer for another, and the fund's own expenses. No target rate exists anywhere in that chain.

QueryVOO distributions per complete calendar year, with the spread between quarters
yearpaymentstotal_per_sharesmallest_quarterlargest_quarterintra_year_spread_pct
201543.9310.9021.09221.1
201644.1380.8831.29646.8
201744.36790.9981.183918.6
201844.73671.08371.28918.9
201945.57091.30141.455111.8
202045.30271.1781.433321.7
202145.43671.26251.532921.4
202245.94671.37371.671721.7
202346.35721.48741.801121.1
202446.70351.54291.783515.6
202547.06781.741.81214.1
The exact SQL behind every number
SELECT
    toString(toYear(ex_date))                                   AS year,
    count()                                                     AS payments,
    round(sum(amount), 4)                                       AS total_per_share,
    round(min(amount), 4)                                       AS smallest_quarter,
    round(max(amount), 4)                                       AS largest_quarter,
    round(100 * (max(amount) - min(amount)) / min(amount), 1)   AS intra_year_spread_pct
FROM
(
    SELECT
        ex_dividend_date            AS ex_date,
        toFloat64(max(cash_amount)) AS amount
    FROM global_markets.stocks_dividends
    WHERE ticker = 'VOO'
      AND ex_dividend_date >= '2015-01-01'
      AND ex_dividend_date <  toStartOfYear(today())
    GROUP BY ex_dividend_date
)
GROUP BY toYear(ex_date)
ORDER BY toYear(ex_date)
Run this yourself

The panel covers 11 complete calendar years. VOO made 4 distributions in 2025 totalling $7.0678 per share, against $3.931 back in 2015. Within 2025 alone, the smallest quarterly payment came to $1.74 and the largest to $1.8121, a spread of 4.1% between the two. Per-share amounts also do not travel between funds. VOO, SPY and SPLG hold the same index at very different share prices, so comparing their dollar distributions measures share price rather than income: SPY vs VOO vs SPLG walks through that difference.

Data notes

The dividend record can carry more than one row per distribution, so every panel groups by ex-date first and takes a single amount per date. Amounts are as declared in US dollars, not split adjusted. The yield panel divides the sum of the four most recent declared distributions by VOO's own closing price on that same ex-date, and it starts only once four quarters are available in the window. The annual panel stops at the last complete calendar year, so the current year never appears as an artificially small total. Declared dates arrive with the declaration itself, which is why no row on this page is dated into the future.

FAQ

Does VOO pay dividends monthly?

No. VOO distributes four times a year, on a quarterly cycle, and the ex-dates have clustered in the same four calendar months for the last decade. Funds built to pay every month are a different structure, covered in monthly dividend ETFs.

How much is VOO's dividend per share?

The most recent declared distribution was $1.8226 per share, with an ex-date of Sep 28, 2026. Over the trailing twelve months the payments add to $7.4282 per share.

What is VOO's dividend yield right now?

As of Sep 28, 2026, the trailing twelve month distribution yield measured 1.06%. That figure divides the last four declared distributions by the fund's closing price on that date, so it moves with both the payout and the share price.

If I buy VOO on the ex-dividend date, do I get the dividend?

No. A purchase made on the ex-date settles after the record books close, and that quarter's distribution stays with the seller. Owning the shares from the session before the ex-date is what puts a holder on the record. Selling on the ex-dividend date works the same way in reverse.

Why is VOO's quarterly dividend different every quarter?

The fund passes through the dividends its holdings paid during that quarter, net of expenses, with no fixed rate anywhere in the process. Payment timing inside the quarter and changes to index membership both shift the per-share figure, which is why the spread between the biggest and smallest quarter inside a single year reached 4.1% in 2025.


Every panel here carries the exact SQL beneath it, so open one to see how the number was counted. To pull the declared dates for another fund, or rebuild the trailing twelve month figure yourself, ask the question in plain English on the Strasmore terminal.