Run 09 · Live Intelligence · field test
Asteroids: a countdown only as precise as JPL is sure
We read JPL's close-approach and fireball tables through the desk's relay, fed the relay bad numbers, and compared the desk with JPL's CNEOS table and ESA's NEOCC list.
Brief
What it is, and who it is for
Asteroids lists every known object passing within 0.05 au of Earth — about 19.5 lunar distances — over the coming weeks, from JPL's close-approach table, with a live countdown to each closest approach in the reader's own time zone, the miss distance in lunar distances, speed and absolute magnitude. Below it, JPL's fireball log is drawn on a world map.
It is for anyone who hears that an asteroid will 'pass close' and wants to know how close, when in their own time, and how sure that time is.
Wiring
Where the work happens
JPL's APIs send no CORS header, so both tables pass through jpl-proxy.php. It has one hard-coded host and two routes, and validates every number before building JPL's query: distance in (0, 0.2] au, 1–365 days, 1–100 fireballs. Answers are cached ten minutes for approaches and thirty for fireballs, because JPL asks not to be polled. The page converts au to lunar distances at 384,400 km, formats times with Intl in your zone, ticks every second and re-reads every minute while visible. The map outlines are Natural Earth polygons shipped with the page.
Sources it reads
- NASA JPL Solar System Dynamics close-approach API (
cad.api) and fireball API — through the relay. - Natural Earth country outlines, shipped in world.js.
Run table
The run, row by row
| # | Time | Probe | Returned |
|---|---|---|---|
| 01 | Loaded /asteroids/ from the local copy | HTTP 200, 54,317 bytes. | |
| 02 | Relay: approaches inside 0.05 au, next 60 days | HTTP 200 in 0.002 s (cache hit). 33 objects. Next: 2026 RN15, 27 Sep 21:15 TDB, 8.32 LD, ±00:03, 6.47 km/s. Closest: 2025 UK9, 31 Oct, 0.82 LD, ±01:00. Two inside 1 LD; six inside 5 LD. | |
| 03 | Relay: fireballs, limit 30 | HTTP 200, 2,398 bytes; 30 events, the newest on 15 Sep 2026 at 11:26:13. | |
| 04 | Relay: dist=0.5, then feed=sbdb | Both HTTP 400 with the validation message; nothing sent to JPL. | |
| 05 | Read CNEOS Close Approachesrival page | 1900 to 2200; filters including diameter; a Rarity metric; a viewer; CSV and Excel. | |
| 06 | Read ESA NEOCC close approachesrival page | Windows from 7 days up; UTC dates; km, au and LD; diameter in metres; a Close Approach Index; TXT, XLS, CSV. |
Findings
The lengths it goes to
- The countdown's precision follows JPL's 3-sigma time uncertainty for each object: seconds only when JPL is sure within the hour, minutes within a day, days and hours otherwise. The uncertainty is printed beside it.evidence · app.js 20–25, 93–100, 268–284
- Units are declared and consistent: one lunar distance is 384,400 km, the value CNEOS uses, so 0.05 au is 19.46 LD; the au figure stays a hover away.evidence · app.js 13–18, 31–32, 188–190
- The relay validates before it fetches and caches so JPL is not polled; our out-of-range requests never reached JPL.evidence · jpl-proxy.php 10–23, 49–70; run row 04
- Nothing is ranked or scored. Rows keep JPL's order, with quick filters for inside 1 and 5 lunar distances.evidence · app.js 42, 196–200, 233–246
- Times are shown in your own zone, and the zone is named on the page.evidence · app.js 56, 206
Against the field
Set beside 2 rivals
CNEOS Close Approaches (NASA JPL)
JPL's own human-facing close-approach table — the same data the desk reads.
Where it is ahead
- Three centuries of approaches, past and future, with diameter estimates and rarity.
- CSV and Excel downloads and a trajectory viewer.
Where Asteroids goes further
- A live countdown in your zone whose precision is set by JPL's uncertainty.
- Lunar distances with 1 and 5 LD filters, and the fireball map on the same page.
ESA NEOCC — Close approaches
The European Space Agency's list of forthcoming and recent close approaches.
Where it is ahead
- Estimated diameter in metres and maximum brightness for observers.
- Recent approaches too, and three download formats.
- A Close Approach Index saying how unusual a pass is.
Where Asteroids goes further
- Your own time with a ticking countdown, where ESA gives UTC.
- JPL's uncertainty printed and governing how precise the countdown claims to be.
Faults
Where it falls short
- No size in metres. The desk shows absolute magnitude only and does not request the diameter the CAD API can return where known.
- A time-scale slip: JPL gives close-approach times in TDB, but the parser treats them as UTC (app.js 86–91). TDB runs about 69 seconds ahead, so each countdown ends about 69 seconds late — inside most stated uncertainties, beyond the precision shown when JPL's is a minute or less.
- No downloads, where CNEOS offers CSV and Excel and ESA three formats.
- Future only, and at most 365 days ahead; CNEOS covers 1900 to 2200.
- No rarity or significance context and no trajectory viewer.
Sign-off
Log closed at
- Held up
- Both tables answered, the relay refused out-of-range requests, and the precision rule is sound.
- Fell short
- The TDB-as-UTC slip undercuts the precision it is proud of; no sizes.
- Reach for it when
- You want to know when the next close pass happens in your own time, and how sure JPL is.
- Look elsewhere when
- You need sizes, history or downloads — CNEOS or ESA NEOCC.