Skip to content

Group-Stratified Validation

Reporting protocol — instantiates Shortcut-Reliance Mitigation

Reports performance broken out by subgroup, source, instrument, and annotator, so a healthy-looking aggregate can't hide the slice where the shortcut has quietly failed.

A pooled accuracy number is an average, and an average can be strong while a whole subpopulation is being failed. Group-Stratified Validation refuses the pooled number and reports the metric disaggregated — by demographic subgroup, data source, acquisition instrument, annotator, or usage context — so that a slice where the shortcut has stopped working shows up instead of being averaged away. Its defining move is neither perturbing the input nor building a new distribution; it is cutting the evaluation you already have along the axes where a cue's validity is likely to differ, and watching especially the slices that track protected or sensitive attributes. Where a stress test asks "does it survive a different world," this asks "for whom, and from which source, is it already failing in this world." The output is a slice matrix plus a register of the disparities that carry proxy risk.

Example

A voice assistant's speech-to-text scores an illustrative aggregate word-error-rate of ≈7%, which reads as production-ready. Stratified by accent group, the picture changes: ≈5% for the speakers who dominate the training corpus, but ≈16% for one regional and one second-language accent group. The task never changed — the words are the same words — so the model has learned acoustic features entangled with the majority accent rather than the language itself. Because accent here correlates with national origin, that gap is not only a quality defect but a proxy-risk one, and it goes into the register as such: a documented disparity, tied to a sensitive attribute, that any acceptance decision must now confront rather than discover after launch. The protocol does not tell them which acoustic cue is at fault — that is an ablation's job — only that the aggregate was hiding a group the model does not serve.

How it works

What distinguishes it is that the finding lives in the structure of the report, not in any single score. Strata are defined up front — the subgroups, sources, instruments, and annotators along which shortcut validity plausibly varies — and the metric is computed and displayed per cell rather than pooled. Cells are compared against each other and against the aggregate; a slice that lags materially is flagged. Slices that track protected or sensitive attributes are routed into the proxy risk register with the size and direction of the gap, so a disparity is recorded as a governed risk rather than a footnote. The protocol's whole leverage is choosing the cuts before seeing the results, so the disaggregation cannot be quietly tuned to look flat.

Tuning parameters

  • Stratification axes — which variables you cut on (subgroup, source, device, annotator, context). Too few and a real disparity hides in an uncut dimension; too many and every slice is underpowered.
  • Minimum slice size — the sample floor below which a cell is reported as uncertain rather than as a finding. Set it low and noise masquerades as disparity; set it high and small vulnerable groups vanish.
  • Intersectional depth — single-attribute slices versus crossed ones (e.g. source × subgroup). Crossing catches compound failures but shrinks each cell.
  • Slice metric — the same metric everywhere, or a slice-appropriate one where base rates differ. Uniformity compares cleanly; base-rate awareness compares fairly.
  • Disparity threshold — how large a gap between slices trips a flag into the register. This dial sets what counts as "a group we are failing."

When it helps, and when it misleads

Its strength is defeating the specific illusion that an aggregate creates: a pooled metric can look excellent while reversing inside subgroups, and only disaggregation exposes it.[1] It is also the mechanism that turns a fairness worry into a concrete, sized, registered risk rather than an abstract concern.

It misleads in two opposite ways. Underpowered slices produce noisy estimates that get mistaken for real disparities, inviting fixes to gaps that are sampling artifacts. And it can only report on the cuts you chose to make — a disparity along an unexamined axis stays invisible, so a clean stratified report is not a clean bill of health. The classic misuse is to pick the stratification that makes the gaps disappear and present it as due diligence. The discipline is to pre-register the strata from the proxy risk register, enforce a minimum-power floor, and report intervals so that "no disparity" and "too few samples to tell" are never confused.

How it implements the components

Group-Stratified Validation realizes the who-and-from-where side of the archetype — surfacing the slices a shortcut has abandoned:

  • slice_and_context_holdout_matrix — it is the slice half of this matrix: the grid of subgroup / source / annotator cells the metric is reported across, cell by cell rather than pooled.
  • protected_proxy_risk_register — disparities that track sensitive attributes are logged here with their size and direction, converting a hidden gap into a governed, revisitable risk.

It does not build the shifted operating environments or the ship gate — that context half of the matrix and the robustness_acceptance_gate are Domain-Shift Stress Test's — it does not measure how much the model leans on a named cue (Feature Ablation or Occlusion Test's shortcut_reliance_score), and it repairs nothing (that is Hard-Negative Data Augmentation).

Notes

Disaggregation localizes where a shortcut has failed but is silent on why — a lagging slice names a population, not a cue. It pairs with a feature ablation, which names the mechanism behind the gap, and hands the sized disparity to the model card so the limitation ships documented rather than discovered.

References

[1] Simpson's paradox — a trend that holds in the pooled data can reverse within every subgroup, or vice versa — is the formal reason an aggregate metric can certify a model that is failing specific groups. Reporting per stratum is the standard guard against it.