The question that will not go away
A fleet operator routes a Panamax bulk carrier through the Panama Canal on the strength of a transit slot booked eleven days out. Four days into the voyage, the Panama Canal Authority cuts draught restrictions because of a drought-driven drop in Gatun Lake levels. The ship is now committed to a route that a decision made a week earlier would not have chosen, had the restriction been known. The question the operator faces afterwards is not "what happened" — that is logged — but "what would we have done, and what would it have cost, had the restriction been in force when we booked the slot." That is a counterfactual. It cannot be read off the AIS trace, because the alternative voyage never sailed. It has to be computed.
Judea Pearl's answer to how such computation should proceed is procedural: abduct the actual state at the relevant moment, intervene on the one variable in question, integrate forward. Maritime logistics is a clean domain for watching that procedure run, because every stage of it depends on a named, numbered feed, and every feed has a different refresh rate, a different failure mode, and a different cost of being wrong.
What arrives
Four streams matter for this kind of decision, and they arrive on entirely different clocks. AIS position reports come in every few seconds to few minutes depending on class and traffic density, giving speed, course and draught for the vessel and its neighbours. Port congestion data — berth occupancy, anchorage queue length, pilot availability — updates on the scale of hours, often only as fast as terminal operators choose to report it, which in some ports means once a shift. Weather routing feeds, built from ECMWF or GFS model runs, refresh four times a day and carry forecast uncertainty that widens sharply past 72 hours. Bunker prices at the relevant ports move daily, sometimes intraday during a supply shock, and matter because a rerouted voyage burns fuel at a different rate and price than the one it replaces.
None of these streams, on its own, contains the canal restriction. That arrives as a fifth, irregular signal: a notice to mariners, a canal authority bulletin, sometimes leaked through pilot chatter before it is formal. It is the trigger, not the substrate. The substrate is the other four, and the substrate has to already be current when the trigger lands, or the trigger cannot be acted on in time.
What is held
This is where the difference between a scene and a stream shows up concretely. A system built to answer "what is the state of this voyage right now" only needs the last few hours of each feed. A system built to answer "what would we have decided differently" needs the state as it stood at the moment the original decision was made — the slot booking eleven days before the restriction — with provenance attached: which forecast run, which congestion snapshot, which bunker quote was actually available to the operator at 09:14 on the day the booking closed.
Holding that is not the same as holding a log. A log is a record of what occurred. What abduction needs is a reconstructable belief state: the draught limit believed in force, the weather window believed clear, the bunker price believed locked, each tagged with a timestamp and a confidence that decays as newer reports supersede it. Provenance and decay are the two properties that make the reconstruction possible eleven days later, and they are exactly the two properties a bare historical database does not keep by default. Terminal congestion figures, in particular, are often overwritten rather than versioned, which means the "state as believed at the time" can already be unrecoverable within days unless the intake layer stores revisions rather than current values.
Abduction: pinning the exogenous variables
The reconstruction fixes what Pearl calls the background conditions — everything that was true and outside the operator's control at the moment of the decision. In this case: the forecast draught restriction in the canal (none, at booking time), the anchorage queue at the alternative Cape route's bunkering port, the price of very low sulphur fuel oil at Singapore that week, and the sea state along the great-circle track. Abduction does not ask what should have been believed. It asks what the record shows was knowable, given the streams as they stood, before the restriction was announced.
This is the step a frozen corpus cannot perform at all, because a corpus has one fixed cutoff and no notion of "the state eleven days before an arbitrary later event." It is also the step a bounded scene handles only while the scene is live: a system watching a single voyage in real time can abduce its own recent past well, but once the session ends the state is gone unless something outside the scene keeps it. Continuous intake with provenance is what lets the reconstruction happen on demand, for a moment chosen after the fact, which is the situation every serious post-voyage review is actually in.
Intervention: changing one thing
With the background pinned, the intervention is narrow: replace "no draught restriction expected" with "draught restriction of 44 feet, announced now instead of four days from now," and hold everything else — the weather window, the bunker price curve, the port queue at the time — as it was abduced. This is the discipline Pearl's method imposes and that ordinary post-incident narrative resists: it is tempting to also revise the weather assumption or the fuel price in the retelling, because hindsight supplies a tidier story. The structural model forbids that. Only the one variable moves.
The causal model doing the moving is a routing and cost model: given a draught restriction of that severity announced at that lead time, which alternative routes become feasible, what is their transit time, what is their fuel burn at the bunker prices that were actually quoted that week, and what is the probability of a weather delay on each alternative given the forecast that was actually current. This model has to have been validated against real rerouting events — Suez closures, Panama drought cycles, Red Sea diversions — or the intervention step is just arithmetic dressed as causation.
Prediction: running it forward to now
The final step re-runs the model from the intervened state forward, not to the original arrival date, but to whatever "now" is when the question is asked — which might be the day the ship actually arrives, or a year later during a charter dispute. This matters because the comparison the operator needs is not "the alternative route versus nothing" but "the alternative route versus what actually happened," including the actual delay incurred, the actual bunker cost paid, and the actual demurrage clock that started running. Getting that comparison right requires the causal model's parameters — fuel burn curves, port turnaround statistics — to still hold at prediction time, not just at the moment the data was collected. A bunker consumption model calibrated on 2019 engine performance and never updated will misprice a 2024 counterfactual by a margin that matters commercially.
| stage | what it needs | what fails without it |
|---|---|---|
| abduction | timestamped, provenance-tagged state, eleven days back | the actual booking-time belief is overwritten, not recoverable |
| intervention | a validated causal routing/cost model | the "what if" is narrative, not computed |
| prediction | current model parameters, run to present | the comparison is priced in stale fuel and transit assumptions |
Two objections, answered on this ground
Counterfactuals are evaluated against a model, not against the world. Epidemiologists run structural models on datasets decades old and get sound answers. Continuous intake helps build the model; it is not a precondition of the reasoning.
That holds for a fixed historical question: what would fuel cost have been on a specific 2019 voyage had the vessel taken the Cape route. The consequent is anchored in the past, and a frozen dataset answers it as well now as ever. It does not hold for the operator's actual question, which is forward-looking: what should we do about the charter penalty clause given what the restriction means for this class of vessel going forward. That consequent is evaluated against current bunker markets and current canal policy, both of which have moved since any dataset was frozen. Historical counterfactuals tolerate stale intake. Live ones do not.
Continuous observation gives correlation at high frequency, not causal structure. No amount of AIS data alone identifies whether congestion causes delay or delay causes congestion.
True, and worth conceding fully: dense streams do not solve identification. What they change is the supply of natural experiments available to identify the model in the first place. A canal draught restriction imposed with four days' notice, instrumented while it happens — before-period bunker prices, before-period queue lengths, the actual rerouting choices made by the fleet that week — is exactly the kind of discontinuity that lets a causal parameter be estimated cleanly. A fleet that only logs outcomes after the fact, without the pre-restriction baseline, loses that identifying event permanently. Continuous intake does not manufacture causal structure from nothing. It is what makes the rare identifying moment usable when it occurs.
The cost of getting the loop wrong
The failure mode named at the outset — a routing decision holding against a restriction announced mid-voyage — is expensive in a specific, quotable way: demurrage penalties accrue by the day, bunker costs on a diverted route can run to hundreds of thousands of dollars for a single Panamax crossing, and charter disputes over "reasonable diligence" hinge on exactly the reconstructed belief state described above. The loop is not an academic nicety layered onto shipping. It is the mechanism by which a fleet operator can show, with provenance, what was knowable when the decision was made — and the only intake regime that keeps that showing possible is one that never stopped watching.