That's how it works (at least the OneBusAway feed in the Seattle area). They started in the 90s with an RFID transponder on bus stops, read by the bus as it went past; more recently they use things like odometry or GPS to feed information into the system.
But:
> just return the empirical expected time it takes for the next bus
There is a world of complexity in "the empirical expected time", there... expected according to what models?
Anecdotally, I think it's especially hard to model because any given delay is probably attributable to one or a few specific incidents. This isn't a situation where everything averages out and we can use a nice tractable AWGN model; we're down in the muck and the shot-noise.
But:
> just return the empirical expected time it takes for the next bus
There is a world of complexity in "the empirical expected time", there... expected according to what models?
Anecdotally, I think it's especially hard to model because any given delay is probably attributable to one or a few specific incidents. This isn't a situation where everything averages out and we can use a nice tractable AWGN model; we're down in the muck and the shot-noise.