Non derivable fares

198 views
Skip to first unread message

Linus Norton

unread,
Sep 7, 2016, 6:06:25 AM9/7/16
to A gathering place for the Open Rail Data community
Hi everyone,

I had some questions around non-derivable fares and how they work:

- How to get restriction code and fare setter (toc) for a non-derivable fare?
- Why are there some NDFs where both the adult_fare and child_fare are 999999?
- Why are there entries in the non derivable fare override feed that don't override anything?

If there is a better forum for this questions (it seems to be mostly Darwin stuff here) then let me know.

Cheers,

Linus

Peter Hicks

unread,
Sep 7, 2016, 6:07:40 AM9/7/16
to Linus Norton, A gathering place for the Open Rail Data community
Hi Linus

I'm not a fares expert (any more), but this is absolutely the best forum to talk about the fares data!  I called it 'rail data' for a reason, and fares fall squarely in to that category!


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 post to this group, send email to openrail...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

andrew.t...@gmail.com

unread,
Sep 7, 2016, 9:41:37 AM9/7/16
to A gathering place for the Open Rail Data community
Linus,

- How to get restriction code and fare setter (toc) for a non-derivable fare?
The restriction code is in the NDF fare (characters 63 and 64). The fare setter is not available for NDFs (a long-standing gripe about these records)

- Why are there some NDFs where both the adult_fare and child_fare are 999999?
NDFs can be used to override fares derived from the flow file. If both the adult and child fare are set to 999999 then this would suggest the TOC has set a fare using the flow file, probably via a cluster, and is using the NDF to override a specific instance of it to indicate that the particular route/railcard/fare combination isn't valid

- Why are there entries in the non derivable fare override feed that don't override anything?

From the RSP spec (point b):

Overrides to domestic non-derivable fares. This file contains records in the same format as those in the non-derivable fares file. The records in this file may:
a) replace records in the non-derivable fares file.
b) add to records in the non-derivable fares file.
c) delete records in the non-derivable fares file.

Andrew

Paul Kelly

unread,
Sep 7, 2016, 10:06:40 AM9/7/16
to openrail...@googlegroups.com
Hi Linus,

On 09/07/2016 11:06 AM, Linus Norton wrote:
> Hi everyone,
>
> I had some questions around non-derivable fares and how they work:
>
> - How to get restriction code and fare setter (toc) for a non-derivable
> fare?

The restriction code is there in the data, in the two columns directly
after the child fare in each record. There is no way to determine which
fare setter created a non-derivable record, as far as I know.

> - Why are there some NDFs where both the adult_fare and child_fare are
> 999999?

I'm not sure, but it could be an attempt to block a permanent fare (i.e.
one from the main flow file) from being made available for sale. Or
perhaps more innocently, a half-hearted attempt to specify that the fare
should not be available with the specified railcard. But it's not really
necessary to that in such a way.

> - Why are there entries in the non derivable fare override feed that
> don't override anything?

My suspicion is that a lot of the override records are put in using some
kind of brute force approach, e.g. a TOC knows all pairs of stations
that it sets the fare between and just pumps out records covering all of
these without checking if they're needed.

Another scenario I have noticed is what looks to be a misunderstanding
on the TOC's part: the the non-derivable fare overrides only override
normal non-derivable fares, but it sometimes looks as if they're trying
to make them override permanent fares - but that won't work.

I think some of what goes on with the non-derivable records has the
potential to be slightly dodgy from the point of view of the Ticketing &
Settlement Agreement (TSA), e.g. the way permanent fares seem to be able
to be overridden at will with different prices, restriction codes or
railcard discountability. To be fair I haven't seen any real examples of
this being used purposely to the passenger's disadvantage.

I have very little idea of the process by which non-derivable fare
overrides are introduced into the system, but there sometimes seems to
be a slight lack of quality control: I have seen new fares created
to/from a station which closed 20 years ago, for example (IIRC, one of
the Sinfin stations in Derby). I've heard a rumour about a software
application called "New Fares for Windows", but this might be for
creating permanent fares in the main flow file rather than for
non-derivable fares.

> If there is a better forum for this questions (it seems to be mostly
> Darwin stuff here) then let me know.

Funnily enough fares seems to be quite a niche interest compared to
schedules!

Paul

Linus Norton

unread,
Sep 7, 2016, 11:32:27 AM9/7/16
to Paul Kelly, A gathering place for the Open Rail Data community, andrew.t...@gmail.com
Hi Andrew, Paul,

