Skip to content
Kinetic Melbourne OCC User manual

Manual / Diversions

Planning a diversion

For
a controller drafting a diversion
Status
current
Covers
the planning workspace — the Anchors panel, the map and its tools, via points, the drawing tools and No-go areas
Last checked against the app
6f7727e (2026-08-19)

Planning a diversion is drawing two points on a map: where the bus leaves its normal route, and where it rejoins. Everything else — which stops go unserved, how many kilometres of route are skipped, what the driver is told — follows from those two. This page is that workspace, in the order you meet it.

Getting into it

Three ways in, and they all open the same full-screen workspace:

  • New diversion in the toolbar, or the N key, for a blank draft;
  • Plan or Edit on a draft's row in the register;
  • Plan diversion, from a route's card in the Map Explorer or the Timetable.

The map in the register's detail pane is not the editor. It draws the route, the stored path, the anchors and the overlays, and it pans, zooms and changes basemap — but nothing on it can be dragged, so a stray click on a record you opened to look at cannot change it. On a draft it says so and offers the door:

This map is a view: it pans, zooms and changes basemap, but the anchors and the path are not draggable here. Press Edit the plan… to open the workspace, where they are.

On an approved record there is no door — "This diversion is Approved and its plan is frozen. Move it back to Draft to re-place its anchors." — and without the ops role the same place reads "This map is a view. Changing the plan needs the ops role."

What you are looking at

Three columns.

The drawer, on the left. ← Back to the register, then the form: Title, Reason (roadworks, event, incident, construction, emergency, other), Route, Direction, Description. Under it, Create draft (or Save changes) and Cancel, then the Anchors panel, the via list, the plan's figures, the no-go controls and the drawing status.

On an existing record the route and direction are fixed, and the drawer says why: its anchors are metres along that route's shape, so on another route they would mean somewhere else. Draft a new diversion instead.

The map, in the middle, with its own controls on it:

Where What
Top left The tools: the drawing tools, the frame tool, the colour and width pickers, Undo and Redo
Top left, second row Direction 0 (or 1), and the Road disruptions switch where this deployment has the feeds
Bottom right ⤢ Fit the route, ⛶ Save this view for the document's map, the zoom buttons, and the Street, Satellite and Hybrid thumbnails
Bottom left A status strip saying what the next click will do

The instructions column, on the right — Driver instructions, which has its own page: Driver instructions and the bulletin.

Placing the anchors

The Anchors panel has two rows, Leave and Rejoin, each with a Place button that becomes Move once it is placed. Press it and the map arms itself; the strip at the bottom of the map tells you what the next click means — "Click where the bus turns off its route", then "Click where the bus is back on its route".

The tool disarms itself after one click. Placing the leave point and then going looking for the rejoin point cannot move the leave point again by accident.

Once placed, the row reads back where the anchor landed: the stop it is next to, and how far along the route it sits — "Ashley St · 4.62 km along". Click the row to select the anchor; the arrow keys then nudge it ← → along the route 5 m at a time, or 25 m with Shift. Press Escape to deselect.

You do not place an anchor exactly. Every click is snapped onto the route line, and the panel shows the anchor where the app put it, not where you clicked. Where the click landed more than 25 m away the row says so — "~120 m off" — because at that distance you may have meant a different street.

Drag an anchor and a hollow ghost follows the cursor while the solid marker stays where the app last put it; the two meet when the drag settles. That is the snap being shown to you rather than guessed at.

The drawn path, and via points

If this deployment has a routing engine, a path is drawn between the two anchors along real roads as soon as both exist, and the panel fills in with its length and an estimated drive time.

To send the bus a different way, pull the green path sideways onto the street it should take — that inserts a via point — or press Add a via point and click. The via tool stays armed, because placing three in a row is the normal case.

Via points are listed in the order the bus drives them, with ↑, ↓ and ✕ on each. Order is meaning: moving a row asks for a different path, so the app re-plans. Select one and the arrow keys nudge it 5 m in any direction (25 m with Shift), and Delete removes it. A record holds at most eight of them.

A via that lands on the wrong side of a divided road is moved, and the warning distinguishes two cases rather than telling the likelier story: the click landed on the carriageway running the other way "which a bus could only reach by turning around twice", or it simply missed the road. Moves under a metre are not reported at all.

Undo and Redo (Ctrl+Z, Ctrl+Shift+Z) cover the anchors, the vias and anything you have drawn on the plan, together.

When the plan will not be accepted

Three things are refused outright, and a refusal is shown on its own — without figures beside it, because plausible-looking numbers next to a refusal get read as valid:

  • the rejoin point is not further along the route than the leave point. The bus has to come back to its route ahead of where it left it;
  • the diversion reaches a terminus. A diversion that starts before the first stop or runs to the last one is a different kind of change — a short working — and this tool does not cost one;
  • the path follows the road it replaces. A path that never leaves the route it is replacing would tell a driver to do exactly what they already do, and would report kilometres as skipped that were not. The message names how far the path strayed and the threshold it had to clear, and tells you to move a via onto the road the bus should take.

The first two stop the drawing. The third refuses only the save: the path, the figures and your via points stay on screen, because a path that has momentarily collapsed back onto the route is a normal thing to be in the middle of.

