STRASMORE/EXPLORE 2,830 QUERIES

ttm_yield

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 what-is-spy-etf-for-russian-investors.

as of series 36×4read in context →
ttm_yield — 36 rows by 4 columns, computed from US exchange, SIP and OPRA data.
monthas_of_labelgross_yield_pctnet_yield_pct
2023-10-0131.10.20231.561.09
2023-11-0130.11.20231.431
2023-12-0129.12.20231.40.98
2024-01-0131.01.20241.370.96
2024-02-0129.02.20241.310.91
2024-03-0128.03.20241.290.9
2024-04-0130.04.20241.340.94
2024-05-0131.05.20241.270.89
2024-06-0128.06.20241.260.88
2024-07-0131.07.20241.240.87
2024-08-0130.08.20241.210.85
2024-09-0130.09.20241.220.85
2024-10-0131.10.20241.230.86
2024-11-0129.11.20241.160.81
2024-12-0131.12.20241.210.84
2025-01-0131.01.20251.170.82
2025-02-0128.02.20251.190.83
2025-03-0131.03.20251.280.9
2025-04-0130.04.20251.290.9
2025-05-0130.05.20251.220.85
2025-06-0130.06.20251.160.81
2025-07-0131.07.20251.130.79
2025-08-0129.08.20251.110.78
2025-09-0130.09.20251.090.76
2025-10-0131.10.20251.060.74
2025-11-0128.11.20251.060.74
2025-12-0131.12.20251.070.75
2026-01-0130.01.20261.050.74
2026-02-0127.02.20261.060.74
2026-03-0131.03.20261.140.79
2026-04-0130.04.20261.030.72
2026-05-0129.05.20260.980.68
2026-06-0130.06.20261.010.71
2026-07-0131.07.20261.010.71
2026-08-0131.08.20260.980.69
2026-09-0130.09.20260.990.69
Rows × columns
36 × 4
Period covered
to
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 ttm_yield, derived from the stored result.
ColumnTypeRangeNotes
month date 2023-10-01 to 2026-09-01
as_of_label text 36 distinct values (27.02.2026, 28.02.2025, 28.03.2024…)
gross_yield_pct number 0.98 to 1.56 percent
net_yield_pct number 0.68 to 1.09 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
    prices AS
    (
        SELECT
            toStartOfMonth(date)           AS m,
            argMax(toFloat64(close), date) AS month_close,
            max(date)                      AS month_last
        FROM global_markets.stocks_daily_aggs
        WHERE ticker = 'SPY'
          AND date >= today() - 1500
        GROUP BY m
    ),
    payouts AS
    (
        SELECT
            toDate(ex_dividend_date)    AS ex_date,
            max(toFloat64(cash_amount)) AS amount
        FROM global_markets.stocks_dividends
        WHERE ticker = 'SPY'
          AND ex_dividend_date >= today() - 1900
        GROUP BY ex_dividend_date
    )
SELECT
    toString(p.m)                                 AS month,
    formatDateTime(any(p.month_last), '%d.%m.%Y') AS as_of_label,
    round(100 * sumIf(d.amount, (d.ex_date > (p.month_last - 365)) AND (d.ex_date <= p.month_last)) / any(p.month_close), 2) AS gross_yield_pct,
    round( 70 * sumIf(d.amount, (d.ex_date > (p.month_last - 365)) AND (d.ex_date <= p.month_last)) / any(p.month_close), 2) AS net_yield_pct
FROM prices AS p
CROSS JOIN payouts AS d
WHERE p.m >= toStartOfMonth(today() - 1095)
GROUP BY p.m
ORDER BY p.m
⌘/Ctrl + Enter

Work with this data in your AI assistant

Opens ready to query, with this page's data. Free, no account.