cash_vs_price
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 weekly-dividend-etfs-explained.
| ticker | distributions_pct | price_change_pct | cash_plus_price_pct |
|---|---|---|---|
| AMDW | 106.5 | 120.6 | 227.1 |
| WNTR | 84.1 | -56.5 | 27.7 |
| MRNY | 80.7 | 112 | 192.7 |
| AMDY | 71.5 | 31.1 | 102.6 |
| AMYY | 68.6 | -44.4 | 24.1 |
| ARMW | 61 | 0.9 | 61.9 |
| NVYY | 56.9 | -52.5 | 4.3 |
| SMYY | 55 | -76.6 | -21.6 |
| IOYY | 53.6 | -75.2 | -21.6 |
| FIAT | 52 | -48.2 | 3.8 |
- Rows × columns
- 10 × 4
- 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 |
|---|---|---|---|
ticker |
text | 10 distinct values (AMDW, AMDY, AMYY…) | |
distributions_pct |
number | 52 to 106.5 | percent |
price_change_pct |
number | -76.6 to 120.6 | percent |
cash_plus_price_pct |
number | -21.6 to 227.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
weekly AS
(
SELECT ticker
FROM global_markets.stocks_dividends
WHERE ex_dividend_date >= today() - 365
AND ex_dividend_date <= today()
AND ticker NOT IN ('SPCX')
GROUP BY ticker
HAVING countDistinct(ex_dividend_date) >= 40
),
paid AS
(
SELECT
ticker,
sum(amount) AS cash_12m
FROM
(
SELECT
ticker,
ex_dividend_date,
max(cash_amount) AS amount
FROM global_markets.stocks_dividends
WHERE ex_dividend_date >= today() - 365
AND ex_dividend_date <= today()
AND ticker IN (SELECT ticker FROM weekly)
GROUP BY ticker, ex_dividend_date
)
GROUP BY ticker
),
px AS
(
SELECT
ticker,
toFloat64(argMin(close, date)) AS start_close,
toFloat64(argMax(close, date)) AS end_close
FROM global_markets.stocks_daily_aggs
WHERE date >= today() - 365
AND ticker IN (SELECT ticker FROM weekly)
GROUP BY ticker
HAVING countDistinct(date) >= 220
)
SELECT
c.ticker AS ticker,
round(100 * toFloat64(c.cash_12m) / p.start_close, 1) AS distributions_pct,
round(100 * (p.end_close - p.start_close) / p.start_close, 1) AS price_change_pct,
round(100 * (toFloat64(c.cash_12m) + p.end_close - p.start_close) / p.start_close, 1) AS cash_plus_price_pct
FROM paid AS c
INNER JOIN px AS p ON p.ticker = c.ticker
ORDER BY distributions_pct DESC
LIMIT 10
Work with this data in your AI assistant
Opens ready to query, with this page's data. Free, no account.