VSTP Cancel - C27557

45 views
Skip to first unread message

Jack Ferguson

unread,
Oct 19, 2025, 10:31:33 AM (13 days ago) Oct 19
to A gathering place for the Open Rail Data community
Hi,

I received a VSTP create then a VSTP delete (I've added the messages below) but I can see from looking on other sites that the train was not actually cancelled and did seem to run under that UID. I'm assuming I must be missing something about how these sort of messages should be handled so any help would be really appreciated! 

UID: C27557
Date: 2025-10-19 2025-10-19

Create;

{"VSTPCIFMsgV1":{"schedule":{"schedule_segment":[{"schedule_location":[{"location":{"tiploc":{"tiploc_id":"BRSTLTM"}},"scheduled_pass_time":" ","scheduled_departure_time":"130000","scheduled_arrival_time":" ","public_departure_time":"130000","public_arrival_time":" ","CIF_platform":"13","CIF_path":" ","CIF_line":"UM","CIF_activity":"TB"},{"location":{"tiploc":{"tiploc_id":"BRSTLEJ"}},"scheduled_pass_time":"130100","scheduled_departure_time":"      ","scheduled_arrival_time":"      ","public_departure_time":"      ","public_arrival_time":"      "},{"location":{"tiploc":{"tiploc_id":"NSMRSTJ"}},"scheduled_pass_time":"130200","scheduled_departure_time":"      ","scheduled_arrival_time":"      ","public_departure_time":"      ","public_arrival_time":"      "},{"location":{"tiploc":{"tiploc_id":"BATHSPA"}},"scheduled_pass_time":"      ","scheduled_departure_time":"131300","scheduled_arrival_time":"131100","public_departure_time":"131300","public_arrival_time":"131100","CIF_platform":"2","CIF_activity":"T"},{"location":{"tiploc":{"tiploc_id":"BTHMPTJ"}},"scheduled_pass_time":"131600","scheduled_departure_time":"      ","scheduled_arrival_time":"      ","public_departure_time":"      ","public_arrival_time":"      "},{"location":{"tiploc":{"tiploc_id":"THNGLEJ"}},"scheduled_pass_time":"132200","scheduled_departure_time":"      ","scheduled_arrival_time":"      ","public_departure_time":"      ","public_arrival_time":"      "},{"location":{"tiploc":{"tiploc_id":"CHIPNHM"}},"scheduled_pass_time":"      ","scheduled_departure_time":"132600","scheduled_arrival_time":"132400","public_departure_time":"132600","public_arrival_time":"132400","CIF_platform":"2","CIF_activity":"T"},{"location":{"tiploc":{"tiploc_id":"WTNBSTJ"}},"scheduled_pass_time":"133300","scheduled_departure_time":"      ","scheduled_arrival_time":"      ","public_departure_time":"      ","public_arrival_time":"      ","CIF_engineering_allowance":"1"},{"location":{"tiploc":{"tiploc_id":"SDON"}},"scheduled_pass_time":"      ","scheduled_departure_time":"134000","scheduled_arrival_time":"133800","public_departure_time":"134000","public_arrival_time":"133800","CIF_platform":"3","CIF_activity":"T"},{"location":{"tiploc":{"tiploc_id":"UFNGTN"}},"scheduled_pass_time":"134630","scheduled_departure_time":"      ","scheduled_arrival_time":"      ","public_departure_time":"      ","public_arrival_time":"      "},{"location":{"tiploc":{"tiploc_id":"CHALLOW"}},"scheduled_pass_time":"134800","scheduled_departure_time":"      ","scheduled_arrival_time":"      ","public_departure_time":"      ","public_arrival_time":"      "},{"location":{"tiploc":{"tiploc_id":"WANTRD"}},"scheduled_pass_time":"134930","scheduled_departure_time":"      ","scheduled_arrival_time":"      ","public_departure_time":"      ","public_arrival_time":"      ","CIF_engineering_allowance":"1"},{"location":{"tiploc":{"tiploc_id":"DIDCOTP"}},"scheduled_pass_time":"      ","scheduled_departure_time":"135630","scheduled_arrival_time":"135500","public_departure_time":"135600","public_arrival_time":"135500","CIF_platform":"2","CIF_line":"ML","CIF_activity":"T"},{"location":{"tiploc":{"tiploc_id":"GORASTR"}},"scheduled_pass_time":"140200","scheduled_departure_time":"      ","scheduled_arrival_time":"      ","public_departure_time":"      ","public_arrival_time":"      ","CIF_line":"ML","CIF_engineering_allowance":"1"},{"location":{"tiploc":{"tiploc_id":"RDNGHLJ"}},"scheduled_pass_time":"140730","scheduled_departure_time":"      ","scheduled_arrival_time":"      ","public_departure_time":"      ","public_arrival_time":"      ","CIF_line":"ML"},{"location":{"tiploc":{"tiploc_id":"RDNGSTN"}},"scheduled_pass_time":"      ","scheduled_departure_time":"141200","scheduled_arrival_time":"140900","public_departure_time":"141100","public_arrival_time":"140900","CIF_platform":"10","CIF_line":"UML","CIF_activity":"T"},{"location":{"tiploc":{"tiploc_id":"RDNGKBJ"}},"scheduled_pass_time":"141300","scheduled_departure_time":"      ","scheduled_arrival_time":"      ","public_departure_time":"      ","public_arrival_time":"      ","CIF_line":"ML"},{"location":{"tiploc":{"tiploc_id":"TWYFORD"}},"scheduled_pass_time":"141600","scheduled_departure_time":"      ","scheduled_arrival_time":"      ","public_departure_time":"      ","public_arrival_time":"      ","CIF_platform":"2","CIF_line":"ML"},{"location":{"tiploc":{"tiploc_id":"MDNHEAD"}},"scheduled_pass_time":"141930","scheduled_departure_time":"      ","scheduled_arrival_time":"      ","public_departure_time":"      ","public_arrival_time":"      ","CIF_platform":"2","CIF_line":"ML"},{"location":{"tiploc":{"tiploc_id":"SLOUGH"}},"scheduled_pass_time":"142230","scheduled_departure_time":"      ","scheduled_arrival_time":"      ","public_departure_time":"      ","public_arrival_time":"      ","CIF_platform":"3","CIF_line":"ML"},{"location":{"tiploc":{"tiploc_id":"STKYJN"}},"scheduled_pass_time":"142530","scheduled_departure_time":"      ","scheduled_arrival_time":"      ","public_departure_time":"      ","public_arrival_time":"      ","CIF_path":"ML","CIF_line":"ML"},{"location":{"tiploc":{"tiploc_id":"HTRWAJN"}},"scheduled_pass_time":"142600","scheduled_departure_time":"      ","scheduled_arrival_time":"      ","public_departure_time":"      ","public_arrival_time":"      ","CIF_line":"ML"},{"location":{"tiploc":{"tiploc_id":"STHALL"}},"scheduled_pass_time":"142700","scheduled_departure_time":"      ","scheduled_arrival_time":"      ","public_departure_time":"      ","public_arrival_time":"      ","CIF_platform":"2","CIF_line":"ML"},{"location":{"tiploc":{"tiploc_id":"ACTONW"}},"scheduled_pass_time":"142830","scheduled_departure_time":"      ","scheduled_arrival_time":"      ","public_departure_time":"      ","public_arrival_time":"      ","CIF_pathing_allowance":" H","CIF_path":"ML","CIF_line":"ML","CIF_engineering_allowance":"1"},{"location":{"tiploc":{"tiploc_id":"LDBRKJ"}},"scheduled_pass_time":"143230","scheduled_departure_time":"      ","scheduled_arrival_time":"      ","public_departure_time":"      ","public_arrival_time":"      ","CIF_path":"ML","CIF_line":"3"},{"location":{"tiploc":{"tiploc_id":"PRTOBJP"}},"scheduled_pass_time":"143300","scheduled_departure_time":"      ","scheduled_arrival_time":"      ","public_departure_time":"      ","public_arrival_time":"      ","CIF_line":"3"},{"location":{"tiploc":{"tiploc_id":"ROYAOJN"}},"scheduled_pass_time":"143400","scheduled_departure_time":"      ","scheduled_arrival_time":"      ","public_departure_time":"      ","public_arrival_time":"      ","CIF_line":"3"},{"location":{"tiploc":{"tiploc_id":"PADTON"}},"scheduled_pass_time":" ","scheduled_departure_time":" ","scheduled_arrival_time":"143500","public_departure_time":" ","public_arrival_time":"143500","CIF_platform":"3","CIF_performance_allowance":" ","CIF_pathing_allowance":" ","CIF_line":" ","CIF_engineering_allowance":" ","CIF_activity":"TF"}],"signalling_id":"1A18","atoc_code":"GW","CIF_train_service_code":"25370002","CIF_train_class":"B","CIF_train_category":"XX","CIF_timing_load":"802","CIF_speed":"125","CIF_reservations":"R","CIF_power_type":"DMU","CIF_headcode":"4820","CIF_course_indicator":"1","CIF_catering_code":"T"}],"transaction_type":"Create","train_status":"1","schedule_start_date":"2025-10-19","schedule_end_date":"2025-10-19","schedule_days_runs":"0000001","applicable_timetable":"Y","CIF_train_uid":"C27557","CIF_stp_indicator":"C"},"Sender":{"organisation":"Network Rail","application":"TSIA","component":"TM ROC 30","userID":"TSPROC30","sessionID":"Y689750"},"classification":"industry","timestamp":"1760870806000","owner":"Network Rail","originMsgId":"2025-10-19T10:46:46-00:0...@vstp.networkrail.co.uk"}}


Cancel;

{"VSTPCIFMsgV1":{"schedule":{"transaction_type":"Delete","train_status":" ","schedule_start_date":"2025-10-19","schedule_end_date":"2025-10-19","schedule_days_runs":"0000001","CIF_train_uid":"C27557","CIF_stp_indicator":"C","CIF_bank_holiday_running":" "},"Sender":{"organisation":"Network Rail","application":"TSIA","component":"TM ROC 30","userID":"TSPROC30","sessionID":"Y689750"},"classification":"industry","timestamp":"1760871477000","owner":"Network Rail","originMsgId":"2025-10-19T10:57:57-00:0...@vstp.networkrail.co.uk"}}


Thanks,
Jack

Peter Hicks

unread,
Oct 19, 2025, 10:42:47 AM (13 days ago) Oct 19
to openrail...@googlegroups.com
Hi Jack

C27557 is an existing CIF schedule, and the VSTP Create looks like it's supposed to be putting in a schedule cancellation.  However, it's past 2200 the night before, so the train should still be counted for performance purposes.  I'm noting that the userID field starts 'TSPROC', which indicates it's from a traffic management system at a ROC.  I also note that the train was activated at 13:20 - either 20 minutes after booked departure time, or 40 minutes before (not in a position to check log files at the moment).  It also has black 'document' symbols next to the reported times between Bristol and Reading on https://www.opentraintimes.com/schedule/C27557/2025-10-19, and keyboard symbols at Bathampton and Thingley East, which indicate the train may not have reported correctly on TRUST and those times have been infilled using TRUST Delay Attribution.  It may have been that another VSTP was put in for the train between Bristol and Reading and TRUST didn't know whether to report against the CIF 1A18 or the VSTP 1A18.

The intent behind this is unclear. I can check on TRUST later today to see what actually happened, but it sounds like it could be misbehaviour of a system other than TRUST, possibly human error.  Don't treat this as a typical VSTP use case!


Peter


--
You received this message because you are subscribed to the Google Groups "A gathering place for the Open Rail Data community" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openraildata-t...@googlegroups.com.
To view this discussion, visit https://groups.google.com/d/msgid/openraildata-talk/b09c6eb7-7e55-478e-99ca-bbc2f59f1628n%40googlegroups.com.

Jack Ferguson

unread,
Oct 19, 2025, 10:49:42 AM (13 days ago) Oct 19
to openrail...@googlegroups.com

Peter Hicks

unread,
Oct 19, 2025, 3:05:45 PM (13 days ago) Oct 19
to openrail...@googlegroups.com
Hi Jack

On Sunday, 19 October 2025 at 15:49, Jack Ferguson <jackfergu...@gmail.com> wrote:

Thanks Peter! That makes sense :)

