Skip to content

The report

One JSON file per configuration per test site. It is the unit the gate compares and the unit the leaderboard prints, so it carries everything needed to decide whether a change was an improvement, plus the provenance needed to know whether the comparison is even legitimate.

{
  "prodrome_version": "0.1.0",
  "config_name": "default",
  "config_hash": "9169351c8f363d78",
  "corpus_sha256": "ef46d3e6ec2497f7...",
  "split_seed": 7,
  "train_sites": ["A"],
  "test_site": "B",
  "split": "test",
  "n_patients": 20000,
  "n_hours": 761995,
  "n_septic_patients": 1142,
  "utility": {...}, "discrimination": {...}, "timing": {...},
  "calibration": {...}, "operational": {...}, "guarantee": {...},
  "subgroups": [...], "notes": {...}
}

Provenance

Field Why it is there
corpus_sha256 the gate refuses to compare reports that disagree on it
split_seed two seeds scored different patients
train_sites, test_site external is derived from them, and that is the result that counts
config_hash covers only fields that change a number, so a rename is not a new experiment
notes.environment system, architecture, Python, CPU count; timings only compare within one kind of machine

utility

The challenge score, plus the four totals it normalises, because the ratio hides how much of the ceiling was reachable and a report that cannot show its working is one nobody can check.

Field Meaning
normalized 1 is alerting through the whole beneficial window, 0 is never alerting
observed, best, inaction, worst the raw totals

A negative normalised score means the alerts cost more than they were worth.

timing

Two detection rates, and the gap between them is the honest part.

Field Meaning
detection_rate septic stays ever alerted at or before the late cutoff. Generous: on a long stay this can be an alarm that fired two days early
detection_rate_in_window alerted inside the window the utility score rewards. Strict, and the one to quote
lead_time_median_h, _q25_h, _q75_h measured from the recorded clinical onset, which sits six hours after the label turns on

On the measured data the two rates differ by a factor of three.

operational

What the ward experiences.

Field Meaning
alerts_per_patient_day rising edges, not alerting hours: a ward sees one alarm and then a flagged patient
share_patients_alerted how much of the unit gets flagged at all
precision_among_alerted_patients the quantity the guarantee bounds

guarantee

Field Meaning
stated the promise in one sentence
attainable false means no threshold could be certified, so the system alerts on nothing
precision_held, budget_held whether it survived on these patients. Both null when nothing was alerted, because a vacuous true would be a lie

notes.threshold_source

calibrated, or alerts on nothing (no threshold could be certified).

Where they live

reports/<config>-site<X>-<timestamp>.json and reports/latest/<config>-site<X>.json. The site is part of the name, so two sites of one configuration cannot overwrite each other's baseline. The timestamped ones are git-ignored and the latest ones are committed, so the repository carries the history of quality without carrying every run.