A pathology AI model that reports 94% accuracy on a held-out dataset looks impressive in a paper. It looks very different once you disaggregate that number by scanner vendor, laboratory, stain protocol, and patient age. We have learned to mistrust any single headline metric and have built the entire evaluation pipeline around disaggregated, per-subgroup performance.
Where bias actually lives
In pathology, the main sources of distributional drift are not what public debate suggests. They are, in order of real-world magnitude: scanner hardware differences, stain protocol differences between laboratories, and preanalytic variables such as fixation time. Demographic effects exist and matter, but they are typically dwarfed by these upstream technical factors.
- Scanner vendor shifts colour calibration and sharpness profiles.
- Stain protocol drift changes the dynamic range of the same marker across weeks.
- Fixation time variations shift morphology, especially on edges of tissue.
How we measure
Our validation harness partitions the held-out set along every known axis and reports model performance per partition. We block release of any model whose worst-subgroup sensitivity falls more than five percentage points below the global mean, regardless of how high that global mean is.
If your best model quietly underperforms on a subgroup that makes up 8% of your cases, you do not have a clinical-grade model. You have a lucky benchmark.
This is slower than optimizing for a single accuracy number, and it is the main reason our release cadence is measured rather than continuous. We think that tradeoff is the right one for a tool that lives next to a pathologist during case review.




