Skip to content
AtheronLABS

You're visiting from the United States. Prices are shown in US dollars. Not right?

labs@atheron:~/industries/transit-mobility$ ride --plan --book --pay

Transit software

Every rider, every trip, in plain sight.

Your riders want the next departure, in their language, on a phone that works with a screen reader. Your staff want bookings, permits and ridership numbers they do not have to rebuild. We design and build the rider apps, booking systems and data that serve both, on your open data and your own systems.

// what you are up against

The problems we hear most.

01

Riders who cannot find the answer

Schedules, detours and fare rules are spread across a website, PDFs and a phone line, and riders who need another language or a screen reader get the least help.

02

Paratransit by phone queue

Eligible riders book trips by calling during office hours, reminders are manual, and a cancelled trip leaves an empty seat nobody can fill.

03

Parking on an old system

Permits, citations and appeals run on a system older than most of the staff, with payments taken at a counter and plates typed twice.

04

Ridership nobody agrees on

Passenger counters, fare data and schedules each tell a different story, so board reports and service changes start with a week of reconciling.

// example projects

Systems we could build for you.

Each one is hypothetical, labelled as such, and priced live from our rate card. Open any of them in the estimator and make it yours.

Example projectWeb appMobile app

Rider app and trip planner

Hypothetical. Not a client, not a result.

// The problem

A regional transit authority's riders check a PDF timetable and a third-party app that lags behind detours, and riders who use screen readers or speak another language struggle with both.

// What we would build

An iOS, Android and web app designed with riders, built on the agency's GTFS schedules and GTFS Realtime feeds: next departures, trip planning through OpenTripPlanner, service alerts pushed to the routes a rider follows, and nearby bike share docks from the operator's GBFS feed. Designed and tested for screen readers, large text and five languages.

// What is in it

  • Next departures and live vehicle positions from your GTFS Realtime feed
  • Trip planning across bus, rail and bike share
  • Alerts pushed only for the routes and stops a rider follows
  • Design research and testing with riders, screen readers and large text
  • Five languages, with your alerts translated by your staff or a vendor you choose
  • An admin screen to publish detours and notices

// Stack

  • React Native
  • Next.js
  • OpenTripPlanner
  • GTFS and GTFS Realtime
  • PostgreSQL
  • AWS Canada

// estimate

Build
≈ US$124,000 to US$189,000, delivered within 29 weeksCAD 176,000 to 269,100
Hosting
≈ US$492 a monthCAD 700 a month
Support
≈ US$5,010 a monthCAD 7,135 a month

Prices in your currency are estimates from today's Bank of Canada rate. All invoicing is in CAD or USD.

Timeline by milestone

Discovery
2.9 to 3.4 weeks
Design approved
8.9 to 14.9 weeks
Core features
1.9 to 2.9 weeks
Full build
0.9 to 1.9 weeks
First build on devices
2.9 to 5.4 weeks
Testing and fixes
0.4 to 0.9 weeks
Store submission
0.9 to 1.4 weeks
Launch
0.9 to 1.4 weeks

Outside our hands, and added to the calendar

App store review
1 week
Access to your GTFS Realtime feeds
1 to 4 weeks

How it is paid

Deposit 20%
CAD 35,200 to 53,820
Discovery 9.2%
CAD 16,192.00 to 24,757.20
Design approved 9.2%
CAD 16,192.00 to 24,757.20
Core features 7.6%
CAD 13,376.00 to 20,451.60
Full build 5%
CAD 8,800 to 13,455
First build on devices 20.1%
CAD 35,376.00 to 54,089.10
Testing and fixes 2.5%
CAD 4,400.00 to 6,727.50
Store submission 6.7%
CAD 11,792.00 to 18,029.70
Launch 9.7%
CAD 17,072.00 to 26,102.70
Holdback, 30 days after launch (10%)
CAD 17,600 to 26,910
Example projectWeb appMobile app

Paratransit and shuttle booking

Hypothetical. Not a client, not a result.

// The problem

A paratransit service books every trip by phone during office hours, sends reminders by hand, and cannot offer a freed seat to another rider in time.

// What we would build

