More information about statusSeverity

@LeonByford In addition, I observed one that I see a status code 22 today morning for a bus. Is that an error, or do we have a code like that?

and what is the meaning of the “Bus Service” with 8 status codes?

I’m surprised to hear that; it doesn’t seem correct to me. Would you be able to provide an example of this?

“Bus Service” would typically be where a non-bus service is being temporarily operated by bus (e.g. a rail replacement bus service). However, you are very unlikely to see “Bus Service” used for a bus route.

1 Like

Sure, let me check again and update.

@LeonByford , Can you explain - what mean by Special Service - does that mean its status is On Time and Special Service? I would like to understand the it’s status.

Special Service means that the line is operating differently to normal.

Buses are different to most other modes of transport in that we don’t publicise a live status for each route. Therefore, in the API, a bus route will typically either have a status of Good Service (if there is no disruption) or Special Service (if there is a disruption). This does not indicate whether a specific bus is on time or delayed; for this kind of information, please use the Arrivals data to obtain live arrival times.

Thanks for the insight; I appreciate it.

So, special service means there is a delay, right? I’m a bit confused.

Can you show me an example of how accurately we can tell a bus is late or it’s status?

“Special Service” doesn’t mean buses are delayed. For example, Route 108 is currently on diversion and not serving two bus stops. However, buses may still be running to schedule and calling at all other stops at the expected time.

You can obtain live arrivals from the Unified API by making a request such as the following:

This will return an array of Prediction objects that look like the following:

    "$type": "Tfl.Api.Presentation.Entities.Prediction, Tfl.Api.Presentation.Entities",
    "id": "943059464",
    "operationType": 1,
    "vehicleId": "LB23PFU",
    "naptanId": "490013323SB",
    "stationName": "Southwark Station",
    "lineId": "40",
    "lineName": "40",
    "platformName": "SB",
    "direction": "inbound",
    "bearing": "180",
    "destinationNaptanId": "",
    "destinationName": "Dulwich Library",
    "timestamp": "2024-05-14T10:43:43.1827465Z",
    "timeToStation": 783,
    "currentLocation": "",
    "towards": "Elephant & Castle",
    "expectedArrival": "2024-05-14T10:56:46Z",
    "timeToLive": "2024-05-14T10:57:16Z",
    "modeName": "bus",
    "timing": {
        "$type": "Tfl.Api.Presentation.Entities.PredictionTiming, Tfl.Api.Presentation.Entities",
        "countdownServerAdjustment": "-00:00:03.1415687",
        "source": "2024-05-14T09:22:39.795Z",
        "insert": "2024-05-14T10:43:58.681Z",
        "read": "2024-05-14T10:43:55.527Z",
        "sent": "2024-05-14T10:43:43Z",
        "received": "0001-01-01T00:00:00Z"

The expectedArrival property provides the expected arrival time of the bus at the specified stop.

Thanks, but how do we know specifically if the bus is delayed or not? We need to use the line status right?

No, the line status will not tell you if buses are delayed.

In theory, it may be possible to compare the predicted arrival time to the timetable. However, in practice, this is of limited use because buses in London are usually treated as a frequency-based mode. If, for instance, there is supposed to be a bus every eight minutes, but all the buses are delayed by five minutes, it doesn’t really make much of a difference to customers because they are still receiving the same frequency of service.

That’s true for the frequent services but there are plenty of TfL routes where the frequency is 15, 20, 30 or even (e.g. on Sunday) 60 minutes. Passengers then tend to go by scheduled times and its annoying when buses deviate, especially a few minutes early. Unlike NR trains, buses rarely wait until their scheduled departure time (apart from “this bus is being held to even out the service”).

So, what does the severity level indicate? Only the status of the delay?

Do we able to get the predicted arrival time from the API? or can you point the link please.

@LeonByford For your information, I’m working on a digital signage app for the Screenly Edge app.

So the idea is it can be installed on the bus top to showcase the bus status and arrival time. For now, I’m using the severity level to showcase the delay. Attaching the UI model, please check and share any feedback if you have. Thank you.

Thanks for sharing. Is this a project you’re working with TfL on?

@LeonByford Yes. The app will be published soon and will be open source, so you can use a screenly player to run it.

What do you think about the design and information listed? Thanks.

Design looks nice and clean.

Since you’ve asked for comments:

  • I’d call it a stop rather than a platform
  • I don’t think saying ‘On Time’ adds much value when you’re displaying the arrival time. If there’s a bus with an arrival time on the display I wouldn’t show a status unless it suggest the route might be affected.
  • What do you show if there are no buses arriving for an expected route? You should probably list the bus number with no time, but a status: important ones being ‘No reported Issues’ or anything that means the service at that stop is suspended or delayed for that bus number.
  • The key thing for me would be the ability to set select the stop and route of interest and ‘bookmark’ favourites. TfL’s own arrival app is pretty good but fiddly to navigate.
  • Buses in my area now estimate the time to reach selected destinations. If you can get that working it would be cool assuming it’s real world information rather than just a fixed estimate.

Good work and good luck with it.

1 Like

@salmanfarisvp Given users have the arrival times I don’t think the status info in your example adds anything for users. I would be inclined to move that column to the right and only display status (in red?) when it provides meaningful additional information such as Diverted or Not Running. In particular such a status also needs to be shown for routes without an arrival in the next 30 minutes.

Great minds think alike :slightly_smiling_face:

For buses, the severity level does not indicate much. Honestly, you’re probably best off not using it. It does not tell you anything about delays.

Yes, please see my earlier post. Do let me know if you require any further information.

Hi @netstruggler, Thanks for the feedback and I appreciate it.

But at the same bus stop, we have different platforms, right? So it’s better to use ID to avoid confusion?

The status screen is based on the severityLevel and description so if there is no bus or status like delayed or Diverted, it will show as the status.

Sorry for the confusion; this project is intended to be digital signage. It will display information on the screen; the user has no specific interaction like a webpage. :slightly_smiling_face:

Understand, but since it’s an digital signae app, I think it’s not applicable here right?

So mean, compare with bus time chart and TFL API bus arrival information and display the arrival time?

Thank you for the feedback and I really appericte it.

Yes, we have that, the staus will change depending on the severityLevel and description, it have have all the severityLevel options.