Transit OS
01

Today

The first screen of the morning. What is running, what is out, what is late, and the one run that has nobody assigned to it.

  • Every run for the day, in departure order, with vehicle and crew.
  • Problems surface themselves — a run without crew is not something you have to notice.
  • Cancel, substitute or re-crew from the same row, with a reason code that becomes a report line later.
  • Built to be readable on a phone at 5am, in a truck, with one hand.
Today · Tue 17 Jun4 of 11 out
11Runs today
9Operated
1Late
1At risk
05:40Prairie Line 1 — EastboundRDC 9 · M. OkonkwoOut
06:15Dial-a-Ride NorthVan 3 · T. ReyesOut
07:02Prairie Line 2 — WestboundRDC 4 · unassignedNo crew
07:30Dial-a-Ride SouthVan 1 · A. Whitcomb9 min
09:15Prairie Line 3 — EastboundRDC 9 · M. OkonkwoDue
02

Scheduling and publishing

Built for somebody who does this four times a year, under pressure, having forgotten the interface since the last service change.

  • Recurring patterns, seasonal variants, holiday exceptions and school-period service.
  • A plain diff before anything publishes — in words, showing exactly what changes.
  • Conflicts in English: 'RDC 4 is booked for inspection that morning', not an error code.
  • A practice mode, because somebody doing this twice a year needs a place to be wrong safely.
  • Every published version is kept, and you can roll back to it.
Publish · Autumn serviceReview before publishing

7 changes to Prairie Line

Line 1 Eastbound · weekdays
− 05:40 depart Millbrook Depot
+ 05:52 depart Millbrook Depot
− 06:24 arrive Hallett Junction
+ 06:36 arrive Hallett Junction
Line 2 Westbound · Saturdays
+ 14:10 new run, seasonal 01 Jun – 06 Sep
− Sunday service withdrawn (4 runs)
RDC 4 is booked for its 92-day inspection on 18 Jun. The 07:02 run has no equipment that morning.
03

GTFS and data feeds

The feed is generated from the schedule your dispatchers actually work from. It cannot drift, because there is nothing for it to drift away from.

  • Authoring straight from the schedule — no separate export step to forget.
  • Validation with plain-English explanations of what each problem does to a rider.
  • Versioned snapshots with rollback, and a stable public URL that always serves the current feed.
  • Warnings before a service period expires, which is the single most common cause of a stale feed.
  • GTFS-Realtime alerts and trip updates where you have the source data, as a separate module.
Data feeds · GTFSv41 · published 2h ago
  • Stops have coordinates 34 / 34
  • Times increase along every trip 412 trips
  • ! Service period ends in 54 days calendar.txt
  • Agency timezone set America/Chicago
  • × Two stops share an ID ML-04
Two stops share an ID. Trip planners will merge them, so riders may be sent to the wrong side of Millbrook Road. Give the newer stop its own ID — never reuse a retired one, because saved trips point at it.
04

Equipment and inspections

A maintenance record the schedule can actually see. An out-of-service window is not a note in a binder; it blocks assignment.

  • Preventive schedules by date, mileage or hours, with configurable inspection templates.
  • Defect logging with history, so a recurring fault is visible as a pattern rather than four separate tickets.
  • Work orders, parts and consumables.
  • Full audit history per vehicle — which matters most on equipment older than the people maintaining it.
Equipment · RDC 4Out of service
92Day inspection due
3Open defects
  • × Brake rigging — audible knock opened 4 Jun
  • ! Door interlock intermittent opened 28 May
  • ! Seat 14 frame cracked opened 19 May
  • Annual air brake test passed 2 Apr

Out-of-service dates reach the schedule. Nothing can be assigned to RDC 4 until it clears.

05

Crew and certifications

Paid staff and volunteers in one roster, because at a heritage operation the distinction is administrative rather than real.

  • Certification expiry with warnings starting at sixty days, not the morning it lapses.
  • Availability and shift preferences, including the volunteer who can only do Saturdays.
  • Role-based access — a mechanic sees work orders, a dispatcher sees the board.
  • Notes attach to the person, the line or the vehicle they belong to, so they survive the person who wrote them.
