Skip to content
Language: EN

Why is usable memory smaller than the packaging says?

Three things take their share before you write a byte. The fixed pages holding the identifier and the lock bits. The configuration pages at the end. And the NDEF structure that wraps your content so any phone can read it. The advertised figure counts all of them.

Three claims on the memory

The first pages of a tag hold its identifier and the lock bits. They are written at manufacture, they are not yours, and they count toward the advertised total.

The last pages hold configuration: the mirror settings, the password if the chip has one, the counters. Also not yours, also counted.

Between them sits the area you can write, and even there the content is wrapped. The capability container tells a reader the area is formatted for NDEF, and each NDEF record carries a header saying what its payload is.

None of this is waste. It is what makes a tag readable by a phone that has never seen it before, which is the entire point of the standard.

How large the gap is

Large enough to change a purchasing decision, and it hits small tags hardest. On the smallest chips the fixed overhead is a meaningful fraction of the total, so the advertised figure flatters them considerably.

On larger chips the same overhead is roughly constant and the fraction shrinks, so the advertised figure is closer to honest.

The practical consequence is that capacity does not scale the way the numbers suggest. Moving up one step in capacity buys more usable room than the difference between the two advertised figures.

Reading the figure that matters

A reading tool reports free space directly, and that figure already accounts for the fixed pages and the formatting. It is the number to plan against.

Read a blank sample rather than a written one, since free space on a written tag reports what is left rather than what you have.

Do it per delivery. A substitution that keeps the same advertised capacity can still change the free space, and nothing on the packaging will say so.

Specifying against the real number

Write the requirement as usable free space, not as advertised capacity. A supplier can meet the second while missing the first.

Add margin on top of your measured content, because content grows. An address gains a parameter, a card gains a second number, and a tag with no headroom has to be replaced rather than rewritten.

And where the content is a link you control, none of this binds. The pointer is small enough that even the smallest chip leaves room to spare, which is the cheapest way to make the whole question disappear.

Frequently asked questions

Is the advertised figure dishonest?

Not exactly. It states the total memory on the chip, which is a real number, and it is not the number you can use. The gap is real and the label is technically accurate.

Does formatting reduce capacity permanently?

It reserves the small structure that marks the area as NDEF, and that structure stays for as long as the tag is used normally. It is a fixed cost rather than a per write one.

Do all chips have the same overhead?

The pattern is the same and the exact figures vary by family and reference. This is why measuring a sample beats reasoning from a datasheet.

Can I use the configuration pages for content?

No. Writing to them changes the chip's behaviour rather than storing data, and doing so accidentally can lock a tag or set a password you do not know.