The east-west crossing routes are relatively infrequent, but they have nearside stops and so their interaction with the signals is completely different.
Indeed the near side stops completely wreck the ability to provide effective priority, since the dwell times and queue lengths are unpredictable. To determine whether or not to start extending the green at the end of the normal phase (by up to 30 seconds), the signal needs to correctly guess whether the streetcar will be finished loading within 30 seconds of the normal end of green. If the streetcar dwells longer than expected, the signal could hold for the full 30 seconds and still the streetcar isn't done loading. In which case the TSP intervention has actually increased delay by up to 30 seconds since the next green will start later than it otherwise would have. Conversely, if dwell is shorter than expected, the signal might not hold the green thinking that the streetcar wouldn't be done loading in time, when in fact it could have actually benefited from a green extension.
What is needed is the "sense" in signal controllers that there is an approaching streetcar *and* space on the farside platform so that streetcars were not cut off by a signal change as they approached.
The vast majority of signals on streetcar routes do have TSP, so they do know when a streetcar is approaching. To prevent streetcars from getting priority when a far-side stop is occupied, some intersections only grant priority to streetcars with a headway greater than 90 seconds.
For east west cars (and for TSP at most nearside transit stops), something to recognize that a vehicle is close to leaving is needed, but I'm not sure this can be automated. An operator signal that says "I want to go now" would be useful, but I am sure that the AI boffins will spend years and a lot of money to come up with something not as effective.
Some TSP systems are connected to the door close button, which gives the signal about 5 seconds of advance notice before the vehicle leaves the stop.
But "I want to go now" is not useful information for the signal, because it can't just suddenly turn green. You first need to cycle though the Flashing Don't Walk (FDW), amber and all-red times for any phases that have Walk. At a typical downtown intersection that takes about 20 seconds (e.g. 12-14s FDW, 3s Amber, 3s AllRed), and at wide intersections like on St Clair or Spadina, that could easily be over 30 seconds. If the green extension needs to be served with a Walk signal (which is the case at most TSP signals), the streetcar needs to request priority before the start of FDW. If the FDW is 12 seconds and you want up to 30 seconds of extension, the signal needs an accurate ETA 42 seconds in advance. The optimal moment to request TSP varies at every intersection depending on the FDW, amber and all-red durations, so there's no way an operator would manually submit TSP requests at the correct moment.
Machine learning could be a useful tool to provide a customised dwell time estimate for each streetcar based on observations of previous streetcars combined with variables such as the streetcar's headway, time of day and signal state. With hundreds of signals with TSP, most of which have near-side stops in multiple directions, it is logistically impossible to manually create a custom formula for each stop to accurately estimate dwell times.
Re the idea of giving priority when a vehicle is "late", that is a red herring that shows up in a lot of "TSP" proposals on the basis that most of the time it won't be needed and the motorists won't be disturbed. Transit should *always* get priority so that trips can be as fast as possible.
If you want transit trips to be as fast as possible, you SHOULD disable priority for streetcars that have a below-average headway. Because speeding those streetcars up makes service less even, and therefore creates longer gaps before the streetcars that
actually dictate the speed of the streetcar line, which are the ones following a large gap. The longer the gap in front of a streetcar, the more people will be waiting at the stop, which increases the dwell time, causing the gap ahead of the streetcar to grow even larger. Eventually that streetcar will be painfully crowded and painfully slow, holding up all the other streetcars behind it.
Varying the level of priority based on the streetcar's headway actively compensates for the miscellaneous delays that inevitably occur on-street, reducing the chance of starting the feedback loop that will inevitably lead to bunching if not promptly compensated for. When you are trying to run a reliable transit service, the majority of the vehicles on the line should be operating slower than their fastest possible average speed, since the schedule inherently needs to be designed for a higher-than-average travel time to make it possible to run evenly-spaced service. On a bus route or dedicated streetar ROW this is fairly trivial since an early streetcar/bus can just pause at a stop to wait for the schedule (or average headway) to catch up. But a mixed-traffic streetcar is occupying the left traffic lane, so if it sits for extra time, it will be blocking traffic. So streetcar operators have relatively little ability to slow down to space out service, especially when the TSP is unconditional. Operators who are running early will often try to stop at green lights if they think they're turning yellow soon, but if TSP is still trying to prioritize them, it will max out the green extension trying to get them through even though the operator has no intention of proceeding. Then it may shorten the other phases to their minimum to get back go the streetcar's phase as soon as possible. That creates the maximum possible delay for other users (especially pedestrians), far more than a streetcar that gets a green and actually drives through it. That type of severe disruption is why the City wants to reduce the level of priority that streetcars receive.
And all of that is just about the speed of the vehicles. A passenger's wait time is typically perceived as about 2x as onerous as an equivalent amount of time in a vehicle, so running evenly-spaced service is incredibly important. Deliberately slowing down streetcars with below-average headways shortens customer journeys by reducing wait times.
Even then, they could always put the through phase before the turn phase - would that even impact traffic congestion?
Changing the phase order would make absolutely zero difference to streetcar delay. If the light starts 15 seconds earlier and ends 15 seconds earlier you have exactly the same green time and exactly the same delay.
To eliminate the delays that streetcars currently experience due to left turns across dedicated streetcar ROWs, the system needs to be allowed to insert an
additional green light
on-demand, if there is a streetcar approaching or waiting when the left turn phase would normally start. All of the signals with TSP are already capable of doing this, the TTC just needs the City to give them permission to activate that feature. The main limitation is that these additional phases reduce the overall capacity of the intersection for other road users. So if we only use phase insertion for streetcars with above-average headways, it would be much more practical to get that feature approved, than if half the inserted phases are effectively wasted since the streetcar had time to kill anyway.
There is one intersection that does already use phase insertion: southbound at Spadina & Lakeshore. Normally the north-south green comes first (with streetcars), then the southbound left turn. And if a streetcar shows up during that left turn phase, it will provide a
second north-south green. But unfortunately that's the only TSP action permitted at the intersection, so streetcars showing up during other parts of the cycle may need to wait an extremely long time for a green light - streetcars are not allowed to truncate the extremely long green for Lakeshore or insert a short streetcar phase in the middle of it.