First Light on a Real Storm
A Fleet-Scale Drag Sensor Meets Dst −150
A pilot built one thermosphere sensor out of thousands of falling Starlinks, then predicted it would come alive once a strong storm landed in coverage. A storm did — the deepest of the period. The fleet's decay rate ticked up in the predicted direction, but even a 70%-deeper storm barely moved the result. The limit isn't the sky; it's the instrument's own noise floor.
The idea, and the promise it made
The thermosphere is the only part of the climate system that changes in hours. When a solar flare or a geomagnetic storm dumps energy into it, the upper atmosphere puffs outward, and the thin air that low-orbiting satellites fly through gets denser. Denser air means more drag, and more drag means satellites fall a little faster. In February 2022 a single moderate storm dragged roughly 38 freshly launched Starlinks back into the atmosphere before they reached their working altitude.
More than ten thousand Starlinks now circle in a thin shell, each reporting its orbit several times a day — in principle a giant, fleet-scale instrument for watching the upper atmosphere breathe. An earlier pilot pooled them into one drag sensor and asked the most basic question: can it see a single, ordinary storm? It couldn't answer cleanly, because the only deep storm of the era landed five days before the data began, and the only in-coverage storm was a shallow one. So the pilot made a concrete, testable promise: give it a Dst below about −150 with a clean onset and coverage on both sides, and the sensor should come alive.
The storm the pilot was waiting for arrived
On July 4, 2026 the Dst index dropped to −150 nT — the deepest excursion of the whole record, deeper even than the storm the pilot had originally hoped to test, and this time squarely inside the data, with months of calm baseline before it. This is the near-real-time catch a standing monitor exists for. We re-aimed the test at it, by the same rule the pilot pre-declared: the deepest storm fully inside coverage.
How a falling satellite becomes a sensor
Each satellite reports a number called its mean motion: how many laps of the Earth it completes per day. As an orbit decays, the satellite drops to a lower, faster lap, so its mean motion creeps up. The speed of that creep is the drag signal. Track it for thousands of satellites at once, and you have a daily readout of how much the atmosphere is pushing back. Most working Starlinks fire small thrusters to hold altitude, which hides the drag we want — so we kept only the ones genuinely falling and pooled them into a single daily fleet number.
What we found: a real nudge that still doesn't hold up
Across the July 4 storm, the fleet's decay rate rose, by +2.5 × 10⁻⁶ rev/day² (from 8.5 to 11.1). This is the cleanest positive the monitor has produced: it held up when we resampled which satellites we used, and — crucially — the thrusting satellites that should feel no drag response moved in the opposite direction. So the rise is real and it isn't a thruster artifact.
Then the quiet control knocked it back down. We ran the exact same analysis on a calm day with no storm, and still got a bump about 40% as large. Measured against the spread of calm days, the storm's response lands at the 86th percentile — about 1.1 standard deviations above the noise, short of the bar for significance. And the day-by-day correlation between decay rate and storm strength, across the whole record, is flat (a correlation of 0.02 over 101 days). The nudge is in the right direction, but a nudge of this size is still something the instrument does on quiet days.
Figure: even a great storm hides in the noise

The result that matters is the comparison
The real finding isn't the single storm — it's what changed when the storm got deeper. The pilot's shallow substitute (Dst −88) gave a rise of +2.6 × 10⁻⁶, not significant (p = 0.19). This storm, 70% deeper, gave +2.5 × 10⁻⁶, still not significant (p = 0.12). A far bigger storm bought essentially no extra detectability. That quietly overturns the pilot's own closing bet. The thing holding the sensor back was never the wait for a strong storm — it's the two-line-element noise floor: most of the "falling" satellites barely move, so the pooled number wobbles by about as much as the storm effect itself. No single storm, however deep, can lift that raw fleet average cleanly above its own scatter.
What this says, and what it doesn't
It says: even the deepest storm of the period does not lift the Starlink fleet's average decay rate cleanly above its own noise, and the reason is now pinned to the instrument's precision, not to the absence of a big storm. The positive rise is real and thruster-clean, but it is not significant.
It does not say: that storms don't drag satellites, which they plainly do, or that this approach can't work. It sharpens the to-do list. The next gains are instrumental, not meteorological: weight the fleet toward the satellites that are genuinely falling instead of averaging in the near-static ones, and keep accruing independent storm days. The monitor stands, it has finally met a great storm, and it correctly reported that it is not yet precise enough to see one.
Ingestion note. The July 4 storm is only eleven days into the archive. The core before-and-after window is complete and the headline result is settled, but the last days of the tail — and the strictest survivorship check — are still filling in as the live CelesTrak feed ingests each day. They will firm the estimate up, not flip it.
Reproducibility
Every number on this page comes from the results.json file in the starlink-thermosphere-storm-pilot workspace. Pipeline: the Starlink daily panel is regrouped from the TerraPulse satellite_decay dex (each satellite's measured orbital-decay track), a robust seven-day decay-rate slope per satellite, a clean-drag filter for non-thrusting objects, a superposed-epoch test around the storm with quiet-day and maneuvering-object controls, an object-resampling bootstrap, a fixed-cohort survivorship check, and an autocorrelation-aware correlation against the Dst (disturbance storm-time index, the standard measure of geomagnetic storm strength), solar-wind, and sunspot drivers. The pilot's shallow-substitute result is frozen alongside for comparison.
TerraPulse standing-monitor pilot, re-pointed 2026-07-15 to the July 4 Dst −150 storm. Data: CelesTrak, NOAA Dst, DSCOVR solar wind, SILSO sunspot number. All times UTC.
Published paper
The full scientific paper, with methods, tables, and references.