Thanks for your guidance. You are right about the restriction code I totally just glazed over it.

I must admit it feels like there is a lost manual for all this stuff. I'm using RSPS5045 but it obviously only describes the data rather than the application. I'm not sure if there is more information somewhere else?

My work is available as open source software and I'm hoping that when it gets the basics right it can be used as a guide for other people. As you say Paul most people shy away from the fares and I think that's mostly due to the complexity compared to timetables. I'm not sure how much of this is covered in librailfare, perhaps I should be using that as a guide?

I have some follow up questions regarding non standard discounts and railcards in general but I'll post them in a new thread.

Thanks again,

Linus

--
You received this message because you are subscribed to a topic in the Google Groups "A gathering place for the Open Rail Data community" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/openraildata-talk/f2bZQBIXTTo/unsubscribe.
To unsubscribe from this group and all its topics, send an email to openraildata-t...@googlegroups.com.
To post to this group, send an email to openrail...@googlegroups.com.

Mike Flynn

unread,
Sep 9, 2016, 7:44:07 AM9/9/16
to A gathering place for the Open Rail Data community
Hi Linus,

Though I've not yet even started on fares yet, a quick skim through, and from following the posts, I can see this is an excellent resource and I will certainly be making use of it and have bookmarked it in my todo folder.  

Cheers
Mike

Linus Norton

unread,
Sep 15, 2016, 3:43:52 PM9/15/16
to A gathering place for the Open Rail Data community, pa...@pdkelly.de, andrew.t...@gmail.com
Hi,

The guide for calculating UK rail fares is coming along nicely, still a long way to go though.

I was recently testing a query between London Terminals (1072) and Birmingham (0418) and saw that for an SVR it has both a flow fare and a non-derivable fare. They are both exactly the same except for the restriction code.

Does this mean that non-derivable fares override flow fares even when they are ordinary non-derivable fares and not not non-derivable fare overrides?

If so, what is the matching criteria? I would assume origin_code, destination_code, route_code, railcard_code and ticket_code.

Can it override other aspects of the fare or just the restriction code? What about the price for instance?

Thanks again,

Linus

On Wednesday, 7 September 2016 16:32:27 UTC+1, Linus Norton wrote:
Hi Andrew, Paul,

Thanks for your guidance. You are right about the restriction code I totally just glazed over it.

I must admit it feels like there is a lost manual for all this stuff. I'm using RSPS5045 but it obviously only describes the data rather than the application. I'm not sure if there is more information somewhere else?

My work is available as open source software and I'm hoping that when it gets the basics right it can be used as a guide for other people. As you say Paul most people shy away from the fares and I think that's mostly due to the complexity compared to timetables. I'm not sure how much of this is covered in librailfare, perhaps I should be using that as a guide?

I have some follow up questions regarding non standard discounts and railcards in general but I'll post them in a new thread.

Thanks again,

Linus

andrew.t...@gmail.com

unread,
Sep 16, 2016, 4:48:43 AM9/16/16
to A gathering place for the Open Rail Data community, pa...@pdkelly.de, andrew.t...@gmail.com
Non-derivables take priority over the flow file, essentially rendering the flow file derived fare null and void if a flow/fare combination exists in both. This includes any discounts for that fare (i.e. if a full fare NDF record exists and it doesn't have entries for specific railcard(s) then the relevant discounted fare shouldn't be offered for those railcards if requested).

I haven't got the RSP standard to hand at the moment to help recall the exact matching criteria.

Linus Norton

unread,
Sep 16, 2016, 7:20:27 AM9/16/16
to andrew.t...@gmail.com, A gathering place for the Open Rail Data community, pa...@pdkelly.de
Thanks Andrew this is very helpful. Any documentation you can point me at would also be really useful.

I'm not sure how much of the RSPS documentation is public? I hope I'm not going to get in any trouble for creating an open source implementation based of details in private specifications. So far I've only used RSPS5045 which appears to be public.

Thanks again,

Linus

On Fri, 16 Sep 2016 at 09:48 <andrew.t...@gmail.com> wrote:
Non-derivables take priority over the flow file, essentially rendering the flow file derived fare null and void if a flow/fare combination exists in both. This includes any discounts for that fare (i.e. if a full fare NDF record exists and it doesn't have entries for specific railcard(s) then the relevant discounted fare shouldn't be offered for those railcards if requested).

I haven't got the RSP standard to hand at the moment to help recall the exact matching criteria.

Reply all
Reply to author
Forward
0 new messages