Ephemera

ephemera.space
built 2026-11-03 02:30 UTC

Every eight hours, SpaceX publishes where each of about eleven thousand Starlink satellites will be for the next three days, and how sure it is. Eight hours later that set is gone, replaced by the next one. Ephemera keeps them, and measures what the public catalogue can see.

The files carry a full position and velocity uncertainty every sixty seconds, read from the feed on 30 August 2026. Starlink is the only operator with public covariance; other operators enter via CelesTrak SupGP without covariance.

What the public catalogue can see

Headline figures from cycle 1df076d68cde, first seen 2026-11-02 22:58 UTC, scored 2026-11-02 23:14 UTC against the public catalogue snapshot fetched 2026-11-02 21:05 UTC (12,999 element sets).

At the first instant of each operator file, the public catalogue puts 81% of the scored Starlink satellites within 10 km of where the operator says they are. The middle satellite is 2.5 km away, with the public information a median of 13 hours old. Where the public information is two to three days old, the two predictions are about 42 km apart. Both sides are predictions, and most of that spread is planned trajectory changes the public catalogue cannot know about.

Everyone outside SpaceX sees Starlink through the public catalogue of orbital elements. Ephemera takes that public element set for each satellite, propagates it with SGP4, and compares it against the operator's own published trajectory for the same satellite at the same instants. The distance between the two is what this measures. It is not an error of the satellite, and it is not a statement about which side is right.

11 satellites (0.1%) are more than 1,000 km from the public prediction at publication, which is a large part of an orbit. For those the public element set is not on the operator's trajectory at all. Ephemera does not label any separation as a manoeuvre; that needs a detector this project has not built.

1 km3 km10 km30 km1.36-12 h4,8983.712-24 h18,06915.024-48 h43,66842.448-72 h44,25387.2over 72 h33,576
Median separation between the two predictions, by how old the public catalogue's information was. Log scale; the second line under each point is how many comparisons it holds. Cycle 1df076d68cde, scored 2026-11-02 23:14 UTC.

Feed health for this cycle. 11,183 of 11,210 operator files scored. 27 have no entry in the public catalogue, all of them new satellites the catalogue has not numbered yet. Nothing else was dropped. Public element sets were a mean of 15.0 h old when the snapshot was taken (median 13.1 h, 90th percentile 25.6 h, 2 over 72 h). Averaged over every comparison, which run out to three days into the operator file, element age is 51.1 h: the difference is the file's own prediction horizon, not catalogue staleness. Space-Track: 616 snapshots held, last fetched 2026-11-03 01:10 UTC with 12,999 element sets. Poller heartbeat coverage over the last 24 h: 100.0%.

The archive behind it

As of 2026-11-03 02:30 UTC. Poller: A (a datacentre host in the EU; the home poller was retired on 3 Oct 2026).

The operator side of every comparison comes from files this project caught before they were replaced. Each cycle is hashed file by file into one Merkle root, the root is stamped into the Bitcoin blockchain through OpenTimestamps, and the manifest plus ten files chosen by the root itself are pushed into the Wayback Machine so an independent copy exists that this project does not control.

As of 2026-11-03 02:30 UTC: 203 cycles, 203 complete with roots, 203 anchored in Bitcoin, 44 with a defect in the independent copy. Source bytes archived: 4,614 GB across 2,272,956 files as served. Stored gzipped as 1,897 GB, of which 28 GB is on the poller's disk and 1,869 GB exists only in cold object storage. Cadence holds, meaning a set served longer than nine hours while the poller watched: 17. A further 3 such intervals fell while the poller was down and are not counted as a hold. Poller heartbeat coverage over the last 24 hours: 100.0%. This project exists because SpaceX publishes the feed openly.

