Inspiration
A single container can tell several different stories: the carrier reports one status, the scale shows another, customs records a hold, and refrigeration data raises an alert. A disruption adds more decisions to an already busy yard.
We wanted to help terminal coordinators answer one practical question: What needs attention next, and who should act?
Gate Triage LA applies that idea to everyday coordination and emergency response.
What it does
Gate Triage LA turns container exceptions into a prioritized action queue.
Operators can:
- Explore an interactive yard map and inspect containers by block and stack.
- Search current inventory by container number or carrier.
- Review actions across four importance–urgency quadrants.
- Switch between routine operations, refrigeration power loss, shared-exit congestion, and combined disruption.
- Track accepted actions through work completion and verification.
- Confirm gate-out to remove a container from inventory and free its modeled position.
- Generate an editable notification email for the relevant team, using the selected container’s evidence.
Congestion raises the priority of affected perishable cargo across the yard. Independent customs holds and other restrictions remain active throughout the workflow.
The demonstration includes 12 modeled Los Angeles blocks with 1,780 synthetic containers, plus an eight-block Rotterdam profile with Dutch localization.
How we built it
We built the frontend with React, TypeScript, Vite, and CSS, and the backend with Python and FastAPI. SQLite stores inventory, observations, review decisions, task progress, departures, and generated drafts.
An explicit rules engine assesses importance and urgency as scenarios change. The frontend uses server-confirmed state, with version checks and idempotent requests to keep concurrent updates and retries consistent.
The agent calls Claude through the backend to summarize evidence and draft notification emails. The server assigns recipient roles and escalation levels; operators review the draft and supply actual email addresses.
IBM Bob supported the API smoke-testing workflow. GitHub manages the code, and Render builds and deploys updates from main.
The current demonstration uses synthetic data. Connecting live Terminal49 data is a future integration step.
Challenges we ran into
Separating priority from permission. An urgent refrigerated container may also have a customs hold. We needed to preserve both conditions while recommending useful follow-up work.
Keeping the physical model coherent. Powered reefer positions have finite capacity, and ordinary storage blocks have different capabilities. Container handling also needed distinct stages: accepting a suggestion, completing work, verifying the result, and confirming departure.
Making disruptions change decisions meaningfully. Switching scenarios needed to reassess the same inventory, raise affected cargo priorities, and update individual stack indicators.
Maintaining reliable state. We handled stale observations, duplicate submissions, interrupted requests, and expired agent authorization while preserving acknowledged database records.
Accomplishments that we're proud of
We delivered an interactive full-stack demonstration with a database-backed workflow, spatial inventory, scenario-sensitive priorities, and editable notification drafts.
The final release passed 215 backend tests, 54 frontend tests, and a production build. We also verified the deployed frontend and backend.
We are particularly proud of connecting a visible problem to a concrete next action, a responsible team, and a verifiable outcome.
What we learned
Port-yard coordination depends on several conditions and responsibilities coming together. A useful decision-support system must represent those dependencies clearly.
We also learned to evaluate efficiency alongside feasibility, evidence quality, and operating restrictions. AI can help operators communicate and understand a case, while explicit rules and human verification keep the workflow accountable.
What's next for Gate Triage LA
Our next steps are to:
- Connect Terminal49 tracking data and terminal-authorized operational feeds.
- Add retrieval from approved operating procedures to support evidence-linked guidance.
- Evaluate constraint-based scheduling for limited resources and competing priorities.
- Measure throughput, truck turnaround, and disruption recovery against consistent simulation baselines.
- Add role-based accounts, durable hosted storage, and a verified contact directory.
We want to validate the workflow with terminal operators and use their feedback to refine the actions, escalation paths, and interface.
Log in or sign up for Devpost to join the conversation.