Moves today
24 h3,314moves
+4.1%vs. 7-day mean
Stack height reads ground slots in use. Stack colour reads mean dwell. Hover a block, or pick one to pin the camera to it.
Scenario live, camera view Yard. No block pinned.
3,314moves
+4.1%vs. 7-day mean
3.6days
-2.4%vs. 7-day mean
52%
+1.8%vs. 7-day mean
28moves / hr
+3.2%vs. 7-day mean
11% of boxes are past the 6-day free period and accruing demurrage.
20mv/h
Berth A · last 4 h
33mv/h
Berth A · last 4 h
33mv/h
Berth B · last 4 h
24mv/h
Berth B · last 4 h
2mv/h
Berth C · last 4 h
1mv/h
Berth C · last 4 h
| Allocation | ||||||
|---|---|---|---|---|---|---|
| Empty depot | 42/100 | 5.2 d | 14 | Watch | ||
| Empty depot | 53/100 | 2.2 d | 20 | Nominal | ||
| Empty depot | 56/100 | 3.4 d | 29 | Nominal | ||
| Cape Loop 2 | 44/100 | 4.4 d | 20 | Nominal | ||
| Cape Loop 2 | 49/100 | 1.9 d | 27 | Nominal | ||
| Cape Loop 2 | 66/100 | 5.0 d | 24 | Watch | ||
| MRD-7 Northbound | 72/100 | 3.2 d | 38 | Nominal | ||
| Reefer block | 40/100 | 6.0 d | 18 | Watch | ||
| MRD-7 Northbound | 37/100 | 3.2 d | 26 | Nominal | ||
| MRD-7 Northbound | 37/100 | 1.7 d | 24 | Nominal | ||
| Feeder Gulf | 50/100 | 4.7 d | 31 | Watch | ||
| MRD-7 Northbound | 82/100 | 2.3 d | 22 | Nominal |
Working · 12 blocks · 4 needing attention
Trucks in queue and median turn time, by lane group. Lanes over 25 minutes are flagged.
A terminal operations console has one job: let a shift supervisor find the block that is about to cost money, in under five seconds. Each principle below names the code that keeps it honest.
Block geometry is generated from the records that fill the manifest. Stack height is ground-slot occupancy; stack colour is the dwell step. Nothing in the scene is decorative. Every box you see is a row you can query.
lib/data.ts, stackHeights() and dwellHex()
Hovering a block in 3D lights its row in the table; hovering a row lights the block. Both read and write a single client store, so a panel added later joins the same wiring without a new integration.
lib/console-state.tsx, one context, 6 subscribers
The viewport renders a React Three Fiber stage by default and a published Spline scene when one is configured. The console around it does not change either way, because the contract is object names, not a renderer.
NEXT_PUBLIC_SPLINE_SCENE, objects Block_A1 to Block_B6
Every figure comes from a fixed seed, so the server render and the client render agree and a scenario looks identical on reload. Swapping in a live feed replaces one data module, not the views.
mulberry32(hash(id + scenario)), no Math.random()
These six are examples, not fixed features. Each one is a form we fit to whatever your business actually measures. The terminal data below is only what we happened to plug in.
Which berth frees up first, and when?
Vessel calls against berth, across the working day. Bar colour is the dominant move type for the call.
Are we slow on average, or slow in the tail?
Trucks by minutes from gate-in to gate-out. The dashed rule is the median. A distribution needs its summary drawn on it, not printed beside it.
Which block fills up, and at what hour?
Ground-slot occupancy by block and hour. One hue, light to dark, so magnitude never gets a second colour.
What drives the peak we are billed on?
Reefer load runs flat around the clock; crane draw follows the vessel window. Stacked, because the two add up to the site total.
How much of the fleet is actually earning?
64 pieces of yard equipment by state. One bar rather than a pie: parts of a whole are easier to compare along a shared edge.
Which customer is taking the most ground?
Ground slots held per service, ranked. The leading service is picked out so the answer is readable without counting bars.
Numbers measured off this build, not rounded up for a slide. If a figure below matters to your procurement team, we will show you where it comes from.
One week, three steps, and a real answer at the end of it. No pilot programme, no statement of work to sign before anyone sees anything.
One day of move history and a block layout, in whatever shape your system exports. CSV, a database dump or an API endpoint all work.
Day 1, no integration work on your side
Your yard replaces ours in the 3D stage and your figures replace the seeded ones. We pick the chart forms that answer the questions your team actually asks.
Days 2 to 4
A working console on your own data, deployed behind your SSO. If it does not tell you something you did not already know, we say so and stop there.
Day 5
Built by Pixlotech. Tell us what your operation measures and we will tell you, honestly, whether a console like this is worth building for it.