Space domain awareness / Unclassified demonstrator

OVERWATCH.

Evidence-gated alerts for the space domain. Overwatch screens the full public catalog, counts corroboration by collection lineage instead of by feed, and keeps attribution locked until separate sourcing and a named human open it. Running now on public data, no account needed.

Open demonstrator →
Evidence-gated alertsLineage-counted corroborationAttribution lockedSTIX 2.1 + CCSDS OMMPublic data
Overwatch operator view: alert queue, propagated catalog globe, and the dossier for alert OP-0002, a four-object co-location cluster. Committed snapshot of 2026-09-23 on public CelesTrak data.

The costly failure is false confidence.

The failure that costs the most in space domain awareness is not a missed detection. It is a confident answer that nothing underneath it justifies.


Two habits manufacture it. Mirrors and derived products of one observation get counted as independent confirmation: eight public catalog feeds all trace back to the same 18th Space Defense Squadron catalog, so they corroborate once, not eight times. And attribution gets inferred from geometry, published as a score, and consumed downstream as fact. Overwatch is built to refuse both.

  • G1 · What happened? Objects, geometry and time of closest approach, with a receipt naming the source record and its lineage.
  • G2 · Who else observed it? Only an independent collection lineage counts. Feeds that restate the same catalog do not count twice.
  • G3 · Where did it come from? Checked against declared launches in the launch registry.
  • G4 · Could it be natural? Space weather and solar event lanes are read whenever there is an unexplained orbit change to account for.
  • G5 · Who did it, and why? Locked on every alert. It opens only on separately sourced intelligence plus a named human approval. Never by geometry, never by a score.
Why an analyst can trust it

Corroboration by lineage

22 public sources in 8 collection lineages. Every payload is hash-verified before use and carries its source, retrieval time and lineage from ingest to export. The count that matters is 8.

No answer beats a guess

A gate that cannot be answered returns NO ANSWER. Alerts on degraded data are marked and ranked lower, never hidden: 15 of 242 carry that marking in the current snapshot.

Confidence you can argue with

Confidence is a visible sum of named factors, so an analyst can dispute one factor rather than the whole system. Element age is shown on every object in every alert.

AI as a source, not an authority

Generative analysis writes into bounded slots, carries its own receipts, and never counts toward corroboration. No model can reach a gate, a score or the attribution lock. Switch it off and the system is still whole.

Open formats out

Alerts export as STIX 2.1 bundles with TLP:CLEAR marking, element sets as CCSDS OMM, over a read-only HTTP API. Every alert is marked human-review-required until a person signs off.

Limits stated plainly

Overwatch works on resolved tracks from an upstream catalog. It does not perform orbit determination, ingest imagery, radar or classified reporting, or detect boost-phase launches. The demonstrator runs a committed snapshot, not a live feed.

Measured on the committed snapshot
19,299
Objects screened with SGP4
242
Gated alerts from 69,778 close approaches
258 ms
Median arrival to queryable alert, one CPU core

SEE THE
RECEIPTS.

Overwatch runs unclassified on public data at overwatch.agent9.dev. Select any alert to see each gate, how confidence was scored, and where every record came from. For a technical briefing or an evaluation on your own sources, talk to us.

Start the Conversation →