Pipeline
Four stages, and the checks between them
The stages
Each is re-runnable and verifies its own work. A stage that cannot prove what it did raises rather than printing a warning nobody reads.
Nothing is silently dropped
For every table, rows must equal rows plus rows. The pipeline asserts this on every run and stops when it fails — which is what turns the claim into a property somebody can check.
The six checks
Each check cleans one failure mode, and each has a real operational cause — knowing the cause is the difference between “duplicate rows” and “an interface replayed the message”, which is what tells you whether to fix the data or the interface. Every row a check catches is quarantined with its reason attached, never dropped.
Quarantine
223 rows held back, 4 distinct reasons. Showing the rows is the argument — a count would be the claim, not the evidence. Somebody will eventually ask why a patient is missing from a report, and this is how that gets answered.
Suspected duplicate patients
These records look like the same human registered twice. Nothing downstream merges them, and both patients continue to exist separately in Silver. That restraint is a choice, not a missing feature — a wrong merge combines two people's medication lists, which is a patient safety event rather than a data bug.
The range nearly threw away 951 good results
The plausibility check needs a floor. Picking one by eye would have made the check itself the biggest source of error on the page.

One correction, in full
Not every bad value is thrown away. An is a percentage, so 250 is impossible — but blood glucose in mg/dL lands there routinely, which makes this a unit error rather than nonsense.