How an oil analyst uses EnergyScope

12 report presets mapping to the daily, weekly, monthly, and quarterly cycle of a physical oil trading desk. Each preset runs the right combination of analytics tools in a single call.

1
call per report
~8s
end-to-end
22
tools orchestrated
18
datasets queried

Build your own report

The 12 presets below are examples, not limits. The real product is composability — any desk workflow builds on the same 5-step pattern using the same 62 tools.

STEP 1

Pick data

Any of 2.8M series via search, key_series, or get_data. No schema lock-in — compose whatever metrics matter to your desk.

STEP 2

Build the snapshot

A flat metrics dict with the keys your analysis cares about. Reuse canonical keys (crack_321_z, cushing_z, bwet_z, ...) or add your own — the signal layer tolerates 57 input-key aliases out of the box.

STEP 3

Run the narrative layer

derived_signals(metrics=snapshot) returns 52 scored signals + 16 trade-thesis contradictions + 7 theme summaries + the dominant lens. Same engine that powers our presets.

STEP 4

Draft the HTML

Your agent writes the prose; the signal output does the analytical work. Contradictions ARE the headlines — the report scaffolds itself from the firing set.

STEP 5

Persist and publish

save_report_run(name, html, snapshot, prompt, publish=True) saves the run for future diffs AND mirrors the redacted, chrome-wrapped HTML to /reports/{name}.html. Next run, compare_runs() writes the "what changed" section automatically.

Same 62 tools. Any workflow. Your narrative layer.

How the reports earn trust — signal definitions, backtest rules, revision policy, calibration →

The analyst workflow

Every desk has a cadence — morning briefs, weekly updates, quarterly synthesis. EnergyScope ships 12 presets as starting points, mapped to the daily / weekly / monthly / quarterly / ad-hoc rhythm of a physical oil trading desk. Build your own by composing the same tools — any workflow the analyst wants, same narrative layer underneath.

DAILY

Morning Briefing

Every day, 8am before the desk opens
Overnight price moves, today's catalyst calendar, and the current curve shape. The 60-second read that sets the desk's tone for the day.
prices • changes (7d) • upcoming events (3d) • term structure
report(watchlist="oil_daily", preset="morning") See HORMUZ example →
WEEKLY · WED

EIA Release Deep-Dive

Wednesday 10:30am after the EIA Weekly Petroleum Status Report
Crude stocks vs 5-year seasonal average. Gasoline and distillate by PADD. Refinery utilization. Implied supply-demand balance. The report that moves oil prices every Wednesday.
seasonal (stocks) • S&D balance • crack spreads • changes
report(watchlist="eia_weekly_stocks", preset="eia_weekly") See HORMUZ example →
WEEKLY · FRI

CFTC Positioning

Friday 3:30pm after the Commitments of Traders report
Where is managed money positioned? How has it changed this week? Is WTI net long at the 90th percentile (crowded) or 20th (contrarian opportunity)? The sentiment read.
percentile (CFTC) • changes (positioning) • rolling correlation
report(series_ids=["CFTC.WTI.MM_Net", "CFTC.BRENT.MM_Net"], preset="cftc_weekly") See HORMUZ example →
WEEKLY

Refining Margins

Weekly for the products desk
3-2-1 crack spread and its z-score. Gasoline vs distillate margins. Seasonal product stock context. Refinery turnaround flags from utilization drops. The products trader's dashboard.
crack spread (3-2-1, gasoline, diesel) • seasonal • maintenance signal • percentile
report(watchlist="refining_monitor", preset="refining") See HORMUZ example →
DAILY / WEEKLY

Cargo Arb Economics

Daily for the physical trading desk, cargo scheduling
Is the US crude export arb open? Unified score combining Brent-WTI spread percentile, tanker freight proxy, and curve backwardation. Tells you where barrels should flow today.
arb signal • term structure • spread • freight percentile
report(watchlist="arb_monitor", preset="arb") See HORMUZ example →
MONTHLY

Crude Grade Differentials

Monthly after EIA first-purchase data publishes
LLS, Mars, West Texas Sour, Alaska North Slope. Imported grades: Mexican Mayan, Nigerian Bonny Light, Saudi Arabian Light. 45 crude stream prices — differentials, percentiles, trends.
prices • spread pairs • percentile • seasonal
report(watchlist="crude_grades", preset="grades") See HORMUZ example →
WEEKLY / FOMC / NFP

Macro Impact

Weekly, or around macro events (Fed, payrolls, CPI)
Which macro indicators are driving oil right now? Is it DXY? VIX? Yields? Scan all macro series against WTI, rank by rolling correlation, identify regime shifts. The "risk-on vs risk-off" signal.
correlate all (vs MACRO.*) • rolling correlation • changes
report(watchlist="macro_oil_monitor", preset="macro") See HORMUZ example →
QUARTERLY

Strategy Outlook

Quarterly strategy reviews, management presentations
The complete brief. Forecasts with honest backtest skill scores. Structural break detection with event annotation. Volatility regime. S&D balance. Positioning. Curve. Crack spreads. Everything, validated.
forecast ensemble • breakpoints (annotated) • volatility • S&D • everything
report(watchlist="oil_full", preset="quarterly") See demo report →
AD-HOC

Post-Shock Debrief

After OPEC surprises, geopolitical events, weather
What just happened? Structural break detection with cross-reference to known events (OPEC, sanctions, wars). Volatility spike analysis. Correlation regime shift. The "what changed and why" report.
breakpoints (annotated) • volatility • correlations • changes (14d)
report(series_ids=["PET.RWTC.D", "PET.RBRTE.D"], preset="regime") See HORMUZ example →
AD-HOC

