dividend_trace
Answered against 22 years of US equities and 12 years of US options data and published with the query that produced it. This result is stored as of 2026-10-24, from msft-stock-price-analysis.
| date | ex_date_label | quarterly_dividend_usd | annualized_usd | yield_on_last_close_pct |
|---|---|---|---|---|
| 2024-11-21 | 2024/11/21 | 0.83 | 3.32 | 0.63 |
| 2025-02-20 | 2025/02/20 | 0.83 | 3.32 | 0.63 |
| 2025-05-15 | 2025/05/15 | 0.83 | 3.32 | 0.63 |
| 2025-08-21 | 2025/08/21 | 0.83 | 3.32 | 0.63 |
| 2025-11-20 | 2025/11/20 | 0.91 | 3.64 | 0.69 |
| 2026-02-19 | 2026/02/19 | 0.91 | 3.64 | 0.69 |
| 2026-05-21 | 2026/05/21 | 0.91 | 3.64 | 0.69 |
| 2026-08-20 | 2026/08/20 | 0.91 | 3.64 | 0.69 |
- Rows × columns
- 8 × 5
- Period covered
- to
- Computed
- Completeness
- No missing values
- Source
- US exchange, SIP and OPRA market data
- Licence
- Strasmore terms · free, no signup
What each column holds
| Column | Type | Range | Notes |
|---|---|---|---|
date |
date | 2024-11-21 to 2026-08-20 | |
ex_date_label |
text | 8 distinct values (2024/11/21, 2025/02/20, 2025/05/15…) | |
quarterly_dividend_usd |
number | 0.83 to 0.91 | US dollars |
annualized_usd |
number | 3.32 to 3.64 | US dollars |
yield_on_last_close_pct |
number | 0.63 to 0.69 | percent |
Computed from Strasmore's warehouse of US exchange, SIP and OPRA market data. Equity prices are delayed; options greeks and implied volatility are end-of-day. This result is stored, not recomputed on load — it is exactly the numbers that were returned on , and the query below is what returned them.
Run it yourself
This is the exact query behind the result above. Change a ticker, a date or a column and run it against the warehouse — no account, no key. The no-signup tier is smaller than the one this page was computed on; a query that reaches past it comes back saying which plan runs it.
WITH
(
SELECT argMax(toFloat64(close), date)
FROM global_markets.stocks_daily_aggs
WHERE ticker = 'MSFT'
AND date >= today() - 30
AND date < today()
) AS px_last
SELECT
toString(ex_dividend_date) AS date,
formatDateTime(ex_dividend_date, '%Y/%m/%d') AS ex_date_label,
quarterly_dividend_usd,
round(quarterly_dividend_usd * 4, 2) AS annualized_usd,
round(quarterly_dividend_usd * 4 / px_last * 100, 2) AS yield_on_last_close_pct
FROM
(
SELECT
ex_dividend_date,
round(max(toFloat64(cash_amount)), 2) AS quarterly_dividend_usd
FROM global_markets.stocks_dividends
WHERE ticker = 'MSFT'
AND ex_dividend_date < today()
GROUP BY ex_dividend_date
ORDER BY ex_dividend_date DESC
LIMIT 8
)
ORDER BY ex_dividend_date
Work with this data in your AI assistant
Opens ready to query, with this page's data. Free, no account.