Every public satellite tracker starts from the same kind of input - a set of orbital elements describing where an object was at one moment - and runs it forward to the moment you care about. Almost all of the disagreement comes from which elements, how old, and what counts as a pass.
1. The elements are different ages
This is the big one. An element set describes an orbit at its epoch. The further you move from that moment, the more error builds up.
If one app refreshed its catalogue this morning and another is working from a set that is four days old, they will disagree, and the disagreement grows the further ahead you look. For a low object like the Space Station, a few days of age can easily shift a pass by a meaningful fraction of a minute.
The honest fix is to show the age. If an app hides it, you have no way of knowing which prediction to trust.
2. The atmosphere does not cooperate
At 400 km there is still a trace of atmosphere, and it slows everything down. The element set carries a single drag term to account for it.
The problem is that the upper atmosphere swells and shrinks with solar activity. During a geomagnetic storm, drag on low orbits can jump sharply for days, and an element set fitted before the storm under-predicts how far the object has slowed. The satellite arrives late compared with the prediction.
Higher orbits barely care. A GPS satellite at 20,000 km is unaffected by any of this, which is why its predictions stay good for far longer.
3. Manoeuvres are not in the data yet
The Space Station fires its engines periodically to regain altitude lost to drag, and occasionally to dodge a piece of debris. Until a new element set is published that includes the burn, every app is predicting from the old orbit.
For a day or so after a reboost, predictions based on pre-burn elements can be noticeably off. An app that picked up the new set will disagree with one that has not.
4. Different ideas of where a pass starts
A pass technically begins when an object clears the horizon at 0° elevation. In practice nobody can see anything that low - buildings, trees and haze take the bottom few degrees.
So apps pick a cut-off. Some use 0°, some 5°, some 10°. A 10° cut-off makes the "rise" time later and the "set" time earlier than a 0° one, for exactly the same orbit. If two apps disagree by a minute at both ends of a pass, and agree on the peak, this is almost certainly why.
5. Different rules for "visible"
Some apps list every pass geometrically above the horizon. Others list only passes where the object is sunlit and your sky is dark. Some add a brightness threshold.
These produce genuinely different lists. A pass at 03:00 through Earth's shadow is real in the first app and absent from the second, and both are right about their own definition.
6. Smaller things
- Your location. A few kilometres of error in where the app thinks you are shifts timings by seconds, not minutes.
- Rounding. One app shows the minute; another rounds to the nearest minute; a third truncates.
- Different sources. Some apps use supplemental element sets built from operator data rather than the standard public catalogue.
Which one to believe
Check three things, in order.
First, the element age. The fresher set wins, especially for low orbits and especially after a reboost.
Second, the horizon cut-off. If the peak times agree, you have no real disagreement - just different ends.
Third, the visibility rule. If one app lists a pass the other omits, look at whether it happens in daylight or in shadow.
And then go out a couple of minutes early. For a naked-eye sighting, a minute of uncertainty costs you nothing if you are already outside looking west.