Skip to content

An annotated textile Digital Product Passport

One garment, one passport, with the rows that resolved and the rows that did not sitting next to each other. The garment and every value in it are invented. The row structure, the resolution states and the reasons written on the empty rows are the ones ActivateDigital ships, and every one of them is in the HTML this page serves rather than assembled afterwards by a script.

Sources as at
28 August 2026
Share
LinkedIn X Email
On this page

What you are looking at, and what you are not

The passport below is an example rather than a live artefact. The merchant does not exist, the garment does not exist and every value in it is invented, including the identifier. What is real is the shape: the five groups, the rows, the resolution states and the kinds of reason that sit on an empty row.

Two reasons for that, and neither is decorative. Published examples here use invented product details as a standing rule, because a worked example on somebody's real product is a statement about their product. And our own live passport service is not yet in a state we would offer as public proof, for reasons the next section sets out in full rather than in passing.

Real textile passports exist, ours and other people's. Several of them are reachable by URL today. This page is not making a comparison between them. It exists because a passport is easier to argue about than to picture, and the argument only becomes concrete when you can see which rows filled in, which did not and what the difference between those two cases actually looks like.

Every row here is in the page the server sends

The whole annotated record below is in the HTML this address returns. Every group heading, every row, every value, every state and every annotation under it is present before a single line of script runs. The script this site loads does navigation and nothing else: a disclosure control, the highlighting in the section rail and the share controls. Block it, remove it or let it fail, and this record is unchanged.

That is worth stating plainly on this destination in particular, because this is the one place in the estate where the rule was recorded as broken. Server-rendered HTML is the precondition for everything else here. A record that only comes into existence after a browser has run a script is invisible to a crawler that does not run one, invisible to an archive, invisible to a reader with script disabled and awkward for anything that reads pages rather than looks at them. Nothing else on a passport matters if the passport cannot be read.

What was actually wrong, and where. Not this page. The annotated record you are about to read was already served as HTML, and it stays that way. The defect sits in the live passport service this page describes: it currently returns a shell that needs JavaScript before there is anything to read, and an identifier it does not hold does not yet answer with a not-found. Both are being fixed. Until they are, this record is written out here rather than embedded from that service, and the reason is printed here rather than left for a reader to discover.

The check, and it takes a minute

Fetch any passport address without a browser and read what comes back. If the answer is a page with no record in it, the record is not being served: it is being assembled afterwards on the reader's own device, and everything that reads the page without running scripts sees an empty room. Ask a vendor to show you the raw response rather than the rendered screen. It costs about a minute and it tells you more than the rendered view does.

The record is the product. The page is the by-product.

The thing worth building is the record: a set of values, each with a stated provenance and a stated state, that somebody is prepared to be responsible for. This page is one rendering of such a record, and it is the least important thing the record does. Get the record right and a page like this falls out of it. Get the page right on top of a record nobody stands behind and you have a brochure with a barcode.

The framework points the same way. Its duty is that the information is reachable, connected to an identifier and carried on something physically attached to the product. It sets no target for how often anybody looks, and it provides for nobody to measure whether they do. Availability is the obligation. Attention is not.

Which matters, because the uses with the best evidence behind them in this estate are machine reads rather than human ones. A validator checking the shape of a declared attribute before a listing goes live, an enforcement check run against a value somebody published, a partner asking for a file rather than a link: none of those needs a shopper to open this page, and each of them works better the more boring and correct the record is. That is a statement about where the evidence in this estate sits rather than a claim that no consumer ever reads a passport.

What this page is not evidence of. It is not evidence that passports drive engagement, conversion or loyalty. Nothing here should be quoted as though it were. This estate publishes no scan rate, because there is no such thing as the rate to publish: the field measurements that carry real populations behind them span roughly three orders of magnitude, and what moves the number is device friction and whether the scan is worth anything to the person doing it. What a scan actually tells you sets out the measurements with their populations and refuses to average them, which is the honest treatment of a spread that wide.

So the useful question about a passport programme is not how many people opened it. It is whether the values are correct, whether they are reachable and whether somebody named is answerable for each of them. All three are measurable by the party doing the work, which is the whole difference between a compliance record and a campaign.

How a scan gets here, and what the standard actually requires

The code on the garment carries an address, and the address carries the identifier. For our worked example that address reads:

dppcode.org/p/01/05012345678900

It is written here as text rather than as a link, deliberately. The identifier is invented, so it resolves to nothing. The shape is the real one. The 01 is the standard application identifier for a product identifier, the number is a GTIN written in fourteen digit form, and the check digit at the end is part of the identifier rather than a formatting convenience. The grammar that packs an identifier into a URL like that is defined in a published standard whose address we have confirmed and whose text we have not read, so this page describes the shape of the example and states no requirement from inside the document.

What answers that address is a resolver, and its behaviour is not a matter of opinion. A ratified standard sets it out, and we read it at the organisation's reference site. Three of its requirements decide whether an artefact like this one can be trusted by anything automated. A malformed address and a well formed address naming something nobody holds get two different answers, because a service that replies identically to both cannot be told apart from a template. An error is never dressed as a success, because a page reading nothing found served with a success code defeats every automated check downstream of it. And a link type the resolver holds nothing for comes back as a dead end rather than a redirect to whatever page happens to exist, because a recycler asking for end-of-life handling and quietly receiving a marketing page has no way of knowing there was nothing there.

A resolver standard is not a passport standard

This page used to describe that behaviour without naming the standard behind it, and this estate has elsewhere been loose about what that standard is. The correction is small and it changes what a claim is worth. The standard is a resolver standard. The international standard often named beside it covers the encoding and resolution of identifiers over HTTP, and it is a resolver and identifier encoding standard too. Neither is a product passport standard, and neither should be listed as one.

What follows is practical. When a supplier says they conform to one of these, the accurate reading is that they are claiming their service behaves in specified ways when a client asks it something. That claim is real, it is checkable from outside and it is worth asking for by name. It is not a claim about the record, about the values in the record or about anybody's right to publish them. We make no claim on this page that our own resolver conforms to the standard, because we have not established it. The layer-by-layer version of all this is on what actually happens when somebody scans the code.

One thing we used to state too strongly

An earlier version of this page said that the identifier is permanent and that a code printed into a garment cannot be reassigned. That is stronger than anything we have confirmed. Whether an identifier already printed onto goods in circulation may ever be reused, and if so after what period and on what conditions, is governed by the numbering scheme's general specifications, which have historically permitted reuse after a defined period for some categories while prohibiting it for others. We have not read the current release against that question. What is established is narrower and still useful: a printed code cannot be edited, the garment carrying it outlives the decision, and a wrongly printed identifier is burned rather than corrected, because a corrected one passes the check and may name somebody else's product. What is not established is the absolute form of the permanence claim, and how the estate handles a question in that state is set out in how we know.

The rows, annotated

Most rows carry an answer. The rest are empty, and the annotations under the empty ones are the point of the page. Read together they are a fair description of how much of this work is data engineering and how much of it is somebody else not having answered yet.

One convention before the rows. A row that is not shown has not been established, which is not the same as a statement that there is nothing to show. Nothing is hidden on this passport, so every attribute in the set appears, including the ones with nothing in them. The whole set, with what each attribute asks for and how hard it is to answer, is indexed under the attributes we track.

A second convention, about links. A row links out only where this estate holds a reference page for that attribute and the row's own annotation turns on what that page settles. Most of these attributes have no page of their own here, and those rows link to nothing rather than to something adjacent that would look like an answer. An annotation that ends without a link has ended.

Who is responsible

  • Economic operatorResolved

    Hartwell & Fold Ltd

    Given by the merchant once, then corroborated against a public register. In this case the VAT registration returned the company name, which happens in some Member States and not in others. Where a register returns a validity flag without a name, the value stays as the merchant gave it and the corroboration is recorded as unavailable rather than as failed.

  • Operator contactResolvedPartial

    Unit 4, Bewley Yard, Leeds LS9

    Permanently partial, on every product we have ever run. No public route corroborates a trading address, so the value is as good as the person who typed it and the passport says so rather than implying a check that did not happen.

What the product is

  • Product identifierResolved

    05012345678900

    The check digit is recomputed on every run and never corrected. A corrected identifier passes the check and may identify somebody else's product, which is a worse outcome than an invalid one that is visibly invalid. Whether an identifier of this kind can ever be reassigned once it is printed is not something we have established, and the row makes no claim either way.

  • Model, style and variantResolved

    Rye Overshirt, ecru, M

    The selected options are kept as a structure rather than flattened into one string, because the colour option does real work further down this list.

  • Commodity codeResolvedPartial

    6203.32

    Six digits, offered from a fetched nomenclature and checked against it. Never ten, because at ten digits one cotton garment has twenty candidate codes and choosing between them is a customs decision. A merchant's declared code is not a customs ruling and is never treated as one. The nomenclature is republished annually, so this row ages on a known cycle.

  • Fibre compositionResolved

    Cotton 100%

    Read from a structured field rather than from the description. Ecru is declared as the colour, so it is not read as a fibre name, which it also is. Several rows below inherit this denominator, and the tolerances that decide whether a stated composition survives analysis are on fibre composition.

  • Country of originResolved

    PT

    Recorded from the store, never searched for and never adjudicated. Where variants of one product disagree, no product-level origin is produced at all, which is legitimate and more common than people expect.

  • Product weightResolved

    0.412 kg

    Net product mass, without packaging. Seven kinds of mass exist and only this one publishes. Where a merchant says their weights include packaging, the value is withheld rather than adjusted, because there is no tare table behind an adjustment and an invented one would propagate into four calculated rows.

  • Care instructionsResolvedPartial

    Machine wash 30, do not tumble dry, warm iron

    Three of the five care dimensions, read from the merchant's own words. Bleaching and professional care were not stated and are not inferred. No care symbol is displayed anywhere, because the symbols are licensed and we do not hold a licence.

