An investment firm with exposure to energy and commodity price fluctuations was spending the better part of a working day each week pulling intelligence from public reports. Analysts would manually download the EIA Weekly Petroleum Status Report, the EIA Short-Term Energy Outlook, and the OPEC Monthly Oil Market Report, then cross-reference the figures against current portfolio positions and apply scenario logic by hand. By the time a synthesised view reached decision makers, the window for acting on new data had often passed.
The request to us was precise: shorten the intelligence cycle, increase the quality of scenario coverage, and keep a human in the loop before anything reaches the portfolio team.
Zone Design
The first step was mapping which parts of the process were genuinely automatable and which required human judgment.
AI Zone: report ingestion and insight extraction
The EIA and OPEC reports follow predictable structures. We built adapters for each source that fetch the latest published documents on release cadence and extract the fields that matter to this portfolio: crude inventory drawdowns, OPEC compliance figures, demand revisions by geography, and price scenario ranges. These are parsed into a structured intermediate format: normalised, timestamped data ready for the next stage, not a finished view.
From there, a matching layer correlates extracted figures against the firm's current positions. If the MOMR revises demand for a geography where the fund has concentrated exposure, that correlation is flagged and scored automatically. Scenario logic, pre-defined by the investment team, is applied to produce a ranked list of portfolio-relevant signals.
This entire stage runs in the AI Zone. There is no human approval required per report cycle because the task is bounded, deterministic, and reversible: if the extraction logic produces a bad output, the human review step catches it before it propagates.
Interface: AI Zone output to Human Zone triage
The AI output feeds into a structured triage interface used by a designated human operator. The operator sees a prioritised list of signals, each linked back to the specific figure and source that generated it. Their job is to review relevance (some signals are noise, some require context the AI does not have access to) and assemble the final weekly intelligence report.
The operator does not rewrite the analysis from scratch. They accept, reject, or annotate signals, and the report assembles around their triage decisions. The AI handles coverage and structure; the human adds judgment and filters.
Human Zone: decision maker review
The finalised report reaches portfolio decision makers as a curated document, not raw AI output. All investment decisions (position changes, rebalancing, hedging) remain entirely in the Human Zone. The AI system has no visibility into execution and no authority to recommend specific trades.
What Changed
Before this workflow, the weekly intelligence cycle took a senior analyst the better part of six hours. Report fetching, extraction, cross-referencing against positions, and assembling a readable summary consumed time that could not be spent on higher-order analysis.
After deployment, the AI-to-triage handoff completes in under 20 minutes. The operator triage step takes up to 45 minutes depending on report complexity. The intelligence report reaches decision makers the same morning the EIA weekly data is published, rather than the following day.
Coverage also improved. The manual process was practically limited to the highest-visibility figures. The automated layer covers every data series in each report, which means signals that would previously have been missed under time pressure are now surfaced consistently.
Zone Split
- AI Zone: Report fetching (EIA weekly, EIA STEO, OPEC MOMR), structured data extraction, portfolio position matching, scenario scoring, signal prioritisation
- Human Zone: Operator triage of signals (accept, reject, annotate) and intelligence report assembly; all portfolio decisions, position changes, and client communications based on the report
Design Notes
A few choices shaped how this worked in practice.
Source linking was non-negotiable. Every signal in the triage interface links directly to the sentence and table in the underlying report from which it was extracted. If an operator cannot verify a figure in under 3 minutes, the system has failed its purpose.
The scenario logic is owned by the investment team, not by us. We implemented their predefined scenario framework; the AI applies it consistently. If the framework needs updating (new geographies, revised thresholds), the team edits it directly. This keeps the AI within the bounds of what the humans have already validated.
Operator rejection is treated as a data signal, not an error. Every rejected signal feeds a lightweight feedback loop that surfaces patterns over time. If the same type of signal is consistently rejected, the extraction logic is reviewed.
This is a workflow that earns its AI Zone classification: bounded inputs, deterministic extraction, human review before output matters. The value is in consistency and speed, not in replacing the judgment that actually drives portfolio decisions.