Network Pulse

Proof of concept

The Data Event Platform

One place that takes events off the bus, works out what they mean against the timetable, and serves every consumer from the same record — passenger information, operational performance, contract management and incident management.

Everything below the diagram is running now, on real data. The figures are read live from the prototype as this page loads; nothing on it is illustrative.

Reading live figures…

How it works

Sources on the left, consumers on the right, one platform between them. The first group is equipment on the vehicle that reports. The second is equipment on the vehicle that listens — announcements and destination blinds are things the platform tells the bus, not things the bus tells the platform. The third is everything that isn’t on a bus at all — the timetable, the stop register, fares, published disruptions. All of it is needed before a single number on this page exists. A bus reports one thing — a GPS fix, saying where it is right now. That on its own is never late or early: “four minutes late” is a comparison, and the bus only sends one side of it. The timetable supplies the other — the time that journey was due at that stop — and putting the two together is what turns a dot on a map into a number you can report.

A solid box is connected and carrying data today. A dashed box is designed for and not yet fed — drawn because the whole point of a platform is that adding it is a connection, not a rebuild.

Connected, carrying data now Designed for, no feed yet ↔: the lane runs both ways

Where the data comes from is a swap, not a rebuild

The prototype runs on open data because that is what exists to run on today. That is a fact about the supply, not about the platform: everything downstream reads a normalised event, never the feed it arrived in. Under franchising the same lane is fed straight off the vehicle — and every consumer on the right carries on working, unchanged.

Each card below traces two roads into the platform, because it needs two different things and they travel separately: the live data coming off the vehicle, and the timetable it is being measured against. Neither is worth much alone — the GPS fix says where the bus is, and only the timetable says where it should have been by now. Franchising changes each road differently: the live one gets shorter, coming straight off the vehicle instead of back through an operator’s back office. The timetable one keeps its length — the operator still builds the timetable they are contracted to run — but it stops being a public registration collected after the fact and becomes a deliverable on terms the authority set.

The platform boundary is identical in both. What changes is one hop before it.

Every source, one by one Sixteen of them — eleven on the bus, five off it. Reference detail; the diagram above is the argument.

What comes off a bus

Eleven classes of on-board equipment, listed in full — including the two drawn in their own box above, which the platform would feed rather than read. One of the eleven is connected today.

And what doesn’t

The network’s own published data. Four of these are connected now, which is why there are figures on this page at all — and each one below carries the count of what actually landed in the database.

Live: every bus reporting right now

—

Straight from the platform's current-position table, refreshed every 15 seconds. Filled markers are matched to a scheduled journey, which is what makes an event out of a position — from there it can be timed, reported and predicted from. The map opens on South Yorkshire; the platform tracks well beyond it, so zooming out keeps finding buses.

Consumer: real-time passenger information

Open it full size →

The passenger-facing end, live and embedded below — a working journey planner with departure boards, drawing on the same events as the reporting. A website, a mobile app and an on-street display are three renderings of this one source; the source is a bespoke brand new journey planner and prediction engine, not reliant on third party suppliers.

Consumer: live operational performance

Open it full size →

Every tracked departure timed against the timetable it was supposed to keep. The live report itself is embedded below, opened on South Yorkshire.

Consumer: network management

Open it full size →

The same events, asked a highway authority’s question rather than an operator’s: not was the bus late but where is the network losing the time. Every stop-to-stop link is timed from the bus leaving one stop to arriving at the next, so waiting is excluded and what is left is time on the road — then scored against that link’s own quiet-hour run and weighted by how many buses have to cross it.

This is the half of the platform that does not need a new supplier and does not need franchising. It is the position feed already arriving, read a different way. The live board at the top of the report is the part worth watching in a control room: it compares what buses are doing in the last ninety minutes against what that link normally does at this hour, on this kind of day.

Consumer: contract management

Build a report →

Every completed journey archived stop by stop, so a service can be evidenced rather than described.

And the two journeys a daily average cannot see. A network can hit its punctuality target and still fail the people who depend on the first bus out and the last bus home — those two are a rounding error in any average, so they are counted in their own right, per service, per direction, per day — per service meaning the route, because a line number can cover two of them with not a stop in common. Measuring them at all needs the timetable and the vehicles held together, which is what the platform is.

Consumer: finance and route economics

The Finance list →

Against the Finance workstream’s own list, the position is one sentence: every payment and every revenue line is a quantity multiplied by a price, the platform measures the quantities, and it holds no prices. Miles operated, journeys run, journeys missed and punctuality delivered are computed nightly per service, for every operator in the area, franchised or not — and those are the multiplicand in every variable payment and every deduction.

The missing half is not a gap in the platform, it is the ticketing lane being dark. No open feed publishes revenue and none ever will — it is commercially confidential and travels operator to operator. Under franchising the authority takes the revenue, so it holds the ticketing data by default, and this box lights up from the same events that already produce the punctuality figures above.

What Finance asks forThe half that runsThe half that is missing
Costs against revenue Mileage and running hours per service — the cost driver Operating cost, on-bus and off-bus revenue, and the rule for apportioning a period product across services.
Fare and payment trends The published fare table, imported from NeTEx — the price list Boardings. Every split asked for — ENCTS, child, single, period, on-bus, off-bus — is a split of a transaction.
Patronage and demographics Punctuality and delivered frequency — the context a change is read against Passenger counts and a survey. Occupancy was measured across the national feed, not assumed: it is a hardcoded constant.
Contract and operator performance Every measurement a performance regime acts on — nightly, per service The regime’s thresholds and rates, which are a document rather than a feed — and a fleet register for the asset half.
Commercial position (ISPp …) The two terms that move with what the buses did — mileage and performance Fixed fees, change control and the rates. Mileage is now measured along the road each journey takes, on 95% of legs.

Consumer: incident management

—

Live, and the clearest illustration of the gap. Everything below was published by an operator after the fact. Nothing here was raised by a vehicle: a bridge strike, a door fault or a hard stop is knowable the second it happens, with a location and a journey already attached — but only once the telematics lane is connected.

What is real, and what is next

The honest summary. Built means there is a page you can open today.

CapabilityStatusWhere it stands

Tech stack

What the prototype is actually built out of — read off the running server, not remembered — and what each layer would become in a Microsoft shop. The question this answers is whether choosing this architecture commits you to a Linux and Python estate. It does not: most of it is a hosting decision, some of it is a genuine port, and exactly one row is a rebuild.

Layer Running today On a Microsoft stack Move

The one that isn’t a swap is the routing engine. There is no .NET equivalent of OpenTripPlanner, and writing one is not a porting job — so it stays a container the rest of the stack talks to over HTTP, in any language, on any host. That is the whole answer: the platform is a set of services with a database behind them, not a language.