Can I use Rail Delivery Group open station data

The Rail Delivery Group (National Rail) publishes open data to the Rail Data Marketplace, a government funded platform for UK rail data.

One of their open feeds is the Knowledgebase stations data feed, which contains XML station data for every GB railway station, such as info on ticket offices, car park spaces, accessibility and amenities (such as waiting rooms and WiFi). This is kept up to date by station operators. This is the raw data used to power websites/apps station info, e.g. Reading Station | National Rail

I was thinking this could be useful to manually update and add to stations in OSM, particularly the accessibility info. It contains detailed step free descriptions, hours when staff help is available, info on accessible ticket machines etc.

https://raildata.org.uk/dashboard/dataProduct/P-88ffe920-471c-4fd9-8e0d-95d5b9b7a257/overview

From the license page, I can see that it’s open data, no usage limit or attribution required, and says “The raw data may be made freely available or otherwise distributed to third parties”

https://raildata.org.uk/dashboard/dataProduct/P-88ffe920-471c-4fd9-8e0d-95d5b9b7a257/termsAndConditions

I don’t know too much about the legal side, does anyone know if it is okay to use as a source for OSM?

Unfortunately, if I’m reading this correctly:

DATA SHARING AGREEMENT
This licence is entered into between the Data Publisher and the Data Consumer.
Whilst the Rail Delivery Group operates the Rail Data Marketplace it is neither buyer
nor seller of the Licensed Data. The Rail Delivery Group is not a party to this licence
and makes no warranty in connection with the Licensed Data.

then RDG doesn’t own the data, they’re just putting it out there for people to see?

If that’s right, then I would think that we would then have to refer to National Rail’s T&Cs: Terms and Conditions | National Rail

which say “You may not”

Happy to be corrected by anybody in the UK who may know better!

1 Like

And then to contradict this, Schedule 1 of the licence at https://raildata.org.uk/dataProduct/P-88ffe920-471c-4fd9-8e0d-95d5b9b7a257/termsAndConditions then states that the “Data Publisher” is actually the “Rail Delivery Group”… (Presume the licence is generic, and then the schedule fills in the partiuclart for each dataset. It happens that this dataset is actually published by RDG, whereas others might not be.

I’ve only had a chance to have a quick look, but there may be some problematic terms in the full licence text, notably around attribution requirements on downstream users. I think it probably needs a careful reading, and maybe referral to LWG.

How useful do you think the data would be to OSM?

1 Like

Thanks both for having a look,

I think you’re right that it is a generic license, a lot of other products on the data marketplace use the same license with customised schedules. For example GWR https://raildata.org.uk/dataProduct/P-85512577-f35e-41fb-ad0c-ea819ba89c47/termsAndConditions use the same license with a different schedule for some of the data they publish. So I think that’s correct, the Rail Delivery Group is the data publisher and owner according to the later parts of the license.

I think it would be useful to be able to use it, it does have a lot of info on stations that is missing and details that would be hard to survey.

For example for Royston Node: ‪Royston‬ (‪105105‬) | OpenStreetMap the current mapping just has the basic information such as name, references and bike racks. Using the data I could add the full opening hours for the ticket office, the fact there is full step free access and wheelchair description, add lifts with accessible buttons and 1.1m wide doors, a waiting room with benches (with backrests but no armrests), accessible toilet, update the car park with 517 spaces capacity with 9 accessible and show there’s no WiFi or telephones etc. I think it would be good to use this as a source to add to OSM, especially the accessibility info which is currently missing, but obviously only if the license is compatible.

(As an example I’ve included the data for Royston below, but full data for a station is too long to show here. But in effect the data on Royston Station | National Rail is the same - same data just presented nicely)

