STRASMORE/EXPLORE 3,293 QUERIES
Full options quote history: clean NBBO bid/ask snapshots for any US option contract at the interval you choose, by SQL API, $79 a month. See the options quotes plan

family_paths

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-11-07, from what-is-commodity-trading.

as of series 25×5read in context →
family_paths — 25 rows by 5 columns, computed from US exchange, SIP and OPRA data.
monthmonth_labelcrude_uso_indexgold_gld_indexagric_dba_index
2024-11Nov 2024100100100
2024-12Dec 2024100.799.5104.1
2025-01Jan 2025110102.3103.8
2025-02Feb 2025105.4109.1106.5
2025-03Mar 2025101.2112.5102.3
2025-04Apr 202594.4121.3102.3
2025-05May 202592.2123.7104.3
2025-06Jun 2025103.1126.2103.1
2025-07Jul 2025105.5125.799.8
2025-08Aug 2025102.4126.7103.4
2025-09Sep 2025103138.3104.7
2025-10Oct 202598.3152.5102.4
2025-11Nov 202598153.5101.2
2025-12Dec 202596161.9100.6
2026-01Jan 2026100.3178.599
2026-02Feb 2026108.5188.699.6
2026-03Mar 2026154.6182.2102.9
2026-04Apr 2026180.9177.2104.9
2026-05May 2026194.2172.1107.8
2026-06Jun 2026168.6158.6102.5
2026-07Jul 2026166.2152.5106.7
2026-08Aug 2026175.1165.5108.3
2026-09Sep 2026206.6161.7110.7
2026-10Oct 2026216.6153.7108
2026-11Nov 2026210.2150102
Rows × columns
25 × 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 family_paths, derived from the stored result.
ColumnTypeRangeNotes
month text 25 distinct values (2024-11, 2024-12, 2025-01…)
month_label text 25 distinct values (Apr 2025, Apr 2026, Aug 2025…)
crude_uso_index number 92.2 to 216.6
gold_gld_index number 99.5 to 188.6
agric_dba_index number 99 to 110.7

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 monthly AS
(
    SELECT
        ticker,
        toStartOfMonth(date)  AS month_start,
        avg(toFloat64(close)) AS avg_close
    FROM global_markets.stocks_daily_aggs
    WHERE ticker IN ('USO', 'GLD', 'DBA')
      AND date >= toStartOfMonth(today() - 730)
      AND date <  today() - 1
    GROUP BY ticker, month_start
),
base AS
(
    SELECT
        ticker,
        argMin(avg_close, month_start) AS first_close
    FROM monthly
    GROUP BY ticker
)
SELECT
    formatDateTime(m.month_start, '%Y-%m')                               AS month,
    formatDateTime(m.month_start, '%b %Y')                               AS month_label,
    round(maxIf(m.avg_close / b.first_close, m.ticker = 'USO') * 100, 1) AS crude_uso_index,
    round(maxIf(m.avg_close / b.first_close, m.ticker = 'GLD') * 100, 1) AS gold_gld_index,
    round(maxIf(m.avg_close / b.first_close, m.ticker = 'DBA') * 100, 1) AS agric_dba_index
FROM monthly AS m
INNER JOIN base AS b ON b.ticker = m.ticker
GROUP BY m.month_start
HAVING count() = 3
ORDER BY m.month_start
⌘/Ctrl + Enter

Work with this data in your AI assistant

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