BRENTOIL-PERP Listing
List the Brent Crude Oil perpetual future — WTIOIL-shaped on the surface, but benchmarked to ICE Brent daily settlement (not CME), funding daily ~19:30 London. The ICE venue is the engineering work of this plan.
§0Principles
This is not a WTIOIL clone — ICE is engineering, not configuration
Ben flags it in the spec thread himself: ICE Brent has a different holiday calendar than CME and may need a different settlement data source. The settlement engine today keys holiday calendars by category (SETTLEMENT_ENGINE_<CATEGORY>_HOLIDAYS_FILE), and the daily-settlement downloader path is built for CME via Databento. Both assumptions break here; surfacing that work first is the point of this plan.
No trading before the initial settlement price is set
The initial mark falls back to the last settlement price. Opening the instrument before ep3 update-settlement-price has run means day-one margining and liquidation math is garbage. The runbook makes this a hard gate; this plan inherits it.
Routing key is chosen at listing — cheap now, a migration later
The migrator half of A-3454 (delist → re-create → position-transfer) doesn't exist yet, so a bad partition choice at creation can only be fixed with manual surgery. Don't default to the category-wide ENERGY routing key; place the instrument with the planner.
§1Progress / Tracker
Live snapshot — phase status and the bar below are computed from GitHub PR state at build time (2026-06-10). 0/9 phases done · 0%.
1Spec sign-offin progress›
Ben's thread covers symbol, benchmark, mark price (avg on AX at 19:30 London), contract size (1 bbl), tick (0.001), funding frequency, margin, and roll schedule, and flags the ICE calendar/data-source caveats. Open gaps: funding rate caps, minimum trade quantity, and confirming 19:30 London actually brackets the ICE Brent settlement window we want to benchmark against.
2ICE settlement data sourcenot started›
The blocking engineering item. The settlement engine's futures settlement path (rs/settlement-engine/src/downloaders/databento.rs) consumes CME daily settlements; ICE Brent (IFEU) needs a vendor/dataset decision (Databento IFEU coverage vs. direct ICE feed), licensing, and a downloader. The roll-schedule generator (cme-future generate-roll-schedule) is also CME-calendar-shaped and needs to be taught the ICE expiry/holiday calendar before it can emit a correct Brent roll schedule.
3Per-instrument calendar + settlement-time supportnot started›
BRENTOIL is an ICE-calendar product inside the energy category, which today maps category → one holiday file and one settlement convention (2:30pm ET). Needs a per-instrument calendar/settlement-time override in the settlement engine, plus the ICE holiday calendar file itself (Ben linked the IFUS trading-hours/holiday PDF in the spec thread). Funding at 19:30 Europe/London is expressible in the per-instrument funding_schedule; the mark-window shape (5-min trailing) carries over unchanged.
4Code — instrument ID + spec YAMLnot started›
Reserve the (id, symbol) pair in ax_sdk_internal::constants::INSTRUMENT_IDS and write the instruments.yml entry (ax + ep3 sections) with the Brent future config (ICE root, WTIOIL's roll shape: 5-day monthly, 80/20 from the 6th business day) and an estimated-price feed config if one exists for Brent. Ship in a deployable version.
5Routing key — revive the rebalance plannerin progress›
Revive Michael Rees's routing-key planner so the new instrument lands on a low-load partition instead of the concentrated ENERGY key. The planner half is enough for a new listing (assignment at creation); the migrator follow-up is not on this plan's critical path.
- #2085 admin-cli
instruments plan-routing-keys— load-aware partition assignment (A-3454)
6Estimated funding pricenot started›
Confirm a live estimated/index price source for Brent (Pyth feed or otherwise) and verify the settlement engine publishes estimated-funding-rate:BRENTOIL-PERP to Redis once the instrument exists.
7Demo listing + initial settlement price + verificationnot started›
Run the full listing runbook on demo: instruments sync (preview, then --actually), set the initial settlement price from ax.benchmark_prices, then verify mark sanity, a test order through margining, estimated funding publishing, and — specifically for this product — that the first funding run fires at 19:30 London on an ICE business day and skips an ICE-holiday/CME-open day correctly.
8Business readinessnot started›
Runs in parallel with engineering, gates prod. Identify which MMs and customers will quote/trade Brent at launch and confirm connectivity and risk limits; produce launch marketing (Hyperframes video per current practice); add the contract spec to public docs and the changelog.
9Prod listing + first funding cyclenot started›
Repeat the listing on prod at the announced time, open the instrument, and watch the first complete funding cycle. Sign-off requires the funding transactions to reconcile against the published rate, computed at the London settlement time.
Notebook
Reference design — the detailed mechanics behind the tracker.
§3Design Questions
-
Settlement data source — Databento IFEU dataset, or a direct ICE feed?
- Not yet answered The vendor/licensing decision that gates phase 2. Databento carrying ICE Futures Europe daily settlements would keep the downloader shape we already have; otherwise this is a new integration.
-
Calendar override design — per-instrument calendar, or a new pseudo-category?
- Not yet answered The settlement engine keys holiday files and settlement times by category. A per-instrument override is the honest fix; a
energy_icepseudo-category is the cheap one. Needs a decision before phase 3 starts.
- Not yet answered The settlement engine keys holiday files and settlement times by category. A per-instrument override is the honest fix; a
-
Funding rate caps and minimum trade quantity?
- Not yet answered Not in Ben's thread; confirm alongside the NATGAS gaps before the spec YAML is written.
-
Which MMs are committed to quoting at launch?
- Not yet answered No demand thread found yet. Brent likely shares the WTIOIL MM set, but that's an assumption, not a commitment — this gates the prod date.
-
Does BRENTOIL ship after NATGAS, or together?
- Not yet answered NATGAS is config-mostly; BRENTOIL has real engineering (phases 2–3). Sequencing NATGAS first exercises the runbook on the easy case while the ICE work lands. Needs a business call on whether the announcements are bundled.