ISS Tracking

How We Calculate ISS Passes

Where the tracker's data comes from, what we calculate and how far you can trust it

Two different things: where it is and where it's going to pass

Our tracker does two things that sound alike but aren't. The first is showing where the ISS is right now: that dot on the map updates every two seconds with the position published by a public real-time tracking API. The second is predicting where it's going to pass: the line of its future orbit and the passes over your city. You can't download that ready-made for your exact location from anywhere, so we calculate it.

This page explains how, with what data and within what limits. We believe a tool that gives you times should tell you where they come from.

Orbital elements (TLE)

Every prediction starts from a description of the orbit called a TLE (short for two-line element set). It's a standard format that space surveillance networks publish for every cataloged object; the ISS is catalog number 25544. Those two lines of text hold the orbit's inclination, its shape, the station's position at a reference instant and how much drag from the atmosphere is slowing it down.

The ISS's TLEs are refreshed often, usually several times a day, and always after a maneuver. The tracker fetches fresh elements every few minutes while you have the page open, and if it can't get them, it falls back on the last ones it had.

The SGP4 model

A TLE isn't much use on its own: it has to be “propagated,” which means using it to calculate where the station will be at any other moment. That's done with SGP4, the mathematical model the TLEs themselves are generated with and the industry standard for low orbits. Among other effects, it accounts for the Earth's slightly flattened shape and atmospheric drag.

We run it with a widely used open-source library, right in your browser. In other words, your passes are calculated on your own device from the location you give us, whether that's your GPS position or a point you tap on the map if you'd rather not share it.

How we detect a pass

With the orbit and your position, the tracker steps through the next 24 hours minute by minute and, for each minute, calculates two angles: elevation (how high the station is above your horizon) and azimuth (which direction it's in). From there:

Why 8°? Below that height, almost anywhere, buildings, trees or haze on the horizon hide the station. Other services use 10°, which is why their start times can differ from ours by a minute.

Day and night on the station

Besides passes, the tracker shows whether the ISS is in sunlight or in Earth's shadow right now, and how many minutes are left until the next switch. To do that, we calculate the Sun's position and check whether the Earth blocks the line from the station to the Sun, taking the station's altitude into account.

The same calculation explains why a high pass might not be visible: if the ISS is in shadow at that moment, it doesn't reflect any light. And if it's broad daylight where you are, the sky is too bright to pick it out. That's why our guides keep stressing that you check a pass's time as well as its height. We go into more detail in how to read a pass.

How far you can trust the times

Source of errorTypical effectWhat to do
One-minute calculation stepThe time is rounded to the minuteHead out a couple of minutes early
Aging TLEAn error of a few km that grows by the dayCheck the prediction again on the day
Station maneuversPasses can come seconds or a minute or so earlier or laterReload the page before you head out
Your locationA few kilometers barely make a differenceYour city's location is good enough

In practice, for a pass today or tomorrow, the time is reliable to the minute and the direction and maximum height are very accurate. Further out, the prediction gradually loses accuracy, and above all it can change if the station raises its orbit, which it does every few weeks or months to make up for atmospheric drag. We explain this in how the ISS orbits.

What we don't do: we don't calculate transits across the Sun or Moon, which call for precision down to the second and the meter, and we don't filter passes by weather. For transits, see our guide to ISS transits.

Why other sites give slightly different times

If you compare with other services, you may see differences of a minute or two. There are usually three reasons: the minimum height they count as the start of a pass (8°, 10° or more), whether they show every pass or only those visible to the naked eye, and how old their TLE is. None of these is a mistake: they're just different criteria. If two sites agree on the maximum height and the direction, they're showing the same pass.

If you want to compare tools with a critical eye, we have a guide on how to choose a good ISS tracker.

Frequently asked questions

Where does the tracker get the ISS's position from?

The current position comes from a public real-time tracking API and updates every two seconds. Orbit and pass predictions are calculated from TLE orbital elements with the SGP4 model.

What is a TLE?

A standard format, two lines of text long, that describes an object's orbit at a given moment. Space surveillance networks publish it and update it often; the ISS is catalog number 25544.

Does my location leave my device when you calculate passes?

Passes are calculated in your own browser from the location you give us. If you'd rather not share your GPS position, you can tap a point on the map near your city.

How accurate are the pass times?

For passes today or tomorrow, the time is reliable to the minute, and the direction and maximum height are very accurate. If the station makes a maneuver, the time can shift by a few seconds or a minute or so.

Why does another site give me a different time?

Usually because it uses a different minimum height for the start of a pass, because it only shows visible passes, or because it uses a TLE from a different date. They're different criteria, not errors.

Check your upcoming passes

Open the tracker