STRASMORE/EXPLORE 2,648 QUERIES

payout_trend

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-26, from jnj-dividend-increase-history.

as of table 8×5read in context →
payout_trend — 8 rows by 5 columns, computed from US exchange, SIP and OPRA data.
yeardividends_per_sharediluted_epseps_payout_pctcash_payout_pct
20183.545.6163.142.8
20193.755.6366.642.4
20203.985.5172.242.5
20214.197.8153.647.1
20224.456.7366.155.1
20234.713.7234.351.6
20244.915.7984.848.7
20255.1411.0346.650.5
Rows × columns
8 × 5
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 payout_trend, derived from the stored result.
ColumnTypeRangeNotes
year text 8 distinct values (2018, 2019, 2020…)
dividends_per_share number 3.54 to 5.14
diluted_eps number 5.51 to 13.72
eps_payout_pct number 34.3 to 84.8 percent
cash_payout_pct number 42.4 to 55.1 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
    per_share AS
    (
        SELECT
            toYear(ex_date) AS fy,
            round(sum(amount), 4) AS dividends_per_share,
            count() AS payments
        FROM
        (
            SELECT
                ex_dividend_date AS ex_date,
                max(toFloat64(cash_amount)) AS amount
            FROM global_markets.stocks_dividends
            WHERE ticker = 'JNJ'
              AND frequency = 4
              AND ex_dividend_date >= '2018-01-01'
              AND ex_dividend_date <  '2026-01-01'
            GROUP BY ex_dividend_date
        )
        GROUP BY fy
        HAVING payments = 4
    ),
    eps_annual AS
    (
        SELECT
            toYear(period_end - 7) AS fy,
            argMax(toFloat64(diluted_earnings_per_share), (filing_date, period_end)) AS diluted_eps
        FROM global_markets.stocks_income_statements
        WHERE has(tickers, 'JNJ')
          AND timeframe = 'annual'
          AND period_end >= '2018-01-01'
          AND period_end <  '2026-06-01'
        GROUP BY fy
    ),
    cash AS
    (
        SELECT
            toYear(period_end - 7) AS fy,
            argMax(toFloat64(dividends), (filing_date, period_end)) AS dividends_paid,
            argMax(toFloat64(net_cash_from_operating_activities), (filing_date, period_end)) AS operating_cash
        FROM global_markets.stocks_cash_flow_statements
        WHERE has(tickers, 'JNJ')
          AND timeframe = 'annual'
          AND period_end >= '2018-01-01'
          AND period_end <  '2026-06-01'
        GROUP BY fy
    )
SELECT
    toString(p.fy) AS year,
    p.dividends_per_share AS dividends_per_share,
    round(e.diluted_eps, 2) AS diluted_eps,
    round(p.dividends_per_share / e.diluted_eps * 100, 1) AS eps_payout_pct,
    round(abs(c.dividends_paid) / c.operating_cash * 100, 1) AS cash_payout_pct
FROM per_share AS p
INNER JOIN eps_annual AS e ON e.fy = p.fy
INNER JOIN cash AS c ON c.fy = p.fy
ORDER BY p.fy
⌘/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-increase-history
raise_history table 21×6 → growth_horizons table 3×6 → separation_trace series 19×4 → The 2s10s spread, every print of the half table 124×2 → The 2s10s spread, every print of the half table 124×2 → Every half-year since 1976: the 2y and 10y change, the twist between them, and the half's lowest 2s10s print table 100×7 → See all 2,648 queries →