Short answer
Data Matrix ECC 200 comes in 24 square sizes from 10 × 10 to 144 × 144 modules and 6 rectangular sizes from 8 × 18 to 16 × 48 (ISO/IEC 16022). DMRE (ISO/IEC 21471) adds 18 more rectangles up to 26 × 64.
The smallest, 10 × 10, holds 6 digits or 3 letters. The largest, 144 × 144, holds 3,116 digits, 2,335 uppercase letters and digits, or 1,556 bytes.
A module is one small square of the code. Sizes are counted in modules (rows × columns), not millimeters: the same 18 × 18 code can be printed 5 mm or 5 cm wide. The tables below list every size our generator can make, with the numbers taken straight from its encoder, so they match what you download. For printing sizes in millimeters, see print size and quiet zone.
Size calculator
Paste your real data. The calculator runs the same encoder as the generator and shows the smallest size that fits, how full it is, and how big it prints with your module size and quiet zone.
Counted exactly as typed, spaces and line breaks included. Nothing leaves your browser.
Smallest size that fits
14 × 14square
- Printed size with quiet zone
- 9.00 mm0.354 in
- Code alone
- 7.00 mm
- Each module
- 0.50 mm
Square Data Matrix sizes
Square is the usual choice: every scanner that reads Data Matrix reads it, and our generator picks a square unless you ask for a rectangle. Capacities assume the whole message is one kind of data. Real text is usually a mix, so use the calculator for your exact value.
| Size (modules) | Data regions | Digits | Letters and digits | Bytes | Data + error-correction codewords |
|---|---|---|---|---|---|
| 10 × 10 | 1 8 × 8 modules | 6 | 3 | 1 | 3 + 5 |
| 12 × 12 | 1 10 × 10 modules | 10 | 6 | 3 | 5 + 7 |
| 14 × 14 | 1 12 × 12 modules | 16 | 10 | 6 | 8 + 10 |
| 16 × 16 | 1 14 × 14 modules | 24 | 16 | 10 | 12 + 12 |
| 18 × 18 | 1 16 × 16 modules | 36 | 25 | 16 | 18 + 14 |
| 20 × 20 | 1 18 × 18 modules | 44 | 31 | 20 | 22 + 18 |
| 22 × 22 | 1 20 × 20 modules | 60 | 43 | 28 | 30 + 20 |
| 24 × 24 | 1 22 × 22 modules | 72 | 52 | 34 | 36 + 24 |
| 26 × 26 | 1 24 × 24 modules | 88 | 64 | 42 | 44 + 28 |
| 32 × 32 | 4 2 × 2 of 14 × 14 | 124 | 91 | 60 | 62 + 36 |
| 36 × 36 | 4 2 × 2 of 16 × 16 | 172 | 127 | 84 | 86 + 42 |
| 40 × 40 | 4 2 × 2 of 18 × 18 | 228 | 169 | 112 | 114 + 48 |
| 44 × 44 | 4 2 × 2 of 20 × 20 | 288 | 214 | 142 | 144 + 56 |
| 48 × 48 | 4 2 × 2 of 22 × 22 | 348 | 259 | 172 | 174 + 68 |
| 52 × 52 | 4 2 × 2 of 24 × 24 | 408 | 304 | 202 | 204 + 84 |
| 64 × 64 | 16 4 × 4 of 14 × 14 | 560 | 418 | 278* | 280 + 112 |
| 72 × 72 | 16 4 × 4 of 16 × 16 | 736 | 550 | 366* | 368 + 144 |
| 80 × 80 | 16 4 × 4 of 18 × 18 | 912 | 682 | 454* | 456 + 192 |
| 88 × 88 | 16 4 × 4 of 20 × 20 | 1,152 | 862 | 574* | 576 + 224 |
| 96 × 96 | 16 4 × 4 of 22 × 22 | 1,392 | 1,042 | 694* | 696 + 272 |
| 104 × 104 | 16 4 × 4 of 24 × 24 | 1,632 | 1,222 | 814* | 816 + 336 |
| 120 × 120 | 36 6 × 6 of 18 × 18 | 2,100 | 1,573 | 1,048* | 1,050 + 408 |
| 132 × 132 | 36 6 × 6 of 20 × 20 | 2,608 | 1,954 | 1,302* | 1,304 + 496 |
| 144 × 144 | 36 6 × 6 of 22 × 22 | 3,116 | 2,335 | 1,556* | 1,558 + 620 |
Download all 48 sizes (CSV), generated from engine v2.0.1. Free to reuse under CC BY 4.0: please link to this page.
* From 64 × 64 up, our encoder fits one more byte than some published tables (for example 1,556 rather than 1,555 at 144 × 144) by letting the last run of bytes end with the symbol, which ISO/IEC 16022 allows. Both read back correctly. “Letters and digits” means uppercase A–Z, 0–9 and space.
-
10 × 10
6 digits · one data region
-
24 × 24
72 digits · one data region
-
16 × 48
98 digits · 2 data regions (1 × 2)
-
52 × 52
408 digits · 4 data regions (2 × 2)
Larger codes are split into data regions: blocks of data, each with its own finder and clock lines, so a scanner can keep track of the grid across a big symbol.
- 10 × 10 to 26 × 26: one data region.
- 32 × 32 to 52 × 52: 4 data regions (2 × 2).
- 64 × 64 to 104 × 104: 16 data regions (4 × 4).
- 120 × 120 to 144 × 144: 36 data regions (6 × 6).
There is no 28 × 28 or 30 × 30
Rectangular and DMRE sizes
Rectangles fit long, low spaces: the edge of a part, a cable tag, a narrow label. ISO/IEC 16022 defines 6 of them.
| Size (modules) | Data regions | Digits | Letters and digits | Bytes | Data + error-correction codewords |
|---|---|---|---|---|---|
| 8 × 18 | 1 | 10 | 6 | 3 | 5 + 7 |
| 8 × 32 | 2 | 20 | 13 | 8 | 10 + 11 |
| 12 × 26 | 1 | 32 | 22 | 14 | 16 + 14 |
| 12 × 36 | 2 | 44 | 31 | 20 | 22 + 18 |
| 16 × 36 | 2 | 64 | 46 | 30 | 32 + 24 |
| 16 × 48 | 2 | 98 | 72 | 47 | 49 + 28 |
DMRE (Data Matrix Rectangular Extension, ISO/IEC 21471) adds 18 rectangles, from 8 rows up to 26, and up to 144 columns. They hold more data in a low strip than the original rectangles: the largest, 26 × 64, takes 236 digits against 98 for 16 × 48.
| Size (modules) | Data regions | Digits | Letters and digits | Bytes | Data + error-correction codewords |
|---|---|---|---|---|---|
| 8 × 48 | 2 | 36 | 25 | 16 | 18 + 15 |
| 8 × 64 | 4 | 48 | 34 | 22 | 24 + 18 |
| 8 × 80 | 4 | 64 | 46 | 30 | 32 + 22 |
| 8 × 96 | 4 | 76 | 55 | 36 | 38 + 28 |
| 12 × 64 | 4 | 86 | 63 | 41 | 43 + 27 |
| 20 × 36 | 2 | 88 | 64 | 42 | 44 + 28 |
| 8 × 120 | 6 | 98 | 72 | 47 | 49 + 32 |
| 20 × 44 | 2 | 112 | 82 | 54 | 56 + 34 |
| 16 × 64 | 4 | 124 | 91 | 60 | 62 + 36 |
| 8 × 144 | 6 | 126 | 93 | 61 | 63 + 36 |
| 12 × 88 | 4 | 128 | 94 | 62 | 64 + 36 |
| 26 × 40 | 2 | 140 | 103 | 68 | 70 + 38 |
| 22 × 48 | 2 | 144 | 106 | 70 | 72 + 38 |
| 24 × 48 | 2 | 160 | 118 | 78 | 80 + 41 |
| 20 × 64 | 4 | 168 | 124 | 82 | 84 + 42 |
| 26 × 48 | 2 | 180 | 133 | 88 | 90 + 42 |
| 24 × 64 | 4 | 216 | 160 | 106 | 108 + 46 |
| 26 × 64 | 4 | 236 | 175 | 116 | 118 + 50 |
Check your scanners before using DMRE
How encoding changes capacity
A Data Matrix stores codewords: 8-bit units, each drawn as a small group of eight modules. The encoder chooses the cheapest way to turn your text into codewords, and that is why the same size holds very different amounts:
- Digits pack two per codeword, so 144 × 144 holds 3,116 of them (1,558 data codewords × 2).
- Uppercase letters, digits and spaces pack three characters into two codewords (C40 mode). Lowercase text gets the same packing in Text mode.
- Mixed case and punctuation make the encoder switch modes, and each switch costs codewords.
- Other characters go in as bytes, about one codeword each. Accented Latin letters such as é or ü take one byte each (Latin-1, the standard default). Characters beyond Latin-1, such as € or any non-Latin script, take 2 to 4 bytes in UTF-8, plus a marker (ECI) telling the scanner how to read them; once one is present, the whole text is stored as UTF-8, so its accents take 2 bytes too.
| Value | Characters | Bytes | Codewords used | Size |
|---|---|---|---|---|
123456789012 12 digits | 12 | 12 | 6 of 8 | 14 × 14 |
PART-000123 Part number | 11 | 11 | 8 of 8 | 14 × 14 |
Batch 7 of 12 Mixed-case words | 13 | 13 | 11 of 12 | 16 × 16 |
Lot 12 € Text with a euro sign | 8 | 10 | 14 of 18 | 18 × 18 |
https://example.com/p/123 A web address | 25 | 25 | 22 of 22 | 20 × 20 |
The 12 digits need only 6 codewords. The 8-character value with a euro sign needs 14, because the € alone is three bytes in UTF-8 and the encoder adds the character-set marker. If you are close to a size limit, uppercase and plain ASCII characters keep the code smaller.
From modules to millimeters
The printed size of a code is simple arithmetic:
printed width = (columns + 2 × quiet zone) × module size
The quiet zone is the blank border around the code, counted in modules; our generator uses 2 by default and never fewer than 1. The module size (also called the X-dimension) is whatever you choose for your printer and scanner.
Worked example. A 18 × 18 code with 0.5 mm modules and a 2-module quiet zone is (18 + 2 × 2) × 0.5 = 11.0 mm square (0.43 in). The code itself is 9.0 mm; the other 2.0 mm is quiet zone.
On a thermal printer every module must be a whole number of printer dots. At 203 dpi, 0.5 mm is exactly 4 dots, so the size stays 11.01 mm. At 300 dpi it rounds to 6 dots (0.508 mm), and the code grows to 11.18 mm. Our generator does this rounding for you and shows the real size. The print size table lists every common combination.
The 10x10 Data Matrix
10 × 10 is the smallest Data Matrix there is. It has 3 data codewords and 5 error-correction codewords, so it holds 6 digits, 3 uppercase letters or digits, or 1 byte. More than half of it is error correction (62.5%), which lets it recover from up to 2 damaged codewords. Read how ECC 200 error correction works for what that means in practice.
It suits places where there is room for only a few millimeters and the value is a short number, such as a sequence number on a small part. Anything longer moves up a size: a 7th digit needs 12 × 12, and "PART-000123" needs 14 × 14. With a 2-module quiet zone, a 10 × 10 code prints at:
- 0.25 mm modules: 3.5 mm square (0.14 in), code alone 2.5 mm
- 0.30 mm modules: 4.2 mm square (0.17 in), code alone 3.0 mm
- 0.50 mm modules: 7.0 mm square (0.28 in), code alone 5.0 mm
- 1.00 mm modules: 14.0 mm square (0.55 in), code alone 10.0 mm
Make a code at the right size in the generator: choose Square and set the size to 10 × 10 to force it, or leave it on Automatic and the generator picks the smallest size that fits.