Manual / Diversions
Starting one from a road incident
- For
- a controller responding to a closure that has already happened
- Status
- current
- Covers
- the Road disruptions layer on the planning map, the Which routes does this affect? panel, and the Seeded from a road incident block on a record
- Last checked against the app
6f7727e(2026-08-19)
The road feeds tell you a street is closed. This is how the app tells you which routes that closes, and where — and how one of those becomes a draft diversion with its anchors already placed.
What you are looking at
Open any diversion's planning map and switch on Road disruptions in the bar at the top left of the map. Live incidents and planned roadworks are drawn on the map; the line under the map counts them — "37 road disruptions in view" — and says when some could not be placed, when a feed is truncated upstream, or when a feed has gone stale.
Right-click an incident. The popup carries its headline, what kind it is, its status and dates, its description, and two controls: Details ↗, which opens the road authority's own page in a new tab, and:
Which routes does this affect?
Press it and a panel opens — under the map in the register's detail pane, in the drawer when you are in the planning workspace — listing every route whose shape passes within a radius of that incident, closest first.
| Column | What it is |
|---|---|
| Route | The route number and its full name |
| Direction | The direction, and the headsign it runs towards |
| Distance | How close the incident comes to that route's line, in metres |
| Suggested anchors | The stop before and the stop after the incident, as a starting pair |
| Start a diversion from this incident — one draft, for this route and this direction |
Two lines under the table say the two things most likely to be misread:
The suggestion is the smallest pair that clears the disruption. A real diversion usually has to reach further, to a street a bus can actually turn into.
One record is one route and one direction. Start the ones you need, one at a time — this never creates a batch of drafts, and each one is a draft that still has to be approved.
Where nothing matches, the panel says so and names the radius it searched.
What starting one gives you
A draft, and only a draft. It arrives with the route, the direction and both anchors already placed, a title written route-first — Route 903 — Collision, Somerville Rd — and the workspace open on it, so the next thing you do is check the anchors on the map.
It walks the ordinary path from there: draw the real path, write the bulletin, approve it. There is no fast lane for something the app started for you; if anything, the opposite.
The record keeps a note of where it came from, headed Seeded from a road incident: the incident's headline, the roads it names, how much road the authority said was gone, when the feed last updated it, and its reference. Under it:
Kept as a record of where this draft came from. No figure on this diversion is derived from it, and it is a draft like any other — check the anchors and walk it through the normal approval.
Has the closure ended?
Days or months later, opening a seeded record asks the live feed about that incident again and reports one of four states — never a yes/no.
| Badge | What it means |
|---|---|
| Still in force | The feed still publishes it, and still as in force. If the feed has edited it since your draft was seeded, the note says so and suggests re-reading it |
| Reopened | The feed still publishes it, but now says the road is open. "The closure this draft was seeded from may be over — check before approving or issuing it." |
| No longer in the feed | The feed has dropped it. Incidents are dropped once they are finished, so the closure has most likely ended — but see below |
| Cannot be checked | There is no live road-incident feed on this deployment right now, so the question cannot be answered from here. What is shown is what the incident said when the draft was seeded |
The two that mean the road may be open again are drawn as a warning; the other two as a quiet line.
What they do not mean
"No longer in the feed" is not "the road is open". It is the most likely reading, and it is not the only one. The same silence is produced by a feed this deployment cannot see, by a poller that has not run yet, and by the app having been restarted a minute ago. Those cases are the fourth state — Cannot be checked — precisely so that this one does not have to carry them. Getting it wrong would tell you a live closure was over.
Distance is to one pattern of the route, not to the bus. It measures the published incident location against the route's busiest published pattern. It is not a statement that a bus passes that exact point, and another pattern of the same route may run a different street through the closure.
The radius is a search setting, not a measurement. Widening it finds routes that are further away, not routes that are more affected.
A truncated list says so. Where an incident matches more routes than the panel will show, the heading adds "(the closest of 31)". Six routes affected and the six closest of thirty-one are different pieces of information, and only one of them is safe to act on.
The app never trusts the feed's own list of bus routes. Some road feeds publish a field naming the bus routes they affect. It is wrong often enough to be useless — the great majority of those codes name a route that does not go near the road they are published against — so this app ignores it entirely and matches by geometry instead. That is why the only routes you can start a diversion from are ones the map actually found: a draft naming the wrong route is a document a driver could act on.
The incident is copied, not linked. What the record keeps is the headline, the roads and the identifiers as they were when the draft was seeded — because the feed replaces its snapshot every few minutes and drops the incident within days, and a record holding only a reference would soon be a draft nobody could explain.
The authority's words are not your description. What the feed said — "two vehicles, right lane blocked" — is kept as provenance and is never copied into the record's Description, because that field prints on the bulletin as your own account of the diversion, and filling it with someone else's text would attribute it to them.
Nothing on the record is calculated from the incident. The kilometres, the stops and the frozen plan know nothing about it. It is a record of where the draft came from, and that is all it is.
When it looks wrong
There is no Road disruptions switch. In its place the bar reads Disruptions unavailable: this deployment has no road-incident feed configured, and the Live overlays chip in the register's header is faded for the same reason.
Pressing the button says it could not match anything to any route. Either no route's shape passes within the radius, or the incident has left the feed since the map drew it — the message distinguishes the two.
Starting a diversion is refused. The commonest reason is that a record already exists for this incident on this route and direction, and the message names it. The other is that the suggested anchors would reach a terminus, which this tool does not support: plan that one by hand.
There is no Start a diversion button on a row. Either you do not have the ops role, or no anchor pair could be suggested for that route — the cell says which.