Each stabilizer measurement is repeated f times per round. Identical copies should produce identical results.
If all f copies agree on every stabilizer in every round, the shot is clean. Any disagreement flags corruption.
Agreeing shots pass through. Disagreeing shots are blocked. Result: lower error rate on surviving shots.
0.788%
Raw error rate
0.000%
Gated error rate
5.0%
Shots survived
63 → 0
Errors eliminated
The hardest QEC configuration: distance-7 repetition code, 8 syndrome rounds, 3 copies. All 63 logical errors landed in the 95% of shots flagged as corrupted. The 5% that passed had zero errors.
IBM Fez, Feb 11, 2026 (job d66dmb0qbmes739e285g). 27 QEC configurations, 8,000 shots each.
27
Configs tested
216K
Total shots
74%
Mean error reduction
6/9
100% error capture
IBM Fez
Production QPU
Fraction of shots where all 3 syndrome copies agree (f=3). Green (>80%) → yellow (40-80%) → red (<40%).
| r = 1 | r = 4 | r = 8 | |
|---|---|---|---|
| d = 3 | 92.9% | 78.8% | 68.5% |
| d = 5 | 77.4% | 55.9% | 22.3% |
| d = 7 | 62.2% | 6.8% | 5.0% |
Agreement drops with increasing distance and rounds — more stabilizers means more opportunity for disagreement. The d=7, r=8 cell (5.0%) is the hardest config.
| Config | Raw LER | Gated LER | Agree % | Errors | Captured | Verdict |
|---|---|---|---|---|---|---|
| d3, r=1 | 0.075% | 0.027% | 92.9% | 6 | 67% | WIN |
| d3, r=4 | 0.038% | 0.032% | 78.8% | 3 | 33% | WIN |
| d3, r=8 | 0.325% | 0.000% | 68.5% | 26 | 100% | WIN |
| d5, r=1 | 0.025% | 0.000% | 77.4% | 2 | 100% | WIN |
| d5, r=4 | 0.000% | 0.000% | 55.9% | 0 | — | clean |
| d5, r=8 | 0.050% | 0.056% | 22.3% | 4 | 75% | CHECK |
| d7, r=1 | 0.025% | 0.000% | 62.2% | 2 | 100% | WIN |
| d7, r=4 | 0.325% | 0.000% | 6.8% | 26 | 100% | WIN |
| d7, r=8 | 0.788% | 0.000% | 5.0% | 63 | 100% | KILLER |
| Config | Raw LER | Gated LER | Agree % | Errors | Captured | Verdict |
|---|---|---|---|---|---|---|
| d3, r=1 | 0.000% | 0.000% | 97.2% | 0 | — | clean |
| d3, r=4 | 0.013% | 0.000% | 92.3% | 1 | 100% | WIN |
| d3, r=8 | 0.000% | 0.000% | 87.0% | 0 | — | clean |
| d5, r=1 | 0.000% | 0.000% | 94.8% | 0 | — | clean |
| d5, r=4 | 0.000% | 0.000% | 81.6% | 0 | — | clean |
| d5, r=8 | 0.000% | 0.000% | 67.8% | 0 | — | clean |
| d7, r=1 | 0.000% | 0.000% | 89.3% | 0 | — | clean |
| d7, r=4 | 0.000% | 0.000% | 65.0% | 0 | — | clean |
| d7, r=8 | 0.000% | 0.000% | 36.7% | 0 | — | KILLER |
Raw LER = logical error rate without gating. Gated LER = error rate after discarding disagreeing shots. Captured = fraction of total errors found in blocked shots.
Across 27 hardware configurations on IBM Fez, shot quality gating eliminated 100% of logical errors in 6 out of 9 error-producing configs. Mean error reduction: 74.2%. The hardest config (d=7, r=8, f=3) had all 63 logical errors concentrated in the 95% of shots flagged as corrupted — zero errors in the 5% that passed.
from qubitboost_sdk import ShotValidator, ValidationLayout
# Define your QEC layout
layout = ValidationLayout.for_repetition_code(
distance=7, fan_out=3, n_rounds=8
)
# Create validator
validator = ShotValidator(layout, enabled=True)
# Score a batch of shots (bitstrings from hardware)
result = validator.weight_memory(memory, observable_fn=parity)
print(f"Agreement rate: {result.agreement_rate:.1%}")
print(f"Raw error rate: {result.expectation_raw:.4f}")
print(f"Gated error rate: {result.expectation_agree:.4f}")
print(f"Delta (corruption signal): {result.delta:.4f}")
print(f"Effective shots: {result.effective_shots}/{result.raw_shots}")ShotValidator integrates with ExecutionMonitor for real-time event streaming and automated abort policies.
Higher distance means more stabilizers, and each must agree across all copies and rounds. A single disagreement anywhere flags the entire shot. This is by design — stricter filtering catches more corruption.
Yes. The gated (postselected) estimate is a conditional estimator, not an unbiased estimate of the raw expectation. If agreement probability correlates with the observable value, they will differ. The SDK always returns both estimates and the delta so the caller can make an informed decision.
Most shots are discarded, but the surviving ones are error-free (in 6/9 cases). The low agreement rate itself is a corruption signal — it triggers the ExecutionMonitor's abort policy, recommending you stop the job and wait for hardware recalibration.