Northern line "000" vehicleIds in the Unified Arrivals feed?

Hi,

in the Unified Arrivals API feed for Nothern line
(https://api.tfl.gov.uk/line/northern/Arrivals),
it seems that a lot of different Northern line trains have a “000” vehicleId.

It seems that the same issue is affecting the legacy TrackerNet feed as well, for example (for King’s Cross St Pancras at 2020-04-01 20:36:10 BST):

<T LeadingCarNo="0" LN="N" TrackCode="TN20223" IsStalled="0" Direction="0" Departed="0" DepartInterval="441" DepartTime="19:36:10" Order="0" DestCode="225" InputDest="HBT3-Y (HBT3//HBT3-Y) [=HBT3/HBT3=Y]" Destination="High Barnet via Bank" Location="Between Bank and Moorgate" TimeTo="7:00" SecondsTo="441" TripNo="0" SetNo="000" LCID="126" TrainId="9575432"/>
<T LeadingCarNo="0" LN="N" TrackCode="TN20088" IsStalled="0" Direction="0" Departed="0" DepartInterval="893" DepartTime="19:36:06" Order="0" DestCode="225" InputDest="HBT3-Y (HBT3//HBT3-Y) [=HBT3/HBT3=Y]" Destination="High Barnet via Bank" Location="Between Kennington and  Elephant and Castle" TimeTo="15:00" SecondsTo="893" TripNo="0" SetNo="000" LCID="177" TrainId="9576792"/>

Possibly relevant topics:

Will this issue be resolved?

Thanks!

See Trackernet Feed + Unified Api Tube Missing trains "000"

We have developed a fix for this and it’s going through our test pipeline.
I’ll let you know once we have deployed it to production.

1 Like

Because of Covid 19 and drivers self isolating they can’t run trains to the automatic programmed timetable so instead it’s all manual and ad-hoc.

The 000 Set Numbers correlate with station closures, which must be effecting the trackernet systems ability to work out Set Numbers. There are no station closures on the Central line for example and Trackernet central line has no ‘000’ Set Numbers. The Jubilee line has major closures and majority of trains have ‘000’.

We have 000 on the feed even when all stations are open. Triple 000 takes the train out of the system so can be run as a special. Drivers are setting trains up with their duty numbers instead of with a train number. So on jubilee instead of say 301 I’ll put it as 023. 023 means nothing to the system that runs the automatic line so it has no timetable to know what to
do with it (which destination and timings etc). 000 allows it to b run manually ad-hoc by the signaller

1 Like

There are no station closures on the Central line

image

I can see Holland Park, Queensway, Lancaster Gate and Chancery Lane closed. https://tfl.gov.uk/tube-dlr-overground/status/#stations-status

On the bakerloo I can some examples of what you are talking about ‘000’ is special

....
<T S="000" T="0" D="436" C="9:00" L="Queen's Park South Sidings" DE="Special"/>
....

But on the Jubilee line virtually all the set numbers are ‘000’ but they still have a regular destination. Do drivers do different things on each line?

I see what you mean, but those stations are still returning arrival times on all ends, like Holland Park

https://api.tfl.gov.uk/Line/central/arrivals/940GZZLUHPK

Has predictions even though it’s supposed to be ‘closed’

@will_cm

OK, but this link - https://api.tfl.gov.uk/StopPoint/Mode/tube,dlr,overground,tflrail,tram/Disruption - shows it closed! It could be that the trains are stopping there to keep up the timings as it seems that the signallers are running things ad-hoc.

Bakerloo trains and system are manual. Jubilee is run by a computer.

1 Like

Bakerloo trains and system are manual.

1860 technology

Jubilee is run by a computer.

1960 technology :slight_smile:

Hopefully the “000” fix in the Unified API is to add TrackerNet’s TrainId field to the Arrivals API feed, or change how the VehicleId is sourced?

On a separate note, something that can be noted historically is that the Unified API VehicleId field would be occasionally non unique for two separate physical trains of the same line (for example on DIstrict), so whatever this new fix is, it should help with that issue too.

We have 000 on the feed even when all stations are open. Triple 000 takes the train out of the system so can be run as a special. Drivers are setting trains up with their duty numbers instead of with a train number. So on jubilee instead of say 301 I’ll put it as 023. 023 means nothing to the system that runs the automatic line so it has no timetable to know what to
do with it (which destination and timings etc). 000 allows it to b run manually ad-hoc by the signaller

That’s fine, but note that (if I understand the feed correctly) currently the Unified feed only has the VehicleId as the “unique” train identifier, so when 000 is used for a lot of different vehicles, it means the Unified feed suddenly has a number of arrival predictions for a bunch of different physical vehicles that are apparently the same vehicle, rendering the feed not very useful to track distinct vehicles, unless one would process it with some sort of complex and advanced algorithm to separate the incoming predictions into most likely vehicles.

Hopefully the fix for the Arrivals feed will address this.

Hi @Shortcut

There was a bug we found last week that meant 000 trains (Specials as referred by @ryan.forsyth) were missing from the API. The fix was developed and released last week and now those 000 trains are in the API.

In the past 000 code is used by the line controllers when the line is operating with a non-standard service (strikes etc). Most tube lines should have a new working timetable by Monday and the occurrences of 000 trains should be reduced across the network.

We have been looking longer term at bringing in more of the fields from trackernet into the API and it could be that in the future LCID could be used as the unique identifier.

Thanks,
James

1 Like

@jamesevans

I just thought I would look at the new WTTs and I picked the Bakerloo on the list. It’s interesting that it shows the co-working with the London Overground services, but this timetable -http://content.tfl.gov.uk/wtt-46-bakerloo-22-mar-2020.pdf - shows the Overground trains running at 4tph (Watford Junction XX01, XX22, XX31, XX48) and they’ve been cut back to 2tph.

I guess this is just to maintain slots, rather than connections?

Hi,

it looks like the “370” vehicleId for Northern is also used as a “catch-all” vehicleId,
for example (TrackerNet feed - “SetNo”):

  <WhenCreated>14 Apr 2020 6:36:53</WhenCreated>
  <Line>N</Line>
  <LineName>Northern Line</LineName>
  <S CurTime="6:36:53" N="Tooting Bec." Mess="" Code="TBE">
    <P NextTrain="false" TrackCode="TN10225" Num="1" N="Northbound - Platform 1">
      <T LeadingCarNo="0" LN="N" TrackCode="TN10182" IsStalled="0" Direction="0" Departed="0" DepartInterval="85" DepartTime="5:36:51" Order="0" DestCode="225" InputDest="HBT3-Y (HBT3-Y//HBT3-Y)     [=HBT3/HBT3=Y]" Destination="High Barnet via Bank" Location="At Tooting Broadway Platform 1" TimeTo="1:30" SecondsTo="85" TripNo="0" SetNo="000" LCID="104" TrainId="12556392"/>
      <T LeadingCarNo="0" LN="N" TrackCode="TN10084" IsStalled="0" Direction="0" Departed="0" DepartInterval="373" DepartTime="5:36:52" Order="0" DestCode="225" InputDest="HBT3-Y (HBT3-Y//HBT3-Y)     [=HBT3/HBT3=Y]" Destination="High Barnet via Bank" Location="At South Wimbledon Platform 1" TimeTo="6:00" SecondsTo="373" TripNo="503" SetNo="370" LCID="33" TrainId="12302552"/>
      <T LeadingCarNo="51707" LN="N" TrackCode="TN10015" IsStalled="0" Direction="0" Departed="0" DepartInterval="600" DepartTime="5:35:46" Order="0" DestCode="225" InputDest="HBT3-Y (HBT3-Y//HBT3-Y)     [=HBT3/MOR3=Y]" Destination="High Barnet via Bank" Location="At Morden Platform 3" TimeTo="10:00" SecondsTo="600" TripNo="503" SetNo="370" LCID="39" TrainId="12297832"/>
      <T LeadingCarNo="0" LN="N" TrackCode="TN10461" IsStalled="0" Direction="0" Departed="0" DepartInterval="612" DepartTime="5:35:19" Order="0" DestCode="0" InputDest=" (//) [=/=]" Destination="Check     Front of Train" Location="Morden Sidings" TimeTo="10:00" SecondsTo="612" TripNo="0" SetNo="000" LCID="163" TrainId="12557502"/>
    </P>
    <P NextTrain="false" TrackCode="TN10676" Num="2" N="Southbound - Platform 2">
      <T LeadingCarNo="0" LN="N" TrackCode="TN20372" IsStalled="0" Direction="0" Departed="0" DepartInterval="849" DepartTime="5:36:51" Order="0" DestCode="308" InputDest="MOR5-Y (MOR5//MOR5-Y)     [=MOR5/MOR5=Y]" Destination="Morden via Bank" Location="At Kennington Platform 4" TimeTo="14:00" SecondsTo="849" TripNo="502" SetNo="323" LCID="8" TrainId="12297812"/>
      <T LeadingCarNo="0" LN="N" TrackCode="TN20478" IsStalled="0" Direction="0" Departed="0" DepartInterval="1245" DepartTime="5:36:52" Order="0" DestCode="308" InputDest="MOR3-Y (MOR3//MOR3-Y)     [=MOR3/MOR3=Y]" Destination="Morden via Bank" Location="Between Bank and London Bridge" TimeTo="21:00" SecondsTo="1245" TripNo="0" SetNo="000" LCID="106" TrainId="12297842"/>
      <T LeadingCarNo="0" LN="N" TrackCode="TN20604" IsStalled="0" Direction="0" Departed="0" DepartInterval="1636" DepartTime="5:36:50" Order="0" DestCode="308" InputDest="MOR5-Y (MOR5//MOR5-Y)     [=MOR5/MOR5=Y]" Destination="Morden via Bank" Location="Between Angel and Old Street" TimeTo="27:00" SecondsTo="1636" TripNo="0" SetNo="000" LCID="173" TrainId="12547702"/>
      <T LeadingCarNo="0" LN="N" TrackCode="TN60451" IsStalled="0" Direction="0" Departed="0" DepartInterval="1799" DepartTime="5:36:52" Order="0" DestCode="308" InputDest="MOR5-Y (MOR5//MOR5-Y)     [=MOR5/MOR5=Y]" Destination="Morden via Bank" Location="Between Kings Cross and Angel" TimeTo="30:00" SecondsTo="1799" TripNo="503" SetNo="370" LCID="100" TrainId="12303642"/>
    </P>
  </S>

Is there any existing “master list” of such (Unified API) vehicleIds / (TrackerNet) SetIds that are used as “catch-all” vehicleIds and do not actually represent a unique vehicleId?

Thanks!

Have you tried http://content.tfl.gov.uk/ttn-132-northern-30-dec-2019.pdf page 8?

1 Like