OilPriceAPI insights

Brent vs. ICE Gasoil: What the Crack Spread Is Saying This Week

By OilPriceAPI · Published · Dated analysis, data through the October 23 session

ICE Low Sulphur Gasoil closed the week at $1,497.50 per tonne against ICE Brent at $117.38 per barrel. Converted at the ICE factor of 7.45 barrels per tonne, that puts gasoil at $201.01/bbl and the gasoil minus Brent spread at $83.63/bbl, −1.79 on the week. Brent rose faster than diesel: crude added $7.43/bbl in five sessions and gasoil added $42.00/t, which is $5.64/bbl.

The numbers

ICE Brent and ICE gasoil front-month session closes with the gasoil minus Brent spread
SessionBrent, $/bblGasoil, $/tGasoil, $/bblSpread, $/bbl
Fri Oct 23, 2026117.381,497.50201.0183.63
Fri Oct 16, 2026109.951,455.50195.3785.42
Week-over-week+7.43+42.00+5.64−1.79

Brent is the December 2026 contract (BRENT_FUTURES_2026_12, the nearest listed, expiring October 30). Gasoil is the November 2026 contract (GASOIL_FUTURES_2026_11, expiring November 12). Both prices are the last price captured at the ICE session close, not the official exchange settlement; the October 22 gasoil settlement, for example, printed $1,444.75/t against a $1,477.50/t session close, so the basis matters when you compare against another source.

30 and 90 days

Over the last 30 days (September 23 to October 23, 23 sessions) the spread ran from a low of $82.89/bbl on October 2 to a high of $98.97/bbl on October 8, with a median of $87.74/bbl. It started the window at $98.41/bbl, so the month is a narrowing: Brent went from $103.00 to $117.38 while gasoil went from $1,500.50/t to $1,497.50/t, essentially flat. Friday's $83.63/bbl sits in the bottom 13% of the 30-day window.

Over 90 days (July 27 to October 23, 63 sessions) the picture is a widening then a partial retrace. The spread began at $73.73/bbl, the 90-day low, reached $101.12/bbl on September 16, and has given back about $17 since. Brent rose from $87.81 to $117.38 (+$29.57) and gasoil from $1,203.50/t to $1,497.50/t (+$294.00/t, or +$39.46/bbl). The 90-day median is $87.49/bbl; the current value is at the 35th percentile of that window.

ICE Brent and ICE gasoil front-month session closes, USD per barrel, July 27 to October 23, 202670140210$/bblJulAugSepOctBrent, $/bblGasoil, $/bbl (÷7.45)Gasoil minus Brent spread, USD per barrel, July 27 to October 23, 20267090110$/bblJulAugSepOctGasoil − Brent, $/bbl
Top: both legs in $/bbl, gasoil converted at 7.45 bbl/t. Bottom: the spread. 63 ICE trading days, July 27 to October 23, 2026, nearest listed contract each day, session close. Source: OilPriceAPI.

Where it sits in its range

A full trailing-365-day range is not available: our gasoil front-month daily series has no rows between mid-November 2025 and March 23, 2026. Over the window we do hold, March 24 to October 23, 2026 (151 sessions), the spread ranged from $38.78/bbl on June 18 to $101.12/bbl on September 16, with a median of $71.31/bbl. At $83.63/bbl the current spread is at the 70th percentile of that seven-month window: well above the summer trough, below the September peak.

What widening and narrowing mean

The gasoil minus Brent spread is the simplest version of a diesel crack spread: the gross margin a refiner earns turning a barrel of Brent into a barrel of middle distillate, before energy, labour and the rest of the cost stack. The crack spread calculator does the same arithmetic for the 3-2-1 and other product mixes.

When the spread widens, as it did from late July to mid-September, diesel is rising faster than crude. Refiners with distillate-heavy yields earn more per barrel, and the incentive is to run harder and tilt the slate toward diesel. For a fuel buyer it means the diesel price is being driven by product-market tightness, not just the crude headline, so hedging with Brent alone leaves basis risk.

