# 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, MIT licensed, 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
