# Numeric mode

> Numeric mode is the most compact QR encoding: digits are taken in groups of three, each group packed into 10 bits, about 3.33 bits per digit against 8 in byte mode. It applies only when the entire segment is 0–9, and it is why the famous 7,089-character capacity ceiling is digits-only.

Source: https://useqr.app/glossary/numeric-mode · Last reviewed 2026-08-21 · UseQR is free forever, no signup.

---

## How the packing works

Three digits form a number from 0–999, which fits in **10 bits**. A leftover pair takes
7 bits and a final single digit 4 bits. The segment opens with the mode indicator `0001`
and a character count. So `20260821` (8 digits) costs 10 + 10 + 7 = 27 bits of data: byte
mode would spend 64.

That 2.4× density is where the headline
[capacity](/glossary/data-capacity) figure comes from: **7,089** digits at version 40-L,
against 2,953 bytes. The exact values per character are compared in the
[character set reference](/docs/reference/character-set-reference).

## When generators actually use it

Encoders pick the cheapest [mode](/glossary/encoding-mode) automatically, UseQR's encoder
tests the payload against `^[0-9]+$` and selects numeric mode when it matches. One
non-digit anywhere disqualifies the segment:

- `4477009001` → numeric mode.
- `+4477009001` → the `+` forces byte mode for the segment (a
  [phone-number payload](/phone-qr-code) is `tel:+…`, so it never qualifies anyway).
- `2026-08-21` → the hyphens push it to [alphanumeric](/glossary/alphanumeric-mode).

In practice numeric mode appears in serials, ticket numbers, and
[bulk-generated](/bulk) ID codes, payloads you control. If you can define an identifier
scheme, digits-only buys the smallest possible symbol; you can confirm the mode a real code
used by [decoding it](/validate).

## FAQ

### How many numbers can a QR code hold?
Up to 7,089 digits at the largest version with error correction level L, but only if the payload is exclusively the characters 0–9, which enables numeric mode's 3.33 bits per digit.

### Why did adding one letter make my QR code bigger?
A single non-digit character disqualifies numeric mode, and the segment falls back to alphanumeric (5.5 bits per character) or byte mode (8 bits), producing a denser, higher-version code for the same length.

## Try it

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