Skip to content
BENCHMARK · REAL TELEMETRY · HELD OUT

OPS-SAT-AD: Anomaly Detection on Real CubeSat Telemetry

A detection score means little without its protocol. These are Jantar’s detectors on ESA’s OPS-SAT-1 telemetry, fitted on the training split and scored on the test split. Every figure on this page is read from the scorecard of the release serving it.

THE DATA

What OPS-SAT-AD is

OPS-SAT-1 was ESA’s flying laboratory, a CubeSat for testing new ground and on-board software. OPS-SAT-AD is a public set of its attitude-sensor telemetry, with anomalies labelled by the people who operated it, published by KP Labs and ESA under a Creative Commons Attribution licence (paper, data).

It is real telemetry from one small spacecraft. It has no public FMECA, so it can test detection and refusal, never a cited root cause.

THE PROTOCOL

How the figures are measured

THE RESULTS

Detection on the test split

DetectorF-betaAffiliation F-betaFalse alarms per channel-day
Shape detector0.5730.5720.038
Graph detector0.5640.4340.002
ECOD (baseline)1.000 (degenerate: not a detection score)0.5190.000

Measured on real · OPSSAT-AD (ESA OPS-SAT-1, CC BY 4.0). Reported on a held-out split, never tuned on. mission=OPS-SAT-1 · channels=9 · labels=113 · eval=test, fit=train | OPSSAT-AD data is CC BY 4.0 (Zenodo DOI 10.5281/zenodo.12588359; Ruszczak, Kotowski, Evans, Nalepa, Scientific Data 2025, doi:10.1038/s41597-025-05035-3); attribution required. Evaluated on the public dataset — attribution is not endorsement.. Source: python -m jantar.eval detect (needs `make data`). Measured at commit 2bc4474. From this release’s scorecard.

Refusal on the same mission

Detection finds that something moved. Naming why needs the operator’s FMECA, which OPS-SAT-1 does not publish. So the right answer on every one of its anomalies is to decline. Anomalies investigated: 434/434. Declined, never a cause: 1.000. Fabricated causes: 0. Commands staged: 0. The run supplied no failure modes and made no model calls, and its anomalies are the operators’ labels, not Jantar’s detections: it measures refusal, not diagnosis.

Measured on real · OPSSAT-AD (ESA OPS-SAT-1, CC BY 4.0). graph=manifest-only (zero failure modes) · corpora=OPS-SAT-1. Source: make bench-refusal (needs `make data-opssat`). Measured at commit 2bc4474. From this release’s scorecard.

THE LIMIT

What these numbers do not say

We will walk through the harness and the result files with any operator who asks. To see an investigation decline for lack of evidence, try the interlock. For the method behind it, read how to investigate a satellite anomaly.