STRASMORE/EXPLORE 2,882 QUERIES

raises

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-10-01, from pep-dividend-history.

as of table 23×5read in context →
raises — 23 rows by 5 columns, computed from US exchange, SIP and OPRA data.
yearraised_inraise_pctnew_rateconsecutive_years
2004Jun43.750.231
2005Jun13.040.262
2006Jun15.380.33
2007Jun250.3754
2008Jun13.330.4255
2009Jun5.880.456
2010Jun6.670.487
2011Jun7.290.5158
2012May4.370.53759
2013Jun5.580.567510
2014Jun15.420.65511
2015Jun7.250.702512
2016Jun7.120.752513
2017May6.980.80514
2018May15.220.927515
2019Jun2.960.95516
2020Jun7.071.022517
2021Jun5.131.07518
2022Jun6.981.1519
2023Jun101.26520
2024Jun7.111.35521
2025Jun4.981.422522
2026Jun4.041.4823
Rows × columns
23 × 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 raises, derived from the stored result.
ColumnTypeRangeNotes
year number 2,004 to 2,026
raised_in text 2 distinct values (Jun, May)
raise_pct number 2.96 to 43.75 percent
new_rate number 0.23 to 1.48 ratio or rate
consecutive_years number 1 to 23

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
    year,
    raised_in,
    raise_pct,
    new_rate,
    count() OVER (PARTITION BY streak_group ORDER BY year ASC ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS consecutive_years
FROM
(
    SELECT
        year,
        raised_in,
        raise_pct,
        new_rate,
        year - row_number() OVER (ORDER BY year ASC) AS streak_group
    FROM
    (
        SELECT
            toYear(ex_date)                                             AS year,
            argMin(formatDateTime(ex_date, '%b'), ex_date)              AS raised_in,
            round(argMin(100 * (amt - prev_amt) / prev_amt, ex_date), 2) AS raise_pct,
            round(argMin(amt, ex_date), 4)                              AS new_rate
        FROM
        (
            SELECT
                ex_date,
                amt,
                lagInFrame(amt) OVER (ORDER BY ex_date ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_amt
            FROM
            (
                SELECT
                    ex_dividend_date            AS ex_date,
                    max(toFloat64(cash_amount)) AS amt
                FROM global_markets.stocks_dividends
                WHERE ticker = 'PEP'
                GROUP BY ex_dividend_date
            )
        )
        WHERE prev_amt > 0 AND amt > prev_amt * 1.001
        GROUP BY year
    )
)
ORDER BY 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 analysispep-dividend-history
annual table 22×5 → payments series 13×6 → yield_grid ranking 9×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,882 queries →