When it narrows, as it has over the last month, crude is doing the work. This week Brent added $7.43/bbl and gasoil only $5.64/bbl in barrel terms, so the refiner's gross margin shrank even though the diesel price went up. A buyer sees a higher invoice, a refiner sees a thinner margin, and the two facts coexist because the spread, not the outright, is what separates them. Narrowing with both legs rising is a different market from narrowing with both falling; look at the top panel before reading the bottom one.

This is a description of what the series did through October 23, 2026. It is not a forecast and not investment advice.

Pull both series from the API

The contract-level data behind the chart comes from the futures endpoints. /v1/futures/ice-brent and /v1/futures/ice-gasoil return the live curve with the front month flagged; the /historical variants return one block per contract with open, high, low, close and settlement per trading day. All /v1/futures/* routes require the Futures Data add-on on your plan; without it the API returns a 403 naming the add-on. The example below takes the nearest contract each day, which is how the figures above were built.

import requests

API = "https://api.oilpriceapi.com/v1"
HEADERS = {"Authorization": "Token YOUR_API_KEY"}
BBL_PER_TONNE = 7.45  # ICE conversion for Low Sulphur Gasoil

def front_month_closes(slug, start, end):
    # /v1/futures/ice-brent/historical and /v1/futures/ice-gasoil/historical
    # return one block per contract; take the nearest contract each trading day.
    r = requests.get(f"{API}/futures/{slug}/historical",
                     params={"from": start, "to": end}, headers=HEADERS, timeout=30)
    r.raise_for_status()
    closes = {}
    for contract in r.json()["contracts"]:
        for day in contract["daily_data"]:
            if day["close"] is None:  # expired contracts carry null closes
                continue
            d = day["trading_date"]
            if d not in closes or contract["contract_month"] < closes[d][0]:
                closes[d] = (contract["contract_month"], float(day["close"]))
    return closes

brent = front_month_closes("ice-brent", "2026-07-27", "2026-10-23")
gasoil = front_month_closes("ice-gasoil", "2026-07-27", "2026-10-23")

for d in sorted(set(brent) & set(gasoil)):
    spread = gasoil[d][1] / BBL_PER_TONNE - brent[d][1]
    print(d, brent[d][0], f"{brent[d][1]:.2f}", gasoil[d][0], f"{gasoil[d][1]:.2f}", f"{spread:.2f}")

If you only need the continuous front-month price without the contract identity, the standard price endpoints carry both legs: /v1/prices/latest?by_code=BRENT_CRUDE_USD returned $117.38 and /v1/prices/latest?by_code=GASOIL_USD returned $1,497.50 at the time of writing, matching the contract closes above. /v1/prices/historical?by_code=GASOIL_USD&past=90d returns daily averages rather than closes, and GASOIL_USD history begins April 4, 2026, so use the futures endpoints for a longer or close-based series. Check the live Brent page for the current print and its contract month.

Method

  • Brent: ICE Brent futures, nearest listed contract each trading day, session close in USD per barrel. Codes BRENT_FUTURES_2026_09 through BRENT_FUTURES_2026_12 over the 90-day window.
  • Gasoil: ICE Low Sulphur Gasoil futures, nearest listed contract each trading day, session close in USD per metric tonne. Codes GASOIL_FUTURES_2026_08 through GASOIL_FUTURES_2026_11.
  • Conversion: 7.45 barrels per metric tonne, the factor ICE uses for the gasoil contract. Spread = gasoil ÷ 7.45 − Brent.
  • Week-over-week compares the October 23 close with the October 16 close. Percentiles are the share of sessions in the window at or below the current spread.
  • Snapshot taken October 24, 2026. Session closes are the last price captured after the ICE close and can be revised; the official settlement is a separate field.

Futures + full history via API

The Futures Data add-on covers the ICE Brent, WTI and gasoil curves with contract-level daily history, alongside the continuous BRENT_CRUDE_USD and GASOIL_USD codes on every plan.