dps_growth
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-24, from vz-vs-t-dividend.
| year | vz_change_pct | t_change_pct |
|---|---|---|
| 2016 | 2.6 | 2.13 |
| 2017 | 2.2 | 2.08 |
| 2018 | 2.15 | 2.04 |
| 2019 | 2.11 | 2 |
| 2020 | 2.06 | 1.96 |
| 2021 | 2.02 | 0 |
| 2022 | 1.98 | -34.98 |
| 2023 | 1.94 | -17.93 |
| 2024 | 1.91 | 0 |
| 2025 | 1.87 | 0 |
- Rows × columns
- 10 × 3
- 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 |
|---|---|---|---|
year |
number | 2,016 to 2,025 | |
vz_change_pct |
number | 1.87 to 2.6 | percent |
t_change_pct |
number | -34.98 to 2.13 | 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
paid AS
(
SELECT
id,
any(ticker) AS tkr,
any(ex_dividend_date) AS ex_date,
any(toFloat64(cash_amount)) AS amount
FROM global_markets.stocks_dividends
WHERE ticker IN ('VZ', 'T')
AND cash_amount > 0
GROUP BY id
),
yearly AS
(
SELECT
toYear(ex_date) AS year,
sumIf(amount, tkr = 'VZ') AS vz,
sumIf(amount, tkr = 'T') AS t
FROM paid
WHERE toYear(ex_date) BETWEEN toYear(today()) - 11 AND toYear(today()) - 1
GROUP BY year
HAVING countIf(tkr = 'VZ') > 0 AND countIf(tkr = 'T') > 0
),
prior AS
(
SELECT
year + 1 AS year,
vz AS prev_vz,
t AS prev_t
FROM yearly
)
SELECT
y.year AS year,
round(100 * (y.vz / p.prev_vz - 1), 2) AS vz_change_pct,
round(100 * (y.t / p.prev_t - 1), 2) AS t_change_pct
FROM yearly AS y
INNER JOIN prior AS p ON p.year = y.year
ORDER BY year
Work with this data in your AI assistant
Opens ready to query, with this page's data. Free, no account.