Manuscript figure files (prepared for submission; no journal upload performed here)

Main figures: Figure1_cohort_flow; Figure2_increment_and_error_coverage; Figure3_external_calibration.
Supplementary figures: FigureS1_historical_information_age; FigureS2_hospital_differences.
All figures are 7.2 inches wide, supplied as 300 dpi PNG and vector PDF/SVG, with embedded PDF fonts and no embedded raster images in SVG. captions_en.txt supplies titles and legends separately, for entry in the submission system. Individual files are below 10 MB. Final production sizing remains subject to the journal.

Figure 1 is a newly drawn cohort diagram using descriptives/cohort_flow_exact.csv. It reports inclusion stages, not synthetic patient-level exclusion differences. Figure 2 is redrawn from frozen performance summaries. The only new prediction-table operation derives selected patient counts and verifies previously reported selected-pair counts/errors at the existing threshold grid; no model, threshold or performance metric is changed. Figure 3 and supplementary figures reproduce original frozen renderings unchanged, with new manuscript filenames.

Sparse nonempty selections (<30 pairs OR <20 patients) in Figure 2 are hollow and disconnected. All 101 thresholds for each of P/B/C remain in Figure2_error_coverage_source_with_denominators.csv, including zero-selection rows with undefined error. Counts printed beneath the panel are pairs/patients, not confidence bounds. Curves are descriptive external evaluation, not external threshold selection.

Reproducibility in the original workspace:
1. Run work/oxygen_manuscript/figures/build_figures.py with the bundled Python; it reads the existing frozen outputs and descriptive table, builds PNG previews, copies unchanged figures and writes captions/source metadata.
2. Inspect the rendered PNG files and the grayscale previews saved under work/oxygen_manuscript/figures/.
3. Run the same script with --export to write vector versions of the two newly drawn figures after visual inspection.
The script adds the existing work/oxygen_formal/vendor directory to the import path and sets MPLCONFIGDIR under work/. No model fitting is invoked. These instructions depend on the licensed local source-derived files remaining available; patient-level predictions are not included in this public-facing figure folder.

figure_checks_v4.json records V4 byte-for-byte equality of all 15 inherited exports and agreement of all five legends with the current manuscript and supplement. Prior rendering and graphical checks are inherited; figures were not regenerated or newly analysed in V4. The sparse-set denominator table remains unchanged. No clinical validation is implied.

Author guidance checked 7 October 2026: https://link.springer.com/journal/13054/submission-guidelines

Finalisation, 8 October 2026: all 15 inherited PDF/PNG/SVG exports were copied byte-for-byte from V4. Figures were not redrawn or statistically reanalysed. Legends in the final main manuscript and supplement are unchanged. V4 graphical checks above remain historical provenance, not a new generation step.