Crew · Certifications2 expiring
  • × A. Whitcomb — CDL medical card expires in 11 days
  • ! M. Okonkwo — engineer recertification expires in 38 days
  • T. Reyes — passenger endorsement expires in 8 months
  • J. Barrow — conductor, volunteer expires in 11 months

Warnings start at 60 days, not the morning it lapses.

06

Reporting

Every operational fact recorded during the day becomes a report line. The annual filing is an export, not an archaeology project.

  • On-time performance, missed and cancelled runs with reasons, ridership, service and revenue hours.
  • Revenue hours held separately from deadhead from the first day, because reconstructing that split later is close to impossible.
  • NTD-shaped exports and board packet summaries.
  • Nothing is entered twice. If you had to key it in for the report, we built it wrong.
Reports · Quarter to dateBoard packet ready
94.2%On time
1,481Revenue hours
18,306Boardings
2.1%Missed

Boardings by month

Deadhead is held separately, so cost per revenue hour is the real number.

07

Incidents and rider notices

An incident logged for the record, and a public notice drawn from it — which a person reads and publishes, or does not.

  • Incident log with delay reason codes, feeding both the alert and the quarterly report.
  • A notice can be drafted from the incident note to save retyping. It is stored as a draft and marked as one.
  • Nothing is ever published or sent automatically. Not ever.
  • Published notices reach the rider pages, the feed alerts and email at the same moment.
Alerts · New noticeNot published

From incident #204 · crossing obstruction

Draft — nothing is sent until you send it

Prairie Line service between Millbrook and Hallett Junction is stopped while a blocked crossing at County Road 12 is cleared. Riders should expect delays of up to an hour. We will post an update by 09:30.

Publish noticeEdit
08

The driver's view

Phone-first and deliberately small. Two taps to start a run and one to report a problem, because nobody is filling in a form at a stop.

  • Today's assignments, manifest and pickups.
  • Start, complete or report against a run in a single tap.
  • No per-seat charge. Drivers, volunteers and contractors all get logins, because charging per person is how data goes back onto paper.
Driver · T. ReyesPhone

Your next run

06:15

Dial-a-Ride North

Van 3 · 6 pickups

Started the run
Report a problem

Two taps. Nobody is filling in a form at a stop.

10

Security and getting your data back

Roughly thirty percent of 2025 breaches involved a third party. We are a third party. These are on every plan, including the cheapest, because a security floor that costs extra is not a floor.

01

Individual logins, always

No shared accounts and no per-seat charge, so there is never a financial reason to share one.

02

Full audit trail

Who changed what, when, and what it was before — on every plan, not as an enterprise upsell.

03

Complete export, self-serve

Open formats, any time, without a support ticket. If leaving is hard, you do not really own it.

04

Role-based access

Scoped to operational domains. A mechanic does not need the rider list.

05

Vendor inventory

A standing list of every integration with access to your tenant, which most agencies cannot produce today.

06

No training on your data

We do not sell it and we do not train models on it. That is a commitment, not a setting.

11

What it deliberately does not do

Reading this section before you buy is the point of it being here.

  • Nothing safety-critical. No signalling, no train control, no dispatch authority. Those stay with the systems certified for them, and we are not seeking to change that.
  • No onboard hardware. We are not a CAD/AVL vendor. We take feeds from AVL systems through adapters; we do not sell you a box or install one.
  • Basic route optimisation. The enterprise suites are genuinely deeper here. If you run high-volume many-to-many paratransit, we will tell you to buy one of them.
  • Not built for very large agencies. Above roughly fifty vehicles you are at the edge of what this is designed for, and we would rather say so than take the money.
  • It needs a connection. A spreadsheet works in a dead zone. This does not, and for some rural operations that is a real consideration.

See how that compares with the alternatives →

The interior of a small historic depot: a large round wall clock above wainscoting, an empty bench, and long afternoon window light across the floorboards.

Put one line in and see.

An afternoon, one line, one day of runs. You will learn more from a single line that is completely right than from a whole system that is roughly right.