Automotive Inbound Demos

Two demos about the only metric that governs an assembly plant: minutes of line down. One shows when each plant stops and why. One shows what happens when something breaks, what the recovery options cost, and proves the rest of the plan was not disturbed. One shows the EDI exchange feeding both, and what each failure in it actually costs.

Line-Down Clock

Hours until each plant stops, per part number, from on-hand plus in-transit against line consumption. Arithmetic, not a forecast.

Inbound Re-Planning

Five inbound disruptions, verified recovery options ranked by cost per downtime hour avoided, and a hash-checked untouched-plan guarantee.

EDI Transaction Health

862 out, 997 back, 856 ahead of the truck, 810 three-way matched. Eight rules, each failure mapped to line risk, chargeback, receiving delay or blocked payment.

Why this domain

The grocery suite models outbound retail distribution, where the value is proving a load is legal before it departs. Inbound automotive is a different problem. Orders are not the uncertainty; the schedule is already known and released to suppliers. What varies is whether material actually shows up, in the right quantity, in the right sequence, in time to feed a line that consumes at a fixed takt. So the governing question moves from "is this load legal" to "when do we stop, and what is the cheapest legal way to not stop".

The synthetic network

ElementCountNotes
Assembly and powertrain plants414 to 30 units/hour, 6 to 12 dock doors, one cross-border
Suppliers261 to 5 day lead times, some cross-border, roughly half with a qualified alternate
Parts34Frame rails through fastener kits; 7 are sequenced (JIS)
Inventory scenarios4normal, tight, launch ramp, peak build rate
Inbound shipments per plant445 to 988Depends on scenario and line rate

Naming is deliberately generic. There are no real manufacturer, plant, or supplier names anywhere in the data, the same rule the grocery suite follows for retailers. Everything is seeded: a given scenario and seed reproduce byte-identically, and no datetime.now() appears in data generation.

The six inbound rules

Both demos share one constraint engine. It always returns every rule with its measured value and its limit, pass or fail, because the complete trace is the product rather than a black-box OK.

RuleChecks
trailer_payloadContainer gross weight against 45,000 lb
trailer_cubeContainer cube against 3,800 ft³
receiving_windowDock slot inside the plant's daily receiving window, judged modulo 24h
dock_capacityConcurrent arrivals in a slot hour against dock doors
driver_hours_hosLane transit time against the 11 hour HOS limit
sequence_integrityJIS parts arrive as complete carts, ahead of the consumption they feed

How the three fit together

The clock says when a plant stops. Re-planning says what to do once something breaks. EDI health says which failures are on their way to becoming the next stop, and it is scored against the same clock, so an EDI fault on a part with forty hours of cover reads differently from the same fault on a part with three. Each demo stands alone, but the sequence clock, EDI, re-plan is the operational loop a plant IT organisation actually runs.

What these demos do not claim

The data is synthetic and deliberately tuned so the failure modes are visible. The clock is arithmetic, not a forecast: it answers "when do we stop given what we already know", never "will this supplier miss". Recovery costs are illustrative parameters, not benchmarked freight rates. There is no claim here about better routing, better forecasting, or better prediction of anything.

What is claimed: the time-to-stop and downtime math is correct and hand-checkable, every shipment carries a complete constraint trace, recovery options are verified before they are offered, and the untouched part of a plan is proven byte-identical rather than assumed.

Reproducing the numbers

python -m src.web.app --port=5000     # then open /automotive/linedown
python -m pytest automotive_demos/tests/ -q

Package layout is automotive_demos/core/ for domain logic and automotive_demos/web/ for the two Flask blueprints. The package is additive: it does not import from or modify grocery_demos/ or clara_scfdp/.