A booking app and web portal for eligible riders and their caregivers, with trip requests, reminders by text or voice call, cancellations that offer the seat to the waitlist, and trips passed to and from your scheduling software through its API. Eligibility and booking rules are the ones your agency sets, and staff sign in with your organisation's accounts.

// What is in it

  • Trip requests, changes and cancellations from a phone, the web or a caregiver's account
  • Reminders by text or voice call, in the rider's language
  • Freed seats offered to the waitlist
  • Trips sent to and from your scheduling software
  • Call-centre screens that see the same booking the rider sees
  • Riders moved in from the current spreadsheets

// Stack

  • React Native
  • Next.js
  • PostgreSQL
  • Scheduling software API
  • SMS and voice API
  • AWS Canada

// estimate

Build
≈ US$131,000 to US$200,000, delivered within 27 weeksCAD 186,200 to 284,700
Hosting
≈ US$492 a monthCAD 700 a month
Support
≈ US$2,500 a monthCAD 3,565 a month

Prices in your currency are estimates from today's Bank of Canada rate. All invoicing is in CAD or USD.

Timeline by milestone

Discovery
2.9 to 3.4 weeks
Design approved
6.9 to 11.9 weeks
Core features
1.9 to 2.9 weeks
Full build
1.4 to 1.9 weeks
First build on devices
3.4 to 5.9 weeks
Testing and fixes
0.4 to 0.9 weeks
Store submission
0.9 to 1.4 weeks
Launch
0.9 to 1.4 weeks

Outside our hands, and added to the calendar

App store review
1 week
Scheduling software API access
1 to 4 weeks
Your IT security review and sign-on setup
4 to 8 weeks

How it is paid

Deposit 20%
CAD 37,240 to 56,940
Discovery 9.2%
CAD 17,130.40 to 26,192.40
Design approved 9.2%
CAD 17,130.40 to 26,192.40
Core features 7.6%
CAD 14,151.20 to 21,637.20
Full build 5%
CAD 9,310 to 14,235
First build on devices 20.1%
CAD 37,426.20 to 57,224.70
Testing and fixes 2.5%
CAD 4,655.00 to 7,117.50
Store submission 6.7%
CAD 12,475.40 to 19,074.90
Launch 9.7%
CAD 18,061.40 to 27,615.90
Holdback, 30 days after launch (10%)
CAD 18,620 to 28,470
Example projectWeb appMobile app

Parking permits and enforcement

Hypothetical. Not a client, not a result.

// The problem

A parking operator runs residential permits, citations and appeals on a FoxPro system, takes payments at a counter, and officers write plates on paper before typing them in.

// What we would build

A permit portal where residents apply, upload proof and pay through a hosted checkout, an Android app for officers that checks plates against valid permits and issues citations with photos, and an online appeal flow. It replaces the FoxPro system, with records moved across and checked, after a review of what the old system does.

// What is in it

  • Permit applications, proof uploads and payment online
  • An enforcement app that checks plates against permits and records citations with photos
  • Online appeals, with the officer's notes and photos attached
  • Payments through a hosted checkout, so card details never touch the system
  • Records moved from the old system, after a written review of how it works

// Stack

  • Next.js
  • Kotlin for Android
  • PostgreSQL
  • Payment provider hosted checkout
  • AWS Canada

// estimate

Build
≈ US$138,000 to US$211,000, delivered within 29 weeksCAD 196,200 to 300,100
Hosting
≈ US$492 a monthCAD 700 a month
Support
≈ US$2,500 a monthCAD 3,565 a month

Prices in your currency are estimates from today's Bank of Canada rate. All invoicing is in CAD or USD.

Timeline by milestone

Discovery
2.9 to 3.4 weeks
Written review of the old system
0.4 weeks
Design approved
6.9 to 11.9 weeks
Core features
2.4 to 3.4 weeks
Full build
1.4 to 2.4 weeks
First build on devices
3.4 to 5.9 weeks
Testing and fixes
0.9 weeks
Store submission
0.9 to 1.4 weeks
Launch
0.9 to 1.4 weeks

Outside our hands, and added to the calendar

