Schiene → StraßeRail → Road

Der letzte Zug fällt aus.
Das Taxi ist schon bestellt.
The last train is cancelled.
The taxi is already booked.

Cabrelay organisiert die Ersatzbeförderung automatisch — von der Anspruchsprüfung über den digitalen Taxigutschein bis hin zu Bündelung, Disposition und Abrechnung. Für den Fahrgast im Browser. Für die Leitstelle in einem System. Cabrelay organizes alternative transport automatically — from the eligibility check and the digital taxi voucher through pooling, dispatch and settlement. For passengers, in the browser. For operations teams, in one system.

Der vollständige Ablauf läuft heute end-to-end — Anspruchsprüfung, Gutscheine, Bündelung, Disposition, Abrechnung, an simulierten externen Schnittstellen. Der nächste Schritt ist derselbe Ablauf mit echten Reisedaten, echter Ticketprüfung und echten Anbietern: Integration und Praxisnachweis, keine Neuentwicklung. The complete workflow runs end to end today — eligibility, vouchers, pooling, dispatch, settlement, on simulated external interfaces. The next step is that same workflow on real journey data, real ticket validation and real providers: integration and proof in practice, not basic development.

Szenario-LaufScenario run GemessenMeasured
23:41:00
ICE 1234 · KnotenbahnhofHub station

Zugausfall gemeldetCancellation reported