<?xml version="1.0" encoding="utf-8"?>
<StationV4.0 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:com="http://nationalrail.co.uk/xml/common" xmlns:add="http://www.govtalk.gov.uk/people/AddressAndPersonalDetails" xsi:schemaLocation="https://internal.nationalrail.co.uk/xml/XsdSchemas/External/Version4.0/nre-station-v4-0.xsd" xmlns="http://nationalrail.co.uk/xml/station">
  <ChangeHistory>
    <com:ChangedBy>NRE CMS Editor</com:ChangedBy>
    <com:LastChangedDate>2025-12-22T21:01:01.359Z</com:LastChangedDate>
  </ChangeHistory>
  <CrsCode>RYS</CrsCode>
  <AlternativeIdentifiers>
    <NationalLocationCode>6090</NationalLocationCode>
  </AlternativeIdentifiers>
  <Name>Royston</Name>
  <SixteenCharacterName>ROYSTON</SixteenCharacterName>
  <Address>
    <com:PostalAddress>
      <add:A_5LineAddress>
        <add:Line>Royston Station</add:Line>
        <add:Line>Kneesworth Street</add:Line>
        <add:Line>Royston</add:Line>
        <add:Line>Hertfordshire</add:Line>
        <add:PostCode>SG8 5AH</add:PostCode>
      </add:A_5LineAddress>
    </com:PostalAddress>
  </Address>
  <Longitude>-0.02691</Longitude>
  <Latitude>52.05309</Latitude>
  <StationOperator>GN</StationOperator>
  <Staffing>
    <StaffingLevel>fullTime</StaffingLevel>
    <ClosedCircuitTelevision>
      <Available>true</Available>
    </ClosedCircuitTelevision>
  </Staffing>
  <InformationSystems>
    <InformationAvailableFromStaff>Yes - from help point</InformationAvailableFromStaff>
    <InformationServicesOpen>
      <com:Annotation>
        <com:Note><![CDATA[<p>Staffed from first to last train every day</p>]]></com:Note>
      </com:Annotation>
    </InformationServicesOpen>
    <CIS>DepartureScreens</CIS>
    <CIS>Announcements</CIS>
    <CustomerHelpPoints>
      <com:Annotation>
        <com:Note><![CDATA[<p>The Assistance Meeting Point is by the taxi bay, at the front of the station.  </p>]]></com:Note>
      </com:Annotation>
      <com:Available>true</com:Available>
    </CustomerHelpPoints>
  </InformationSystems>
  <Fares>
    <TicketOffice>
      <com:Open>
        <com:DayAndTimeAvailability>
          <com:DayTypes>
            <com:MondayToFriday>true</com:MondayToFriday>
          </com:DayTypes>
          <com:OpeningHours>
            <com:OpenPeriod>
              <com:StartTime>06:00:00.000</com:StartTime>
              <com:EndTime>20:00:00.000</com:EndTime>
            </com:OpenPeriod>
          </com:OpeningHours>
        </com:DayAndTimeAvailability>
        <com:DayAndTimeAvailability>
          <com:DayTypes>
            <com:Saturday>true</com:Saturday>
          </com:DayTypes>
          <com:OpeningHours>
            <com:OpenPeriod>
              <com:StartTime>07:00:00.000</com:StartTime>
              <com:EndTime>20:00:00.000</com:EndTime>
            </com:OpenPeriod>
          </com:OpeningHours>
        </com:DayAndTimeAvailability>
        <com:DayAndTimeAvailability>
          <com:DayTypes>
            <com:Sunday>true</com:Sunday>
          </com:DayTypes>
          <com:OpeningHours>
            <com:OpenPeriod>
              <com:StartTime>09:15:00.000</com:StartTime>
              <com:EndTime>17:30:00.000</com:EndTime>
            </com:OpenPeriod>
          </com:OpeningHours>
        </com:DayAndTimeAvailability>
      </com:Open>
    </TicketOffice>
    <PrepurchaseCollection>
      <TicketMachine>true</TicketMachine>
    </PrepurchaseCollection>
    <TicketMachine>
      <Available>true</Available>
    </TicketMachine>
    <OystercardIssued>false</OystercardIssued>
    <UseOystercard>false</UseOystercard>
    <OysterComments>
      <com:Note><![CDATA[<p>Oyster cannot be used at this station.</p>]]></com:Note>
    </OysterComments>
    <AlwaysShowOysterCardFields>false</AlwaysShowOysterCardFields>
    <SmartcardIssued>true</SmartcardIssued>
    <SmartcardValidator>true</SmartcardValidator>
    <SmartcardComments>
      <com:Note><![CDATA[<p>For more information on using the Key smartcard, please visit the <a href="https://www.greatnorthernrail.com/thekeysmartcard" title="">Key smartcard</a> webpage on the Great Northern website. </p>]]></com:Note>
    </SmartcardComments>
    <PenaltyFares>
      <TrainOperator>GN</TrainOperator>
      <TrainOperator>TL</TrainOperator>
      <Url>https://www.greatnorthernrail.com/travel-information/on-board/penalty-fares</Url>
    </PenaltyFares>
  </Fares>
  <StationFacilities>
    <SeatedArea>
      <com:Available>true</com:Available>
    </SeatedArea>
    <WaitingRoom>
      <com:Location>
        <com:Note><![CDATA[<p>Heated waiting rooms are available on both platforms.</p>]]></com:Note>
      </com:Location>
    </WaitingRoom>
    <StationBuffet>
      <com:Available>true</com:Available>
    </StationBuffet>
    <Toilets>
      <com:Available>true</com:Available>
      <com:Location>
        <com:Note><![CDATA[<p>Located on platform 1.</p>]]></com:Note>
      </com:Location>
    </Toilets>
    <BabyChange>
      <com:Open>
        <com:Annotation>
          <com:Note><![CDATA[<p>Facilties may only be available when the station is staffed. </p>]]></com:Note>
        </com:Annotation>
      </com:Open>
    </BabyChange>
    <Telephones>
      <com:Exists>false</com:Exists>
    </Telephones>

:person_shrugging: