Structured Product Labeling (SPL): The FDA XML Standard, Explained
Structured Product Labeling is the document markup standard FDA requires for submitting labeling and product information. It is an HL7 standard, and an SPL file is XML: the same content a prescriber reads on a package insert, marked up so that a machine can find each section reliably.
If you have ever looked a drug up on DailyMed and wondered where that page comes from, the answer is an SPL file the manufacturer submitted to FDA.
Why a markup standard at all
Before SPL, labeling arrived as prose. A human could read it; nothing else could. That made basic questions expensive: which products contain this active ingredient, which labels carry this warning, what changed between two versions.
SPL fixes each section to a defined place in an XML document, and annotates those sections with LOINC codes, so "Indications and Usage" is identifiable by code rather than by matching a heading. The result is labeling that supports querying, comparison and automated safety surveillance.
The scale is worth stating. As of FDA's 31 August 2026 update, openFDA holds 262,325 labeling documents drawn from SPL, alongside 137,590 entries in the NDC directory. None of that is possible with unstructured text.
What SPL is used for
SPL is not only for the package insert. It carries several distinct submission types:
- Content of labeling — prescription drugs, OTC products and biologics.
- Drug listing — the products a company markets, and their NDCs.
- Establishment registration — the facilities involved, and their registration numbers.
- Other listings — including certain veterinary and blood products.
The obligation is broad: companies producing prescription, OTC, biologic and veterinary products, along with distributors, submit registration and listing information to FDA in SPL format rather than on paper.
What an SPL document contains
Structurally, an SPL file has a header carrying identifiers and metadata: the document ID, the set ID that ties every version of a label together, the version number, the effective date, and the labeler organisation with its DUNS number.
Then a body of coded sections, each with a LOINC code, holding the labeling content itself, and data elements describing the products: NDC codes, active and inactive ingredients with strengths, dosage form, route of administration, packaging configurations and marketing category.
Two identifiers cause most of the confusion:
- Document ID is unique to one version of one label.
- Set ID stays constant across every version of that label.
A label update is a new document ID with the same set ID and an incremented version number. Getting this wrong creates a duplicate listing rather than an update, which is one of the more common and more annoying SPL errors.
How SPL reaches DailyMed
The path is: prepare the SPL, validate it, submit it to FDA through the Electronic Submissions Gateway, and FDA publishes it to DailyMed, run by the National Library of Medicine as the official public source of current FDA drug labeling.
DailyMed and FDALabel draw on the same underlying data with different search behaviour and different displays, which is why the two sometimes look like they disagree when they do not.
Because DailyMed is public and current, it is also the fastest way to check what a competitor's approved labeling actually says, rather than what their marketing implies.
Where SPL submissions go wrong
- Set ID reused or changed incorrectly. A new set ID creates a new product listing instead of a new version of an existing one.
- NDC formatting. The 10-digit and 11-digit forms are not interchangeable, and the segment lengths vary by labeler.
- Validation failures on required elements. SPL is validated programmatically; a missing coded element fails on submission rather than being queried later.
- Labeling content that does not match the approved application. SPL is a format, not an approval. Marking up text the application does not support does not make it acceptable, and promotional review still applies.
- Listing left stale. Drug listing has to be kept current. Products no longer marketed need their listing ended, not simply ignored.
Frequently asked questions
What is Structured Product Labeling?
An HL7 document markup standard, adopted by FDA, that defines drug labeling and product information as XML so it can be exchanged and queried reliably rather than read as prose.
Is SPL required?
Yes. Companies marketing prescription, OTC, biologic and veterinary products, and distributors, must submit labeling, drug listing and establishment registration information to FDA in SPL format.
What is the difference between a document ID and a set ID?
The document ID identifies one version of a label. The set ID stays the same across every version, tying the history together. An update reuses the set ID with a new document ID and a higher version number.
What are LOINC codes doing in SPL?
They identify each labeling section by code rather than by heading text, so software can locate "Indications and Usage" or "Warnings" reliably across hundreds of thousands of labels.
What is DailyMed?
The National Library of Medicine's public source of current FDA drug labeling, published from the SPL files manufacturers submit to FDA.
Is SPL the same as the package insert?
The SPL carries the content of the package insert, plus product and establishment data, in a structured format. The insert is one rendering of part of it.