Patterns belong to routes, and define the physical path along which a vehicle travels. The pattern is created with an outbound, and optionally inbound, definition.

Creating patterns

  1. Click the name of the route that you wish to edit in the services tool panel
  2. Navigate to the patterns tab of the newly opened route panel
  3. Click add to create a new pattern with the default name 'Pattern A'
  4. Click edit pencil to begin the drawing process.
  5. Click to select an existing station, or on any point on the map to create a new station.
  6. Continue adding stops until you have connected the final stop
  7. If the route has an inbound direction, switch to the inbound tab to begin drawing the reverse
  8. Once finished drawing the relevant directions, click save

If a route does not have a return inbound leg and is not a "loop" that starts and ends in the same location, the return leg is considered deadheading. In the case of unidirectional patterns, the deadheading return leg is imputed and added to the total runtime, in order to ensure accurate fleet calculations.

Editing Patterns

It may be necessary to remove or replace a stop in your pattern once you have created it. Podaris offers a couple of solutions to this.

Deleting a station

Delete station

Stations can be removed from the list of connecting stations in your pattern by clicking the trash icon. Deleting station 2 from a pattern that connects stations 1 > 2 > 3 will automatically redraw the pattern between stations 1 > 3, for example.

Replacing a station

You can replace any station with any other by clicking and dragging from a station to the one you wish to replace it with, while holding [SHIFT].

If you wish to replace a stop for all patterns on a route (or multiple routes) you can select the stop using the select tool, select the routes from the list and click the replace button.

replace button

This will load the window below and can be particularly useful for quickly creating detours and diversions.

Replace stations

Please note that dragging a station without holding down [SHIFT] will move the physical station and therefore update for all routes and patterns which currently stop at this station.

Pattern Operations

pattern add Add Create a new pattern
pattern duplicate Duplicate Create a copy of the selected pattern(s)
pattern export Export Export pattern as GeoJSON, Shapefile or KML
pattern merge Merge Merge multiple patterns, selecting an inbound and outbound pattern
pattern split Split Split a single pattern in two, associating the new pattern with outbound, inbound or both
pattern reverse Reverse Swaps inbound or outbound directions
pattern join Join Create new pattern by concatenating two selected patterns into a longer single pattern
pattern delete Delete Remove selected pattern

Pattern Joining


Patterns can be joined with the pattern join button in the patterns tab of the your chosen route.

joining patterns

From here, select the two patterns that you would like to join and then select the starting outbound pattern as the pattern that you would like your new, joined pattern to begin with.

Join patterns

Changes made by joining patterns will be automatically updated on the trips tab.

Merging Patterns

Merging patterns allows you to create a new pattern with inbound and outbound definitions by selecting the inbound and outbound from 2 existing patterns.

In this example, pattern A has 3 stops - all on outbound, and none on inbound.

outbound stops

Pattern B is running along the same stops in reverse:

outbound stops

Selecting the two patterns that we would like to merge and clicking Merge will open the merge modal.

merge pattern

We have now created a new pattern, Pattern C, with the outbound stops from Pattern A and the inbound stops from Pattern B.

merged pattern

Editing Station Type

Station settings

By clicking the cog next to a station in your stations list, you can select its kind (station, depot or waypoint).

Unlike stations, waypoints do not cause vehicles to slow down and stop, and dwell times specified in your layer's transport layer properties will not be applied.

Path routing

path routing

Podaris can calculate the route of the path in one of three ways:

  • Following the existing road network (Buses).
  • Following Podaris-drawn infrastructure (Rail/Metro/Hyperloops).
  • Following a set of manually defined coordinates.

When drawing a bus route, by default, the pattern will be solved using the existing road network. When using any other mode, the Podaris-drawn infrastructure is used.

In the case that you want to explicitly define a segment of the pattern, select manual when drawing to draw a line of coordinates for the pattern to follow.

In manual mode, you have the option to override the speed or duration of that segment.

duration and average speed override

As the underlying infrastructure changes, or stops on the pattern change, the pattern will update to find the new optimal path.

In order to understand how patterns function within service scheduling, you can follow the tutorial on creating scheduled services.


Transport routes do not typically take the same amount of time at all times of the day, either because of traffic or increased boarding and alighting times. For this reason it can be useful to take these changes into account, as well as analyse these differences in order to inform interventions such as bus lanes. 

Podaris allows you to create multiple timings for your route patterns. These can then be applied to trips in order to take into account different timings at different times of the day, or days of the week. Podaris also allows you to visualise how the average speed between stops changes along the route and compare this with different timings using Route Speed analysis in the Analyst Tool.

Creating New Timings

  • Give your new timing a name (this will allow you to select it by name when performing Route Speed analysis using the Analyst Tool)
  • Select the pattern direction (outbound/inbound)
  • Click '0 Timings' beneath the pattern of your choice.
  • Click add icon to add a new timing and display a breakdown of the arrival and departure times at each stop along the pattern.
  • Click one of these times to change it.

When new timings are added, Podaris will automatically interpolate all other times to take into account the times which have been changed manually.

If you have access to real-time transit information (RTI) or automatic vehicle location (AVL) data, this can also be added as timing data to allow for comparison between timetabled times and actual times. Please contact us if you would like to discuss importing this data. 

Understanding the pattern overview panel

Pattern direction symbols

Roundtrip: outbound and inbound directions
Outbound direction only
Inbound direction only

Exploring patterns

exploring stops

Clicking on the number of stops on a pattern will expand a list of stops for that pattern. If the pattern contains both inbound and outbound stops, clicking a the Inbound Stops/Outbound Stops toggle button will alternate between them.

Clicking the zoom button next to each stop's name will zoom into that stop of your map.

The stopwatch button on the pattern panel will display the average speed for the path segment between two stops:


These averages are calculated using maximum road speeds and historical traffic data.

average speed

Pattern troubleshooting

Pattern alerts will be displayed in both the Alert Manager and by clicking the Alerts button under a pattern in the patterns tab (found when clicking on a service in the Services Panel, see image below).

patterns tab

Error Meaning

Missing return: assumed deadheading

No return definition has been defined that allows the vehicle to return to the starting station.

Podaris considers the return journey a dead heading and estimates the duration

Pattern uses a layer with routing mode "On-Demand" Creating a pattern which uses a layer with an on-demand (as opposed to Schedule Driven) routing mode will have unintended side-effects.
Pattern references a non-existent station One or more stations this pattern references may have since been deleted.
Unable to solve outbound definition No outbound definition could be found. This could be a result of hidden stops, or missing infrastructure.
Unable to solve inbound definition No inbound definition could be found. This could be a result of hidden stops, or missing infrastructure.