Skip to main content

Public Performance Measure

The plugin Public Performance Measure contains a snippet and a script template to extract the necessary data to calculate the PPM.

PPM

PPM is the percentage of trains which arrive at their terminating station ‘on time’ compared to the total number of trains planned.

Quick start

  1. Install or enable the Public Performance Measure plugin.
  2. In a Simulation or Stochastic Simulation projects, right click on the project node, then New, Public Performance Measure - UK (simulation listener). This new script file will open:
    snippet('lib/PublicPerformanceMeasure',
    // name: 'PPM', // name of the KPI in the summary file
    // displayName: 'Public Performance Measure', // display name of the KPI in the Trenissimo user interface
    // description: 'The percentage of passenger trains arriving at their destination, having made all booked calls, and within a specified lateness margin', // description of the KPI in the Trenissimo user interface
    // trainFilter: 'passenger and revenue', // filter to consider only a subset of trains; normally only passenger trains in revenue service are counted
    // threshold: 5.minutes, // threshold for 'on time' status; normally up to 4:59 delay is considered on time; thresolds can be different by train, see below
    thresholds: [
    'operator = SW': 5.minutes,
    'service class = 1': 10.minutes,
    'service class = 9': 10.minutes,
    'passenger and revenue' : 5.minutes,
    ]
    )
  3. Customize the snippet.
    • name: (optional) the name shown in the summary, if not defined the default 'PPM' will be used.
    • displayName: the display name shown in the summary, if not defined, Public Performance Measure will be used.
    • description: the description shown in the summary, if not defined, the default PPM description will be used.
    • threshold: one delay for all the passenger trains. Alternative to thresholds. If neither threshold nor thresholds are defined, the default 5 minutes will be used.
    • thresholds: set a custom threshold for different categories of trains.
  4. Execute the simulation.

All the logic is contained in the lib/PublicPerformanceMeasure.snippet snippet, the body of the script contains only the configuration. The index is calculated as the percentage of the passenger trains that stop and arrive at the destination with a delay below the threshold, compared to all the passenger trains of the simulation. ECS and Freight trains are ignored.

Examples

UK

  ...
thresholds: [
'operator = SW': 5.minutes,
'service class = 1': 10.minutes,
'service class = 9': 10.minutes,
'passenger and revenue' : 5.minutes,
]
...

Norway

  ...
thresholds: [
'category in (Ept, F, Lt, Pt, R, RD, RE)': 4.minutes,
'category in (FJ, FJE, FJN)' : 6.minutes,
]
...