Storage Play Economics

When curve structure creates physical storage opportunities
Contango = storage pays. How much? What's the roll yield? Where is Cushing inventory vs seasonal? When the curve inverts, physical traders need to know if storing barrels is profitable.
term structure (roll yield) • seasonal (Cushing, crude) • spread (M1 vs M6)
report(watchlist="storage_watch", preset="storage") See HORMUZ example →
MONTHLY

Risk & Strategy Pack

Monthly, before the desk risk meeting
The chief-strategist briefing: contradiction-first evidence, decision dashboard (stance / conviction / invalidation per expression), scenario bands anchored to measured vol, book VaR & stress overlay, and a committed house view whose invalidation triggers are the signal engine's own thresholds. Auto-diffs against last month via compare_runs.
full snapshot sweep • derived signals • bubble test (GSADF) • quantile scenario bands • arb • maintenance • events
report(watchlist="oil_full", preset="monthly_risk") Example: August 2026 edition (first public run)

Before and after

Without EnergyScope

  • 30+ manual API calls per report
  • Copy-paste from EIA website into Excel
  • Hand-code Chart.js for every visualisation
  • No seasonal context — "stocks at 462mb" means nothing alone
  • In-sample R² cited as forecast quality (misleading)
  • CFTC positioning reported as raw numbers without percentile
  • Crude grades impossible to find in 2.8M series
  • Hand-written "changes since last report" — often skipped or stale because there's no clear baseline to diff against
  • No composable signal layer — tools run in isolation, outputs don't talk to each other, analyst stitches them together in prose
  • Hours per report. Multiple tools. Manual orchestration.

With EnergyScope

  • 1 call per report — preset + watchlist
  • Seconds, not hours — ~15s for a desk brief, ~30s for the quarterly
  • SVG charts generated inline for reports
  • Seasonal context — "+7,267 vs 5yr avg, 60th pctl"
  • Honest backtest — skill vs naive, not overfit R²
  • Percentile rank on positioning, stocks, spreads, grades
  • 15+ crude grades in the grades preset — LLS, Mars, WTS, Saudi Light landed, Mexican Mayan FOB, plus historical series (vintages documented inline so you know what's current)
  • 52 scored signals → 16 contradictions → one regime label. The narrative layer composes raw metrics into headlines. No more "stocks at 462mb, what does it mean?" — the platform says freight_extreme (z=7.92), supply_shock_signature, regime: HORMUZ_CRISIS.
  • "Changes since last brief" auto-generated from compare_runs() signal diff — score deltas, contradiction transitions, categorical regime shifts. Not hand-written.
  • Regime detection before the cause is public. On April 9, the platform flagged a supply-shock constellation (5 contradictions firing). On April 14, IEA's OMR revealed the Strait of Hormuz had been closed since Feb 28. The platform identified the what 5 days before the why was public. Case study →
  • Natural language. Your AI agent runs the analytics.

See a real report

This oil market intelligence report was generated by an AI agent using 30 EnergyScope MCP tool calls in a single parallel batch. Prices, seasonal context, curve structure, crack spreads, positioning percentiles, forecast ensemble, arb economics, macro regime, risk matrix. All automated.

View the Full Demo Report
30
MCP tool calls
22
unique tools used
11
datasets queried

Which tools get used?

Out of 62+ EnergyScope tools, a real oil market report uses 16 (26%). Another 11 are reliable regulars. 13 show up occasionally. 22 are research / econometric tools that never fire on a physical crude desk.

Based on 6 days of intensive production use by a physical crude desk analyst, 11 HORMUZ CRISIS reports, ~50 feedback exchanges, and 1 real crisis (2026-04-08 to 2026-04-14). Updated July 2026: the monthly risk & strategy pack promoted bubble_test (GSADF — dated the explosive episodes, the “repricing, not mania” evidence) and quantile_reg (scenario band anchoring) from research tier to desk use — the monthly cadence reaches for tools the daily/weekly briefs never need.

16
Essential, every session
90% of workflow. The narrative layer is the product; the analytics feed it.
Narrative layer
derived_signals, compare_runs, save_report_run, previous_report
Data access
latest, get_data, search, key_series
Platform
health, whats_new, feedback
Core analytics
crack_spread, term_structure, spread, arb_signal, upcoming_events
11
Regular use
Supplementary but reliable. Not every report, but every week.
seasonal, percentile, report, dataset_info, correlate_all, snd_balance, forecast_ensemble, cointegration, list_report_runs, report_presets, check_for_updates
15
Rare / ad-hoc
Occasional use for specific situations. Useful when you need them, invisible when you don't.
changes, breakpoints, volatility, bubble_test, quantile_reg, forecast, maintenance_signal, save_watchlist, get_watchlist, list_watchlists, delete_watchlist, chart, list_series, datasets, browse
20
Research / econometric
Never fired on a crude desk during the HORMUZ CRISIS week. Shipped for academic / research contexts.
acf, arima, bandpass, correlation, elastic_net, hp_filter, interpolate, lpirf, midas, outliers, prophet, returns, rolling_correlation, seasonality, smooth, stats, theta, transform, unit_root, var
“The narrative layer should have existed from day 1. Data and analytics are infrastructure; the signals and contradictions are the product.”

Ready to try it?

Set up in one command. Start with a free API key.

Sign Up Free    See All 62 Tools