STRASMORE/EXPLORE 2,433 QUERIES

yield_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-09-20, from msft-dividend-2026.

as of series 11×6read in context →
yield_trace — 11 rows by 6 columns, computed from US exchange, SIP and OPRA data.
ex_dateex_labelquarterly_dividendindicated_annual_dividendclose_on_ex_dateindicated_yield_pct
2024-02-14Feb 14, 20240.753$409.490.73
2024-05-15May 15, 20240.753$423.080.71
2024-08-15Aug 15, 20240.753$421.030.71
2024-11-21Nov 21, 20240.833.32$412.870.8
2025-02-20Feb 20, 20250.833.32$416.130.8
2025-05-15May 15, 20250.833.32$453.130.73
2025-08-21Aug 21, 20250.833.32$504.240.66
2025-11-20Nov 20, 20250.913.64$478.430.76
2026-02-19Feb 19, 20260.913.64$398.460.91
2026-05-21May 21, 20260.913.64$419.090.87
2026-08-20Aug 20, 20260.913.64$481.150.76
Rows × columns
11 × 6
Period covered
to
Computed
Completeness
No missing values
Source
US exchange, SIP and OPRA market data
Licence
Strasmore terms · free, no signup
Formats
JSON · CSV · the SQL below

What each column holds

Column definitions for yield_trace, derived from the stored result.
ColumnTypeRangeNotes
ex_date date 2024-02-14 to 2026-08-20
ex_label text 11 distinct values (Aug 15, 2024, Aug 20, 2026, Aug 21, 2025…)
quarterly_dividend number 0.75 to 0.91
indicated_annual_dividend number 3 to 3.64
close_on_ex_date text 11 distinct values ($398.46, $409.49, $412.87…)
indicated_yield_pct number 0.66 to 0.91 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.

SELECT
    toString(d.ex_day)                                                          AS ex_date,
    concat(formatDateTime(d.ex_day, '%b'), ' ',
           toString(toDayOfMonth(d.ex_day)), ', ',
           toString(toYear(d.ex_day)))                                          AS ex_label,
    round(toFloat64(d.dividend), 2)                                             AS quarterly_dividend,
    round(toFloat64(d.dividend) * 4, 2)                                         AS indicated_annual_dividend,
    concat('$', toString(round(toFloat64(p.close), 2)))                         AS close_on_ex_date,
    round(toFloat64(d.dividend) * 4 / toFloat64(p.close) * 100, 2)              AS indicated_yield_pct
FROM
(
    SELECT
        ex_dividend_date    AS ex_day,
        any(cash_amount)    AS dividend
    FROM global_markets.stocks_dividends
    WHERE ticker = 'MSFT'
      AND ex_dividend_date >= toDate('2024-01-01')
      AND ex_dividend_date <= today()
    GROUP BY ex_dividend_date
) AS d
INNER JOIN
(
    SELECT
        toDate(date)        AS day,
        any(close)          AS close
    FROM global_markets.stocks_daily_aggs
    WHERE ticker = 'MSFT'
      AND date >= toDate('2024-01-01')
      AND date <= today()
    GROUP BY day
) AS p ON p.day = d.ex_day
ORDER BY d.ex_day
⌘/Ctrl + Enter
More from this analysismsft-dividend-2026
record_2026 series 4×7 raise_history table 7×7 cy_vs_fy ranking 2×4 yield_now scalar 1×7 The 2s10s spread by month, full history series 604×5 One SPY $600 LEAPS call's price over two years (expired Jan 16 2026) series 470×2 See all 2,433 queries →