I'd assume it's the length (in time) of the vibration since the last stop. There may be edge cases where if the train is moving slowly, but overall it's a smart technique.
This probably is wrong if trains for both directions stop at the same time from opposite sides of the same platform and you get on the wrong train. However this is a rare enough case that we can ignore it - but very annoying if you are that person (this case happens to most transit riders once or twice in their life). Even when this happens there often is other location data scattered around so you would likely only ride a stop or two before the app realizes you are on the wrong train and can reroute you.