How It Works

The models behind this site — methodology & reading guide

This site is a small, growing collection of data-driven models. Each one shares the same discipline: every number traces back to a public filing or data series (no figures pulled from thin air), it runs point-in-time (no hindsight), it updates itself, and it is honest about what it can't see. Two models are live today.

Model 01

Crude Oil Inventory Nowcast

What it is

A point-in-time nowcast of the weekly change in U.S. commercial crude oil inventories — the headline number the EIA publishes in its Weekly Petroleum Status Report (WPSR). The goal is to estimate that figure before the official release, from independent supply, demand, and maritime signals. Negative is a draw (inventories fell); positive is a build.

The weekly cycle

It's a weekly product, so the page only changes once a week — it's normal for it to look identical between updates.

Knowledge freezeTuesday 9:00 PM ET — nothing after this counts (strictly point-in-time, no lookahead).
PublishTuesday night — computed and pushed to the site.
TargetThe week ending the previous Friday — the one EIA is about to report.
Official releaseWednesday 10:30 AM ET — the actual number (the scorecard).

How the forecast is built

A weighted ensemble; when a model lacks inputs for a week it drops out and the rest reweight:

The interval is part of the product: it starts wide and only narrows as out-of-sample accuracy earns it, never tighter than the noise floor of EIA's own weekly adjustments.

Data sources

Reading the Signal Integrity flags

● AIS Signal Coverage: Gap Detected

The target week has little/no vessel coverage, so the tanker signal is degraded that week. Right after continuous collection starts this is expected — a week that ended before collection began has no data. It clears once the forecast targets weeks the collector fully covered.

● PortWatch Integrity: anomaly

Port-call data shows blending anomalies (tanker counts mixing crude with refined products/chemicals). Nominal means the category mix looks clean.


Model 02

Real Economy Index (REI)

What it is

A physical-velocity read on the U.S. economy: is the country building, moving, buying, and borrowing more or less? It deliberately ignores stock prices and earnings-per-share (which buybacks and price hikes distort) and scores volume and credit stress instead. Built as a bias-check against headlines, on a scale of −100 (deep contraction) to +100 (boom).

The four sub-indices

Industrial · 30%Build & move — rail carloads, industrial production, truck tonnage.
Consumer · 30%Real demand — real retail & food-service sales, real personal consumption.
Credit · 25%Can they afford it — credit-card & consumer delinquencies, bank lending standards.
Liquidity · 15%Is the spigot open — real M2, Fed balance sheet, reverse-repo drain.

Credit and liquidity carry extra weight on purpose, so an easy-money boom can't fully mask consumer stress.

How it's scored

Each metric is scored by magnitude — how far it sits from its own trailing trend (a z-score, clipped to ±2) — not a binary up/down, so a big move counts more than a nudge. Trending levels (rail, M2) are scored on year-over-year growth; rates (delinquencies) on their year-over-year change. Sub-indices renormalize over whatever reported, then combine into the headline score. The divergence between sub-indices (e.g. liquidity hot while the consumer softens) is often more telling than the single number.

Data & roadmap

Reading the score

+50 to +100Expansion / boom
+10 to +49Slow growth
−10 to +10Stagnation / muddle-through
below −10Contraction

Shared principles & the fine print

Machine-readable data: nowcast.json · flows.json · refineries.json · economy.json