Interactive evidence · Synthetic data only

Data quality changes the model story.

A small, inspectable experiment showing why missingness, noise, imbalance and drift must be treated as part of model evaluation—not as cleanup after the result.

Demonstration boundaryNo uploads, patient data, proprietary data, diagnosis or medical recommendation. Every result comes from one deterministic synthetic operational signal.
  1. 01Inspect a clean baseline
  2. 02Introduce one quality problem
  3. 03Detect what changed
  4. 04Apply a declared remediation
  5. 05Compare coverage and evaluation
01

Choose a quality problem

Problem
Moderate
02

Inspect the signal

Synthetic time-series signalThe clean synthetic reference and the current clean baseline observation across 336 hourly samples. A vertical line separates calibration from held-out evaluation.Calibration · 224 hHeld out · 112 h
  • Clean reference
Synthetic operational signal only. The chart is supplementary; equivalent values and comparisons appear in the tables below.
Baseline reading

No quality rule is triggered.

All 336 samples are present. The detector scores 0.911 accuracy on the untouched held-out window.

03

Compare the evidence

Coverage and model metrics are intentionally separated. When both states are available, the paired table scores them on the same held-out samples so cohort changes cannot masquerade as improvement.

Quality diagnostics

Diagnostic values for each visible pipeline state.
MeasureClean
Completeness100.0%
Outlier rate0.0%
Level shift-0.34
Calibration event share17.9%
Held-out coverage112 / 112

Detector evaluation

Full-state results. Coverage can differ, so use the paired table for like-for-like change.
MeasureClean
Accuracy0.911
Balanced accuracy0.762
Precision1.000
Recall0.524
F10.688
Confusion countsTP 11 · FP 0 · FN 10 · TN 91
04

Assumptions and provenance

What is generated

336 hourly samples across 14 days, with daily and weekly seasonality, nine fixed event excursions and seeded Gaussian noise with standard deviation 0.9. Seed 20260721 makes every run reproducible.

How it is evaluated

The first 224 hours fit a threshold detector. The remaining 112 hours are held out for evaluation against untouched synthetic labels. Results are descriptive, not evidence of clinical or operational validity.

Read the scenario definitions

Missing values

Corruption
Seeded block gaps (2–7 samples each) delete roughly 10%, 22% or 38% of the record depending on severity.
Detection
Completeness — defined samples divided by total samples; flagged below 99%.
Remediation
Bounded linear interpolation: gaps of at most five samples are filled from their surviving neighbours; longer gaps stay missing.
Limitation
Offline interpolation reads the sample after each gap — future information that a live system would not have. Interpolation recovers coverage, not information: paired before/after comparisons are made on the samples evaluable in both states.

Spike noise

Corruption
Seeded spikes hit roughly 3%, 6% or 10% of samples with magnitudes near 9–15 units, mostly upward.
Detection
Outlier rate — share of samples whose residual against the median of their four nearest neighbours exceeds 6 robust standard deviations (1.4826 × median absolute residual); flagged above 1%.
Remediation
A centred rolling median (window of five samples) replaces every value, suppressing isolated spikes.
Limitation
The smoother also blunts genuine event onsets, so recall can fall even as precision recovers.

Class imbalance

Corruption
A seeded draw discards 55%, 75% or 88% of event-labelled calibration samples; the held-out window is untouched.
Detection
Calibration event share — flagged when events fall below 12% of kept calibration samples (about 18% is expected).
Remediation
The discarded samples are not restored — they are gone. The remediation is a fitting-objective recalibration: the threshold is re-fitted on the same thinned data to maximise balanced accuracy instead of accuracy.
Limitation
This is a decision-rule change, not a data repair. Changing the objective trades overall accuracy for event recall — the comparison is shown honestly either way.

Distribution drift

Corruption
A constant shift of 2.4, 3.6 or 5.0 units is added to every held-out sample, as if the sensor were re-mounted mid-record.
Detection
Level shift — median of held-out observations minus median of calibration observations; flagged beyond ±0.75 units.
Remediation
Seasonal-naïve correction: each held-out observation is compared with the calibration observation exactly one weekly cycle (168 hours) earlier; the median of those paired differences is the estimated shift, subtracted from the held-out window.
Limitation
Offline method with disclosed leakage: estimating the shift reads the whole held-out window — future information a live system would lack. The calibration-only seasonal reference preserves the record's natural temporal structure, but the estimate carries residual noise and assumes one constant additive shift with stable weekly seasonality, so the result is an approximate correction, not unbiased recovery of the injected shift.
Read the metric and implementation notes

Accuracy is correct predictions divided by evaluated samples. Balanced accuracy averages event recall and non-event recall. Precision, recall and F1 are shown with confusion counts; a zero denominator is reported as undefined rather than zero.

  • Missing runs of at most 5 samples use bounded linear interpolation.
  • Spike remediation uses a centred rolling median of 5 samples.
  • Imbalance remediation changes the fitting objective; it does not recreate discarded samples.
  • Drift correction is offline and reads the held-out window, so it contains disclosed future-information leakage.

From demonstration to delivery

Evidence should make a system easier to question.

This lab is intentionally small. The same habits—explicit data boundaries, comparable evaluation, reproducible logic and visible limitations—shape the larger systems in the portfolio.