Supply chain

  • Production facilitiesNot established

    empty

    The merchant has not named a facility, and nothing here searches for one. A supply chain assembled from a name match would look completely convincing and would sometimes be somebody else's factory. There are public records that would help, and confirming one of them anonymously and free of charge is not possible, which is an access problem rather than a claim that the data is missing from the world.

  • Recycled contentNot established

    empty

    No recycled claim was made about this garment. That is not a finding of zero per cent, and virgin is never inferred from the absence of recycled. Silence is not zero, and publishing an unevidenced zero would be a sustainability claim rather than a blank.

  • Safety certificatesNot established

    empty

    No certificate number was supplied. Having no certificate is entirely lawful, so this row never shares a visual treatment with a legal duty that has not been met. Where a number is supplied it is checked against the scheme's own register, and the answer recorded is that a certificate exists, who checked and when, rather than that the product is certified.

Modelled impact

  • Carbon footprintResolvedModelled

    7.72 kg CO2e

    Ecobalyse's own answer at version 7.0.0, recorded and republished unaltered with a link that reproduces it. It is the French government calculator's figure and not ours, it is modelled rather than measured, and it is French rather than European. Three significant figures are shown. The calculator returns six, which is serialisation rather than accuracy.

  • Water impactResolvedModelled

    0.611 m³ eq

    A scarcity weighted figure, not litres of water. Scarcity factors vary enormously between watersheds, and a garment's country of origin is not the country its fibre was grown in, so using the making country's factor for cotton grown elsewhere would be wrong by a wide margin and would look entirely plausible.

  • Durability coefficientResolvedModelled

    0.93

    A dimensionless multiplier from a French regulatory formula. It incorporates no test result, no fibre property and no fabric weight, so it is not a physical measurement of how long the garment lasts. Where our figure disagrees with the one the calculator itself divided by, the adjusted result is withheld and the calculator's undivided figure is published instead.

  • Microfibre sheddingResolvedModelled

    72.8 impact points

    A semi quantitative supplement under the French official methodology, reproduced against that methodology's own worked example. It is not milligrams per wash, not grams of plastic released and not a measured emission. Where an input is missing the whole figure is withheld, because a sum with a term dropped out of it gets smaller, stays publishable and is wrong.

  • Recyclability routeProvisional method

    not published

    No agreed method for scoring textile recyclability exists yet, and the standards committee working on one has not reported. Anyone publishing a recyclability score today is publishing their own opinion. Ours carries a provisional flag internally and does not go onto a public passport while that is true.

Compliance

  • Conformity declarationsNot applicable

    No declaration required

    Ordinary apparel falls outside the regimes that require a declaration of conformity. That reading is ours rather than a statement any instrument makes, and it is labelled as ours. Not applicable is a finished answer here rather than a gap, and the row leads with it and then says why.

  • Substances of concernNot established

    empty

    No supplier declaration has been received. Nothing here turns that silence into a reassuring sentence about the garment. Absence of a word is not absence of a thing.

  • SCIP referenceNot established

    empty

    A reference can be recorded by whoever notified. It cannot be discovered from a product identifier by anybody, and the reasons are properties of the database rather than of our search. See SCIP reference.

  • Repair routeNot established

    empty

    Nothing could have answered this from data. It is a commercial arrangement that a business either has or does not have, and this one has not told us about one.

  • Producer registrationNot established

    empty

    Waiting on a declared market list. Registration duties are per market and the registers are national, so the question of which markets is answered before any register is queried. Shipping settings are not treated as an answer to it.

How to read a passport like this

Start with the empty rows rather than the full ones. They are empty for five distinct reasons and the annotation under each says which, which is a good deal more informative than the values that resolved.

