{"slug":"contango-and-roll-yield-in-etfs","qid":"oil_fund_paths","label":"Both funds rebased to 100 at the start of the window, month by month","post_title":"Contango and Roll Yield in Commodity ETFs","post_url":"/blog/contango-and-roll-yield-in-etfs#q-oil_fund_paths","columns":["month","as_of_label","uso_index","usl_index"],"rows":[{"month":"2021-01-01","as_of_label":"Jan 2021","uso_index":100,"usl_index":100},{"month":"2021-02-01","as_of_label":"Feb 2021","uso_index":117.42,"usl_index":116.5},{"month":"2021-03-01","as_of_label":"Mar 2021","uso_index":115.21,"usl_index":115.24},{"month":"2021-04-01","as_of_label":"Apr 2021","uso_index":123,"usl_index":122.66},{"month":"2021-05-01","as_of_label":"May 2021","uso_index":129.11,"usl_index":128.99},{"month":"2021-06-01","as_of_label":"Jun 2021","uso_index":141.79,"usl_index":140.7},{"month":"2021-07-01","as_of_label":"Jul 2021","uso_index":144,"usl_index":142.96},{"month":"2021-08-01","as_of_label":"Aug 2021","uso_index":136.55,"usl_index":136.96},{"month":"2021-09-01","as_of_label":"Sep 2021","uso_index":149.4,"usl_index":148.84},{"month":"2021-10-01","as_of_label":"Oct 2021","uso_index":162.45,"usl_index":159.46},{"month":"2021-11-01","as_of_label":"Nov 2021","uso_index":136.19,"usl_index":136.4},{"month":"2021-12-01","as_of_label":"Dec 2021","uso_index":154.52,"usl_index":153.63},{"month":"2022-01-01","as_of_label":"Jan 2022","uso_index":177.6,"usl_index":174.15},{"month":"2022-02-01","as_of_label":"Feb 2022","uso_index":191.81,"usl_index":185.42},{"month":"2022-03-01","as_of_label":"Mar 2022","uso_index":210.69,"usl_index":204.4},{"month":"2022-04-01","as_of_label":"Apr 2022","uso_index":219.33,"usl_index":210.45},{"month":"2022-05-01","as_of_label":"May 2022","uso_index":242.95,"usl_index":231.46},{"month":"2022-06-01","as_of_label":"Jun 2022","uso_index":228.4,"usl_index":217.6},{"month":"2022-07-01","as_of_label":"Jul 2022","uso_index":221.86,"usl_index":213.15},{"month":"2022-08-01","as_of_label":"Aug 2022","uso_index":207.82,"usl_index":201.6},{"month":"2022-09-01","as_of_label":"Sep 2022","uso_index":185.56,"usl_index":178.66},{"month":"2022-10-01","as_of_label":"Oct 2022","uso_index":203.33,"usl_index":195.63},{"month":"2022-11-01","as_of_label":"Nov 2022","uso_index":199.63,"usl_index":196.09},{"month":"2022-12-01","as_of_label":"Dec 2022","uso_index":199.29,"usl_index":195.27},{"month":"2023-01-01","as_of_label":"Jan 2023","uso_index":197.04,"usl_index":193.45},{"month":"2023-02-01","as_of_label":"Feb 2023","uso_index":191.05,"usl_index":187.57},{"month":"2023-03-01","as_of_label":"Mar 2023","uso_index":188.86,"usl_index":185.53},{"month":"2023-04-01","as_of_label":"Apr 2023","uso_index":191.87,"usl_index":188.23},{"month":"2023-05-01","as_of_label":"May 2023","uso_index":172.34,"usl_index":170.78},{"month":"2023-06-01","as_of_label":"Jun 2023","uso_index":180.64,"usl_index":179.43},{"month":"2023-07-01","as_of_label":"Jul 2023","uso_index":207.99,"usl_index":204.95},{"month":"2023-08-01","as_of_label":"Aug 2023","uso_index":213.36,"usl_index":209.52},{"month":"2023-09-01","as_of_label":"Sep 2023","uso_index":229.85,"usl_index":220.55},{"month":"2023-10-01","as_of_label":"Oct 2023","uso_index":213.25,"usl_index":211.04},{"month":"2023-11-01","as_of_label":"Nov 2023","uso_index":199.37,"usl_index":201.16},{"month":"2023-12-01","as_of_label":"Dec 2023","uso_index":189.45,"usl_index":193.11},{"month":"2024-01-01","as_of_label":"Jan 2024","uso_index":201.59,"usl_index":202.53},{"month":"2024-02-01","as_of_label":"Feb 2024","uso_index":208.53,"usl_index":205.45},{"month":"2024-03-01","as_of_label":"Mar 2024","uso_index":223.79,"usl_index":219.25},{"month":"2024-04-01","as_of_label":"Apr 2024","uso_index":222.8,"usl_index":220},{"month":"2024-05-01","as_of_label":"May 2024","uso_index":212.68,"usl_index":213.6},{"month":"2024-06-01","as_of_label":"Jun 2024","uso_index":226.24,"usl_index":222.88},{"month":"2024-07-01","as_of_label":"Jul 2024","uso_index":220.98,"usl_index":217.56},{"month":"2024-08-01","as_of_label":"Aug 2024","uso_index":211.31,"usl_index":207.06},{"month":"2024-09-01","as_of_label":"Sep 2024","uso_index":198.75,"usl_index":197.63},{"month":"2024-10-01","as_of_label":"Oct 2024","uso_index":207.73,"usl_index":204.24},{"month":"2024-11-01","as_of_label":"Nov 2024","uso_index":203.55,"usl_index":201.27},{"month":"2024-12-01","as_of_label":"Dec 2024","uso_index":214.75,"usl_index":209.13},{"month":"2025-01-01","as_of_label":"Jan 2025","uso_index":221.77,"usl_index":211.44},{"month":"2025-02-01","as_of_label":"Feb 2025","uso_index":213.81,"usl_index":205.73},{"month":"2025-03-01","as_of_label":"Mar 2025","uso_index":219.81,"usl_index":210.15},{"month":"2025-04-01","as_of_label":"Apr 2025","uso_index":180.67,"usl_index":176.57},{"month":"2025-05-01","as_of_label":"May 2025","uso_index":190.88,"usl_index":182.25},{"month":"2025-06-01","as_of_label":"Jun 2025","uso_index":207.82,"usl_index":193.15},{"month":"2025-07-01","as_of_label":"Jul 2025","uso_index":226.24,"usl_index":207.51},{"month":"2025-08-01","as_of_label":"Aug 2025","uso_index":212.73,"usl_index":198.13},{"month":"2025-09-01","as_of_label":"Sep 2025","uso_index":209.64,"usl_index":195.82},{"month":"2025-10-01","as_of_label":"Oct 2025","uso_index":206.25,"usl_index":191.61},{"month":"2025-11-01","as_of_label":"Nov 2025","uso_index":202.02,"usl_index":188.14},{"month":"2025-12-01","as_of_label":"Dec 2025","uso_index":196.59,"usl_index":183.27}],"shape":"series","sql":"WITH\n    month_close AS\n    (\n        SELECT\n            toStartOfMonth(date)           AS m,\n            ticker,\n            argMax(toFloat64(close), date) AS px\n        FROM global_markets.stocks_daily_aggs\n        WHERE ticker IN ('USO', 'USL')\n          AND date >= '2021-01-01'\n          AND date <  '2026-01-01'\n        GROUP BY toStartOfMonth(date), ticker\n    ),\n    first_close AS\n    (\n        SELECT\n            ticker,\n            argMin(px, m) AS px0\n        FROM month_close\n        GROUP BY ticker\n    )\nSELECT\n    toString(mc.m)                                           AS month,\n    formatDateTime(mc.m, '%b %Y')                            AS as_of_label,\n    round(anyIf(mc.px / fc.px0 * 100, mc.ticker = 'USO'), 2) AS uso_index,\n    round(anyIf(mc.px / fc.px0 * 100, mc.ticker = 'USL'), 2) AS usl_index\nFROM month_close AS mc\nINNER JOIN first_close AS fc ON mc.ticker = fc.ticker\nGROUP BY mc.m\nORDER BY mc.m","computed_at":"2026-08-10T15:47:35.073988+00:00","elapsed":0.002890406}