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-09-26, from what-is-commodity-trading.
| month | month_label | crude_uso_index | gold_gld_index | agric_dba_index |
|---|---|---|---|---|
| 2024-09 | Sep 2024 | 100 | 100 | 100 |
| 2024-10 | Oct 2024 | 104.9 | 104.5 | 100.4 |
| 2024-11 | Nov 2024 | 102.8 | 102.9 | 102.4 |
| 2024-12 | Dec 2024 | 103.5 | 102.4 | 106.6 |
| 2025-01 | Jan 2025 | 113.1 | 105.3 | 106.3 |
| 2025-02 | Feb 2025 | 108.3 | 112.3 | 109 |
| 2025-03 | Mar 2025 | 104 | 115.8 | 104.8 |
| 2025-04 | Apr 2025 | 97 | 124.8 | 104.8 |
| 2025-05 | May 2025 | 94.8 | 127.3 | 106.8 |
| 2025-06 | Jun 2025 | 106 | 129.8 | 105.5 |
| 2025-07 | Jul 2025 | 108.5 | 129.4 | 102.2 |
| 2025-08 | Aug 2025 | 105.3 | 130.4 | 105.9 |
| 2025-09 | Sep 2025 | 105.9 | 142.3 | 107.2 |
| 2025-10 | Oct 2025 | 101 | 156.9 | 104.8 |
| 2025-11 | Nov 2025 | 100.8 | 157.9 | 103.6 |
| 2025-12 | Dec 2025 | 98.7 | 166.6 | 103 |
| 2026-01 | Jan 2026 | 103.1 | 183.6 | 101.4 |
| 2026-02 | Feb 2026 | 111.5 | 194 | 102 |
| 2026-03 | Mar 2026 | 158.9 | 187.5 | 105.4 |
| 2026-04 | Apr 2026 | 186 | 182.3 | 107.5 |
| 2026-05 | May 2026 | 199.6 | 177.1 | 110.4 |
| 2026-06 | Jun 2026 | 173.3 | 163.2 | 105 |
| 2026-07 | Jul 2026 | 170.8 | 156.9 | 109.3 |
| 2026-08 | Aug 2026 | 180 | 170.3 | 110.9 |
| 2026-09 | Sep 2026 | 213.3 | 167.6 | 113.8 |
- Rows × columns
- 25 × 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 |
|---|---|---|---|
month |
text | 25 distinct values (2024-09, 2024-10, 2024-11…) | |
month_label |
text | 25 distinct values (Apr 2025, Apr 2026, Aug 2025…) | |
crude_uso_index |
number | 94.8 to 213.3 | |
gold_gld_index |
number | 100 to 194 | |
agric_dba_index |
number | 100 to 113.8 |
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
Work with this data in your AI assistant
Opens ready to query, with this page's data. Free, no account.