Data Matrix sizes and
capacity chart

All 48 symbol sizes, how much each one holds, and a calculator that finds the smallest code for your data.

Updated 8 min read By the Data Matrix Code Generator team

On this page 8 sections
  1. Short answer
  2. Size calculator
  3. Square sizes
  4. Rectangular and DMRE sizes
  5. How encoding changes capacity
  6. From modules to millimeters
  7. The 10x10 Data Matrix
  8. FAQ

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

8 of 8 data codewords used (100% full) · 11 bytes

Printed size with quiet zone
9.00 mm0.354 in
Code alone
7.00 mm
Each module
0.50 mm
Make a code at the right size in the generator

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.

The 24 square ECC 200 sizes (ISO/IEC 16022). Size excludes the quiet zone.
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)

Real codes from our engine, all drawn with the same module size and a 2-module quiet zone (outlined). Bigger sizes are not bigger squares: they are more squares. In 52 × 52 you can see the extra solid and dotted lines that frame each of its four data regions.

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

Some size lists online, including AI-written summaries, include 28 × 28 or 30 × 30, or sizes such as 80 × 88. They are not ECC 200 sizes. The squares jump from 26 × 26 to 32 × 32, where the code switches from one data region to four, and every square has equal rows and columns. If a spec asks for one of these sizes, it most likely means the next real size up.

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.

The 6 rectangular ECC 200 sizes (ISO/IEC 16022), rows × columns.
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.

The 18 DMRE sizes (ISO/IEC 21471), smallest capacity first.
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

DMRE is newer than the rest of Data Matrix, and not every scanner, phone app or verifier reads it yet. Our own reader does. If your codes go to other companies, check that their scanners and any industry rules accept DMRE first, or stay with the six ISO/IEC 16022 rectangles. The rectangular and DMRE generator labels every DMRE size clearly.

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.
What our encoder does with five real values (smallest square size).
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.

A 10 by 10 Data Matrix that encodes 123456
This 10 × 10 code holds 123456, the most digits it can take. Scan it from your screen.

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.

Frequently asked questions

What is the smallest Data Matrix size?
10 × 10 modules is the smallest square, and 8 × 18 the smallest rectangle. That is the grid, not a physical size: printed size is the number of modules times the size of one module, plus the quiet zone. How small a module can go depends on your printer and scanner. See print size and quiet zone.
How many characters can a Data Matrix hold?
The largest size, 144 × 144, holds up to 3,116 digits, 2,335 uppercase letters and digits, or 1,556 bytes of other data. Mixed text sits between these: each character costs between half a codeword (a digit pair) and a whole codeword or more.
What can a 10x10 Data Matrix hold?
6 digits, 3 uppercase letters or digits, or 1 byte of other data. It has 3 data codewords and 5 error-correction codewords.
Is there a 28x28 or 30x30 Data Matrix?
No. ECC 200 squares go from 26 × 26 straight to 32 × 32. 28 × 28, 30 × 30 do not exist, and neither does a size like 80 × 88: every square size has the same number of rows and columns. The full list is in the square sizes table.
How do I calculate Data Matrix size?
Two steps. First, find the grid: the calculator above encodes your text and picks the smallest size that fits. Then the printed width is (columns + 2 × quiet zone) × module size. For example, 18 × 18 with 0.5 mm modules and a 2-module quiet zone is (18 + 4) × 0.5 = 11.0 mm square.