Postdata
WorkResearchAbout
WorkResearchAbout
Postdata
WorkResearchAboutContact

© 2026 Postdata. All rights reserved.

  1. Work
  2. /HowToGet journey planner

HowToGet: almost anywhere in New South Wales, without a car

Eight hundred thousand square kilometres, one journey planner, and a stubborn rule: use as little car as we can get away with.

Industry
Public transit, Mobility, Tourism
Region
New South Wales, Australia
Services
Routing research, Product engineering, Open data pipelines, Cloud deployment
Timeline
2026, live
HowToGet landing page: the wordmark over a sunset lake with the tagline “Almost anywhere in the state, without a car” and a button to explore the live map

On this page

  1. Intro
  2. Goals and challenges
  3. Solution
  4. Team
  5. Results
  6. Project details
  7. References

Intro

Most journey planners answer “can I get there?” with yes or no. In a state the size of New South Wales that is the wrong question: almost everywhere is reachable by some mix of transit, walking and a short car leg. The real question is how much car it costs you.

HowToGet is our answer, built as a self-initiated product on top of our public transit routing research. It searches the whole state — every train, coach, bus, ferry and on-demand service — and escalates reluctantly: walking first, on-demand shuttles where fixed routes end, a taxi only for the last miles, and where no timetable goes at all, the plan a local would actually give you.

It runs live at howtoget.postdata.ai, with a presentation landing page and an interactive map of pre-routed journeys from Sydney to places the mainstream planners give up on.

Goals and challenges

Building a planner that covers 800,000 square kilometres on open data turned up three problems the documentation does not mention.

  1. 01

    The “complete” timetable is Greater Sydney only

    The Transport for NSW endpoint advertised as the complete GTFS bundle serves the Greater Sydney feed. Real statewide coverage means pulling all 19 mode and region feeds separately; the regional trains, coaches and regional bus feeds are what make the far west reachable at all.

  2. 02

    A two-day search window cannot see a twice-weekly train

    OpenTripPlanner hard-caps its search window at two days, and the router configuration cannot raise it. Far-west services such as the Broken Hill Outback Xplorer run about twice a week, so no single window finds them and Broken Hill reports as unreachable despite direct rail.

  3. 03

    One stray space breaks the whole build

    Transport for NSW occasionally emits whitespace between a closing quote and the field delimiter in its CSVs. The GTFS reader rejects the row and aborts the entire graph build. On the day we checked, exactly one row in the regional trains shapes file was affected.

Solution

The planner searches in order of increasing car use and stops at the first rung that works, so a taxi is never proposed for a journey that walking or an on-demand service could have covered.

The routing rests on our own research: transfer-aware variants of Dijkstra that handle stop buffers and transfers of unlimited distance, and the ULTRA family of multimodal algorithms, together with the Early Pruning change we upstreamed into OpenTripPlanner. The papers are listed under References.

It was built and checked against a statewide OpenTripPlanner 2.10 graph. The public demo serves pre-routed journeys — transit legs from the Transport for NSW Trip Planner, last miles over OpenStreetMap with OSRM — so it runs as a single lightweight service without a 2.6 GB graph and a large JVM behind it.

The ladder: as little car as possible

Rung one is transit plus walking only, with walking access and egress allowed up to three hours. Rung two adds flexible, on-demand community transport for the last mile, still car-free for the traveller. Rung three lets transit go as far as it goes and then adds a car pickup to the door.

Rung four is the fallback for places no timetable reaches: the planner asks an LLM with web search for the plan a local would actually use.

A statewide graph on open data

All 19 Transport for NSW GTFS feeds plus the Australian OpenStreetMap extract clipped to a New South Wales bounding box, about 1.5 GB of source data. The graph builds in about five minutes into 2.6 GB covering 90,467 stops with 4.8 million generated transfers.

The bounding box, rather than the strict state polygon, is deliberate: it keeps the Canberra enclave and cross-border services to Albury–Wodonga, Tweed Heads and Mildura that a strict boundary would cut away. A sanitiser repairs the stray-whitespace rows across all feeds before every build.

Seeing services that run twice a week

To get around the two-day search window, the app probes successive departure days — the requested day, then two, four and six days later — with a 47-hour window each, so sparse regional services are found instead of reported as unreachable.

Live map and pre-routed journeys

Every one of 25 curated destinations is pre-routed from Sydney, and a visitor can also click anywhere on the map to drop a pin and route to raw coordinates. The map is served from the app itself rather than a CDN, so it works on locked-down networks with no external script dependency.

The timetable is refreshed nightly and the planner serves a multi-day horizon, so the journeys on the map reflect the current schedules.

