Skip to content

ILLUSTRATIVE · NASA / SVS · NOT ADITYA-L1 DATA

Evidence · traceability

From any conclusion back to the bytes

Six headline claims, each walked the whole way down — figure, metric, artifact, the code that read it, the commit, and the document that governs how it may be read.

What is this?

A chain of custody for every claim this platform makes, plus the full index of governed measurements with their JSON pointers and artifact digests.

Why should I trust it?

The index is a projection of the same measurement map the rest of the site renders from — not a second list kept in step by hand. A CI gate re-reads the artifacts and fails the build if any rendered value drifts from its source.

Where can I verify it?

The method

What a chain of custody looks like here

  1. 1

    Claim

    A sentence someone might dispute.

    the thing to check

  2. 2

    Figure

    Where it is shown, and in what form.

    a page and an anchor

  3. 3

    Metric

    The named quantity behind the figure.

    a definition

  4. 4

    Artifact

    The committed JSON the value was read from.

    a file path

  5. 5

    Source file

    The code that read it. No number is typed by hand.

    a derivation

  6. 6

    Commit

    The digest of the exact bytes, at a known commit.

    immutability

  7. 7

    Documentation

    The written record that governs the interpretation.

    context

Stage 4 is the load-bearing one. Everything upstream is navigation; everything downstream is context. The artifact is where the argument stops being a story about the evidence and becomes the evidence.

The claims

Six chains, walked

Including the two that constrain this project's own result.

01

A threshold on the SoLEXS count rate detects as many flares as any model tried.

Figure
Confidence-interval comparison, every model against the thresholdFindings — the verdict →
Metric
Event recall, threshold detector, M/X nowcast0.927 (76 of 82 events)
Artifact
artifacts/v2/ml/benchmark_results.json
Source file
web/scripts/derive.py
Commit
99af630Digest checked by the evidence gate

02

Machine learning ranks individual minutes better than the threshold does.

Figure
Precision–recall curve, LightGBM against the thresholdValidation — ranking →
Metric
PR-AUC, minute level, M/X nowcast0.707 vs 0.486
Artifact
artifacts/v2/ml/benchmark_predictions.json
Source file
web/scripts/derive_metrics.py
Commit
99af630Derived at build time; artifact digest recorded

03

But it raises far more false alarms, which is why it is not recommended.

Figure
Recall against alarm burden across the threshold sweepValidation — the trade-off →
Metric
False alarm runs at the operating point79 vs 15
Artifact
artifacts/v2/ml/benchmark_results.json
Source file
web/scripts/derive.py
Commit
99af630Derived at build time; artifact digest recorded

04

Extra spectral resolution adds nothing measurable — a confirmed null.

Metric
Δ ROC-AUC from added spectral bands+0.0033
Artifact
artifacts/v2/ml/ablation_results.json
Source file
web/scripts/derive.py
Commit
99af630Derived at build time; artifact digest recorded

05

The dataset is frozen and every file in it is digest-addressed.

Figure
Table inventory with per-table hashesBuild — per-table digests →
Metric
Parquet files in the freeze1,985
Artifact
artifacts/v2/phase05/freeze_manifest.json
Source file
web/scripts/derive.py
Commit
99af630Digest checked by the evidence gate
Documentation
Dataset card →

06

A rebuild of the dataset lands on byte-identical output.

Figure
Determinism metric cardsReproducibility — determinism →
Metric
Byte-identical comparisons, 12-day sample24 of 24
Artifact
artifacts/v2/phase05/reproducibility_check.json
Source file
web/scripts/derive.py
Commit
99af630Derived at build time; artifact digest recorded

Two kinds of link, distinguished. Chains marked checked by the evidence gate use a value from the governed measurement set: the CI gate re-reads the artifact and compares it against the rendered HTML, so drift fails the build. The others are derived at build time by a named script from a named artifact — reproducible, but not byte-compared against the page. The distinction is printed rather than smoothed over, because a uniform green tick across both would be a claim this platform has not earned.


The governed set

6 measurements, 2 artifacts

Every quantity in the set that the evidence gate enforces, with the pointer and the digest of the bytes it was read from.

MeasurementValueArtifact · pointerDigest · commit
Threshold nowcast event recalln = 820.9268CI 0.875–0.976artifacts/v2/ml/benchmark_results.json/M~1X NOWCAST/results/threshold_rate/event/event_recall3a1d425e7cb29bf9…commit 99af630
Threshold nowcast ROC-AUC0.9539CI 0.940–0.966artifacts/v2/ml/benchmark_results.json/M~1X NOWCAST/results/threshold_rate/minute/roc_auc3a1d425e7cb29bf9…commit 99af630
Parquet files1985artifacts/v2/phase05/freeze_manifest.json/identity/n_parquet_files5aaab68db13d7108…commit 99af630
Dataset size596917461artifacts/v2/phase05/freeze_manifest.json/identity/total_bytes5aaab68db13d7108…commit 99af630
SoLEXS observation days424artifacts/v2/phase05/freeze_manifest.json/tables/T1/n_files5aaab68db13d7108…commit 99af630
HEL1OS housekeeping orbits389artifacts/v2/phase05/freeze_manifest.json/tables/T4/n_files5aaab68db13d7108…commit 99af630

The scope of this set, stated plainly. It covers the quantities rendered through the measurement API — the figures a reader meets first, on the pages that make claims. It does not yet cover every number on every documentation surface; tables carried verbatim from frozen reports are reproduced as written and traced to the report rather than to a pointer. Growing the governed set is work that remains, and it is described here rather than implied away.


How it is enforced

The evidence gate

Traceability that depends on a person keeping two things in step is not traceability. So the binding is mechanical in both directions.

On the way in: a component that displays a measured quantity takes a measurement key, not a number. There is deliberately no value prop — a caller cannot pass a figure, so a figure cannot reach a page without existing in an artifact first.

On the way out: each rendered value is marked in the HTML with the key it came from. After the build, pnpm budget re-reads the artifacts from disk, resolves each pointer, and compares the result against what is actually in the markup. A drifted figure fails the build rather than shipping.

Run it yourself

pnpm --dir web build
pnpm --dir web budget

The same command CI runs on every push to main. Change a digit in any artifact and the build stops.