SnapCosmos Night Engine v1.0 · Validation

Night Engine accuracy

We publish how often the engine is right, and where it is not. Current run: 85% agreement across 600 scored location-nights, with 16 opposite calls.

Overall agreement
85%
Locations
102
Countries
58
Last run
2026-07-30

By observing goal

Each goal uses a different weighting profile, so each is validated separately. Tolerance setting: Mostly clear.

  • ISS passes99%

    101/102 nights · 0 opposite calls · The easiest case: pass geometry is deterministic and only cloud can spoil it.

  • Planets97%

    99/102 nights · 1 opposite call · Bright targets tolerate moonlight and thin cloud, so the two methods rarely diverge.

  • Moon92%

    94/102 nights · 2 opposite calls · Disagreements cluster on nights with broken cloud, where 'worth it' is genuinely a judgement call.

  • Astrophotography78%

    70/90 nights · 2 opposite calls · Most disagreements are WAIT vs GO on mediocre nights early in a week that improves later.

  • Milky Way75%

    77/102 nights · 4 opposite calls · The engine is stricter about a risen Moon than the baseline, which costs agreement around first and last quarter.

  • Meteor showers66%

    67/102 nights · 7 opposite calls · The weakest domain, and we know why: the engine does not yet score radiant altitude or shower activity (ZHR). That is the next fix, not a threshold tweak.

Method

How this is measured

One honest sentence first: this is agreement with a baseline, not a measurement against observed sky.

For every location the harness fetches a live seven-night hourly forecast, computes hours of astronomical darkness and Moon geometry with the same ephemeris the site uses, and runs the production scoring code — not a copy of it. The resulting recommendation (go, wait or skip) is compared with a baseline that sees only raw numbers: A rule-based expert baseline computed from raw cloud cover, Moon illumination weighted by how long the Moon is above the horizon, and hours of astronomical darkness — with no access to the engine's weighting.

Disagreements are classified. Go versus wait is a soft disagreement — two defensible readings of a mediocre night. Go versus skip is a hard disagreement, the only class that would actually send someone outside for nothing, and it is reported separately for every goal above.

What this does not prove: that the sky was in fact clear. Verifying against observed conditions requires post-hoc satellite cloud data, and that is the next step for this page rather than something we claim today.

Open items

What we are fixing next

Known gaps, in priority order
GapEffectStatus
Radiant altitude and ZHR for meteor showersMeteor agreement stuck at 66%Next engine change
Post-hoc verification against satellite cloud observationsTurns agreement into true accuracyPlanned
Atmospheric transparency and aerosol loadMilky Way nights can score well and still look milkyNo public data source yet
Local terrain and coastal fogBelow weather-model grid resolutionMitigated by the drive suggestion

Related

Keep reading