1df076d68cde first seen 2026-11-02 22:58 UTC, 11,210 filesaa13313ef564 first seen 2026-11-02 13:05 UTC, 11,212 files1555093aa225 first seen 2026-11-02 05:04 UTC, 11,212 files7b9a2138ac44 first seen 2026-11-01 21:11 UTC, 11,212 files6b7d86853540 first seen 2026-11-01 13:10 UTC, 11,212 files902ded64fe05 first seen 2026-11-01 04:14 UTC, 11,212 files63b05f2d40c6 first seen 2026-10-31 20:05 UTC, 11,213 filesb10586a473bf first seen 2026-10-31 12:12 UTC, 11,213 filesef0599f4eb00 first seen 2026-10-31 04:12 UTC, 11,186 files9e87c37c7507 first seen 2026-10-30 20:11 UTC, 11,186 files060c8e16b8cb first seen 2026-10-30 12:11 UTC, 11,186 files6637e5bd6772 first seen 2026-10-30 04:50 UTC, 11,186 files0229c43347fc first seen 2026-10-29 22:16 UTC, 11,186 filesa80375a03051 first seen 2026-10-29 12:31 UTC, 11,187 filesd98c9ca2bdf4 first seen 2026-10-29 04:22 UTC, 11,187 filesa879013f0100 first seen 2026-10-28 20:52 UTC, 11,187 files754cd83ec71d first seen 2026-10-28 14:12 UTC, 11,188 filesa648b38e76b9 first seen 2026-10-28 07:25 UTC, 11,188 files50874ace28b4 first seen 2026-10-28 00:45 UTC, 11,189 files2288c26bbeea first seen 2026-10-27 20:06 UTC, 11,189 fileseaa945b04114 first seen 2026-10-27 13:07 UTC, 11,189 files08c199f6da18 first seen 2026-10-27 06:35 UTC, 11,162 filesad8609b37d5b first seen 2026-10-26 23:56 UTC, 11,163 files5ab663e077d8 first seen 2026-10-26 12:06 UTC, 11,163 filese343ae1a7266 first seen 2026-10-26 04:04 UTC, 11,163 filese27add7f36e7 first seen 2026-10-25 20:03 UTC, 11,164 files63f8979a1d4b first seen 2026-10-25 12:03 UTC, 11,165 filesbd976c4c4a3d first seen 2026-10-25 04:02 UTC, 11,165 filesc2e978a151e9 first seen 2026-10-24 20:07 UTC, 11,166 filesb96e75347920 first seen 2026-10-24 12:15 UTC, 11,168 files52a7273aa17c first seen 2026-10-24 04:20 UTC, 11,168 files4050a631c4e0 first seen 2026-10-23 21:15 UTC, 11,142 files13c908cb7cde first seen 2026-10-23 12:18 UTC, 11,143 filese91846ed183a first seen 2026-10-23 04:34 UTC, 11,143 filese1d77c723401 first seen 2026-10-22 21:47 UTC, 10,782 files3fcc6f86ff40 first seen 2026-10-22 14:00 UTC, 11,144 files958dd88f4627 first seen 2026-10-22 07:30 UTC, 11,144 filese2c6c10b5c95 first seen 2026-10-22 00:42 UTC, 11,145 files4be3842926a8 first seen 2026-10-21 20:43 UTC, 11,145 filescdc930461493 first seen 2026-10-21 13:38 UTC, 11,145 files357d033cb484 first seen 2026-10-21 06:42 UTC, 11,145 files686e237451f6 first seen 2026-10-20 23:54 UTC, 11,147 files641561919ee8 first seen 2026-10-20 20:25 UTC, 11,147 files891b6f99ed44 first seen 2026-10-20 13:21 UTC, 11,148 files58478a52487d first seen 2026-10-20 06:33 UTC, 11,148 files56a935c60418 first seen 2026-10-19 23:55 UTC, 11,150 files5bcb540f7c1b first seen 2026-10-19 20:30 UTC, 11,150 files48341c0b90a5 first seen 2026-10-19 12:30 UTC, 11,151 files84d951e0ac9c first seen 2026-10-19 04:17 UTC, 11,151 files01315d075fe9 first seen 2026-10-18 20:16 UTC, 11,151 files17f68b039166 first seen 2026-10-18 12:13 UTC, 11,151 filesd624eecf66aa first seen 2026-10-18 04:18 UTC, 11,151 filesd7fa32509a9c first seen 2026-10-17 20:23 UTC, 11,149 files402670fa7c55 first seen 2026-10-17 12:21 UTC, 11,151 filesd0774e315048 first seen 2026-10-17 04:28 UTC, 11,152 files524191ae599a first seen 2026-10-16 20:35 UTC, 11,152 files1621fee0ed24 first seen 2026-10-16 12:29 UTC, 11,152 files034d66ebf4c9 first seen 2026-10-16 04:38 UTC, 11,153 filescbd988691044 first seen 2026-10-15 21:20 UTC, 11,153 files2c253f4c2e30 first seen 2026-10-15 14:24 UTC, 11,153 files508b02eb0c2d first seen 2026-10-15 07:31 UTC, 11,153 files34310e06ad79 first seen 2026-10-15 00:23 UTC, 11,153 files60d275472126 first seen 2026-10-14 20:15 UTC, 11,153 files4d0c701b90a2 first seen 2026-10-14 12:14 UTC, 11,153 files5212aaea5d60 first seen 2026-10-14 04:14 UTC, 11,154 files0f8f846ae366 first seen 2026-10-13 20:13 UTC, 11,155 filesda5152727c80 first seen 2026-10-13 12:52 UTC, 11,155 files61e398ded180 first seen 2026-10-13 06:20 UTC, 11,154 filesbd2456ca797e first seen 2026-10-12 23:56 UTC, 11,128 files47b56f3e6633 first seen 2026-10-12 20:04 UTC, 11,128 filesfcb719c293c5 first seen 2026-10-12 11:55 UTC, 11,129 files254975fb865c first seen 2026-10-12 04:10 UTC, 11,129 filesac8933a49366 first seen 2026-10-11 20:08 UTC, 11,129 files135bf1655d27 first seen 2026-10-11 12:15 UTC, 11,129 filesa435fa5f0103 first seen 2026-10-11 04:06 UTC, 11,130 filesd0b21896afe2 first seen 2026-10-10 19:56 UTC, 11,130 files7ec83aab03a4 first seen 2026-10-10 12:42 UTC, 11,130 files462745e08ee5 first seen 2026-10-10 06:16 UTC, 11,130 files96f9e16422f2 first seen 2026-10-09 23:50 UTC, 11,130 files67f15346985e first seen 2026-10-09 20:06 UTC, 11,130 files15e885eb2b96 first seen 2026-10-09 13:09 UTC, 11,131 files5ca351cce68c first seen 2026-10-09 06:29 UTC, 11,131 files9544c9a320b7 first seen 2026-10-08 23:40 UTC, 11,131 files9435af2fb38b first seen 2026-10-08 12:18 UTC, 11,132 filese858268f1876 first seen 2026-10-08 05:38 UTC, 11,133 files12cde66f62bd first seen 2026-10-07 22:44 UTC, 11,134 files54a99a2a32ac first seen 2026-10-07 12:11 UTC, 11,136 files678d78db44db first seen 2026-10-07 04:33 UTC, 11,138 files8ccbcc6f0503 first seen 2026-10-06 21:37 UTC, 11,139 files3888bcf87887 first seen 2026-10-06 12:32 UTC, 11,140 files3dff7a5a78e2 first seen 2026-10-06 04:15 UTC, 11,142 files87bc92d4867f first seen 2026-10-05 20:29 UTC, 11,142 files0877e19ccfaa first seen 2026-10-05 12:27 UTC, 11,144 files61d3f6d919b2 first seen 2026-10-05 04:33 UTC, 11,146 files420190ff52e8 first seen 2026-10-04 20:24 UTC, 11,147 files2b7a759786ea first seen 2026-10-04 12:24 UTC, 11,148 files4d5bedd97809 first seen 2026-10-04 04:47 UTC, 11,148 files08 Oct15 Oct22 Oct01 Nov
The last 30 days, one block per cycle on a time axis. Green is complete and independently copied, grey is complete with the copy still pending, amber is complete but the independent copy failed, red is an incomplete pull, and a hollow block is a pull still running. Gaps in the spacing are the feed's own cadence. Each block links to its row. As of 2026-11-03 02:30 UTC.

Check it yourself

None of this is worth anything if you have to take my word for it. Three things you can run right now, for cycle 1df076d68cde:

  1. Fetch the independent copy of the file list and hash it. SHA-256 1df076d68cde9d0027d9303fa9ab463203386bf82d9de12473c47ab728b75744.
  2. Recompute which ten files were copied: int(sha256(root + ":" + k), 16) mod n for k from 0 to 9.
  3. Run ots verify root.txt.ots against a Bitcoin node: this root is in block 974314.

The full procedure, and what still needs the data release.

Data, licence and citation

ledger.json carries every cycle, its root, its attestation, its witness state and every scored summary, as the JSON the pages are built from. The globe's per-cycle pack is at the newest cycle's pack (5.3 MB). The full per-comparison rows, about 140,000 per cycle, are available on request.

Code is MIT and the repository is public, including the propagation and the scoring behind every figure here. Figures derived by this project are intended for CC BY 4.0. The raw SpaceX files carry no stated licence; a written request went to SpaceX on 31 August 2026 and had received no answer by 30 September 2026, the thirty days D06 allowed; the files are held as published and come down on request. Licence and citation in full.

Not here yet

64 days of archive is not a long record, and this page should not pretend otherwise. What is not running: