CIF timetable file timezone handling

50 views
Skip to first unread message

Sam Taylor

unread,
Sep 29, 2025, 8:09:26 AMSep 29
to openrail...@googlegroups.com
Hi there,

I'm building a little train tracking app to learn more about the railway.

Because the CIF format is absolutely painful, I'm converting the timetable files into simpler file formats before using them. However, I realised that the CIF format can sometimes produce ambiguous times because it doesn't handle timezone changes (i.e Daylight Savings). In RSPS5046 Timetable Information Data Feed Interface Specification:

5.3.6.3 On the last Sunday in October, any train that departs from its origin up to 01:59 British Summer Time will be timed in its BST timings throughout. Any train that departs from its origin on or after 01:00 Greenwich Mean Time will be timed in its GMT timings throughout.

5.3.6.4 How the BST/GMT swap-over is dealt with is up to each affected Train Operator. The TOC may just operate a train at 01:02 BST then nothing at all for an hour when the clocks go back, but may elect to run a train at both 01:02 BST and 01:02 GMT. When this happens the second train will be done as an STP insert, using a different UID - how retail systems determine which is which
would be down to the recipient system.

5.3.6.5 It is the responsibility of the journey planner to interpret these correctly in the display presented to the customer.

I have a few questions:

- Is it correct to assume that all permanent schedules leaving at 01:00 - 01:59 on the last Sunday in October are leaving in BST time?
- And, is it also correct to assume all STP schedules leaving at 01:00 onwards on the last Sunday in October are leaving in GMT time?
- How is a STP schedule created for 01:00 - 01:59 BST time?
- How do VSTP schedules work for 01:00 - 01:59 BST and 01:00 GMT onwards?
- Do any trains actually run in the ambiguous hour? Should I care?

I'd really appreciate any additional resources to help clarify this for me. I tried looking at itsleeds/UK2GTFS because they're using the same time definition as me, but it simply doesn't.

Thanks,
Sam

Tom Cairns

unread,
Sep 29, 2025, 8:15:02 AMSep 29
to openrail...@googlegroups.com

Ah, daylight savings – always fun. It’s best described as an absolute mess.

 

> Is it correct to assume that all permanent schedules leaving at 01:00 - 01:59 on the last Sunday in October are leaving in BST time?

Yes.

 

> And, is it also correct to assume all STP schedules leaving at 01:00 onwards on the last Sunday in October are leaving in GMT time?

In general, yes – but if there’s engineering works then it is more complicated. In this case of ambiguity I generally consider it as being the higher UID/headcode as being the later one.

 

> How is a STP schedule created for 01:00 - 01:59 BST time?

The railway day ends at 0430 in terms of facing passengers in general – so you can consider that they just put in another schedule. The timezone shift in rail is generally at ‘end of service’.

 

> How do VSTP schedules work for 01:00 - 01:59 BST and 01:00 GMT onwards?

I don’t think there’s actually a definition for that. My unprofessional view would be pick one and go for it… because TRUST won’t report on the second 0100-0159 anyway, and comes back to life at 0200.

 

> Do any trains actually run in the ambiguous hour? Should I care?

Yes, GTR and TPE run trains in these hours normally.

 

Tom

 

 

--
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/CALN0BMh%2BM-Uy0a3RU4PS4vbesajyBf0ZQD-p-8qi%3D%3DhA96v50Q%40mail.gmail.com.

Michael Tsang

unread,
Sep 30, 2025, 6:21:36 AMSep 30
to openrail...@googlegroups.com
Hi Sam,

Unfortunately we have to apply custom logic because of this deficiency of the
specification.

The assumption I use is that the trains will depart between 01:00 to 01:59 BST
and stick to its original time zone throughout its journey. The exception is
apply for a schedule entry which satisfy all of the following:
* Is an STP service
* Is run by London Overground
* Is only active on the last Sunday of October for one day only
* Departs between 01:00 and 01:59
It will run at GMT.

For Darwin, our custom logic is if the departure time is ambiguous, it is GMT
if the signalling id is 9Zxx and the TOC is London Overground, otherwise it is
BST.

Thanks,
Michael
> <https://github.com/itsleeds/UK2GTFS/blob/master/R/atoc_nr.R#L76> because
signature.asc
Reply all
Reply to author
Forward
0 new messages