See what changed

Synthetic example. 400 generated cases illustrate a hidden regression. No real model was evaluated.

The average doesn't tell
the whole story.

An auditable look at two evaluation runs. Find the groups that slipped, inspect the cases behind them, and make the next release with evidence.

Baseline80.0%baseline.csv
Candidate85.0%candidate.csv
Pass-rate change+5.0 pp
Overall Holm p: 1.0000 improved
Gate failed1 evaluation group met all regression criteria.Overall + declared slices
Paired cases
400

Matched by case ID

Wins
32

Baseline fail → candidate pass

Losses
12

Baseline pass → candidate fail

Unchanged
356

308 both pass · 48 both fail

Mean cost / case
$0.0040$0.0030
-0.0010 USD candidate minus baseline
Mean latency / case
847.5 ms661.5 ms
-186.0 ms candidate minus baseline
02

Follow the evidence.

5 declared groups

Each declared slice shows its paired change. Statistical support keeps small groups visible without turning every fluctuation into an alarm.

1 regression0 watch3 improved1 stable0 insufficient
03

Every case has a story.

Start with losses, compare the notes, then look at the wins. Export includes every case matching your filters, across all pages.

Case / slicesBaselineCandidateOutcome
en-001language: en, task: retrievalPassSynthetic benchmark casePassSynthetic benchmark caseBoth pass
en-002language: en, task: reasoningPassSynthetic benchmark casePassSynthetic benchmark caseBoth pass
en-003language: en, task: retrievalPassSynthetic benchmark casePassSynthetic benchmark caseBoth pass
en-004language: en, task: reasoningPassSynthetic benchmark casePassSynthetic benchmark caseBoth pass
en-005language: en, task: retrievalPassSynthetic benchmark casePassSynthetic benchmark caseBoth pass
en-006language: en, task: reasoningPassSynthetic benchmark casePassSynthetic benchmark caseBoth pass
en-007language: en, task: retrievalPassSynthetic benchmark casePassSynthetic benchmark caseBoth pass
en-008language: en, task: reasoningPassSynthetic benchmark casePassSynthetic benchmark caseBoth pass
en-009language: en, task: retrievalPassSynthetic benchmark casePassSynthetic benchmark caseBoth pass
en-010language: en, task: reasoningPassSynthetic benchmark casePassSynthetic benchmark caseBoth pass
en-011language: en, task: retrievalPassSynthetic benchmark casePassSynthetic benchmark caseBoth pass
en-012language: en, task: reasoningPassSynthetic benchmark casePassSynthetic benchmark caseBoth pass
en-013language: en, task: retrievalPassSynthetic benchmark casePassSynthetic benchmark caseBoth pass
en-014language: en, task: reasoningPassSynthetic benchmark casePassSynthetic benchmark caseBoth pass
en-015language: en, task: retrievalPassSynthetic benchmark casePassSynthetic benchmark caseBoth pass
en-016language: en, task: reasoningPassSynthetic benchmark casePassSynthetic benchmark caseBoth pass
en-017language: en, task: retrievalPassSynthetic benchmark casePassSynthetic benchmark caseBoth pass
en-018language: en, task: reasoningPassSynthetic benchmark casePassSynthetic benchmark caseBoth pass
en-019language: en, task: retrievalPassSynthetic benchmark casePassSynthetic benchmark caseBoth pass
en-020language: en, task: reasoningPassSynthetic benchmark casePassSynthetic benchmark caseBoth pass
en-021language: en, task: retrievalPassSynthetic benchmark casePassSynthetic benchmark caseBoth pass
en-022language: en, task: reasoningPassSynthetic benchmark casePassSynthetic benchmark caseBoth pass
en-023language: en, task: retrievalPassSynthetic benchmark casePassSynthetic benchmark caseBoth pass
en-024language: en, task: reasoningPassSynthetic benchmark casePassSynthetic benchmark caseBoth pass
en-025language: en, task: retrievalPassSynthetic benchmark casePassSynthetic benchmark caseBoth pass

Showing 25 of 400 paired cases. Enable JavaScript to search, filter, export, and see additional pages.

04

Built to be questioned.

The thresholds, test, and exact inputs behind this decision. Every number in this report comes from your paired evaluation data.

Decision rule & statistical method
Minimum support20paired cases per group
Drop tolerance5 ppcandidate minus baseline
Significance0.05Holm-adjusted p threshold

The gate: an evaluation group fails when its pass rate drops by at least the configured tolerance, its support reaches the minimum, and its Holm-adjusted p value is at or below the significance threshold. The overall group and all supported declared slice groups are checked. Unsupported groups never fail the gate.

The test: a one-sided exact paired McNemar test uses discordant cases to test for regression: losses exceeding wins. Holm's step-down correction is applied across the tested overall and declared slice groups. These groups may overlap. Adjusted significance describes evidence of change; it does not explain the cause.

RegressionSupported drop at or beyond tolerance, with adjusted significance. Fails the gate.
WatchSupported negative change that does not meet the regression rule. Review the cases.
ImprovedSupported positive change. A descriptive label, not a significance claim.
StableSupported zero change in paired pass rate.
InsufficientFewer paired cases than the configured minimum. The group stays visible but is not tested.
Input fingerprints & declared slices
Baselinebaseline.csv400 rowscc0c25dd0f253eacc0fa4bf0cd8f1e5e6ac973cc1759a2bd382457d54488be45
Candidatecandidate.csv400 rows548b42187a8981d6b46bd374ee71753157b660c0bf2a7bd71687acae20faface

Declared slice columns: language, task
Report schema: pairglass/v1
SHA256 fingerprints identify the exact input bytes. Optional cost and latency cards report means only when those metrics are supplied.