Crude oil spot prices — Brent and WTI

19
Updated:
Files:8
Size:431 kB
Formats:csv
License:PDDL-1.0

Europe Brent and Cushing/OK WTI (West Texas Intermediate) crude oil spot prices in US dollars per barrel (FOB), from the U.S. Energy Information Administration, at daily, weekly, monthly and annual frequency. Brent daily from 20 May 1987; WTI daily from 2 January 1986.

API Access

Access dataset files directly from scripts, code, or AI agents.

Browse dataset files
Dataset Files

Each file has a stable URL (r-link) that you can use directly in scripts, apps, or AI agents. These URLs are permanent and safe to hardcode.

/datapressr/oil-prices/
https://datahub.io/datapressr/oil-prices/_r/-/README.md
https://datahub.io/datapressr/oil-prices/_r/-/data/brent-daily.csv
https://datahub.io/datapressr/oil-prices/_r/-/data/brent-monthly.csv
https://datahub.io/datapressr/oil-prices/_r/-/data/brent-weekly.csv
https://datahub.io/datapressr/oil-prices/_r/-/data/brent-year.csv
https://datahub.io/datapressr/oil-prices/_r/-/data/wti-daily.csv
https://datahub.io/datapressr/oil-prices/_r/-/data/wti-monthly.csv
https://datahub.io/datapressr/oil-prices/_r/-/data/wti-weekly.csv
https://datahub.io/datapressr/oil-prices/_r/-/data/wti-year.csv
https://datahub.io/datapressr/oil-prices/_r/-/datapackage.json
Key Files

Start with these files — they give you everything you need to understand and access the dataset.

datapackage.json— metadata & schema
https://datahub.io/datapressr/oil-prices/_r/-/datapackage.json
README.md— documentation
https://datahub.io/datapressr/oil-prices/_r/-/README.md
Typical Usage
  1. 1. Fetch datapackage.json to inspect schema and resources
  2. 2. Download data resources listed in datapackage.json
  3. 3. Read README.md for full context

Data Views

Brent crude spot price, daily (USD/barrel)

WTI crude spot price, daily (USD/barrel)

Data Files

Explore with AI

Brent crude spot price, monthly

Brent crude spot price, annual

WTI crude spot price, monthly

WTI crude spot price, annual


About this dataset

Europe Brent and Cushing/OK WTI crude oil spot prices, US dollars per barrel (FOB), from the U.S. Energy Information Administration, at four frequencies.

See SUMMARY.md for descriptive statistics and what stands out (generated by enrich.ts, node enrich.ts).

ResourceCoverage
data/brent-daily.csv1987-05-20 → 2026-09-01
data/brent-weekly.csvFriday ending each week
data/brent-monthly.csvdated to the 15th; monthly average
data/brent-year.csvdated to 30 June; annual average
data/wti-daily.csv1986-01-02 → 2026-09-01
data/wti-weekly.csv / wti-monthly.csv / wti-year.csvas Brent

build.ts reproduces all eight CSVs from the archived EIA .xls workbooks. Run: npm install && node build.ts. The build script and raw snapshot live in the DataPressr repository, not on DataHub.

Stories using this data

Source & licence

U.S. Energy Information Administration, Petroleum & Other Liquids — Spot Prices (eia.gov/dnav/pet/pet_pri_spt_s1_d.htm). Raw .xls workbooks and retrieval details in archive/PROVENANCE.md, retrieved 2026-09-05.

EIA data are a U.S. Government work and in the public domain; EIA asks for an acknowledgement that includes a publication date, e.g. "Source: U.S. Energy Information Administration (Sep 2026)." This tidy compilation is released as PDDL-1.0.

Notes

  • Date conventions come from EIA, not imposed here: daily = observation date, weekly = Friday ending the week, monthly = 15th, annual = 30 June.
  • Excel serial dates are timezone-naive. Parsing them via JS Date objects shifts every date by the local UTC offset (it turned 1987-05-20 into 1987-05-19 here). build.ts converts the raw serials with XLSX.SSF.parse_date_code, which has no offset.
  • One dependency: SheetJS xlsx. The EIA files are legacy BIFF8 .xls (OLE2 compound documents), which exceljs cannot read. The npm release, 0.18.5, has two high-severity advisories that npm cannot fix: prototype pollution (GHSA-4r6h-8v6p-xvw6, fixed in 0.19.3) and ReDoS (GHSA-5pgg-2g8v-p4x9, fixed in 0.20.2). SheetJS publishes fixed versions only on its own CDN. The build reads only the archived EIA files, so the risk is low. A monitored build that parses freshly downloaded files should move to the CDN release or to the EIA API.

Relation to core/oil-prices

DataHub also has core/oil-prices, git-synced from datasets/oil-prices and auto-updated daily from the same EIA workbooks. This dataset is an independent re-wrangle with the DataPressr structure skill, kept as a dated snapshot rather than a living series. What differs:

  • Snapshot vs living. This is EIA as of 2026-09-05; core follows EIA every day, so it has later prices.
  • Historical rows EIA has since dropped. Between 6 and 20 September 2026 EIA's daily workbooks dropped hundreds of historical daily observations, about 890 Brent days and 740 WTI days (for example Brent on 1987-12-21): on 2026-10-09 EIA's RBRTEd.xls has 9,102 daily rows against 9,967 here. Core follows the current file, so this snapshot keeps days that core no longer has. Refreshing the archive from EIA today would drop them here too.

The days missing from EIA's current daily files

Checked on 2026-10-10 against EIA's workbooks released 7 October 2026. The missing days look like a fault in EIA's published files, not a revision of the data, so this dataset keeps them.

  • Which days. 890 Brent days (1987-12-21 to 2014-10-14, mostly 1993–2006; 1994 keeps only 138 of 252 trading days) and 743 WTI days (1986-01-31 to 2015-02-04, heaviest in 1999, 2003 and 2011). They are ordinary trading days spread evenly across Monday to Friday. They are not holidays, and they are not days that repeat the previous day's price. 174 dates are missing from both series.
  • Nothing was revised. None of the 9,077 Brent or 9,493 WTI days still in the file changed value. The monthly and annual workbooks lost no rows.
  • EIA still publishes the missing values elsewhere. EIA's API (v2, petroleum/pri/spt) still returns every missing day, with the same price as this snapshot.
  • EIA's own weekly averages still count them. For 471 of the 475 Brent weeks that contain a missing day, EIA's current weekly price is the mean of the full set of daily prices in this snapshot. Only 12 of them match the mean of the shorter daily file. WTI gives 450 of 469 against 12. The weekly workbooks also dropped some rows at random (3 Brent weeks, 21 WTI weeks), even though those weeks still have daily prices.
  • The rows are missing at the source, not lost in download. The rows are absent from the .xls sheet itself (it ends at row 9,106, not 9,971), and EIA's HTML history page (RBRTED.htm) is missing the same days. Repeat downloads return identical bytes.

Policy. This snapshot keeps the 2026-09-05 values. A future refresh should not just copy the current .xls files, because that would delete these days. Either take the daily series from the EIA API or keep earlier days that the new file drops, and flag them. A few small differences between the API and the workbooks are unrelated to this: the API has some holidays the workbooks lack, and a handful of 2014–2024 dates in each source are not in the other.

  • Resource names. Core calls its resources brent-week/brent-month (and the WTI equivalents); here they are brent-weekly/brent-monthly. The file paths are the same.
  • Line endings. LF here, CRLF in core.

At the 2026-09-05 snapshot the eight CSVs were content-identical to core apart from line endings; see docs/structure-benchmark.md in datasets/datapressr for that comparison.