Beaulieu Park ID Confusion

49 views
Skip to first unread message

Chris Bagnall

unread,
Apr 1, 2026, 4:29:32 AM (5 days ago) Apr 1
to A gathering place for the Open Rail Data community
Hi,

We recently had an error in our system about an unknown station with an NLC of 633400.  Checking in the lasted CORPUS data from RDM, this is Beaulieu Park.  Here's the data:
    {
      "NLC": 633400,
      "STANOX": "50224",
      "TIPLOC": "BEULYPK",
      "3ALPHA": "BPA",
      "UIC": "63340",
      "NLCDESC": "BEAULIEU PARK",
      "NLCDESC16": " "
    },
This was a bit surprising, as we are processing timetable data for trains running through this station.  Checking in our database, we do have Beaulieu Park, but with an NLC of 034400.

Cross checking with the Knowledgebase API available from RDM, we get:
    "sixteenCharacterName": "BEAULIEU PARK", 
    "crsCode": "BPA", 
    "nationalLocationCode": "034400",

Can anyone confirm that the NLC in the CORPUS data is incorrect for Beaulieu Park please?

Cheers,
Chris

Peter Hicks

unread,
Apr 1, 2026, 4:44:21 AM (5 days ago) Apr 1
to openrail...@googlegroups.com
Hi Chris

CORPUS is the system of record, so it should be considered correct.  In fact, looking at a CIF full extract from February, the NLC listed there is 633400, so TPS has the 'correct' NLC too.

Network Rail doesn't use NLCs for train planning or train running.  Whilst they were used in the past for various purposes including paying staff, they are used most frequently for fares setting.  This is why you've probably never had a problem with processing timetable or train movement data for the location.

There could be a very valid reason why Beaulieu Park has a different NLC in the Knowledgebase data to CORPUS, but that would fall outside of my sphere of knowledge and be in the fare setting domain (for example).  Interestingly, http://www.railwaycodes.org.uk/crs/crsb.shtm shows 034400 for Beaulieu Park in sync with the Knowledgebase API, as well as http://www.railwaycodes.org.uk/crs/crss.shtm showing the same NLC against "Spare 168".


Peter

Chris Bagnall

unread,
Apr 1, 2026, 5:13:01 AM (5 days ago) Apr 1
to A gathering place for the Open Rail Data community
Hi Peter,

Thanks for checking.

I took a look at some fare related data we have and I see 6334 used in the data that we usually filter out (for unrelated reasons).  I shall enquire further to see if 034400 and 633400 should both refer to the same station and if so, which ID should be used when.

Cheers,
Chris

Ian Sargent

unread,
Apr 2, 2026, 10:43:11 AM (3 days ago) Apr 2
to A gathering place for the Open Rail Data community
Whilst railwaycodes.org is a useful source of information it should be treated with some caution. It has a habit of retaining old information for codes that have been reused, without mentioning that they have been superceded. Between 2017-2020 there were around 1,000 new, amended or deleted location codes in the CORPUS database, so think of that website being only 98% accurate. 

There seems to have been some confusion regarding Beaulieu Park amongst those organisations that allocate codes for new locations. For instance, NLC 683604 (a subsidiary NLC of Chelmsford station) is shown in railwaycodes.org as being "Chelmsford Beaulieu Park" with a TIPLOC of CHLMBPK. This breaks the rules for allocating location codes, as stations must have a main 6-digit NLC ending in 00.

For those who have not seen CORPUS, it maintains and cross-references five different types of location code: NLC, CRS Code, TIPLOC, UID Code and STANOX. The NLC is the index, so the creation of any of the other four types of code for a location automatically creates or reallocates an NLC.

Finally, if you want to understand the history of NLCs, this Wikipedia entry is perhaps the best - at least for codes in the range 100000-999999. Codes in the range 000100-099999 have a more complex history as they were allocated for several different reasons.
Reply all
Reply to author
Forward
0 new messages