0
AnfragenRequests
0
AutomatischAutomated
0
FahrzeugeVehicles

    Gemessener Lauf des Demo-Szenarios „ICE 1234, letzter Zug des Tages, 87 gestrandete Fahrgäste“ — Seed 4711, Median aus drei Läufen bei 120-facher Zeitraffung. Gepoolt 51,7 % günstiger als Einzelfahrten (Spanne 51,5–52,4 %). Selbst durchspielen → A measured run of the demo scenario “ICE 1234, last train of the day, 87 stranded passengers” — seed 4711, median of three runs at 120× time-lapse. Pooled is 51.7% cheaper than individual rides (range 51.5–52.4%). Play it yourself →

    0
    Apps, Konten oder Papierbelege für den Fahrgastapps, accounts or paper receipts for the passenger
    120 €
    Erstattungsrahmen je Fahrgast — automatisch geprüft, als Kostendeckel im Gutschein hinterlegtreimbursement per passenger — checked automatically, enforced as a cap in the voucher
    5
    Anbieter-Adapterfamilien, von der Dispositions-API bis zum Taxistandprovider adapter families, from dispatch API down to the taxi rank
    ~100 %
    Abdeckung: der Rank-Mode-Boden greift auch dann, wenn keine Schnittstelle antwortetcoverage: the rank-mode floor holds even when no interface answers
    ManuellManual

    Zugbegleitung oder Servicepersonal entscheidet im Einzelfall. Gutscheine werden auf Papier ausgestellt, Taxizentralen einzeln angerufen — ohne Sicht darauf, welche Zentrale gerade überhaupt Wagen frei hat. Train crew or station staff decide case by case. Vouchers are issued on paper and dispatch centres are phoned one at a time — with no visibility of which centre actually has cars free.

    RückwirkendRetrospective

    Wer keinen Gutschein bekommt, zahlt selbst und reicht Wochen später Originalbelege beim Servicecenter Fahrgastrechte ein. Der teuerste Moment für den Fahrgast ist der, in dem er ohnehin am wenigsten Kraft hat. Anyone who doesn't get a voucher pays out of pocket and submits original receipts to the passenger-rights service centre weeks later. The most expensive moment for the passenger is the one where they have the least energy left.

    UngebündeltUnpooled

    Fahrgäste mit nahezu identischem Ziel fahren einzeln — genau in der Nacht, in der Taxis am knappsten sind. Geld und Sitzplätze gehen gleichzeitig verloren. Passengers with near-identical destinations each take their own taxi — on exactly the night when taxis are scarcest. Cost and seat capacity are wasted at the same time.

    UnsichtbarInvisible

    Keine Echtzeit-Kostenkontrolle, kein durchgängiger Prüfpfad, keine Statusinformation für den Fahrgast. Niemand weiß während der Störung, was sie kostet. No real-time cost control, no end-to-end audit trail, no status for the passenger. Nobody knows what a disruption costs while it is happening.

    23:41, Knotenbahnhof. Der letzte ICE fällt aus. 87 Menschen stehen auf dem Bahnsteig — und ein großer Teil davon fährt in dieselbe Richtung. 23:41, hub station. The last ICE is cancelled. 87 people are standing on the platform — and a large share of them are heading the same way.

    Das ist das Demo-Szenario. Das MVP fährt es vollständig durch. That is the demo scenario. The MVP runs it end to end.

    01

    ScannenScan

    BrowserBrowser

    QR-Code auf der Bahnsteiganzeige, im Reiseportal oder vom Zugpersonal. Die Web-App öffnet sich sofort. Keine Installation, kein Konto, kein Passwort. A QR code on the platform display, in the travel portal, or handed over by the crew. The web app opens immediately. No install, no account, no password.

    02

    Anspruch prüfenCheck entitlement

    Regelwerk 2026-07Rule set 2026-07

    Ziel bestätigen — die Buchungsreferenz bringt der QR-Code bereits mit. Die Störung wird mit den Echtzeit-Reisedaten abgeglichen, der Anspruch anhand eines versionierten Regelwerks aus EU 2021/782 und den Beförderungsbedingungen geprüft: die letzte Verbindung des Tages entfällt, oder die planmäßige Ankunft liegt zwischen 00:00 und 05:00 bei mindestens 60 Minuten Verspätung — bis zu 120 € für ein Taxi. Grenzfälle gehen an die Ein-Klick-Freigabe durch das Personal, nicht in die Ablehnung. Confirm the destination — the QR code already carries the booking reference. The disruption is checked against live journey data, the entitlement against a versioned rule set derived from EU 2021/782 and the carrier's conditions: the last connection of the day is cancelled, or scheduled arrival falls between 00:00 and 05:00 with a delay of 60 minutes or more — up to €120 for a taxi. Edge cases route to one-tap staff approval, never to a hard rejection.

    03

    Gutschein erhaltenReceive voucher

    Signierter QRSigned QR

    Digitaler Taxigutschein mit Kostendeckel, kryptografisch signiert, mit Ablaufzeit und einem kurzen Sprechcode für Telefon und Zentrale. Er ersetzt den Papiergutschein und das Auslegen mit späterer Erstattung zugleich. A digital taxi voucher with a spend cap, cryptographically signed, with an expiry and a short spoken code for phone and dispatcher use. It replaces the paper voucher and the pay-first-claim-later loop in one step.

    04

    BündelnPool

    CVRPCVRP

    Fahrgäste mit verträglichen Zielen fahren gemeinsam statt einzeln. Anfragen desselben Bahnhofs sammeln sich dafür in einem kurzen, nachfrageabhängigen Zeitfenster und werden nach Zielkorridor geclustert; ein Routing-Solver bildet daraus geteilte Fahrten — mit Umwegbeschränkung je Fahrgast, Rollstuhlbedarf als harter Nebenbedingung und einem Opt-out für alle, die allein fahren möchten. Passengers with compatible destinations travel together instead of one by one. Requests from the same station gather in a short, demand-adaptive window and are clustered by destination corridor; a routing solver forms shared rides from them — with a per-passenger detour bound, wheelchair access as a hard constraint, and an opt-out for anyone who would rather travel alone.

    05

    DisponierenDispatch

    KaskadeCascade

    Parallele Anfrage an alle Anbieter, die den Auftrag überhaupt bedienen können. Auswahl nach Ankunftszeit, Preis und Kapazität — und wenn niemand liefert, arbeitet sich die Kaskade automatisch Stufe für Stufe nach unten, bis ein Fahrzeug steht. A parallel request to every provider actually capable of serving the job. Selection by arrival time, price and capacity — and if nobody delivers, the cascade steps down tier by tier until a vehicle is secured.

    06

    Fahren und abrechnenRide and settle

    LedgerLedger

    Fahrzeug, Treffpunkt auf der Karte und Live-ETA im Browser; SMS als Rückfallkanal für leere Akkus und alte Geräte. Der Fahrer scannt den Gutschein. Jede Fahrt landet mit Störungsbezug, Anspruchsgrundlage, Route und Kosten im Ledger — der Prüfpfad entsteht nebenbei, nicht nachträglich. Vehicle, meeting point on a map and live ETA in the browser; SMS as the fallback channel for dying batteries and older phones. The driver scans the voucher. Every ride lands in the ledger with its disruption reference, eligibility basis, route and cost — the audit trail is a by-product, not an afterthought.

    Das SystemThe system

    Sechs Stufen, ein Datenmodell — und eine saubere Naht zur Außenwelt. Six stages, one data model — and one clean seam to the outside world.

    01 · AnspruchEligibility

    Versionierte EntscheidungstabellenVersioned decision tables

    Das Regelwerk ist Code, versioniert und einzeln testbar — inklusive eigenschaftsbasierter Tests. Jede Entscheidung trägt die Regelversion, mit der sie getroffen wurde. The rule set is code, versioned and individually testable — property-based tests included. Every decision carries the rule version it was made under.

    EU 2021/782rules/2026-07Hypothesis
    02 · GutscheinVoucher

    Signiert, gedeckelt, befristetSigned, capped, time-boxed

    Ein Gutschein je Ticket, Plausibilitätsprüfung des angegebenen Standorts, automatischer Verfall, Gruppengutscheine für gemeinsam Reisende. Missbrauchskontrollen sind Teil des Lebenszyklus, nicht ein nachgelagerter Report. One voucher per ticket, a plausibility check on the claimed location, automatic expiry, group vouchers for people travelling together. Fraud controls are part of the lifecycle, not a downstream report.

    JWSHuman codeCap 120 €
    03 · BündelungPooling

    Erst bündeln, dann Fahrzeuge zuteilenGroup passengers first, then assign vehicles

    Cabrelay fasst Fahrgäste mit verträglichen Zielen zusammen und rechnet daraus effiziente geteilte Fahrten — Kapazität, Fahrzeit, Umwege und Mobilitätsbedarf inbegriffen. Darunter liegen ein nachfrageabhängiges Zeitfenster, Clustering nach Zielkorridor und ein kapazitiertes Tourenproblem auf echten Fahrzeiten. Fällt ein Fahrzeug oder ein Fahrgast vor der Abholung aus, wird neu geplant. Cabrelay groups passengers with compatible destinations and computes efficient shared journeys from them — capacity, travel time, detours and mobility requirements included. Underneath sit a demand-adaptive window, clustering by destination corridor and a capacitated vehicle-routing problem over real travel times. If a vehicle or a passenger drops out before pickup, the plan is recomputed.

    OR-ToolsOSRMPostGIS
    04 · DispositionDispatch

    Kaskade nach FähigkeitenA cascade over capabilities

    Fünf Adapterfamilien hinter einem Port. Ausgewählt wird nach dem, was ein Anbieter kann — Angebot, Live-GPS, Sitzplätze, Rollstuhl, Nachtabdeckung, Abrechnungsweg — nie nach seinem Namen. Five adapter families behind one port. Selection happens on what a provider can actually do — quotes, live GPS, seats, wheelchair access, night coverage, settlement rail — never on its brand name.

    Quote fan-outBridgeRank mode
    05 · Live-StatusLive status

    Drei Kanäle, zunehmend robustThree channels, decreasing fragility

    WebSocket, bei Bruch SSE, im Zweifel SMS. Nachts zählt nicht die eleganteste Verbindung, sondern die, die auf einem alten Telefon mit 6 % Akku noch ankommt. WebSocket, SSE when it breaks, SMS when in doubt. At night what matters is not the most elegant channel but the one that still arrives on an old phone at 6% battery.

    WS / SSESMS-FallbackWCAG 2.1 AA
    06 · AbrechnungSettlement

    Jede Fahrt ist nachvollziehbarEvery ride is traceable

    Störung, Anspruchsgrundlage, Freigabe, Fahrt und Kosten werden als Vorgang festgeschrieben: vom Ausfall bis zur Erstattung entsteht ein durchgehender Prüfpfad, ohne dass jemand einen Beleg einreicht. Getragen wird er von einem fortlaufend hash-verketteten Ledger und Sammelrechnungen je Anbieter. Disruption, eligibility basis, approval, ride and cost are written down as one record: from cancellation to reimbursement, a continuous audit trail forms without anyone submitting a receipt. Carrying it are a continuously hash-chained ledger and aggregated per-provider invoices.

    OutboxAudit-TrailKPI
    Die NahtThe seam

    Die Außenwelt bleibt austauschbar. Jeder externe Berührungspunkt — Reisedaten, Ticketprüfung, Anbieter, SMS, Routing, Geocoding — liegt hinter einer klar geschnittenen Schnittstelle: im MVP ein Simulator, im Betrieb das echte System. Ein Anbieterwechsel ist Konfiguration, kein Umbau. The outside world stays replaceable. Every external touchpoint — journey data, ticket validation, providers, SMS, routing, geocoding — sits behind a clearly cut interface: a simulator in the MVP, the real system in operation. Changing a provider is configuration, not a rebuild.

    01
    Dispositions-APIDispatch API Lokale Taxizentralen über ihre Dispositionssoftware — die größte Fläche, auch ländlichLocal taxi dispatch centres via their dispatch software — the widest reach, rural included
    Angebot je nach Zentralequotes vary
    02
    PlattformPlatform Ride-Hailing-Anbieter mit vollwertiger B2B-Schnittstelle — Angebot, Live-GPS, GastfahrtenRide-hailing providers with a full B2B interface — quotes, live GPS, guest rides
    Großstädtelarge cities
    03
    Dispatcher-BridgeDispatcher bridge Keine API: ein Mensch liest den Auftrag in einer Weboberfläche und meldet das Fahrzeug zurückNo API: a human reads the job in a web form and reports the vehicle back
    jede erreichbare Zentraleany reachable centre
    04
    DirektfahrerDirect driver Der Fahrer bekommt einen Link per SMS, nimmt im Browser an und teilt seine PositionThe driver gets a link by SMS, accepts in the browser and shares position
    Opt-in, Long Tailopt-in long tail
    05
    Rank Mode — der BodenRank mode — the floor Der Fahrgast geht zum Taxistand, jedes Taxi löst den Gutschein ein — keine Disposition, keine Anbindung, keine Absprache nötig. Beförderungspflicht statt Integration.The passenger walks to the rank and any taxi redeems the voucher — no dispatch, no integration, no prior arrangement needed. Statutory duty to carry instead of integration.
    ~100 %

    Bündeln unter UnsicherheitPooling under uncertainty

    Fahrgäste treffen über Minuten verteilt ein, während das Fahrzeugangebot schwankt. Das Zeitfenster muss Wartezeit gegen Bündelungsgrad abwägen — dynamisch, nicht als fester Parameter. Passengers trickle in over minutes while vehicle supply fluctuates. The window has to trade waiting time against pooling rate — dynamically, not as a fixed parameter.

    Anspruch mit juristischer PräzisionEligibility with legal precision

    Automatisierung darf nachts um eins niemanden fälschlich ablehnen. Deshalb sind die Regeln versioniert, erschöpfend getestet und jederzeit durch Personal übersteuerbar — der Grenzfall geht an den Menschen. Automation must never wrongly deny someone at one in the morning. So the rules are versioned, exhaustively tested and overridable by staff at any time — the edge case goes to a human.

    Läuft, wenn nichts läuftWorks when nothing works

    Das System wird gebraucht, wenn ohnehin etwas kaputt ist. Deshalb hat jede kritische Abhängigkeit einen Notbetrieb: fallen die Reisedaten aus, gibt Personal frei; fallen Anbieter-APIs aus, greift die Bridge; ist der Fahrgast offline, kommt die SMS. Ausfälle verschwinden dadurch nicht — aber der Ausfall einer Abhängigkeit wird nicht automatisch zum Ausfall der Beförderung. The system is needed precisely when something is already broken. So every critical dependency has a degraded mode: journey data down, staff authorize; provider APIs down, the bridge takes over; passenger offline, SMS carries the status. That does not make failures disappear — but the failure of one dependency does not automatically become the failure of the ride.

    Stand heuteWhere it stands

    Das vollständige MVP läuft — end-to-end, an simulierten externen Schnittstellen. The complete MVP is running — end to end, on simulated external interfaces.

    Gebaut in Eigenregie, auf eigener Hardware, ohne externes Kapital. Der nächste Schritt ist, denselben Ablauf an echte Systeme und echte Fahrzeuge anzuschließen. Built on our own time and hardware, with no external capital. The next step is connecting that same workflow to real systems and real vehicles.

    ✓Fahrgast-Web-App und Betriebskonsole, beide vollständig im BrowserPassenger web app and operations console, both fully browser-based
    ✓Anspruchsprüfung, Gutschein-Lebenszyklus, Bündelung, Kaskade, Live-Status, LedgerEligibility, voucher lifecycle, pooling, cascade, live status, ledger
    ✓Zugweite Vorabfreigabe und Massenstörungs-Modus für die LeitstelleTrain-level pre-authorization and mass-disruption mode for operations
    ✓Deterministische Szenarien: gleicher Seed, identischer Lauf — reproduzierbar prüfbarDeterministic scenarios: same seed, identical run — reproducibly verifiable
    ✓Deutsch und Englisch durchgängig, WCAG 2.1 AA auf dem FahrgastwegGerman and English throughout, WCAG 2.1 AA on the passenger flow
    ✓Datensparsam gebaut: Identifikation über die Buchungsreferenz, kein KontoData-minimal by construction: identification by booking reference, no account
    ✓Lastprobe und Notbetriebs-Prüfung als wiederholbarer TestlaufLoad burst and degraded-mode sweep as a repeatable test run
    ○Nächster Schritt: echte Reisedaten, echte Ticketprüfung, echte Anbieter anschließenNext step: connect real journey data, real ticket validation, real providers

    Offen zum AusprobierenOpen to try

    Sie müssen uns das nicht glauben — starten Sie die Störung selbst. You don't have to take our word for it — trigger the disruption yourself.

    Die vollständige Simulation läuft öffentlich: dieselbe Software, dieselbe Pipeline, dieselben Regeln wie im Pilotbetrieb — mit simulierten Reisedaten und einer simulierten Fahrzeugflotte dahinter. Sie können sie anhalten, im Zeitraffer laufen lassen und jederzeit zurücksetzen. The full simulation runs publicly: the same software, the same pipeline, the same rules as in pilot operation — with simulated journey data and a simulated vehicle fleet behind it. You can pause it, run it in time-lapse and reset it at any point.

    1. 01Szenario „ICE 1234“ laden und die Uhr auf 23:41 starten.Load the “ICE 1234” scenario and start the clock at 23:41.
    2. 02Als Fahrgast einsteigen: Buchungsreferenz eingeben, Anspruch prüfen lassen, Gutschein bekommen.Step in as a passenger: enter a booking reference, get the entitlement checked, receive the voucher.
    3. 03In die Leitstelle wechseln und zusehen, wie sich Bündel bilden und die Kaskade Fahrzeuge sichert.Switch to the operations console and watch pools form and the cascade secure vehicles.
    4. 04Anbieter ausfallen lassen und prüfen, ob der Rank-Mode-Boden hält.Take providers down and check that the rank-mode floor holds.
    Simulation öffnenOpen the simulation(öffnet in neuem Tab)(opens in a new tab)
    FahrgastPassenger: ohne Anmeldung, unter demo.cabrelay.de/pno login needed, at demo.cabrelay.de/p
    Leitstelle & CockpitOperations & cockpit: Zugangsdaten auf Anfrage über hallo@cabrelay.decredentials on request from hallo@cabrelay.de
    Testumgebung. Keine echten Fahrzeuge, keine echten Daten, keine Kosten. Test environment. No real vehicles, no real data, no cost.
    demo.cabrelay.de/p/…
    Fahrgast: Gutschein & Live-StatusPassenger: voucher & live status Vom Scan bis zum zugewiesenen Fahrzeug — auf dem Telefon, im Stehen, nachts. From scan to assigned vehicle — on a phone, standing on a platform, at night.
    demo.cabrelay.de/ops
    Leitstelle: Bündel & KaskadeOperations: pools & cascade Nachfrage je Bahnhof, entstehende Bündel, Anbieterantworten, Ausgaben gegen Deckel. Demand per station, pools forming, provider responses, spend against caps.
    demo.cabrelay.de/ops/kpi
    Kennzahlen: gebündelt vs. einzelnKPIs: pooled vs. unpooled Kosten je befördertem Fahrgast, Wartezeit, Automatisierungsgrad — gegen die manuelle Basislinie. Cost per transported passenger, waiting time, automation share — against the manual baseline.

    Screenshots aus einem einzelnen Lauf des Szenarios „ICE 1234“ (Seed 4711). Die Kennzahlen eines Einzellaufs weichen von den gemessenen Werten oben ab: der Fahrgast-Zulauf läuft im Zeitraffer, die Vermittlung an die Anbieter in Echtzeit — dieses Verhältnis verschiebt sich mit der Uhrgeschwindigkeit. Oben steht der Median aus drei Läufen. Screenshots from a single run of the “ICE 1234” scenario (seed 4711). A single run's figures differ from the measured values above: passenger arrivals run in time-lapse while dispatch to providers runs in real time, and that ratio shifts with clock speed. The figures above are the median of three runs.

    Python · FastAPI Vue 3 · Nuxt PWA PostgreSQL · PostGIS Redis Google OR-Tools OSRM · OpenStreetMap Hexagonale Ports & AdapterHexagonal ports & adapters Ereignis-Outbox als PrüfpfadEvent outbox as audit trail Hosting in Deutschland/EUGerman / EU hosting

    CabrelayCabrelay

    1826 verkürzten Londoner das Wort cabriolet zu cab. 1851 wanderte dasselbe Wort auf die Schiene und bezeichnete dort das Führerhaus der Lokomotive. Es ist das eine Wort, das das Englische dem Zug und dem Taxi zugleich gegeben hat. In 1826 Londoners shortened cabriolet to cab. In 1851 the same word moved onto the railways, to name the driver's compartment of a locomotive. It is the one word English gave to both a train and a taxi.

    Relay, aus altfranzösisch relaier: „zurücklassen, um frische Pferde zu nehmen“ — Gespanne, die entlang einer Route bereitstehen und auf den Moment warten, in dem das erste ermüdet. Relay, from Old French relaier: “to leave behind in order to take fresh ones” — teams stationed along a route, waiting for the moment the first one tires.

    Cabrelay ist, was dazwischen passiert:Cabrelay is what happens in between: der Moment, in dem ein Zug stehen bleibt — und etwas Frisches schon wartet.the moment a train stops, and something fresh is already waiting.

    hallo@cabrelay.de Rhein-Neckar, Deutschland. Für Rückfragen zu Pilotbetrieb, Architektur oder Datenschutz. Rhine-Neckar, Germany. For questions on pilot operations, architecture or data protection.