Every QR code is one of 40 sizes. The size is called the version, and it is a count of modules, the small squares. Version 1 is 21 modules across. Each version adds four modules a side, so version 2 is 25, version 3 is 29, and version 40 is 177. The version has nothing to do with age or software. It is only a size grade.
Why the version matters
The version decides two things at once. It sets how much text fits. It also sets how fine the squares are at any print size. Those pull in opposite directions.
A version 2 code printed 2 cm wide has 25 modules plus a four-module quiet zone each side, so 33 modules across 20 mm. That is 0.6 mm a module. A version 10 code at the same 2 cm has 65 modules across, or about 0.3 mm a module. A phone camera at arm’s length needs each module to cover several pixels of the sensor. Halve the module size and you must halve the scanning distance or double the print size.
The three figures hold the same nine characters. The encoder pads the spare space, so each is a valid code. Compare the module size as the version climbs.
Capacity by version, mode and level
Capacity depends on three things: the version, the error-correction level (L, M, Q or H, which reserve roughly 7, 15, 25 or 30% of the code for repair data), and the encoding mode. Digits use numeric mode and pack tightest. Capitals, digits and a few symbols use alphanumeric mode. Everything else, including lowercase letters, uses byte mode. Kanji mode is for Japanese text.
Each cell below lists capacity at levels L / M / Q / H. The numbers were computed from the encoder this site uses to draw its codes, which follows the tables in ISO/IEC 18004.
| Version | Modules | Numeric (digits) | Alphanumeric | Byte | Kanji |
|---|---|---|---|---|---|
| 1 | 21 x 21 | 41 / 34 / 27 / 17 | 25 / 20 / 16 / 10 | 17 / 14 / 11 / 7 | 10 / 8 / 7 / 4 |
| 2 | 25 x 25 | 77 / 63 / 48 / 34 | 47 / 38 / 29 / 20 | 32 / 26 / 20 / 14 | 20 / 16 / 12 / 8 |
| 3 | 29 x 29 | 127 / 101 / 77 / 58 | 77 / 61 / 47 / 35 | 53 / 42 / 32 / 24 | 32 / 26 / 20 / 15 |
| 5 | 37 x 37 | 255 / 202 / 144 / 106 | 154 / 122 / 87 / 64 | 106 / 84 / 60 / 44 | 65 / 52 / 37 / 27 |
| 10 | 57 x 57 | 652 / 513 / 364 / 288 | 395 / 311 / 221 / 174 | 271 / 213 / 151 / 119 | 167 / 131 / 93 / 74 |
| 20 | 97 x 97 | 2,061 / 1,600 / 1,159 / 919 | 1,249 / 970 / 702 / 557 | 858 / 666 / 482 / 382 | 528 / 410 / 297 / 235 |
| 40 | 177 x 177 | 7,089 / 5,596 / 3,993 / 3,057 | 4,296 / 3,391 / 2,420 / 1,852 | 2,953 / 2,331 / 1,663 / 1,273 | 1,817 / 1,435 / 1,024 / 784 |
Three things to take from the table:
- Level H costs about half your capacity compared with level L at the same version. A version 3 code holds 53 bytes at L but only 24 at H.
- Lowercase text is expensive.
HTTPS://GETQRSTUDIO.APPin capitals uses alphanumeric mode and fits in fewer bits than the same address in lowercase. Both open the same site. - The jump from version 10 to version 40 multiplies capacity by about ten. Almost nobody needs it.
Three real sizes
Here is what common content actually needs at level M:
- A short link,
https://getqrstudio.app/scan?c=v, is 33 bytes. Version 2 holds 26 at level M, so the encoder picks version 3. - A Wi-Fi payload such as
WIFI:T:WPA;S:Cafe Guest;P:latte-2026;;is 38 characters and also lands on version 3. - A vCard with name, company, phone, email and website runs to about 150 bytes and needs version 8, with 49 modules a side.
In practice
The version is the first thing to check when a code will not scan. If your content produced version 8 or higher and the code is smaller than a business card, shorten the content or use a dynamic short link. Do not just print it larger; the layout rarely has room.
Why phones struggle above version 10
Three things go wrong as the version climbs:
- Module size. At version 10 a 3 cm code has modules under 0.5 mm. A camera two arm’s lengths away sees each one as a pixel or two, which is not enough to tell dark from light reliably.
- Focus and blur. Fine detail needs sharp focus. A hand held slightly off the focus distance, or a small shake, smears adjacent modules together. Coarse grids survive this; fine ones do not.
- Print quality. Ink spreads. A home inkjet or a thermal label printer can grow a module by a tenth of a millimetre. At 0.3 mm that is a third of the module gone.
Scanning is not impossible above version 10. Signs, posters and screens with large codes read fine at version 20. But for anything hand-held, business-card sized or on packaging, version 10 is a sensible ceiling, and version 6 or below is comfortable.
Common mistake
Encoding a long URL with several tracking parameters. It can push a link from version 3 to version 9 and triple the module count. Use a short link and put the parameters at the destination.
▸Where the numbers come from
A version has a fixed number of codewords of 8 bits each: 26 for version 1, 134 for version 5, 346 for version 10 and 3,706 for version 40. The error-correction level fixes how many of those are repair codewords (10 of the 26 at version 1 level M). What is left, minus a 4-bit mode indicator and a character count field, is the data budget. Numeric mode fits 3 digits in 10 bits, alphanumeric fits 2 characters in 11 bits, byte mode uses 8 bits a byte and kanji uses 13 bits a character. Divide the budget accordingly and you get every cell in the table. The encoding article shows the bits in full.
Try it yourself
Paste your own link and see which version it needs at each error-correction level. Then try it in capitals and watch the version drop.