{"slug":"sec-30-day-yield-vs-distribution-yield","qid":"yield_gap","label":"Trailing twelve-month yield and indicated yield, same funds, same day","post_title":"SEC 30-Day Yield vs Distribution Yield","post_url":"/blog/sec-30-day-yield-vs-distribution-yield#q-yield_gap","columns":["fund","ttm_distribution_yield_pct","indicated_yield_pct","gap_pct"],"rows":[{"fund":"JEPI","ttm_distribution_yield_pct":7.91,"indicated_yield_pct":7.59,"gap_pct":0.31},{"fund":"VYM","ttm_distribution_yield_pct":2.2,"indicated_yield_pct":2.38,"gap_pct":0.17},{"fund":"SCHD","ttm_distribution_yield_pct":3,"indicated_yield_pct":2.89,"gap_pct":0.11},{"fund":"TLT","ttm_distribution_yield_pct":4.74,"indicated_yield_pct":4.82,"gap_pct":0.08},{"fund":"QQQ","ttm_distribution_yield_pct":0.42,"indicated_yield_pct":0.45,"gap_pct":0.03},{"fund":"SPY","ttm_distribution_yield_pct":0.98,"indicated_yield_pct":0.99,"gap_pct":0.01}],"shape":"ranking","sql":"WITH\n    px AS\n    (\n        SELECT\n            ticker,\n            argMax(toFloat64(close), date) AS last_close\n        FROM global_markets.stocks_daily_aggs\n        WHERE ticker IN ('SPY', 'SCHD', 'VYM', 'QQQ', 'TLT', 'JEPI')\n          AND date >= today() - 30\n        GROUP BY ticker\n    ),\n    paid AS\n    (\n        SELECT\n            fund_ticker       AS ticker,\n            sum(cash)         AS ttm_cash,\n            argMax(cash, exd) AS latest_cash,\n            argMax(freq, exd) AS pays_per_year\n        FROM\n        (\n            SELECT\n                any(ticker)                 AS fund_ticker,\n                any(toFloat64(cash_amount)) AS cash,\n                any(ex_dividend_date)       AS exd,\n                any(toUInt16(frequency))    AS freq\n            FROM global_markets.stocks_dividends\n            WHERE ticker IN ('SPY', 'SCHD', 'VYM', 'QQQ', 'TLT', 'JEPI')\n              AND ex_dividend_date > today() - 365\n              AND ex_dividend_date <= today()\n              AND toUInt16(frequency) > 0\n            GROUP BY id\n        )\n        GROUP BY fund_ticker\n    )\nSELECT\n    p.ticker                                                       AS fund,\n    round((100 * p.ttm_cash) / x.last_close, 2)                    AS ttm_distribution_yield_pct,\n    round((100 * p.latest_cash * p.pays_per_year) / x.last_close, 2) AS indicated_yield_pct,\n    round(abs(((100 * p.latest_cash * p.pays_per_year) / x.last_close)\n              - ((100 * p.ttm_cash) / x.last_close)), 2)           AS gap_pct\nFROM paid AS p\nINNER JOIN px AS x ON x.ticker = p.ticker\nORDER BY gap_pct DESC, fund ASC","computed_at":"2026-08-22T04:18:55.709169+00:00","elapsed":0.05308444}