STRASMORE/EXPLORE 2,648 QUERIES

growth_horizons

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 3×6read in context →
growth_horizons — 3 rows by 6 columns, computed from US exchange, SIP and OPRA data.
horizonmeasured_fromstart_annual_dividendlatest_annual_dividendgrowth_cagr_pctgrowth_multiple
5-year20214.245.364.81.26
10-year20163.25.365.291.68
20-year20061.55.366.573.57
Rows × columns
3 × 6
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 growth_horizons, derived from the stored result.
ColumnTypeRangeNotes
horizon text 3 distinct values (10-year, 20-year, 5-year)
measured_from text 3 distinct values (2006, 2016, 2021)
start_annual_dividend number 1.5 to 4.24
latest_annual_dividend number every row is 5.36
growth_cagr_pct number 4.8 to 6.57 percent
growth_multiple number 1.26 to 3.57

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
    annual AS
    (
        SELECT
            div_year,
            annual_dividend,
            max(div_year) OVER () AS latest_year
        FROM
        (
            SELECT
                toYear(ex_dividend_date) AS div_year,
                round(max(toFloat64(cash_amount)) * 4, 4) AS annual_dividend
            FROM global_markets.stocks_dividends
            WHERE ticker = 'JNJ'
              AND frequency = 4
              AND ex_dividend_date >= '2000-01-01'
              AND ex_dividend_date <  '2027-01-01'
            GROUP BY div_year
        )
    )
SELECT
    concat(toString(e.div_year - b.div_year), '-year') AS horizon,
    toString(b.div_year) AS measured_from,
    b.annual_dividend AS start_annual_dividend,
    e.annual_dividend AS latest_annual_dividend,
    round((pow(e.annual_dividend / b.annual_dividend, 1.0 / (e.div_year - b.div_year)) - 1) * 100, 2) AS growth_cagr_pct,
    round(e.annual_dividend / b.annual_dividend, 2) AS growth_multiple
FROM annual AS e
CROSS JOIN annual AS b
WHERE e.div_year = e.latest_year
  AND (e.div_year - b.div_year) IN (5, 10, 20)
ORDER BY e.div_year - b.div_year
⌘/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 → payout_trend table 8×5 → 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 →