# QR Code Data Capacity Calculator

Find the smallest QR version that holds your payload, in any encoding mode and error correction level.

---

- **Canonical URL:** https://dothecalculation.com/calculators/qr-code-data-capacity-calculator
- **Category:** AI & Tech Development
- **Publisher:** Do The Calculation (https://dothecalculation.com)
- **Cost:** Free, no account or sign-up required
- **Privacy:** Runs entirely in the browser; inputs are never sent to a server
- **Methodology:** https://dothecalculation.com/methodology

---

## How Much Data Fits in a QR Code?

Paste a payload and see the smallest QR version that holds it, how large that symbol is in modules, and what each error correction level costs you in capacity.

- Capacity derived from the ISO/IEC 18004 codeword counts, not a lookup table
- All four encoding modes and all four error correction levels
- Byte mode counts real UTF-8 octets, so emoji and accents cost what they cost

## Quick Answer — How Much Data Can a QR Code Hold?

The ceiling is a version 40 symbol at error correction level L, which holds **7,089** numeric digits, **4,296** alphanumeric characters, **2,953** bytes, or **1,817** kanji characters. That symbol is 177 modules across and is essentially unscannable at label size, so the practical answer is always much smaller.

Capacity depends on three things: the symbol version (1 to 40), the encoding mode, and the error correction level.

**Byte-mode capacity at level M, by version:**

• **Version 1** — 21 × 21 modules, **14 bytes**

• **Version 2** — 25 × 25, **26 bytes**

• **Version 3** — 29 × 29, **42 bytes**

• **Version 5** — 37 × 37, **84 bytes**

• **Version 10** — 57 × 57, **213 bytes**

• **Version 20** — 97 × 97, **666 bytes**

• **Version 40** — 177 × 177, **2,331 bytes**

Error correction is a straight trade against capacity. On a version 40 symbol, byte capacity falls from **2,953** at level L to **1,273** at level H — a drop of **56.9 percent** to buy recovery from 30 percent damage instead of 7 percent.

## How to Use This Calculator: A 53-Byte URL

Paste the URL into the payload box. The default link, pointing at this site's QR generator, is **53 bytes** in UTF-8. Leave the mode on byte and the error correction level on M, which is the usual default.

The smallest version that fits is **version 4**, a **33 × 33** symbol with 1,089 modules. It has **64 data codewords**, so **512 data bits**. Your payload uses **436 bits** — 4 bits of mode indicator, 8 bits of character count, and 8 bits per byte — leaving **76 spare bits**. Capacity at that version is **62 characters**, so you have **9 characters** of headroom.

Switch the error correction level to H and the same URL needs **version 6**, a **41 × 41** symbol. Nothing about the data changed; twice as much of the symbol is now given over to recovery, and the code grew by eight modules per side.

Try a longer payload to see the effect scale. A 300-byte vCard at level Q needs **version 16**, an **81 × 81** symbol. That is four times the module count of the URL code, and at any fixed physical size each module is half the width.

## The Formulas This Calculator Uses

**Symbol size:** modules per side = \(4V + 17\), where \(V\) is the version. Version 1 is 21 modules across and version 40 is 177.

**Available data bits** = data codewords × 8. The codeword count for each version and error correction level comes from ISO/IEC 18004.

**Bits used** = 4 (mode indicator) + character-count bits + payload bits.

**Payload bits by mode:** numeric packs 3 digits into 10 bits; alphanumeric packs 2 characters into 11 bits; byte uses 8 bits per byte; kanji uses 13 bits per character.

The **character-count field** is the part that trips people up, because its width steps with version: for byte mode it is 8 bits up to version 9 and 16 bits from version 10 onward. That step is why byte capacity at level M jumps from **180** at version 9 to **213** at version 10 rather than following a smooth curve — the symbol grew, and the header grew with it.

Because capacity is derived rather than looked up, the numbers here match the standard exactly at every version and level, including the awkward ones.

## A Second Example: Why Numeric Mode Is Worth 2.4 Codes

Take a 20-digit serial number. In byte mode that is 20 bytes. In numeric mode it is \(10 \times \lfloor 20/3 \rfloor + 7 = 67\) bits, against 160 bits in byte mode — less than half the space.

Scaled to the ceiling, a version 40 level L symbol holds **7,089** numeric digits against **2,953** bytes. Numeric mode is worth **2.4 times** the capacity of byte mode for the same symbol.

Alphanumeric mode sits in between at 11 bits per two characters, but it comes with a hard restriction: uppercase letters and digits only, plus space and the nine symbols dollar, percent, asterisk, plus, hyphen, full stop, slash, colon and space. A single lowercase letter anywhere in the string forces the whole payload into byte mode. This is the most common reason a code that should have been small is not — an uppercase-only URL encodes in alphanumeric mode and the same URL in lowercase does not.

Version 3 at level M holds **61 alphanumeric characters** but only **42 bytes**. If your payload can be made uppercase without breaking anything, that is about 45 percent more room in the same 29 × 29 symbol.

## Choosing an Error Correction Level, and Knowing When to Shorten Instead

The four levels recover from roughly 7, 15, 25 and 30 percent damage. Level M is the sensible default for a screen or a clean printed page. Level Q or H earns its cost when the code will be printed small, wrapped around something curved, exposed to weather or handling, or partly covered by a logo — which is the main legitimate reason to reach for H.

The cost is real and it compounds with size. Every step up the error correction ladder pushes the payload into a higher version, and every version adds four modules per side. A payload that needs a 33 × 33 symbol at level M needs 41 × 41 at level H, and at a fixed physical size that means each module is 20 percent narrower.

That module width is the practical scanning constraint, not the capacity. Scanners need roughly two to three printed pixels per module to read reliably, and the usual guidance is a module of at least 0.4 mm at typical scanning distance. A version 20 symbol on a 25 mm label gives modules a quarter of a millimetre wide, and no error correction level rescues that.

So when a code overflows, the fix is almost never a higher version. Shorten the URL, drop the tracking parameters, or point at a redirect that expands server-side. A short link in a version 3 symbol scans from across a room; the same destination spelled out in full at version 12 does not, no matter how much error correction you throw at it. Once the payload and level are settled, the [QR code generator](/calculators/qr-generator) produces the image itself.

## Limitations

Capacity is not scannability. This calculator tells you whether a payload encodes; it says nothing about whether the resulting symbol can be read at the size you intend to print it, under the lighting it will face, by the cameras your users have. Test the actual printed artefact.

The model assumes a single encoding mode for the whole payload. Real encoders can switch modes mid-symbol — numeric for a run of digits, byte for the rest — and a good one will fit slightly more than the single-mode figure shown here. Treating the payload as one mode is the conservative reading.

Structured append, which splits data across up to 16 linked symbols, is not modelled. Neither is ECI, the extended channel interpretation mechanism that declares a character encoding and costs a few extra bits.

Kanji mode capacity assumes Shift JIS double-byte characters, which is what the standard specifies. Japanese text encoded as UTF-8 goes through byte mode instead and takes considerably more room.

## Related Calculators

This calculator answers the sizing question; the [QR code generator](/calculators/qr-generator) produces the actual image, with control over margin, colour and output resolution. When a payload has been Base64-encoded, the [Base64 encoder and decoder](/calculators/base64-codec-calculator) shows exactly how much the encoding inflated it — roughly a third, which is often the difference between a version 6 and a version 8 symbol. For inspecting the raw bytes when a code will not encode as expected, the [binary, hex and ASCII converter](/calculators/binary-hex-ascii-calculator) is the quickest way to find the multi-byte character you did not know was there.

## Frequently asked questions

### How much data can a QR code hold?

At most, a version 40 symbol at error correction level L holds 7,089 numeric digits, 4,296 alphanumeric characters, 2,953 bytes, or 1,817 kanji characters. That symbol is 177 modules across and is impractical at label size, so real codes are far smaller — a 54-character URL at level M fits in a 33 by 33 version 4 symbol.

### What are QR code versions?

The version is the symbol size, numbered 1 to 40. Modules per side equal 4 times the version plus 17, so version 1 is 21 by 21 and version 40 is 177 by 177. Higher versions hold more data and need more physical space or finer printing to stay scannable.

### How much capacity does error correction cost?

A lot. On a version 40 symbol, byte capacity falls from 2,953 at level L to 1,273 at level H, a drop of 56.9 percent, in exchange for recovering from 30 percent damage instead of 7 percent. Level M is the usual default; go higher only when the code will be printed small, curved, weathered, or partly covered by a logo.

### Why does making my URL uppercase make the code smaller?

Because alphanumeric mode packs two characters into 11 bits against 8 bits per byte, but it only supports uppercase letters, digits, space and nine symbols. One lowercase character forces the entire payload into byte mode. Version 3 at level M holds 61 alphanumeric characters but only 42 bytes — nearly 50 percent more room in the same symbol.

### Why do emoji break my QR code?

Byte mode encodes UTF-8 octets, not characters. An emoji is four bytes and an accented Latin character is two, so a payload that looked like 50 characters can be 70 bytes. This calculator counts real UTF-8 length in byte mode, which is why a payload with emoji sometimes needs two versions more than expected.

### What is the smallest QR code I can print?

That is a module-width question rather than a capacity one. Scanners need roughly two to three printed pixels per module and typically a module of at least 0.4 mm at normal scanning distance. A version 20 symbol on a 25 mm label puts modules at a quarter of a millimetre, which no error correction level can rescue.

### My code is too big. Should I raise the version?

Almost never. Raising the version adds four modules per side and makes the code harder to scan at any fixed physical size. Shorten the payload instead: strip tracking parameters, use a short link, or point at a redirect that expands server-side. A short link in a version 3 symbol scans from across a room.

### Why does capacity jump between version 9 and version 10?

Because the character-count field widens. In byte mode it is 8 bits up to version 9 and 16 bits from version 10 onward, so the header grows at the same moment the symbol does. Byte capacity at level M goes from 180 at version 9 to 213 at version 10, and the curve has a visible kink at that point and again at version 27.

## Related concepts

- **Symbol Version** — The size of the QR symbol, 1 to 40. Modules per side equal 4 x version + 17, running from 21 across at version 1 to 177 at version 40.
- **Encoding Mode** — How characters are packed into bits. Numeric fits 3 digits in 10 bits, alphanumeric 2 characters in 11 bits, byte 8 bits per octet, and kanji 13 bits per character.
- **Error Correction Level** — L, M, Q or H, recovering from roughly 7, 15, 25 and 30 percent damage. Higher levels convert data codewords into recovery codewords and cut capacity accordingly.

## Related guides

- [How to Use Do The Calculation Calculators: A Practical Step-by-Step Guide](https://dothecalculation.com/blog/site-guides/how-to-use-calculators) — Learn the fastest reliable workflow for using Do The Calculation calculators, reading results, checking formulas, and using save, print, share, and export actions correctly.
- [Understanding Calculator Formulas: How DTC Turns Inputs into Results](https://dothecalculation.com/blog/site-guides/understanding-calculator-formulas) — Understand how Do The Calculation formulas are presented, what the explanation blocks mean, and how to verify calculator logic before using a result in a real decision.

## Related calculators

- [Bandwidth Requirement Calculator](https://dothecalculation.com/calculators/bandwidth-calculator) — Calculate the internet speed you need for streaming, video calls and background usage, with a safety margin and monthly data estimate.
- [Cloud Storage & Egress Cost Calculator](https://dothecalculation.com/calculators/cloud-egress-cost-calculator) — Compare bandwidth transfer and data egress costs across AWS, Google Cloud, Azure, and Cloudflare R2 storage providers instantly.
- [Data Storage Calculator (GB/TB/photos/videos)](https://dothecalculation.com/calculators/data-storage-calculator) — Calculate total storage needed for photos, videos and documents in GB and TB, plus an estimated monthly cloud storage cost.
- [Database Sharding & Capacity Planner](https://dothecalculation.com/calculators/db-sharding-capacity-calculator) — Model database shard divisions, estimate node capacity, replication storage footprints, and IOPS requirements instantly for free.
- [Kubernetes Node & Pod Capacity Planner](https://dothecalculation.com/calculators/k8s-capacity-planner) — Calculate Kubernetes node sizing, cluster utilization margins, and pod allocation scheduling for accurate capacity planning.
- [Load Balancer Capacity & Concurrency Planner](https://dothecalculation.com/calculators/load-balancer-concurrency-calculator) — Estimate peak active TCP connections, SSL handshake capacity, and bandwidth requirements under peak load balancer traffic.

---

_Capacity here is derived from the ISO/IEC 18004 data-codeword counts using the standard's own bit-packing rules rather than transcribed from a published table, so the figures match the standard exactly at every version and error correction level. The codeword counts were cross-checked four independent ways and verified against the documented ISO values at versions 1, 7, 25 and 40. What the calculator cannot tell you is whether a symbol will actually scan: that depends on printed module width, contrast, quiet zone and camera quality, so test the real printed artefact before committing to a run._

---

_Source: [Do The Calculation](https://dothecalculation.com/calculators/qr-code-data-capacity-calculator). Quote freely with attribution and a link to this page._
