The Bacon-Shor code is a family of subsystem quantum error-correcting codes defined on a 2D grid of physical qubits. It encodes one logical qubit in physical qubits with distance , using only two-body gauge measurements (weight-2 XX and ZZ checks on neighboring pairs). The stabilizers are products of gauge operators and have weight , but syndrome extraction requires only weight-2 measurements — a major hardware simplification.
Figure

Description
The Bacon-Shor code exploits the subsystem code framework: the physical Hilbert space decomposes into a logical subsystem, a gauge subsystem, and a stabilizer-fixed subsystem. Only the logical subsystem encodes information; the gauge subsystem is “don’t care” degrees of freedom.
For the m²,1,m code on an grid:
- X stabilizers: Products of along each pair of adjacent rows.
- Z stabilizers: Products of along each pair of adjacent columns.
- Gauge operators: Individual (horizontal pairs) and (vertical pairs).
Syndrome extraction measures only the weight-2 gauge operators, then classically computes the stabilizer syndrome from their products. This avoids the need for ancilla-mediated multi-qubit parity measurements entirely.
Stabilizer/Gauge Structure
For the 9,1,3 Bacon-Shor code on a 3×3 grid:
Gauge generators (weight 2):
Stabilizers (weight 6, but measured via weight-2 gauge operators):
Logical operators:
Performance Metrics
| Metric | Value | Notes | Fidelity reference |
|---|---|---|---|
| Physical qubits | For distance | bacon-2006-bacon-shor | |
| Measurement weight | 2 | Only nearest-neighbor two-body measurements | bacon-2006-bacon-shor |
| Encoding rate | Same as surface code | — | |
| Threshold | ~0.1% (concatenated) | Lower than surface code, but simpler measurements | — |
| Distance | Linear in grid dimension | — |
Scaling Considerations
- Simplicity: Weight-2 measurements only, no ancilla overhead for syndrome extraction.
- Asymmetric protection: Naturally biased — can be rectangular () to correct more X than Z errors or vice versa, matching hardware noise bias.
- Concatenation: Effective when concatenated with other codes (e.g., repetition code for dominant error type).
- Threshold limitation: Lower threshold than surface code makes it less competitive for depolarizing noise, but advantageous for biased noise.