STRASMORE/EXPLORE 3,214 QUERIES 22Y EQUITIES · 12Y OPTIONS

3,214 answered market questions

every one with its exact SQL, its result and the date it was computed · free, no signup

Build a Dividend Income Tracker With SQL
Yield on cost against current yield, per positionranking · 2026-10-08 · 6×3Preview: 6 ranked values, largest first. Annual dividend income per position, with a running portfolio totalranking · 2026-10-08 · 6×3Preview: 6 ranked values, largest first. What the sample list paid per calendar year, share counts held fixedranking · 2026-10-08 · 5×3Preview: 5 ranked values, smallest first. Projected dividend income by month, next twelve monthsseries · 2026-10-08 · 13×4Preview: a 13-point series, roughly flat. Latest declared dividend per share for each sample holdingtable · 2026-10-08 · 6×5
Yield on cost against current yield, per position

Yield on cost against current yield, per position

most recentas of ranking 6×3read in context →
Yield on cost against current yield, per position — 6 rows by 3 columns, computed from US exchange, SIP and OPRA data.
tickeryield_on_cost_pctcurrent_yield_pct
O5.276.11
XOM4.282.46
KO3.922.46
JNJ3.452.08
PG3.082.94
MSFT1.460.74
the exact SQL behind every number
WITH holdings AS
(
    SELECT
        tupleElement(h, 1) AS ticker,
        tupleElement(h, 2) AS cost_per_share
    FROM
    (
        SELECT arrayJoin([
            ('KO',    54.10),
            ('PG',   141.25),
            ('JNJ',  155.40),
            ('MSFT', 268.75),
            ('XOM',   96.20),
            ('O',     61.85)
        ]) AS h
    )
),
declared AS
(
    SELECT
        ticker,
        argMax(cash_amount, ex_dividend_date) AS cash_per_payment,
        argMax(frequency, ex_dividend_date)   AS pays_per_year
    FROM global_markets.stocks_dividends
    WHERE ticker IN ('KO', 'PG', 'JNJ', 'MSFT', 'XOM', 'O')
      AND currency = 'USD'
      AND frequency IN (1, 2, 4, 12)
      AND ex_dividend_date >= today() - 400
      AND ex_dividend_date <= today() + 120
    GROUP BY ticker
),
last_px AS
(
    SELECT
        ticker,
        argMax(toFloat64(close), date) AS last_close
    FROM global_markets.stocks_daily_aggs
    WHERE ticker IN ('KO', 'PG', 'JNJ', 'MSFT', 'XOM', 'O')
      AND date >= today() - 45
    GROUP BY ticker
)
SELECT
    h.ticker AS ticker,
    round(toFloat64(d.cash_per_payment) * d.pays_per_year / h.cost_per_share * 100, 2) AS yield_on_cost_pct,
    round(toFloat64(d.cash_per_payment) * d.pays_per_year / p.last_close * 100, 2)     AS current_yield_pct
FROM holdings AS h
INNER JOIN declared AS d ON d.ticker = h.ticker
INNER JOIN last_px  AS p ON p.ticker = h.ticker
ORDER BY yield_on_cost_pct DESC
$