Train schedule - an interim report to users (you)





Hey! Our schedule is used by about 600 thousand people a day (plus or minus, depending on the season), so I would just like to tell you what has changed over the past year, and once again ask what you would like, what is wrong and what, perhaps , lacks.



The biggest surprise of the year was that a lot of train drivers use our schedule. That is, yes, they have telegrams, their own schedule, and so on, but they use ours as a human-readable source. Plus, we seem to have a very convenient device for calculating the delay wave depending on the known delays of other trains, which allows them to tell them in advance what will happen.



And so they asked to improve the accuracy of the schedule. From their point of view, "to improve accuracy" is to indicate the departure time with an accuracy of half a minute. Moreover, there were similar requests from passengers. The discreteness of the timetable on the railway is not a minute, but half a minute, that is, the departure time may not be 14:30, but 14:30:30 or, as is customary to indicate in the service schedules for drivers, 14: 30.5. Departure of the train 30 seconds earlier is a gross violation, the locomotive crew may be deprived of the bonus. Standing for an extra 30 seconds, just in case, is an option, usually this is not considered a violation. But there is a chance to exceed the admissible threshold of delay at the next stations and also "get" to the award. In 2020, the number of similar requests from users has increased. Secondly,the absence of half a minute made it difficult for our operators to make specific changes in the schedule, and their number also increased. We finalized the backend and made a schedule with them in 2021.



The issue of clearing the visual from train numbers and "extra" seconds was also solved simply: you can just turn it off in the settings and return to the classic view of the schedule.



Why is it easier for the driver to navigate with a human-readable schedule?



Because the main source of data for the driver is the Russian Railways telegrams. That is, it has a basic schedule and many pull requests to it. Amendments to various normative and legislative acts work in the same way: instead of rolling out a new text of the document, something like this is rolled out:







This is the beginning of a document stating that restaurants in Moscow can work and after 21:00 again, as in the good old Times



The problem is that before that there were several iterations of edits in the document like this:







This scheme is ideal from the point of view of the backend: in fact, these are very precise instructions to the compiler on how the document changes. But if you are a person, then it will be difficult to collect all this into a coherent picture when reading it.



On the railway, in a normal situation, one telegram arrives, which is easy to read and understand. But in nodes with dense traffic, one modifier often comes first, then a modifier of a modifier, and then a modifier that cancels the first modifier, but leaves the second one, but with minor edits. Nesting levels can be 6-7, if you are very lucky. That is, a train can have a basic schedule, 3-5 adjustments to it and several telegrams for a temporary change.



The machinist can compile all this incorrectly and overlook something. Therefore, many check with some other source where everything is collected. Since we have been red-eyed over the schedule for 16 years, we are often chosen.



So now you can include train numbers:







And the increased accuracy of the schedule up to ½ minute (also disabled):







In terms of display, the design was the most difficult - it was necessary to preserve the readability of the schedule. We decided like this. If you have better ideas, please tell me. Well, in general, it would be useful for me to know if you as passengers need such accuracy.



Comparison of tariffs



It's simple: you can usually buy many different tickets for the same train. Showing all the options in terms of frequency of use is such an obvious idea that no one has done that much before. We have done:







So far 9 out of 10 users count manually, and the first screen is very much in demand. But the second one is already difficult. Passengers trust themselves, not software)



Increase in the share of applications, decrease in sessions from iOS



Even 10 years ago, we delivered schedule changes, including via SMS, and it seemed that this was the future. But now SMS has died, and the desktop has sagged very much. Most of the calls to the schedule go through the mobile version of the site and through the application. That is, from phones. This year, we can say that almost every passenger prefers to watch their train from the phone, and not from the desktop - the victory of the mobile platform is final. But! In May, there was a big drawdown on iOS: we do not know why this is, but there is a hypothesis that this is due to remote work. The share of Android was not affected.



Pushes about crashes and changes



