Method
What this model does, and what it refuses to do
This page is the credibility anchor for every number on the site. It states the model in full, shows the anchors the physics is checked against, and is explicit about the limits. Read it before quoting anything from here in a document that matters.
The model
- Geometry
- Spherical Earth with radius 6371 km. Circular orbits. A Walker-delta constellation with evenly spaced right ascensions, satellites evenly spaced within each plane, and phasing parameter F = 1. Earth rotates at 7.2921159e-5 rad/s beneath the shell. No J2 drift, no drag, no manoeuvres, no orbit decay.
- Access
- A site has service at an instant if at least one satellite is above the minimum elevation angle from that site. Elevation is computed from the true three-dimensional geometry, not from a nadir-angle approximation. There is no beam model: a visible satellite is assumed to be usable.
- Sampling
- Headline figures and the numbers table simulate a 48 hour window at 20 second steps, or 96 hours for fleets of 12 or fewer, or 40 second steps above 400 satellites. Results are worst-cased across 8 longitudes spread evenly around your latitude circle. The latitude chart uses 4 longitudes at 60 second steps, so it is coarser and is labelled as such where it appears.
- Gap accounting
- Gaps are measured between service windows inside the simulated period. Gaps that run to the start or the end of the window are discarded, so the edge of the simulation can never manufacture a short gap. If fewer than two passes occur at a longitude, no gap is reported at all and the result is marked as exceeding the window.
- Planes
- The automatic rule picks the smallest divisor of N that is at least the square root of N, which spreads a fleet in a revisit-friendly way. A prime fleet size therefore gets one satellite per plane. Any divisor can be selected by hand, and for early buildouts you should: real deployments cluster into far fewer planes than the rule assumes.
Reading the outputs
Worst outage is the longest wait between service windows found at any of the sampled longitudes on your latitude circle. It is the number a coverage promise has to survive. Average wait is the mean gap between windows. For clustered geometries, single-plane fleets above all, the average is far kinder than the experience, because a tight burst of passes pulls it down while the customer remembers the silence.
Windows per day counts distinct service windows. Service minutes per day and coverage are the same quantity in two units, out of 1440 minutes.
How much of a worst case is it? Every figure here is taken at the least favourable longitude on your latitude circle, which is the honest number to promise but says nothing about how much better the others are. Measured across 1094 configurations, the best and worst longitudes agree within 10 percent about four times in five. In the remaining fifth the choice matters, and for sparse fleets it dominates: a single sun-synchronous satellite seen from the equator waits 3.0 d at the worst longitude and 11.8 h at the best. The worst outage tile names the best longitude whenever the two disagree by more than 10 percent, and stays quiet otherwise, because a readout that appears every time means nothing.
Two labelled bands appear on the charts instead of numbers, because in those regimes a number would be a lie. Continuous means no gap was found anywhere in the window. No revisit in window means fewer than two passes occurred, so the real gap is longer than the simulated period and this tool will not extrapolate it.
Validation anchors
The physics core is checked against these cases on every change, by a harness that fails the build if a value moves. The figures below are computed when this page is built, so what you are reading is the current output rather than a transcription of it.
- Coverage half-angle. A satellite at 520 km seen above 25° elevation covers a ground circle of 8.1° of arc, which puts the service band edge for a 53° shell at 61.1° latitude.
- Single satellite, ISS-like. One satellite at 420 km and 51.6°, seen above 10° from latitude 50°, gives 4.9 passes per day and a worst gap of 18.3 h. That matches the pass counts amateur trackers report for the station.
- Five satellites in one plane. At 520 km, 53°, above 25°, from latitude 40°, the worst gap is 15.7 h. Multi-hour outages from a single-plane test block are what operators of early direct-to-device fleets actually report.
- Dense shell. 200 satellites at 550 km and 53° give continuous service at latitude 50°, as a closed shell should.
- Outside the band. 48 satellites at 53° give no coverage at all at latitude 75°, which is above the 61° band edge. No fleet size changes that result.
Reference series
At 520 km, 53° inclination, minimum elevation 25° and latitude 50°, with the automatic plane rule:
| Constellation | Planes | Worst outage | Avg wait | Windows/day | Service min/day | Coverage |
|---|---|---|---|---|---|---|
| 3 sats | 3 × 1 | 4.0 h | 1.9 h | 12.5 | 49 | 3.4% |
| 12 sats | 4 × 3 | 29.3 min | 24.9 min | 50.0 | 197 | 13.7% |
| 22 sats | 11 × 2 | 25.7 min | 11.8 min | 91.8 | 361 | 25.1% |
| 48 sats | 8 × 6 | 5.7 min | 3.7 min | 177.2 | 779 | 54.1% |
| 90 sats | 10 × 9 | 3.3 min | 73 s | 88.6 | 1333 | 92.5% |
| 200 sats | 20 × 10 | continuous | 0 | 1 | 1440 | 100.0% |
This table is the site's regression contract. The validation harness asserts every value in it.
Where the model will surprise you
More satellites is not monotonically better. Because the shell is perfectly regular, coverage depends on how planes interleave, and the automatic plane rule picks a different arrangement for each fleet size. A 150 satellite shell can show a seam that a 120 satellite shell does not. This is a real property of the geometry, not a numerical artefact, and it is a good argument for choosing plane counts deliberately.
Idealised symmetry makes features sharper than reality. Exactly circular orbits with exact phasing produce exact repeat patterns, so a specific longitude can catch an unusually bad alignment. Real fleets drift out of perfect phasing, which smears these features out. Trust the shape of the curve more than any single sharp point on it.
Gaps near the time step are at the resolution limit. A reported gap of 40 seconds, sampled at 20 second steps, means two samples. Take small gaps as evidence that the shell is nearly closed rather than as a precise duration.
The assumption that matters most, and it is not the obvious one
Every satellite here sits at exactly its nominal altitude. Real ones do not, and that turns out to be the simplification that moves the answer. Satellites at slightly different altitudes have slightly different orbital periods, drift out of their designed phasing, and open seams the ideal pattern does not have.
Measured: at 90 satellites, half a kilometre of dispersion costs a third of the worst-outage figure, two kilometres costs 167%, and a 200-satellite shell loses continuous service outright at five. Sensitivity rises with how good the answer is, because continuity is a property of a seam that is exactly closed and nothing exactly closed survives being nudged. A small fleet barely notices.
By contrast the perturbation this page used to single out, J2 nodal drift, costs between nothing and 3%: every plane at a shared altitude regresses at the same rate, so the shell turns as a body and its internal geometry is unchanged. Both figures are computed and published on the validation page.
The practical reading: treat a continuous or near-continuous result as the claim most in need of checking against station-keeping reality, not the least.
What is deliberately not modelled
- Altitude dispersion and station keeping. Every satellite is at its nominal altitude, which is the simplification measured above.
- Real ephemerides, everywhere except the measured pages. The calculator, every scenario and every shape page use idealised geometry and no orbital data of any kind. One page, the measured comparison, computes the same question from element sets in the public catalogue maintained by the United States Space Force and redistributed by CelesTrak, propagated with SGP4, and says so throughout. That is public data rather than operator data, and nothing is taken from any operator on either path.
- Orbital perturbations: J2 nodal drift, drag, third-body effects, station keeping.
- Antenna and beam patterns. A visible satellite is assumed to serve, which it may not.
- Link budgets, interference, and rain or foliage attenuation.
- Capacity. Coverage is not throughput, and a visible satellite already serving thousands of users is not available to you.
- Spectrum rights, licensing and terrestrial coordination, which decide where service is legal rather than where it is geometrically possible.
- Terrain and local horizon. The elevation mask is uniform in every direction.
Every one of those omissions makes real service worse than the figures here, never better. Treat the output as an upper bound on what geometry permits.
Fidelity statement
These are planning-grade estimates, intended for sizing a fleet, sanity-checking a coverage claim, and holding an informed commercial conversation. They are not engineering-grade and they are not suitable for a contractual coverage commitment, a regulatory filing, or an operational schedule. Work of that kind needs full-fidelity tooling such as Ansys STK, NASA GMAT, FreeFlyer or Orekit, driven by real ephemerides and a real link budget.
Sources
The orbital element sets behind the measured comparison come from the general perturbations catalogue maintained by the United States Space Force and redistributed byCelesTrak, vendored into this site as a dated snapshot with a recorded retrieval time and content hash. The site publishes figures computed from that snapshot and does not redistribute the data itself.
The propagator is SGP4 as restated in Vallado, Crawford, Hujsak and Kelso,Revisiting Spacetrack Report #3, AIAA 2006-6753, and it is checked on every build against the verification vectors published with that paper. Those checks are the only ones on this site anchored to something this project did not also write, which is why they are worth naming.
If a number from this site is going into a document that someone will rely on, reproduce it in one of those tools first. The purpose here is to get the conversation to the right order of magnitude quickly, and to make the assumptions visible while it happens.