Inspiration

Our team was immediately drawn to Vertical 4: At the Gate prompt because the challenge is not simply about tracking containers but allowing faster decision-making when competing for limited port capacity.

We noticed that the problem lacked a clear decision simulator that could help terminal operators quickly weigh the tradeoffs. Instead of manually checking 100 containers in a queue and creating endless delay, we wanted to identify and pull aside only the containers that need attention, prioritize those based on urgency, and let releasable cargo continue passing through the terminal.

We built PortTable to help operators answer one question: Which container cannot wait?

What it does

PortTable is a decision layer for port operations that combines Terminal49 tracking data with terminal operator data to prioritize urgent cargo and keep freight moving during both daily operations and crises.

Rather than looking through every container or stopping all containers when something looks wrong, PortTable helps operators:

  • Keep releasable containers moving
  • Flag suspicious or conflicting containers
  • Prioritize time-sensitive cargo
  • Simulate operational decisions in a low-stakes environment before committing to them

PortTable is designed to be useful immediately, and serve as a practical decision-support layer for daily planning. A terminal operator could use it as soon this week by connecting available Terminal49 data with operational inputs they already track.

In our demo, we follow container C184, a perishable container with conflicting data. It is flagged for a data discrepancy, pulled into the inspection flow, prioritized for its cargo, and then released faster once the issue is resolved by the port.

How we built it

Our web app combines three core layers:

  1. Terminal49 tracking data Container IDs, shipment milestones, equipment information, ETA, and other tracking signals.

  2. Terminal operator data Lane availability, inspection capacity, yard conditions, operational disruptions, and other terminal constraints.

  3. PortTable decision logic An explainable priority model that assigns flagged containers an urgency score from 0-100 based on triggered operational factors.

Our prototype uses a weighted additive rules model: $$ \text{Priority Score} = \min(100,\sum \text{triggered factor points}) $$

The model considers factors such as:

  • Data discrepancies
  • Customs holds
  • Inspection requirements
  • Last free day risk
  • Operational risk
  • Cost exposure
  • Inspection capacity

Challenges we ran into

One of the biggest challenges was building enough realistic mock data to keep the simulation meaningful and realistic. We wanted the demo to feel like an actual terminal environment, so we had to create scenarios that reflected different container states, conflicts, delays, inspection needs, and urgency levels.

Accomplishments that we're proud of

We're especially proud of how the dashboard and simulator came together as a connected experience. We're also proud that our prototype pulls container information from an API backed by actual Terminal49 data rather than solely relying on hardcoded records. This gave us a more realistic foundation for the simulation while allowing us to layer our own operational scenarios.

What's next for PortTable

Our next step is to make PortTable's priority model more robust and data-driven. For the purpose of the hackathon, we used an explainable weighted scoring system so operators could understand why a container was prioritized.

In the future, we want to move toward a more reliable distribution-based model, such as Gaussian or other statistical scoring methods, that can learn what terminal behavior looks like more precisely.

We also want the scoring system to remain modular, so different ports and operators can easily plug in their own business rules, risk thresholds, or models.

Funding: We’d start with government money that doesn’t cost equity, because PortTable is dual use: the same tool runs port operations and flags cargo for inspection. Our customers can buy it with security grants. FEMA’s Port Security Grant Program ($95M in FY2026) funds port-wide risk management for port authorities and private terminal operators. They apply, and PortTable is the tool they buy. For our own R&D, we’d target Homeland Security’s channels for buying new technology: CBP’s Commercial Solutions Openings, and DHS SBIR when a topic fits. A funded pilot at one terminal running live Terminal49 data turns into a per-terminal licence.

Sources:     •    USCG Maritime Commons: FY2026 PSGP notice of funding (https://www.news.uscg.mil/maritime-commons/Article/4538915/fy2026-port-security-grant-program-notice-of-funding-opportunity/)     •    WorkBoat: FEMA opens $95M in port security grant funding for FY2026 (https://www.workboat.com/fema-opens-95-million-in-port-security-grant-funding-for-fy2026)     •    FundingLandscape: CBP Commercial Solutions Opening CSOP-BP-GS-26-0002 (https://fundinglandscape.com/opportunity/cmqkisdvc0056jo04bbyyw82r)     •    FY26 PIDP notice of funding (MARAD) (https://files.simpler.grants.gov/opportunities/d339d69b-b178-4163-b3aa-abd63c095011/attachments/20d89e7c-ba21-43ed-927e-7ba6ff777972/FY26_PIDP_NOFO_0403026.pdf)

Responsible use:

The tool could be misused to steer favoured cargo past checks or to show bad actors which boxes get flagged for inspection. We limit that: no rule or preset can release a box under a customs, USDA or VACIS hold, a person approves every action, every rule change is logged, and the Terminal49 key stays on our server. Tools used: • Open source: React 19, TypeScript, Vite, Tailwind CSS 4, vite-plugin-singlefile, Lucide icons, Fontsource (IBM Plex Sans and Mono), Three.js with OrbitControls (3D yard), Playwright (UI testing) • Public APIs: Terminal49 API (live tracking requests; shipment and container data), Vercel serverless functions (hosting and API proxy) • AI tools: Claude (Anthropic) via Claude Code for code, design mockups and testing; ChatGPT with the Terminal49 connector to pull the real shipment snapshot

Built With

  • chatgpt
  • claude
  • claudecode
  • fontsource
  • lucide
  • playwright
  • react19
  • tailwind
  • terminal49
  • three.js
  • typescript
  • vercel
  • vite
Share this project:

Updates

Submission history