App store review
1 week
Payment provider account and hosted checkout
2 to 6 weeks
Your IT security review and sign-on setup
4 to 8 weeks

How it is paid

Deposit 20%
CAD 39,240 to 60,020
Discovery 7.9%
CAD 15,499.80 to 23,707.90
Written review of the old system 8.7%
CAD 17,069.40 to 26,108.70
Design approved 7.9%
CAD 15,499.80 to 23,707.90
Core features 8.1%
CAD 15,892.20 to 24,308.10
Full build 5.4%
CAD 10,594.80 to 16,205.40
First build on devices 15.8%
CAD 30,999.60 to 47,415.80
Testing and fixes 2.7%
CAD 5,297.40 to 8,102.70
Store submission 5.2%
CAD 10,202.40 to 15,605.20
Launch 8.3%
CAD 16,284.60 to 24,908.30
Holdback, 30 days after launch (10%)
CAD 19,620 to 30,010
Example projectWeb app

Ridership data warehouse

Hypothetical. Not a client, not a result.

// The problem

A transit agency's passenger counters, fare transactions, GTFS schedules and on-time data live in separate systems, and every board report starts with a week of reconciling.

// What we would build

A data warehouse in the agency's own cloud account that loads passenger counts, fare data, GTFS Realtime and bike and scooter share trips from GBFS feeds every night, checks them and feeds dashboards for ridership by route and stop, on-time performance and crowding. Open data exports go out in the formats you publish.

// What is in it

  • Nightly loads from passenger counters, fare systems, GTFS Realtime and GBFS feeds
  • Quality checks that flag missing trips and counters that read zero
  • Dashboards for ridership by route, stop and hour, on-time performance and crowding
  • Open data exports in the formats you publish
  • Staff sign in with your organisation's accounts

// Stack

  • PostgreSQL
  • dbt
  • Metabase or Power BI
  • GTFS Realtime and GBFS
  • Terraform
  • AWS Canada

// estimate

Build
≈ US$62,200 to US$95,200, delivered within 16 weeksCAD 88,600 to 135,500
Hosting
≈ US$492 a monthCAD 700 a month
Support
≈ US$2,500 a monthCAD 3,565 a month

Prices in your currency are estimates from today's Bank of Canada rate. All invoicing is in CAD or USD.

Timeline by milestone

Discovery
2.9 to 3.4 weeks
Design approved
2.4 to 4.4 weeks
Core features
2.4 to 3.4 weeks
Full build
1.4 to 2.4 weeks
Testing and fixes
0.9 to 1.4 weeks
Launch
0.9 to 1.4 weeks

Outside our hands, and added to the calendar

Access to your GTFS Realtime feeds
1 to 4 weeks
Your IT security review and sign-on setup
4 to 8 weeks

How it is paid

Deposit 20%
CAD 17,720 to 27,100
Discovery 7.7%
CAD 6,822.20 to 10,433.50
Design approved 7.7%
CAD 6,822.20 to 10,433.50
Core features 23.3%
CAD 20,643.80 to 31,571.50
Full build 15.5%
CAD 13,733.00 to 21,002.50
Testing and fixes 7.7%
CAD 6,822.20 to 10,433.50
Launch 8.1%
CAD 7,176.60 to 10,975.50
Holdback, 30 days after launch (10%)
CAD 8,860 to 13,550
Example projectWeb appAIFrontier model

Multilingual rider help centre

Hypothetical. Not a client, not a result.

// The problem

A city's transit and parking questions arrive by phone and email in many languages, and the answers live in a website few riders can navigate.

// What we would build

A help centre in English, French and the languages your riders speak, with an assistant on a frontier model that answers from the help articles and your published schedules and fare rules, cites the article, and hands over to a person when it cannot help.

// What is in it

  • Help articles on fares, passes, accessibility, parking and lost property
  • An assistant that answers from your articles and published GTFS schedules
  • Every answer cites the article it comes from
  • A hand-over to staff with the conversation attached
  • Articles translated and reviewed by native speakers

// Stack

  • Next.js
  • Frontier model API
  • PostgreSQL with pgvector
  • GTFS
  • DigitalOcean Toronto

