STRASMORE/EXPLORE 2,830 QUERIES

schedule_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-30, from jnj-dividend-2026.

as of series 3×7read in context →
schedule_2026 — 3 rows by 7 columns, computed from US exchange, SIP and OPRA data.
ex_dateex_date_labeldeclared_labelrecord_labelpay_date_labelcash_amountpayment_status
2026-02-24Feb 24Jan 2Feb 24Mar 101.3paid
2026-05-26May 26Apr 14May 26Jun 91.34paid
2026-08-25Aug 25Jul 15Aug 25Sep 81.34paid
Rows × columns
3 × 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 schedule_2026, derived from the stored result.
ColumnTypeRangeNotes
ex_date date 2026-02-24 to 2026-08-25
ex_date_label text 3 distinct values (Aug 25, Feb 24, May 26)
declared_label text 3 distinct values (Apr 14, Jan 2, Jul 15)
record_label text 3 distinct values (Aug 25, Feb 24, May 26)
pay_date_label text 3 distinct values (Jun 9, Mar 10, Sep 8)
cash_amount number 1.3 to 1.34
payment_status text 1 distinct value (paid)

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_dividend_date)                        AS ex_date,
    formatDateTime(ex_dividend_date, '%b %e')         AS ex_date_label,
    formatDateTime(any(declaration_date), '%b %e')    AS declared_label,
    formatDateTime(any(record_date), '%b %e')         AS record_label,
    formatDateTime(any(pay_date), '%b %e')            AS pay_date_label,
    round(toFloat64(max(cash_amount)), 4)             AS cash_amount,
    if(any(pay_date) <= today(), 'paid', 'scheduled') AS payment_status
FROM global_markets.stocks_dividends
WHERE ticker = 'JNJ'
  AND ex_dividend_date >= '2026-01-01'
  AND ex_dividend_date <  '2027-01-01'
GROUP BY ex_dividend_date
ORDER BY ex_dividend_date
⌘/Ctrl + Enter

Work with this data in your AI assistant

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

More from this analysisjnj-dividend-2026
yield_2026 series 9×3 → price_2026 series 9×4 → raise_history ranking 11×3 → annual_totals table 11×6 → 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,830 queries →