This is an unholy mess of things happening.  From a TRUST perspective, the train was not auto-called and since it wasn't tracking on TRUST, was manually called at 1420 after the train had left Reading.  Since Class 1, 2, 3, 5 and 9 trains are called 1 hour before departure, the VSTP message at 11:46 with STP indicator 'C' may have removed the train from the list of trains on TRUST subject to auto-call, and despite that schedule being reverted at 1157, doesn't seem to have caused the schedule to go back in to the auto-call list.  Within TRUST DA, I can see there were unidentified train reports for 1A18 from Bristol to Reading, confirming that TRUST wasn't tracking the train.

Digging in to the traffic management side of things, I can see that at 11:46:45, the journey was modified and in fact cancelled with delay code ZW (SYS CANC) which I think can only be added by TRUST DA.  Since the train wasn't already called, that cancellation never came through on TRUST.

I'll report this to (another part) of Network Rail tomorrow for investigation.  Thanks for flagging it up!


Peter

Jack Ferguson

unread,
Oct 19, 2025, 3:38:00 PM (13 days ago) Oct 19
to openrail...@googlegroups.com
Interesting! Thanks for looking into this, good to know it was something funny going on.

Jack

--
You received this message because you are subscribed to the Google Groups "A gathering place for the Open Rail Data community" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openraildata-t...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages