# QR code anatomy: every region of the symbol

> A QR code has three 7×7 finder patterns for location, timing and alignment patterns for grid calibration, 15 bits of format information stored twice, version information from version 7 up, and a data-plus-error-correction region: all surrounded by a 4-module quiet zone.

Source: https://useqr.app/docs/spec/qr-code-anatomy · Last reviewed 2026-08-21 · UseQR is free forever, no signup.

---

## The map

Every QR code, from version 1 (21 × 21 [modules](/glossary/module)) to version 40
(177 × 177), is built from the same regions. Some are **function patterns**, fixed
geometry the decoder uses to find and sample the symbol. The rest carry your data.

| Region | Where | Size | Protected by Reed–Solomon? |
|---|---|---|---|
| Finder patterns | Three corners | 7 × 7 each | No |
| Separators | Around each finder | 1 module wide | No |
| Timing patterns | Row 6 and column 6 | 1 module wide | No |
| Alignment patterns | Spread across the grid (v2+) | 5 × 5 each | No |
| Format information | Beside the finders | 15 bits, stored twice | Own BCH code |
| Version information | Near two finders (v7+) | 18 bits, stored twice | Own BCH code |
| Dark module | Fixed cell beside bottom-left finder | 1 module | No |
| Data + error correction | Everything else | Varies by version | Yes |
| Quiet zone | Outside the symbol | ≥ 4 modules per side | No |

## Function patterns

The three [finder patterns](/glossary/finder-pattern) are what a scanner locates first:
concentric squares whose scan-line signature is the same from any angle. Each is wrapped in
a one-module light **separator** so it never merges with data.

The [timing patterns](/glossary/timing-pattern) (alternating dark and light modules along
row 6 and column 6) give the decoder a ruler for module coordinates. From version 2 up,
[alignment patterns](/glossary/alignment-pattern) (5 × 5) anchor the sampling grid against
lens distortion and print curvature; version 40 has 46 of them.

## Metadata regions

[Format information](/glossary/format-information) is 15 bits (error-correction level,
mask pattern, and its own BCH error correction) written twice, because nothing else can be
read without it. From version 7, [version information](/glossary/version-information) adds
an 18-bit, BCH-protected declaration of the symbol size, also written twice. One module,
the **dark module**, sits permanently dark beside the bottom-left finder at row
4 × version + 9, column 8.

## The data region

Everything not claimed above holds data and Reed–Solomon
[codewords](/glossary/codeword), placed in two-module-wide columns zig-zagging up and down
from the bottom-right corner. This is the only region the
[error-correction level](/glossary/error-correction-level) protects, which is why a logo
belongs in the middle, never on a corner. See
[how logos work without breaking a code](/docs/spec/how-logos-work-without-breaking-a-code).

## The quiet zone

The [quiet zone](/glossary/quiet-zone) is a border of background colour, **at least
4 modules on every side**, that the standard counts as part of the symbol. Crowd it and the
finder patterns stop being findable, the most common self-inflicted failure in the
[not-scanning checklist](/docs/troubleshooting/qr-code-not-scanning-checklist).

## How much of a QR code is overhead

For version 1, the fixed regions add up precisely:

| Region | Modules |
|---|---|
| 3 finder patterns | 147 |
| 3 separators | 45 |
| 2 timing patterns | 10 |
| Format information (2 copies) | 30 |
| Dark module | 1 |
| **Total overhead** | **233 of 441 (53%)** |

That leaves 208 modules (exactly 26 codewords), for data and error correction. As
versions grow the overhead share falls, which is one reason
[longer payloads are proportionally more efficient](/docs/spec/how-much-data-fits-in-a-qr-code).

Knowing the map tells you where styling is safe: the data region tolerates damage up to the
error-correction budget; the function patterns and quiet zone tolerate none. When in doubt,
[verify the rendered code decodes](/validate).

## FAQ

### What are the three big squares in a QR code?
Finder patterns. They are 7 × 7 concentric squares in three corners that let a scanner locate the code and work out its orientation from any rotation. Covering any one of them usually makes the code unscannable, regardless of error-correction level.

### What is the small square inside a QR code?
An alignment pattern, a 5 × 5 square that anchors the decoder's sampling grid against distortion. Version 1 has none, version 2 has one, and the count grows to 46 by version 40.

### Which parts of a QR code can be damaged safely?
Only the data region, up to the error-correction budget of roughly 7–30% depending on level. Finder patterns, timing patterns, format information and the quiet zone are not protected by Reed–Solomon error correction.

### What is the border around a QR code called?
The quiet zone, a margin of background colour at least 4 modules wide on every side. It is part of the specification, not decoration, and removing it is a common reason codes fail to scan.

## Try it

- https://useqr.app/url
- https://useqr.app/validate
- https://useqr.app/scan
