The Public Performance Measure (PPM), is the percentage of trains that arrive 'on time' at their destination. The definition of 'on time' depends on whether a service is categorised as long-distance (up to to 10 minutes late) or short-distance (up to 5 minutes late).
The Real-Time PPM (RTPPM) data supplied on the Open Data feed differs slightly from the official PPM figures as issued by Network Rail:
- RTPPM data considers a day to be from 0200 one day to 0159 the next day:
- If a train starts its journey before midnight and finishes after 0200, it will not be counted in the day's figures.
- If a train starts after midnight and finishes after 2am, it will be counted
- If a train starts its journey before midnight but doesn't arrive at its destination until after 0159, it will not be counted
- All non-applicable timetable (the majority of VSTP) schedules are counted, but are normally excluded from the official PPM figures
- Where a train has been cancelled prior to the day it runs, RTPPM system will process that cancellation. If the train then actually runs, it will not be counted for PPM purposes, as the system would have already processed the planned cancellation and will treat the actual train as a duplicate
- The system does not record 'fail to stop' events, diversions from the planned route or trains starting away from the planned origin, but it does count short terminations
- The system rounds down all percentage values to the nearest whole number, so 92.7% will be displayed as 92%
- The system cannot detect missed stops, which the official system picks up as a PPM failure through manual edits
- For Thameslink services, RTPPM only registers a PPM success or failure at the service's destination. This differs from the official system, which registers the services twice - once at Blackfriars (northbound) or Farringdon (southbound), and once at its destination
'CaSL' refers to Cancellations and Significant Lateness. The figure is made up by adding together the number of cancelled trains and the number of trains more than 29 minutes late. The percentage is derived from taking the total number of CaSL'd trains diving by the total number of trains due to run up until that point.
'PPM' is calculated using the details of all trains which have arrived at their destination in the current PPM 'day' as defined above. 'RollingPPM' is the PPM calculation restricted to trains which have arrived at their destination in the last two hours. This gives a "live" version of PPM
RTPPM messages are delivered through ActiveMQ.
|Current realtime PPM statistics delivered once per minute
RTPPM records are encoded as a JSON hash with a key of "RTPPMDataMsgV1" and a value containing the RTPPM data, in the following layout:
RTPPMDataMsgV1: owner timestamp classification schemaLocation Sender: application organisation Publication: TopicID RTPPMData: snapshotTStamp SystemMsg RAGThresholds: <threshold values> WebPPMLink PPT: rag ragDisplayFlag text NationalPage: WebDisplayPeriod WebFixedMsg1 WebFixedMsg2 WebMsgOfMoment StaleFlag NationalPPM: Total OnTime Late CancelVeryLate PPM: rag ragDisplayFlag text RollingPPM: trendInd rag text Sector: <sector records> Operator: <operator records> OOCPage: WebDisplayPeriod WebFixedMsg1 WebFixedMsg2 Operator: <operator records> CommonOperatorPage: WebDisplayPeriod WebFixedMsg1 WebFixedMsg2 OperatorPage: <operator page records>
|The timestamp (in milliseconds since the UNIX epoch) when the report was created
|The maximum period of time (in seconds) the data should be displayed
|Static message to show on a web page
|Static message to show on a web page
|The total number of trains
|The number of trains on time
|The number of late trains
|the number of cancelled trains and the number of trains more than 29 minutes late
|Current performance value (percentage)
sectorDesc sectorCode SectorPPM: Total OnTime Late CancelVeryLate PPM: rag text RollingPPM: trendInd rag text
|Description of the sector
|Code of the sector
Operator page records
Operator: code keySymbol name Total OnTime Late CancelVeryLate PPM: rag text RollingPPM: trendInd displayFlag rag text OprToleranceTotal: timeband Total OnTime Late CancelVeryLate OprServiceGrp: <operator service group records>
|The sector code used to represent the TOC in TRUST.
|The key character used to display different performance thresholds.
|The name of the TOC.
Operator service group records
name timeband sectorCode Total OnTime Late CancelVeryLate PPM: rag text RollingPPM: trendInd displayFlag rag text
|Name of the service group.
|Code of the sector the service group is related to.
|Network Rail Open Data Feeds
|About the Feeds • Account States • Durable Subscriptions • Example Code ( PHP / C# / Java / Ruby / Node.js) • Advanced Uses • FAQ • Release Notes
|Train Movements Feed • Train Activation • Train Cancellation • Train Movement • Train Reinstatement • Change of Origin • Change of Identity • Change of Location • TSPEED Field • Planned Cancellations • Cancellation Codes
|TD Feed • C-Class Messages • S-Class Messages • Train Describers • TD Berths
|TSR Feed • Route Codes
|SCHEDULE Feed • Schedule and Location Records • Association Records • CIF Codes • How Scheduling Works • Allowances
|Reference Data Feed • TOC Codes • CIF Codes • Delay Attribution Codes • Identifying Locations (STANOX, TIPLOC, NLC and 3-Alpha Codes) • STANOX Geographical Areas • Train Planning data