// estimate

Build
≈ US$91,900 to US$141,000, delivered within 22 weeksCAD 130,900 to 200,100
Hosting
≈ US$558 a monthCAD 795 a month
Support
≈ US$2,500 a monthCAD 3,565 a month

Prices in your currency are estimates from today's Bank of Canada rate. All invoicing is in CAD or USD.

AI route
Frontier model
Model running cost
≈ US$383 a monthCAD 545 a month

Timeline by milestone

Discovery
2.9 to 3.4 weeks
Specification and evaluation plan
0.4 weeks
Design approved
2.4 to 3.9 weeks
Core features
1.4 to 1.9 weeks
Full build
0.9 to 1.4 weeks
Working pilot
3.9 to 6.4 weeks
Testing and fixes
0.9 to 1.9 weeks
Launch
0.9 to 1.4 weeks
Production
0.9 to 1.4 weeks

How it is paid

Deposit 20%
CAD 26,180 to 40,020
Discovery 2%
CAD 2,618 to 4,002
Specification and evaluation plan 10.2%
CAD 13,351.80 to 20,410.20
Design approved 2%
CAD 2,618 to 4,002
Core features 6.2%
CAD 8,115.80 to 12,406.20
Full build 4.1%
CAD 5,366.90 to 8,204.10
Working pilot 30.7%
CAD 40,186.30 to 61,430.70
Testing and fixes 2%
CAD 2,618 to 4,002
Launch 2%
CAD 2,618 to 4,002
Production 10.8%
CAD 14,137.20 to 21,610.80
Holdback, 30 days after launch (10%)
CAD 13,090 to 20,010
Example projectWeb appAICustom LLM

Rider feedback sorting

Hypothetical. Not a client, not a result.

// The problem

Thousands of rider comments and complaints a month arrive by form, email and social media, and staff sort them by hand into routes, stops and topics weeks after the fact.

// What we would build

A small open model fine-tuned on the agency's own labelled feedback, served in its own cloud account, that tags each comment with route, stop, topic and urgency, with a screen for staff to correct the tags so the model keeps improving. Rider comments never leave your account.

// What is in it

  • A model fine-tuned on your past feedback, labelled with your staff
  • Every comment tagged by route, stop, topic and urgency
  • A review screen where staff correct tags, feeding the next training round
  • Trends by route and topic for service planners
  • An evaluation set run before every new version goes live

// Stack

  • Llama or Mistral (fine-tuned)
  • vLLM
  • PostgreSQL
  • Next.js
  • AWS GPU

// estimate

Build
≈ US$137,000 to US$209,000, delivered within 31 weeksCAD 194,600 to 297,000
Hosting
≈ US$6,710 a monthCAD 9,550 a month
Support
≈ US$2,500 a monthCAD 3,565 a month

Prices in your currency are estimates from today's Bank of Canada rate. All invoicing is in CAD or USD.

AI route
Custom LLM
Model running cost
≈ US$6,530 a monthCAD 9,300 a month

Timeline by milestone

Discovery
2.9 to 3.4 weeks
Data and evaluation plan
0.4 weeks
Design approved
2.4 to 3.9 weeks
Core features
1.9 to 2.9 weeks
Full build
1.4 to 1.9 weeks
Training
6.4 to 11.4 weeks
Testing and fixes
0.4 weeks
Evaluation and red-teaming
3.9 to 4.4 weeks
Launch
0.9 to 1.4 weeks
Production
0.9 to 1.4 weeks

Outside our hands, and added to the calendar

Your IT security review and sign-on setup
4 to 8 weeks

How it is paid

Deposit 20%
CAD 38,680 to 59,160
Discovery 1.5%
CAD 2,901 to 4,437
Data and evaluation plan 7.9%
CAD 15,278.60 to 23,368.20
Design approved 1.5%
CAD 2,901 to 4,437
Core features 4.6%
CAD 8,896.40 to 13,606.80
Full build 3.1%
CAD 5,995.40 to 9,169.80
Training 23.9%
CAD 46,222.60 to 70,696.20
Testing and fixes 1.5%
CAD 2,901 to 4,437
Evaluation and red-teaming 15.9%
CAD 30,750.60 to 47,032.20
Launch 1.5%
CAD 2,901 to 4,437
Production 8.6%
CAD 16,632.40 to 25,438.80
Holdback, 30 days after launch (10%)
CAD 19,340 to 29,580
GPU time for training and testing, at cost
CAD 1,200. Billed up front, at cost, outside the milestones
Example projectWeb appBlockchain

