Skip to main content
DBB Software logo

Building an In-House Journey Planner for a Rail-Ticketing App

DBB Software is engineering the intelligence layer behind a UK rail-ticketing product: an in-house journey planner that computes routes, fares, and split-ticket savings directly from the rail industry's official data feeds. The work takes the product from reselling a third-party retail API to owning the engine that finds and prices every journey.

Industry

Travel & Hospitality

Service

Product Discovery

Team

2 Senior BE Developers, 1 Senior Mobile Developer, 1 Senior Web Developer, 1 QA Engineer, 1 Designer

Project State

February 2026 - Ongoing

Country

UK

United Kingdom

Choo Choo Case Study
choo choo white

About the Client

Our client is a promising startup that wants to offer consumers a convenient way to book and buy train tickets. Their solution aims to provide users with an alternative to outdated rail-ticketing platforms through an optimized user flow and user-focused UI.

The Client's Initial Request

The client engaged DBB Software to move the journey-planning and pricing intelligence in-house because growth was hitting the ceiling of what a third-party retail API allows.

Lift the Pricing Ceiling

Own the fares and discount logic so the product can apply multiple railcards, surface better split-ticket savings, and price journeys the third-party integration could not.

01

Unblock the Roadmap

Free features like richer ticket detail and control over how results rank and display from an abstraction layer that kept them out of reach.

02

Build on Official Industry Data

Base the engine on the same authoritative feeds the railway itself runs on, so journeys, prices, and routes reflect the real network rather than a reseller's subset.

03

De-Risk Before Committing

Prove the in-house engine is viable, and on what data, so the full build becomes a funded decision rather than a leap of faith.

04

Solutions We Delivered

DBB Software is delivering the journey planner as a governed progression from research to running code, with the same embedded senior team that built the original product.

Feasibility and Standards Research

The team validated the entire public specification corpus of the UK rail retail industry: 24 primary specification documents, roughly 27,000 lines, read end to end, with 74 industry documents mapped. Every prior assumption was fact-checked against live official sources under a deliberately adversarial method, with official feeds treated as the only ground truth and independent blind reviews run to remove confirmation bias.

The Alternatives, Eliminated on Evidence

The industry's own journey-planning web service is contractually barred from use alongside ticket retailing, which removes the obvious option for any retailer.

Commercial engines were assessed and priced at enterprise terms, and no complete open-source journey planner exists for the GB network.

Building also keeps the split-ticketing algorithm, the client's own differentiator, under the client's control. No industry specification governs it.

Solution Architecture and System Design

A provisional System Design Document covers the data platform, journey planning and fares, reservations and payments, real-time data, fulfillment and after-sales. It reconstructs behavior the industry's public documentation leaves to accredited systems, through a provenance-tagged architecture so no data format is ever assumed rather than sourced.

A Migration Scoped to the Service Layer

Replacing the engine beneath a live product is designed to be invisible to the people using it.

The existing platform's domain separation means the work lands entirely in the service layer. Controllers, the client-facing API contract, the mobile app and the web app are unchanged.

No app-store release is needed to swap the engine, which takes a release dependency and a review cycle out of the critical path.

An adapter layer normalizes more than five source formats, from fixed-width timetable records and flat-file fares through XML, JSON, REST and streaming, into one set of internal domain models.

Data Engineering on the Official Feeds

The team designed the ingestion layer for the industry's raw feeds: the national timetable in CIF format, the fares dataset, the National Routeing Guide, and reference data for stations and operators.

Scheduled jobs pull, validate and load the feeds, with daily incremental updates and a full refresh on a longer cycle.

The design handles the formats' well-known traps: fixed-width layouts, sequence rollovers, full-refresh surprises, and records that are never deleted and must be expired by the consumer.

The Journey Planner Engine

A working proof-of-concept, built as a module inside the existing platform, computes station-to-station journeys from raw timetable and routeing data, then prices them.

The timetable becomes a graph where stops are nodes and services are edges, queried by location code and time window, covering interchanges and joined or split trains.

The fares engine resolves route codes and ticket types, then applies railcard discounts, minimum fares and validity rules.

On top sits the client's own split-ticketing algorithm, which finds cheaper combinations of tickets for the same seats on the same trains.

A Real-Time Overlay on Darwin

Live running information comes from Darwin, the rail industry's real-time feed, over a streaming message channel rather than request polling. The integration is aligned to the industry's own migration of that feed onto its new data marketplace, so the engine follows the network's upgrade cycle.

The Phased Plan and the Accreditation Track

The build is scoped as three phases across 24 to 40 calendar weeks with two senior backend developers, sequenced so the longest dependency starts first.

Phase one is the engine itself: feeds, timetable, fares, routeing, connections and split-ticketing.

Later phases cover reservations, payment, settlement and ticket issuing, each gated on industry licensing.

Retail licensing and accreditation run in parallel from week one, because calendar time on that track, not engineering time, sets the earliest possible launch.

Results Achieved

brain

Autonomous fare computation

The product now computes its own fares and discounts independently.

location

Native journey routing

The proof-of-concept routes journeys between GB stations, natively handling interchanges and split trains.

access

Built on official industry data

Every system design decision traces directly to an official industry specification or live data feed.

puzzle black

Seamless backend swaps

The underlying engine can be swapped completely without requiring a new app-store release.

strategy

An unblocked product roadmap

Product features previously restricted by the old integration are now entirely under the team's control.

dollar-circle

Upfront pricing via proof-of-concept

Early research and a working proof-of-concept secured a firm price for the full build upfront.

Own the Intelligence Behind Your Product

DBB Software builds the engines that decide what your product shows and what it charges, on data you control.

Contact Us

I have read the principles of personal data protection - Privacy Policy

"Most of our work starts with a 30-minute call where someone describes a product they're trying to ship and one part of the engineering picture they can't get around.

If that's where you are, let's set one up; I'll tell you straight whether we're the right fit.”

Mina Morkos

Business Development Manager

Want a similar outcome for your team?

Ask our AI assistant — it can pull related case studies, talk through the approach, and put you in touch with the team if you want a deeper conversation.

Discuss a similar project