pep_2026_schedule
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 pep-dividend-2026.
| ex_dividend_date | quarter | status | declared | record_date | payment_date | cash_amount | change_vs_q1_pct |
|---|---|---|---|---|---|---|---|
| 2026-03-06 | Q1 2026 | confirmed | Feb 4, 2026 | Mar 6, 2026 | Mar 31, 2026 | 1.4225 | 0 |
| 2026-06-05 | Q2 2026 | confirmed | May 6, 2026 | Jun 5, 2026 | Jun 30, 2026 | 1.48 | 4 |
| 2026-09-04 | Q3 2026 | confirmed | Jul 17, 2026 | Sep 4, 2026 | Sep 30, 2026 | 1.48 | 4 |
| 2026-12-05 | Q4 2026 | scheduled | not yet declared | Dec 5, 2026 | Jan 6, 2027 | 1.48 | 4 |
- Rows × columns
- 4 × 8
- Period covered
- to
- Computed
- Completeness
- No missing values
- Source
- US exchange, SIP and OPRA market data
- Licence
- Strasmore terms · free, no signup
What each column holds
| Column | Type | Range | Notes |
|---|---|---|---|
ex_dividend_date |
date | 2026-03-06 to 2026-12-05 | |
quarter |
text | 4 distinct values (Q1 2026, Q2 2026, Q3 2026…) | |
status |
text | 2 distinct values (confirmed, scheduled) | |
declared |
text | 4 distinct values (Feb 4, 2026, Jul 17, 2026, May 6, 2026…) | |
record_date |
text | 4 distinct values (Dec 5, 2026, Jun 5, 2026, Mar 6, 2026…) | |
payment_date |
text | 4 distinct values (Jan 6, 2027, Jun 30, 2026, Mar 31, 2026…) | |
cash_amount |
number | 1.4225 to 1.48 | |
change_vs_q1_pct |
number | 0 to 4 | 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
(
SELECT toFloat64(max(cash_amount))
FROM global_markets.stocks_dividends
WHERE ticker = 'PEP'
AND toYear(ex_dividend_date) = 2026
AND toQuarter(ex_dividend_date) = 1
) AS q1_rate
SELECT
toString(argMin(ex_date, src)) AS ex_dividend_date,
concat('Q', toString(q), ' 2026') AS quarter,
if(min(src) = 0, 'confirmed', 'scheduled') AS status,
if(min(src) = 0 AND argMin(decl_date, src) > toDate('2000-01-01'),
formatDateTime(argMin(decl_date, src), '%b %e, %Y'),
'not yet declared') AS declared,
formatDateTime(argMin(rec_date, src), '%b %e, %Y') AS record_date,
formatDateTime(argMin(pay_dt, src), '%b %e, %Y') AS payment_date,
round(argMin(amt, src), 4) AS cash_amount,
round(100 * (toFloat64(argMin(amt, src)) / q1_rate - 1), 1) AS change_vs_q1_pct
FROM
(
SELECT
0 AS src,
toQuarter(ex_dividend_date) AS q,
ex_dividend_date AS ex_date,
ifNull(declaration_date, toDate('1970-01-01')) AS decl_date,
record_date AS rec_date,
pay_date AS pay_dt,
cash_amount AS amt
FROM global_markets.stocks_dividends
WHERE ticker = 'PEP'
AND ex_dividend_date >= '2026-01-01'
AND ex_dividend_date < '2027-01-01'
UNION ALL
SELECT
1,
toQuarter(ex_dividend_date),
addYears(ex_dividend_date, 1),
toDate('1970-01-01'),
addYears(record_date, 1),
addYears(pay_date, 1),
(
SELECT max(cash_amount)
FROM global_markets.stocks_dividends
WHERE ticker = 'PEP'
AND ex_dividend_date >= '2026-01-01'
AND ex_dividend_date < '2027-01-01'
)
FROM global_markets.stocks_dividends
WHERE ticker = 'PEP'
AND ex_dividend_date >= '2025-01-01'
AND ex_dividend_date < '2026-01-01'
)
GROUP BY q
ORDER BY q
Work with this data in your AI assistant
Opens ready to query, with this page's data. Free, no account.