>Prompt|Operations Hackathon
HomeScheduleChallengesTeamsProjectsToolsInfo
Sign in
HomeScheduleChallengesProjectsMy team
>Prompt
An Aaltoes initiative

Bringing the AI frontline to Finland — a movement of builders, founders and experts, operated by agents.

Prompt
prompt.aaltoes.com →
Community
Telegram chat →Luma calendar →
Partner
promptagents@aaltoes.com
© 2026 PROMPT · AN AALTOES INITIATIVE · ESPOO
← All projects
★ Honourable mention · BahnOPERATIONS HACKATHON · OCT 2026

Bahn Desk

A dispatch-risk control room that scores every car delivery and shows a dispatcher only the orders that need a person.

1. The problem Bahn delivers cars across Germany, Denmark, Finland and Estonia using freelance drivers, ferries and dealer pickups. Dispatchers watch dozens of orders at once, and the warning signs are spread across system alerts, driver messages, ferry bookings, tracking and the weather. Most orders are fine, so the few risky ones get lost in the noise. Examples are a driver who picked up a car and went quiet, a ferry check-in that closes before the driver can reach the port, or a dealer with no matching car. Bahn told us its worst failure is a car that could have been delivered but wasn’t, because nothing hurts customer trust more. It usually shows first as a driver going silent after pickup. By the time someone notices, the cheap fixes are gone.

2. What we built A web control room that shows a person only the orders that need them. Each one has a single decision, a countdown to the real deadline (ferry check-in, a driver’s waiting limit, a task due time), and the evidence behind it. In the demo, about 10 of 86 orders need a person. Shared causes are grouped, so a port strike affecting five ferries is one decision, not five alerts. A Claude agent has already done the legwork, so a proposal is waiting when the dispatcher opens the order: approve it, change it, or undo. Around this sit four more pieces:

“Score a file”: upload your own CSV/JSON order export and get the same scoring. A weekly caught-vs-missed report for management. An MCP server so Bahn’s own assistants can call the same tools. A full English and Finnish interface.

3. How it works, and what’s AI about it There are two layers. First, a deterministic engine scores every order on every request:

Each signal becomes a reason with a risk from 0 to 1, and every reason links to the record it came from. Confidence is the product of (1 − risk) over all reasons. Reasons the agent can handle alone, like asking the driver for a position or planning charging, don’t count toward escalation. An order goes to a person if a reason blocks it or its confidence falls below 55%.

The weights follow what Bahn told us at the event:

A driver silent for 12 h after pickup is the top signal. At 6 h the agent asks the driver first. A GPS gap alone weighs little, because GPS drops out in the German countryside. A first late car is the agent’s job. Repeated lateness for the same customer escalates. Car value changes nothing. Travemünde and winter tyres are known risks.

The engine uses live weather (Open-Meteo), road notices (Fintraffic, Autobahn API), OSRM routes, about 6,500 OpenStreetMap fuel stops, chargers and rest areas, and the real Helsinki–Tallinn ferry timetable. It’s cheap and explainable enough to run on millions of orders.

The AI only works on the orders the engine flags. It is a tool-calling agent on Claude (claude-opus-5-5). It reads the order, the messages, the driver’s record, live conditions, ferry sailings and alternative drivers, and it may ask the driver or the pickup site (simulated in the demo). It has to finish with a proposal a person approves, or with “resolve without a person”, which is refused if anything needs a human. It never contacts customers or changes a booking, cost or driver without approval, and it answers in at most four short bullets. Claude also translates dataset text into Finnish.

We didn’t take its output on trust. We read the traces and checked every proposal against the data. One proposal offered a “ferry” that was really a train, so we fixed the tool rather than the prompt. We also removed every operator the dataset had invented, so the agent can’t cite a fake sailing.

The weekly report re-tests the rules on past problems, using only what was known before each problem happened. This week 13 of 87 orders had a problem. 10 were caught: 2 in advance (median 27 h ahead) and 8 when they happened. 3 were missed, and each miss comes with what would catch it next time.

4. What’s next

Connect Bahn’s live order feed and GPS history, so “now” is real and driver silence is measured from actual positions. Let the agent send its driver and dealer messages after a dispatcher approves them. Pilot with Bahn dispatchers for a few weeks, using the weekly caught-vs-missed report to tune the thresholds. Add customer feedback from deliveries. Connect the Danish and Estonian road feeds, which need access agreements. Load a Travemünde–Helsinki timetable. Learn EV winter range from Bahn’s own trips, since no data on it exists today.

App ↗Repo ↗Video ↗Slides ↗AI Usage Deck ↗
Built by · aBARofchocolate
  • DDang
  • SSamir
  • HHungkitty
  • VVille
  • ZLZayden Lee
ChallengesBahnThe Car Delivery Control RoomVelhoBuild us a tool that gets meetings

More from this hackathon

See all →
key high density dashboard: what if VelhoVelho AI IntelligenceFind automation opportunities and turn company research into a personalized sales pitch.Sell me this hackathonBahnVelhoThis is the home page of the agentJob-ad-X-rayJob-adX-ray uses industry benchmarking and executive profiling to deliver data-proven, hyper-personalized C-suite outreach.PlannerzzVelhoHallway Hunter: from a badge to a page made for their company
Hallway Hunter: from a badge to a page made for their companySnap a badge at a trade fair: a cited brief in about 6 s, and by morning a one-page letter built from what they said.Hai la focul lui Sumedru!!!BahnVelho