STRASMORE/EXPLORE 2,648 QUERIES

index_series

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 series 81×4read in context →
index_series — 81 rows by 4 columns, computed from US exchange, SIP and OPRA data.
monthspy_indexspus_indexhlal_index
2020-019999.698.2
2020-0291.291.988.8
2020-0379.383.477.9
2020-0489.494.288.7
2020-0593.799.193.8
2020-0694.9102.396.5
2020-07100.5107.9103.2
2020-08107.5117.9113.6
2020-09103.1112.2108.2
2020-10100.5109.2103.2
2020-11111.4118.8116.3
2020-12115.1122.5122.1
2021-01113.9123.5122.8
2021-02117.1124122.3
2021-03122127.9127.3
2021-04128.5134.7131.5
2021-05129.3134.3131.7
2021-06131.8140.3135.8
2021-07135146139.7
2021-08139151.1142.9
2021-09132.1142.6136
2021-10141.4155.5146.3
2021-11140.2158.4148.4
2021-12146.2164.3155.7
2022-01138.5153.1147.8
2022-02134.4145.8143.6
2022-03139152.2149.9
2022-04126.8138.2138.8
2022-05127.1137.2139
2022-06116.1126.1126.7
2022-07126.8138.8139
2022-08121.6131.2132.9
2022-09109.9119.2120.5
2022-10118.9126.8129.3
2022-11125.5133.9135.8
2022-12117.7125.5126.9
2023-01125.1133.1134.5
2023-02122131.6132.6
2023-03126141.4140.4
2023-04128143.6142.7
2023-05128.6147.8145.3
2023-06136.4157.2154.2
2023-07140.9161.7159
2023-08138.6159.5156.5
2023-09131.6150.8149.3
2023-10128.7146.3145.2
2023-11140.5160.2158.5
2023-12146.3166.8163.8
2024-01148.6169.8164.4
2024-02156.4180.2171.4
2024-03161184.7174.3
2024-04154.5177.5167.5
2024-05162.3186.9175.2
2024-06167.5197.3182.5
2024-07169.5195.9182.7
2024-08173.5198.7184.7
2024-09176.6203.5188.6
2024-10175200.1182.7
2024-11185.5209.4191.9
2024-12180.4209.4190.1
2025-01185.2212.1194.9
2025-02182.9205.4187.9
2025-03172.2189.9176
2025-04170.7188.5174
2025-05181.4204.1184.1
2025-06190.2216.3192.9
2025-07194.6224.2198
2025-08198.6228.7203.9
2025-09205.1241213.8
2025-10209.9251.6221.2
2025-11210.4250.2225
2025-12209.9249.1223.6
2026-01213251227.8
2026-02211.2248.4227
2026-03200.2234.9213.8
2026-04221.2262.2241.3
2026-05232.9285.5263.6
2026-06229.9280.4257.3
2026-07229.9274.7251.9
2026-08236.1287261.8
2026-09237.4292.8271.6
Rows × columns
81 × 4
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 index_series, derived from the stored result.
ColumnTypeRangeNotes
month text 81 distinct values (2020-01, 2020-02, 2020-03…)
spy_index number 79.3 to 237.4
spus_index number 83.4 to 292.8
hlal_index number 77.9 to 271.6

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 base AS
(
    SELECT
        ticker,
        argMin(toFloat64(close), date) AS px0
    FROM global_markets.stocks_daily_aggs
    WHERE ticker IN ('SPY', 'SPUS', 'HLAL')
      AND date >= '2020-01-02'
      AND date <  '2020-02-01'
    GROUP BY ticker
),
monthly AS
(
    SELECT
        toStartOfMonth(date)           AS m,
        ticker,
        argMax(toFloat64(close), date) AS px
    FROM global_markets.stocks_daily_aggs
    WHERE ticker IN ('SPY', 'SPUS', 'HLAL')
      AND date >= '2020-01-02'
    GROUP BY m, ticker
)
SELECT
    formatDateTime(mo.m, '%Y-%m')                             AS month,
    round(100 * maxIf(mo.px / b.px0, mo.ticker = 'SPY'),  1)  AS spy_index,
    round(100 * maxIf(mo.px / b.px0, mo.ticker = 'SPUS'), 1)  AS spus_index,
    round(100 * maxIf(mo.px / b.px0, mo.ticker = 'HLAL'), 1)  AS hlal_index
FROM monthly AS mo
INNER JOIN base AS b ON b.ticker = mo.ticker
GROUP BY mo.m
ORDER BY mo.m
⌘/Ctrl + Enter

Work with this data in your AI assistant

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