Regional pass settlement

Hypothetical. Not a client, not a result.

// The problem

A regional pass is accepted by a transit authority, a ferry service and a bike share operator, and every month they argue over whose ride counts and how the revenue is shared.

// What we would build

A shared record of pass trips on a private permissioned ledger that each operator runs a node of, with trips written from each operator's own fare system and a monthly settlement report every operator sees the same way. A shared database run by one operator often does this job; the ledger helps when several operators each want their own copy and none wants another to keep the books.

// What is in it

  • Pass trips written by each operator's fare system to a shared ledger
  • A node for each operator, so nobody holds the only copy
  • The revenue sharing rules the operators agree, applied the same way every month
  • A monthly settlement report every operator sees the same way
  • No token, and no fare is sold on the ledger

// Stack

  • Next.js
  • Hyperledger Besu (private, permissioned)
  • PostgreSQL
  • Fare system APIs
  • AWS Canada

// estimate

Build
≈ US$115,000 to US$176,000, delivered within 24 weeksCAD 163,700 to 250,300
Hosting
≈ US$492 a monthCAD 700 a month
Support
≈ US$2,500 a monthCAD 3,565 a month

Prices in your currency are estimates from today's Bank of Canada rate. All invoicing is in CAD or USD.

Timeline by milestone

Discovery
2.9 to 3.4 weeks
Architecture
0.4 weeks
Design approved
2.9 to 4.9 weeks
Core features
1.4 to 2.4 weeks
Full build
0.9 to 1.9 weeks
Devnet
2.9 to 4.9 weeks
Testing and fixes
0.4 weeks
Testnet
2.9 to 3.4 weeks
Launch
0.9 to 1.4 weeks
Mainnet
0.9 to 1.4 weeks

Outside our hands, and added to the calendar

Fare system data access from your vendor
1 to 4 weeks
Your IT security review and sign-on setup
4 to 8 weeks

How it is paid

Deposit 20%
CAD 32,740 to 50,060
Discovery 2.5%
CAD 4,092.50 to 6,257.50
Architecture 6.7%
CAD 10,967.90 to 16,770.10
Design approved 2.5%
CAD 4,092.50 to 6,257.50
Core features 7.5%
CAD 12,277.50 to 18,772.50
Full build 5%
CAD 8,185 to 12,515
Devnet 20.2%
CAD 33,067.40 to 50,560.60
Testing and fixes 2.5%
CAD 4,092.50 to 6,257.50
Testnet 13.4%
CAD 21,935.80 to 33,540.20
Launch 2.5%
CAD 4,092.50 to 6,257.50
Mainnet 7.2%
CAD 11,786.40 to 18,021.60
Holdback, 30 days after launch (10%)
CAD 16,370 to 25,030

// questions

What buyers in this industry ask us.

Do you work with transit agencies and operators across Canada?

Yes. We are in British Columbia and work with transit authorities, parking operators and mobility services anywhere; we set our working hours around yours. Prices are in Canadian dollars.

Do you set eligibility, fare or enforcement rules?

No. We scope and build to the rules your organisation and your advisers set.

How do payments work?

A deposit to start, then payments at agreed milestones, with 10% held until 30 days after launch. The deposit is a smaller share on larger projects.

Who owns the software?

You do, once the work is paid for, including the rider apps, the data and the design system.

// where we work

Find your market.

We work from Kelowna with clients across Canada, the United States and further afield. Each market page covers working hours, hosting, the privacy law that applies, and prices in your currency.

// next

Not quite your project?

Tell us what you have in mind. We will come back to you with a range and the questions that would narrow it. Or book a call and talk it through.

Software for transit agencies, parking operators and mobility services | Atheron Network Labs