STRASMORE/EXPLORE 2,500 QUERIES

monthly_calendar

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-23, from what-is-income.

as of series 12×4read in context →
monthly_calendar — 12 rows by 4 columns, computed from US exchange, SIP and OPRA data.
monthcompanies_going_expayments_scheduledmonth_label
2025-09-0147364941Sep 2025
2025-10-0128353203Oct 2025
2025-11-0132833687Nov 2025
2025-12-0162437413Dec 2025
2026-01-0120232541Jan 2026
2026-02-0130783534Feb 2026
2026-03-0161216668Mar 2026
2026-04-0133053873Apr 2026
2026-05-0141604734May 2026
2026-06-0159956582Jun 2026
2026-07-0131723818Jul 2026
2026-08-0136854257Aug 2026
Rows × columns
12 × 4
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 monthly_calendar, derived from the stored result.
ColumnTypeRangeNotes
month date 2025-09-01 to 2026-08-01
companies_going_ex number 2,023 to 6,243
payments_scheduled number 2,541 to 7,413
month_label text 12 distinct values (Apr 2026, Aug 2026, Dec 2025…)

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(month_start)                        AS month,
    uniqExact(ticker)                            AS companies_going_ex,
    uniqExact((ticker, ex_dividend_date))        AS payments_scheduled,
    formatDateTime(month_start, '%b %Y')         AS month_label
FROM
(
    SELECT
        toStartOfMonth(ex_dividend_date) AS month_start,
        ticker,
        ex_dividend_date
    FROM global_markets.stocks_dividends
    WHERE ex_dividend_date >= toStartOfMonth(today() - 365)
      AND ex_dividend_date <  toStartOfMonth(today())
)
GROUP BY month_start
ORDER BY month_start
⌘/Ctrl + Enter

Work with this data in your AI assistant

Opens ready to query, with this page's data. Free, no account.