Attack-defence loop in a cyber-physical ship ballast system

Independent research · Live model
A ship listing as an attacker in the ballast control system drives water into one tank, with ballast deviation approaching its limit
Illustration
Context
A five-stock system dynamics model of how a cyberattack on a ship's ballast control system actually unfolds — attacker foothold, the defender's delayed perception of it, mobilised response capacity, physical ballast deviation, and containment effectiveness that improves with experience.
Problem
Static threat enumeration (a checklist of vulnerabilities, scored once) can't show whether a given detection delay is fast enough to prevent a physical stability loss — that's a dynamic question about a race between propagation and response, not a static score.
Approach
A closed-loop model — attacker propagation reinforcing itself, response capacity and containment effectiveness balancing it back — reveals a "Dynamic Inadequacy Threshold": a frontier in detection-delay/attack-speed space beyond which containment simply arrives too late.
Try it
The interactive version below runs the same equations as the paper's companion code, live, in your browser. Drag the detection-delay slider and watch the ballast deviation cross — or stay under — the stability-loss threshold.

Bed-and-workforce amplification in a hospital replenishment system

Healthcare · Published article
Stock-and-flow sketch: beds in service and cleaning staff are sized to the same throughput signal, but hiring adds staff only after a delay
Illustration
Context
A hospital bed logistics system: a stock of beds depleted as operations orders them and refilled as cleaned beds return, with a linked workforce stock — sized to the same desired-throughput signal, but replenished only as fast as hiring and onboarding allow.
Problem
A 10% increase in bed order rate looks, on paper, like a 10% operational adjustment. It isn't. Two coupled stock-and-flow structures with different replenishment delays don't scale linearly — they overshoot.
Approach
A system dynamics model built entirely in spreadsheets — deliberately, to keep the stock/flow/auxiliary structure transparent and reproducible rather than hidden inside specialized software.
Result
A 10% step increase in order rate produced a transitory 22% overshoot in bed stock (peaking near 4,894 units against a 4,400 target) and a 68% spike in the hiring rate — before both settled back to the 10% long-run change. The overshoot is a structural signature of the coupled delays, not a planning error.

How much of a post-step overshoot is really forecast error?

Independent research · Live model
Lag Lab: the overshoot split into necessary refill, structure, policy and forecast, with production and inventory charts
Screenshot of Lag Lab
Context
A plant whose capacity follows its workforce: a six-week production lead time, eight weeks to fill a vacancy, and twelve weeks before a recruit is fully productive. Customer demand steps up by 20%.
Problem
Production, inventory and hiring overshoot, and planning books the whole overshoot as forecast error. The usual remedy, a better forecast, is then aimed at what may be the smallest part of the problem.
Approach
A production and workforce model in the style of Sterman's Business Dynamics runs the same step three ways: the plan as it is, the same plan with a perfect forecast, and a perfect forecast with the supply line and vacancies fully accounted for and hiring on the capacity gap. The differences split the overproduction into four parts that add up exactly: the necessary refill, structure, policy and forecast.
Result
Of 215 units produced above demand, 140 (65%) were the necessary refill of a bigger inventory and a longer pipeline: arithmetic, not error. 59 (28%) came from the decision rules, and 16 (7%) from the forecast. Fixing the rules removes almost four times more overshoot than a perfect forecast would.

Each note above links to its paper, article or live model, so you can check it yourself. If you want to sanity-check this approach against your own situation, that's what the first conversation is for.

Recognize the pattern

If any of this sounds like your network, it's worth a short conversation.

Book a conversation →