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.
| ticker | yield_pct | cash_12m_usd | payments_12m | asof_ar |
|---|---|---|---|---|
| SPY | 0.98 | 7.583 | 4 | 25 سبتمبر 2026 |
| HLAL | 0.56 | 0.419 | 5 | 25 سبتمبر 2026 |
| SPUS | 0.51 | 0.306 | 12 | 25 سبتمبر 2026 |
- Rows × columns
- 3 × 5
- 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 | 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
Work with this data in your AI assistant
Opens ready to query, with this page's data. Free, no account.