HowToGet live map of New South Wales listing fourteen destinations the timetable reaches, with journey times, that Google Maps cannot route to
The live map: fourteen pre-routed destinations with journey times, each one a place the mainstream planner cannot route to.

Data sources

  • Transport for NSW Open Data — 19 GTFS feeds
  • Geofabrik Australia extract, clipped to New South Wales, © OpenStreetMap contributors
  • OpenTripPlanner 2.10 for the statewide graph

Stack

  • Node.js service with the landing page and the live map
  • MapLibre for the map, served locally
  • OSRM over OpenStreetMap for last-mile legs
  • An LLM with web search for the rung-four fallback
  • Docker on a VM behind Caddy with TLS; nightly timetable refresh

Team

A self-initiated project, built alongside our public transit routing research.

  • Algorithmic Engineer — routing, data pipeline and deployment
  • Designer — landing page and map interface

Results

Every destination is measured twice, departing Sydney at 08:00 the next day: once as the Transport for NSW Trip Planner answers it, once up the ladder. Across the fourteen destinations on the live map, the Trip Planner routes none of them. HowToGet routes all fourteen.

These are not ordinary towns. Every one is a place with no transit stop of its own, which is exactly where a mainstream planner stops being useful. Three of the fourteen are worse than “no route”: asked about that day, the Trip Planner quietly answers with a journey on a different day, which looks like an answer but is not one.

The comparison is one timetable against itself, not a claim about a competitor: transit legs on both sides come from the Transport for NSW Trip Planner, and the last mile is routed over OpenStreetMap. Bicycle timings are estimates at a stated pace and are marked as such in the interface.

  • Jenolan Caves: no journey on any day from the Trip Planner; 4 h 50 m with a taxi for the last 127 km, 48% of the distance car-free
  • Mount Canobolas: Monday only from the Trip Planner; 9 h 15 m with the last 18 km by bike, 100% car-free
  • Bald Rock National Park: no journey on any day; 12 h 09 m with a 32 km taxi, 96% car-free
  • Tibooburra: no journey on any day; 21 h 00 m with a 331 km transfer, 79% car-free
Hard-to-reach destinations routed, against none by the Trip Planner
14 / 14

Project details

Industry
Public transit, Mobility, Tourism
Region
New South Wales, Australia
Platform
Web application, live at howtoget.postdata.ai
Services
Routing research, Product engineering, Open data pipelines, Cloud deployment
Technologies
  • OpenTripPlanner 2.10
  • GTFS (19 Transport for NSW feeds)
  • OpenStreetMap
  • MapLibre
  • OSRM
  • Node.js
  • Transfer-aware Dijkstra
  • ULTRA
Team
2 — 1 Algorithmic Engineer, 1 Designer
Timeline
2026, live
Links
  • Open HowToGet ↗
  • Open the live map ↗

References

  1. 01A. Rohovyi, P. J. Stuckey, T. Walsh. Multimodal Pathfinding with Personalized Travel Speed and Transfers of Unlimited Distance. IEEE International Conference on Tools with Artificial Intelligence (ICTAI), 2025.
  2. 02D. Katkalo, A. Rohovyi, T. Walsh. Adapting Dijkstra for Buffers and Unlimited Transfers. IEEE International Conference on Intelligent Transportation Systems (ITSC), 2026.
  3. 03A. Rohovyi, A. Abuaisha, T. Walsh. Early Pruning for Public Transport Routing. World Conference on Transport Research (WCTR), 2026.
  4. 04D. Katkalo, A. Rohovyi, T. Walsh. Fast and Memory Efficient Multimodal Journey Planning with Delays. Symposium on Combinatorial Search (SoCS), 2026.
  5. 05M. Baum, V. Buchhold, J. Sauer, D. Wagner, T. Zündorf. UnLimited TRAnsfers for Multi-Modal Route Planning: An Efficient Solution. 27th Annual European Symposium on Algorithms (ESA), 2019.

Technical write-up

Real-Time Public Transit Routing with Unlimited Transfers

Your phone answers "fastest way across town" in milliseconds — but car routing and transit routing are secretly very different problems. A tour from plain Dijkstra to the ULTRA family, and why timetables make everything harder.

Read the article

Discover more

  • Mission Mobile logo over a painted view of a coastal city

    LLM-based credit scoring using transaction data

    Scoring systems · Data Science · Fintech

  • The Kyiv Independent logo

    AI content processing and recommendations for the Kyiv Independent

    Data Science · OpenAI · Recommendation System

  • Eric AI avatar next to its chat interface answering a question about winning a first big client

    Eric AI: a real-time avatar chatbot built on RAG

    Chatbots · AI

Work with us