STRASMORE/EXPLORE 2,433 QUERIES

record_2026

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 4×7read in context →
record_2026 — 4 rows by 7 columns, computed from US exchange, SIP and OPRA data.
ex_dateex_labelrecord_datepay_datepay_labeldeclared_ondividend_per_share
2026-02-19Feb 192026-02-192026-03-12Mar 122025-12-020.91
2026-05-21May 212026-05-212026-06-11Jun 112026-03-100.91
2026-08-20Aug 202026-08-202026-09-10Sep 102026-06-100.91
2026-11-19Nov 192026-11-192026-12-10Dec 102026-09-140.98
Rows × columns
4 × 7
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 record_2026, derived from the stored result.
ColumnTypeRangeNotes
ex_date date 2026-02-19 to 2026-11-19
ex_label text 4 distinct values (Aug 20, Feb 19, May 21…)
record_date date 2026-02-19 to 2026-11-19
pay_date date 2026-03-12 to 2026-12-10
pay_label text 4 distinct values (Dec 10, Jun 11, Mar 12…)
declared_on date 2025-12-02 to 2026-09-14
dividend_per_share number 0.91 to 0.98

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(ex_day)                                                            AS ex_date,
    concat(formatDateTime(ex_day, '%b'), ' ', toString(toDayOfMonth(ex_day)))   AS ex_label,
    toString(record_day)                                                        AS record_date,
    toString(pay_day)                                                           AS pay_date,
    concat(formatDateTime(pay_day, '%b'), ' ', toString(toDayOfMonth(pay_day))) AS pay_label,
    toString(declared_day)                                                      AS declared_on,
    round(toFloat64(dividend), 2)                                               AS dividend_per_share
FROM
(
    SELECT
        ex_dividend_date                                AS ex_day,
        toDateOrNull(toString(any(record_date)))        AS record_day,
        toDateOrNull(toString(any(pay_date)))           AS pay_day,
        toDateOrNull(toString(any(declaration_date)))   AS declared_day,
        any(cash_amount)                                AS dividend
    FROM global_markets.stocks_dividends
    WHERE ticker = 'MSFT'
      AND ex_dividend_date >= toDate('2026-01-01')
      AND ex_dividend_date <  toDate('2027-01-01')
    GROUP BY ex_dividend_date
)
ORDER BY ex_day
⌘/Ctrl + Enter
More from this analysismsft-dividend-2026
yield_trace series 11×6 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 →