RTPPM
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
Message Topics
RTPPM messages are delivered through ActiveMQ.
| Topic name | Description |
|---|---|
| RTPPM_ALL | Current realtime PPM statistics delivered once per minute |
Record Layout
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>
| Field | Description |
|---|---|
| snapshotTStamp | The timestamp (in milliseconds since the UNIX epoch) when the report was created |
| WebDisplayPeriod | The maximum period of time (in seconds) the data should be displayed |
| WebFixedMsg1 | Static message to show on a web page |
| WebFixedMsg2 | Static message to show on a web page |
| Total | The total number of trains |
| OnTime | The number of trains on time |
| Late | The number of late trains |
| CancelVeryLate | the number of cancelled trains and the number of trains more than 29 minutes late |
| rag |
|
| text | Current performance value (percentage) |
| trendInd | Trend Indicator
|
Sector records
sectorDesc sectorCode SectorPPM: Total OnTime Late CancelVeryLate PPM: rag text RollingPPM: trendInd rag text
| Field | Description |
|---|---|
| sectorDesc | Description of the sector |
| sectorCode | 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>
| Field | Description |
|---|---|
| code | The sector code used to represent the TOC in TRUST. |
| keySymbol | The key character used to display different performance thresholds. |
| name | The name of the TOC. |
Operator service group records
name timeband sectorCode Total OnTime Late CancelVeryLate PPM: rag text RollingPPM: trendInd displayFlag rag text
| Field | Description |
|---|---|
| name | Name of the service group. |
| timeband | |
| sectorCode | Code of the sector the service group is related to. |
| Network Rail Open Data Feeds | |
|---|---|
| Data Feeds | About the Feeds • Account States • Durable Subscriptions • Example Code ( PHP / C# / Java / Ruby / Node.js) • STOMP Client Libraries • Advanced Uses • FAQ • Release Notes |
| RTPPM | RTPPM Feed |
| Train Movements | 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 | TD Feed • C-Class Messages • S-Class Messages • Train Describers • TD Berths |
| VSTP | VSTP Feed |
| TSR | TSR Feed • Route Codes |
| SCHEDULE | SCHEDULE Feed • TIPLOC Records • Schedule and Location Records • Association Records • CIF Codes • How Scheduling Works • Allowances |
| Reference Data | 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 (BPLAN) |