STRASMORE/EXPLORE 2,648 QUERIES

dist_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-26, from is-the-sp-500-sharia-compliant.

as of table 3×5read in context →
dist_yield — 3 rows by 5 columns, computed from US exchange, SIP and OPRA data.
tickeryield_pctcash_12m_usdpayments_12masof_ar
SPY0.987.583425 سبتمبر 2026
HLAL0.560.419525 سبتمبر 2026
SPUS0.510.3061225 سبتمبر 2026
Rows × columns
3 × 5
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 dist_yield, derived from the stored result.
ColumnTypeRangeNotes
ticker text 3 distinct values (HLAL, SPUS, SPY)
yield_pct number 0.51 to 0.98 percent
cash_12m_usd number 0.306 to 7.583 US dollars
payments_12m number 4 to 12
asof_ar text 1 distinct value (25 سبتمبر 2026)

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 px AS
(
    SELECT
        ticker,
        argMax(toFloat64(close), date) AS last_close,
        max(date)                      AS asof
    FROM global_markets.stocks_daily_aggs
    WHERE ticker IN ('SPY', 'SPUS', 'HLAL')
      AND date >= today() - 40
    GROUP BY ticker
),
dist AS
(
    SELECT
        ticker,
        sum(cash) AS cash_12m,
        count()   AS payments_12m
    FROM
    (
        SELECT
            ticker,
            ex_dividend_date,
            max(toFloat64(cash_amount)) AS cash
        FROM global_markets.stocks_dividends
        WHERE ticker IN ('SPY', 'SPUS', 'HLAL')
          AND ex_dividend_date >  today() - 370
          AND ex_dividend_date <= today()
        GROUP BY ticker, ex_dividend_date
    )
    GROUP BY ticker
)
SELECT
    p.ticker                                   AS ticker,
    round(100 * d.cash_12m / p.last_close, 2)  AS yield_pct,
    round(d.cash_12m, 3)                       AS cash_12m_usd,
    toUInt32(d.payments_12m)                   AS payments_12m,
    concat(
        toString(toDayOfMonth(p.asof)),
        ' ',
        transform(toMonth(p.asof),
                  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
                  ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو',
                   'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'],
                  ''),
        ' ',
        toString(toYear(p.asof))
    )                                          AS asof_ar
FROM px AS p
INNER JOIN dist AS d ON d.ticker = p.ticker
ORDER BY yield_pct DESC
⌘/Ctrl + Enter

Work with this data in your AI assistant

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