How this is built

Methodology

The three dwell metrics defined exactly, the collection behind every number, the trailing-12-month band, and the precise rule behind the import-friction read, so you can check our work.

The three metrics, defined exactly

This is the most important section on the site, because three different measurements get called dwell in the port trade and conflating them produces wrong conclusions. We define each one and we never blur them.

Vessel dwell at berth is how long a container ship sits at the berth, from its arrival at the berth to its departure, derived from AIS ship-position data by the Bureau of Transportation Statistics. It is a ship metric. It says nothing directly about how long your container then sits in the yard.

Container dwell, or box dwell, is how long a loaded import container sits on the marine terminal after discharge before it leaves by truck or rail. It is a box metric, and it is the one that governs your free-time and demurrage exposure. It is a different number from vessel dwell. We report it only where a source publishes it, and we label it as box dwell so it is never mistaken for the vessel figure.

Ships awaiting berth is the count of container ships waiting offshore for a berth to open at a complex, from MARAD and the Marine Exchange by way of the BTS indicators. It is a queue, a count of ships, not a dwell time at all. When the queue is empty we say so rather than showing a zero dwell.

How the data is collected

The numbers come off three public sources, pulled on a fixed schedule. Vessel dwell comes from the BTS open-data portal, which exposes each dataset through a standard JSON data API; we discover the exact port-performance datasets at build and read them by that API rather than hardcoding an identifier. Ships awaiting berth, the truck planning-time index and rail terminal dwell come from the BTS port and supply-chain freight indicators. The monthly TEU volumes come from the port authorities' own container-statistics pages. Every figure is dated to the period it reports, never to the day we pulled it, so a backfill never reads as new news, and a monthly number is shown as the latest month available rather than as the current week.

The trailing-12-month normal

For the vessel-dwell and ship-queue series we compare each reading to its own trailing-12-month normal: the median of that series over the prior twelve months, with the band being its recent range. A reading more than fifteen percent above its trailing-12-month median is elevated; more than fifteen percent below is eased; anything in between is normal. We use a trailing twelve-month window rather than a five-year seasonal one because the AIS-derived series are young, and a short honest window beats a thin long one. Where a page also shows a seasonal vs-normal reading from prior years, it is labeled as such and appears only where the series carries enough history for it.

The import-friction read, the exact rule

The friction read is a rules-based, descriptive label per port complex. It is not a model and it is not a prediction. For each complex we take up to three component readings and compare each to its own trailing-12-month median: vessel dwell at the complex's ports, the count of ships awaiting berth, and the truck planning-time index where BTS publishes it. Each component is classed elevated if it sits more than fifteen percent above its trailing-12-month median, eased if more than fifteen percent below, and normal otherwise. The composite read is then fixed by the count of elevated components: zero elevated is Flowing, exactly one elevated is Some pressure, and two or more elevated is Congested. A component with no current reading is skipped and the read is judged on the components that do report; if fewer than two components report, we show the individual readings and no composite label. That is the whole rule. It describes where the current numbers sit against their own recent normal, and nothing more.

The TEU baselines

The monthly container statistics run far longer than the dwell series, so for TEU we show three comparisons: month over month, year over year, and the change against the 2019 pre-pandemic baseline where the history reaches it. We report loaded imports, loaded exports and empties as the port authority publishes them, in TEU, and we treat loaded imports as the import-demand read. We never blend a port's numbers with another's or invent a total the source does not publish.

Median, not average, for the baselines

The trailing-12-month normal and any seasonal baseline are medians, not averages, so one freak month does not skew the reference. A percentage move on a bounded reading is stated in the terms that fit the metric, and every number on the site carries its unit, days or hours for dwell, a ship count for the queue, TEU for volume.

The history floor

Each series reaches back only as far as its source truly goes, and we report that floor honestly on the page rather than padding it. The AIS-derived dwell and the ship-queue indicators are the young series and drive the trailing-12-month band; the monthly TEU series are the deep ones and carry the year-over-year and pre-pandemic comparisons. Where a series is too young for a comparison, that comparison simply does not appear.

What we do not compute

We do not track ocean freight rates and carry no rate feed. We do not forecast congestion, volumes or fees. We do not recommend a port, a booking, or a way to handle a demurrage or detention charge. Where a public number does not exist, the site says so rather than substituting an estimate. Charts and statistics on this site are free to republish with visible attribution and a link back.

For the plain-English version of how to read a page, see how to read this.

Republishing our charts and statistics

The charts and statistics on The Dwell are free to republish. Use them in an article, a report, a class, a presentation, or a post — you do not need to ask us first. We ask one thing in return: credit The Dwell with a visible link back to the page you took the figure or chart from, and keep that link live.

Every chart has an Embed chart button with a snippet you can paste straight into a web page. Because it points at the live image, the chart you embed today keeps updating itself as new data lands — you never have to swap in a fresh screenshot. Every data page, guide, and issue has a Cite button that hands you a ready-made citation line, including the date the data runs through. If you are quoting a number, keep that date: it is what tells your reader how current the figure is.