The button under the form ticks off what is still outstanding — "A leave point is placed on the map", "A rejoin point is placed on the map", "The path differs from the route it replaces" — rather than sitting there disabled with nothing to say.

What the numbers mean

On screen What it is
Route skipped (~) The length of normal route this diversion misses, per trip: the distance along the route between the anchors
Stops not served How many stops fall between the anchors. A count — exact for the plan as drawn
Diversion path (~) How long the drawn path is, according to the routing engine
Estimated drive time (~) How long the engine thinks that path takes
Scheduled through section What the timetable itself allows for that stretch of route, per time band
Difference (~) The engine's drive time against the timetable's allowance, per band

The list of stops that will not be served is printed under the figures, by name.

What they do not mean

The drive time is the least trustworthy figure on this screen. The app says so where it shows it:

Drive time is an estimate from the routing engine — free-flowing traffic, no dwell. It is a planning signal, not a running time.

No traffic, no queues at lights, and no time at stops at all. It answers whether a bus could drive this in roughly this long — not that the 903 will now take six minutes longer. For what the roads are actually doing, the congestion overlay and the traffic radio are separate surfaces for exactly that reason.

A difference per band is not a delay. The comparison is one path against the timetable's own allowance for that section of route — and the allowance differs by time of day, which is why the table has a row per band and no single headline number. It is not a bus running late, and it is not coloured like one.

A partial total is not a smaller total. Where a band has too few trips through the section for a stable allowance, the app says the band is a partial total rather than quietly showing a smaller number that looks complete.

A dashed line is not a route. Without a routing engine the app draws a straight guide between your points and says so where you would otherwise read a path: "The dashed line is a straight guide between your points, not a route a bus could drive." The panel above it spells out what is and is not affected:

No routing engine is installed, so the diversion cannot be drawn along roads — there is no path and no drive-time estimate. Everything else is exact: the anchors, the stops not served and the kilometres skipped all come from the schedule, not the engine.

That message ends with one more sentence, naming a page and a command. It is addressed to whoever runs the server; everything that concerns you is above it.

The plan is drawn on one pattern of the route. Most Victorian routes run several patterns under one number, and the map draws the busiest of them. Whether the others run the same stretch is a separate question, and the record answers it under Other patterns of this route — a check, never a second set of figures.

Nothing here is saved until you press the button. Create draft and Save changes are what write the record, together with the drawn path, its via points and your marks. Leaving the workspace with unsaved work asks first: "Discard this diversion?".

Drawing on the plan

The tools at the top left of the map put your own marks on it: Arrow (two clicks, from and to), Line (click each corner, click the last one again to finish), Box (two opposite corners), Text (one click, then type) and Draw (hold and drag). Each has a single-key shortcut — A, L, B, T, F — plus C for the colour picker.

Marks are part of the plan, not a scribble over it: they print on the document's overall map, and on any turn picture they fall inside. Click one to select it and its controls appear in a bar under the map — colour, width or text size, rotation, duplicate and delete. Remove the last mark undoes the most recent one.

⛶ Save this view for the document's map fixes the framing the printed map will use, including which basemap. Without it the document frames itself. If you later move the anchors outside that view, the note under the map says the saved view no longer contains the diversion rather than silently re-framing it, and Use the default gives the automatic framing back.

Escape backs out one step at a time: first the armed tool, then the selection, then the workspace itself.

No-go areas

A no-go area is a patch of the map a bus may never be routed through — the laneway with a low bridge, the block a twelve-metre vehicle cannot turn out of. They are the depot's standing knowledge about its roads, not one diversion's setting: every area in force is handed to the routing engine on every request, so the engine stops offering the shortcut rather than you having to remember to refuse it.

On the planning map, Draw a new area starts one: click the corners, and the strip says "Click the corners of an area a bus may never be routed through". Four or five corners — a block or a laneway — not a traced outline; every corner costs the engine work on every request. Then Save area, and give it a name and a reason. The name is what you will read next to a refused path.

Show N areas in force switches the layer on and off. It is a view control, so it is available on a record you are only reading.

No-go areas in the toolbar lists everything recorded, with Retire, Bring back and Delete on each. Retire and delete are different on purpose:

Retire stops enforcing an area but keeps the reason — "we used to ban this and stopped" is worth as much as the ban. Delete is for a mistyped entry.

When the engine cannot find a path because of an area, the warning says so — a controller staring at a road that looks perfectly fine is told the app is why it was not used.

When it looks wrong

The figures stop and the panel says it could not plan. Press Try again. The message is the server's, and where the routing engine has stopped answering it ends with a sentence written for whoever runs the server rather than for you: "engine may be wedged — try again, and see docs/40-operations/planner.md if it persists." Your half of that is the retry.

No path is drawn and the drive time is a dash. Either the deployment has no routing engine (the Planner chip in the register's header is faded), or the engine ran and could not find a way through. Those are different problems: the first is a setup question, the second means moving the anchors or adding a via. The app words them differently for that reason.

The map will not let you drag anything. You are on the read-only map — the detail pane's — rather than in the workspace. Press Edit the plan….