You can choose your favorite destinations in the app. Previously, we only sent push notifications about temporary changes in the schedule, but this year we learned how to send notifications about traffic disruptions. This was due to the fact that we have a very large number of people and push notifications on the legacy system were sent slowly. It was possible to reach users in 3-4 hours, which is not suitable for those who run on a late train. More precisely, since usually not everyone from our database is subscribed to the schedule, this is in fact 5-10 minutes, and not 1 minute, as it is now.



We updated the system, but on the very first day we lay down well: it turned out that one of the push notifications immediately caused a huge number of requests for a new schedule. And there was also online purchase of train tickets, which created a collapse of 2 hours. In fact, we keep the utilization at the level of 30%, but here the excess was 5 or more times (how much more, for obvious reasons, we do not know).



Purchase of electronic train tickets



In short - you can buy a ticket for the Central PPK train in the app. We were the first to integrate this, but this is a common CPPC API, so expect a lot else on the market soon.



Long - you can't just take and buy a train ticket, there are a lot of loopholes for "hares". Therefore, you buy a certificate with a private key, which is supplemented by the second half (public key) at the turnstile and turns into a ticket. Checking a ticket - calling the animation of its rotation for the controller. It all sounds like a pile of crutches, but so far. We really hope that carriers will find simpler rules for implementing all this, in particular, to exclude a turnstile or a validator at stations.



I wrote a separate post about this. ... You can go in and evaluate what unexpected bugs may be.



Show zones



Well, everything is simple here:







It's just now a little more convenient to navigate where the ticket costs. It also allows us to estimate the distance of the trip: the fact that the length of one zone is about 10 kilometers is a fairly well-known fact.



Huavei



Among Android applications, the Huawei platform stands out. The point is that Huawei asks to completely abandon Google services and use their services. For us, this primarily concerns the sending of push notifications. The platform documentation has been translated strangely, at about the same level as the technical interfaces. And it's not about complicated Russian letters: about the same story in English localization.



In general, the console is similar to Firebase for us, it has its own analytics inside.



They promised 98% delivery of push notifications (which is higher than Google). In fact, we have about 83-86%.



For the version on Huawei, Google analytics was replaced by Huawei Analytics Kit. Similarly, you need to do with other things, in particular, an advertising office. There was a failure in advertising, only one of 6 different formats worked. The next step - we will master the payment gateway, we have not yet integrated Huawei Pay, so far only card payments.



More platforms to god of platforms!



We also show in the schedule departure platforms from stations and stopping points. Previously, we collected crowd data for training the model, where which train came to. Now this has come in handy and we have greatly improved the accuracy of the data. The result of the year is that many more stations began to appear with platforms:







We already had platforms for Bolshevo, but not on all trains. There were no trains with the initial station Bolshevo. Now we have added them too. The word “usually” in front of the platform number is due to the fact that in some situations there is a small probability of departure from another platform - for example, in case of a traffic failure or an unscheduled change of trains. Previously, in this case, we did not specify the platform at all. But, based on communication with users, it became clear that an indication in this form is better than a complete lack of information.



We also corrected the designations for a number of platforms. For example, we used to write platform numbers for Podolsk. However, for some reason, some of the users read them as a path. And when the train left the 2nd platform of the 10th track (and not from the 2nd platform of the 2nd track), we often received complaints - you have it wrong, the 2nd track was indicated (although the 2nd platform was indicated), but in fact 10.



Now we are writing to format "2 or 10 path". Unfortunately, we cannot be more precise (without “or”) yet, since paths 2 and 10 alternate without an unambiguous pattern. But the number of users who missed the train standing on track 10, thinking that it should come to the next second track, decreased.







Unfortunately, the tracks are still not shown at all stations where we would like it. 100% accuracy is not guaranteed everywhere. We continue to work on these issues



More cities



We added a train schedule for Yuzhnaya PPK, and now we have a schedule for commuter trains throughout Russia.



Sometimes people think that we are only in Moscow-Petersburg, but no, we have all, all, all trains:







What's next?



We are thinking about a seamless connection of electric trains and other types of transport - this is one of the long (about a year at least) things. Well, plus a lot of small features, fixes and improvements. As usual, if you have anything to add, supplement, etc., I would be glad to hear how we can improve our schedule .



All Articles