Some are waiting on a supplier who has not answered. One is a structural dead end that no amount of software fixes, because the value cannot be discovered from a product identifier by anybody. One is waiting on a standards committee that has not reported. One is a commercial arrangement the brand either has or has not made. And one is waiting on a decision about which markets the goods are going to, which nobody has taken yet.

Then look at the modelled group, which looks like the most sophisticated part of the artefact and is the part most dependent on two of the simplest rows above it, being the composition and the weight. If either of those is wrong, four rows below them are wrong in a way that still renders beautifully.

That is the honest shape of a textile passport today. Most of the difficulty is not in the technology, and most of the empty boxes are not defects.

What to settle before you buy one of these

Most readers arrive here while deciding what to buy, and the questions that decide whether this was worth doing are not about the rows. They are about what happens to the record and to the printed address when the arrangement behind them ends. Those questions are asked and answered on when the link dies rather than here, because they need a page rather than a paragraph.

The shape of them, so that you know what you are going there for: what a full export contains and whether it can be read without the vendor's software; whose account the identifier licence sits on; whose domain is printed on the garment and who is the registrant of it; whether resolution continues when the contract ends, for how long and who pays; what happens if an administrator is appointed. Every persistence commitment we have read carries a condition, so the useful move is to ask for the commitment in full and then read the condition attached to it.

Durability, as a fair objection

There is an objection to all of this that deserves a straight answer rather than a rebuttal, and a buyer should put it to any vendor including us. The framework expects the record to stay available for a period tied to the expected lifetime of the product, and to keep doing so after the business behind it stops. Garments last years. The objection is that connected functionality attached to physical goods does not reliably last that long, and that a service can be switched off while the product it was attached to is still in use and still working.

No named example of that is printed here. An example of that kind is published only once somebody has verified it at source, and none has been verified here, so any candidate stays in the research record rather than on the page. The objection stands perfectly well without one, and the answer to it is not a reassurance. It is an arrangement: an export you have actually produced, a domain you control, an identifier licence in your own name and a written commitment with its condition visible. A vendor who cannot describe that arrangement has not answered the objection, whatever they say about the technology.

What this page deliberately does not answer

This page shows a record and explains what each row means. It does not explain the machinery that puts the record in front of you, and it does not explain what keeps that machinery alive once somebody stops paying for it. Nor does it say who is entitled to see which of these rows, which is usually the first question a business asks. Those are the three questions readers ask immediately after this one, and each has its own destination.

You might want to read next

Since you have read this, these may answer the questions that usually come next.

Sources

Five sources here, read to four different depths. The differences matter more than the list does. Two are standards published by the organisation that runs a numbering scheme. They appear because they are registered with a read depth, which is the accepted alternative to the guard that otherwise governs citing them, and the resolver standard was read at the organisation's reference site rather than at its marketing site. Two further sources are named for their existence and their published scope only, which is all their read depth supports, and nothing on this page describes a requirement inside either of them.

  • Arts. 9 to 13CELEX 02024R1781-20240628In forceRelevant provisions reviewed

    The framework behind the passport, the identifier and the requirement that a carrier stays reachable for a period tied to the life of the product. Read at the consolidated text. No article number is quoted in the body of this page, because two independent reads attributed the passport-establishing provision to two different articles and the estate holds the numbering as contested until they are read verbatim in one sitting.

    View official source

  • Ratified standardRelevant provisions reviewed

    Cited here rather than described, which is the correction this page owed its readers. Read at the reference site for the behaviours a conformant resolver must exhibit and read as an absence for what it leaves open. It is a resolver standard: conformance to it is resolver conformance, and this page makes no claim that our own service conforms to it.

    View official source

  • StandardOfficial source confirmed, detailed review pending

    The address grammar that carries an identifier inside a URL, which is the shape the worked example below is written in. The address resolves and release 1.7.0 was ratified in August 2026. The document itself has not been read here, so nothing on this page states a requirement from inside it.

    View official source

  • ISO/IEC 18975, encoding and resolving identifiers over HTTP
    International StandardOfficial source confirmed, detailed review pending

    The international standard covering the encoding and resolution of identifiers over HTTP. Named for its existence and its published scope, which is the whole of what its read depth supports. It is a resolver and identifier encoding standard and it is not a product passport standard, and it is never listed as one here.

  • Version pinned at v7.0.0Government modelReviewed in full

    The source of the modelled figures in the impact group. Their answers, republished unaltered and attributed to them, with the version they came from stated because the answer moves when the version does.

    View official source

Worth sharing?

Help someone else make sense of product passports.

LinkedIn X Email