Learn about the COMPARE app, data, methodology, limitations, and sources.
COMPARE reads drug labels from openFDA, the US Food and Drug Administration's open data service1. Each label is the text the manufacturer filed for a product. The same labels are published on DailyMed2. Your browser asks the openFDA service for labels when you search, and nothing passes through a server of ours.
openFDA tells users to assume its results are unvalidated and not to rely on them for medical decisions. COMPARE repeats that warning because it applies to everything shown here.
openFDA stores each label as one record. Each section of the label is a field holding a list of text strings, for example the indications section or the adverse reactions section. Where a section has tables, they come in a separate field as HTML. Two label formats exist side by side:
COMPARE shows one menu entry per kind of section and gathers the matching fields under it, so that old and new labels line up in a comparison.
| Menu entry | Fields used, in order |
|---|---|
| Warnings and precautions | warnings_and_cautions, then warnings, precautions and general_precautions as small headings |
| Use in specific populations | use_in_specific_populations, then pregnancy, nursing mothers, lactation, pediatric use, geriatric use and related fields |
| Clinical pharmacology | clinical_pharmacology, then mechanism of action, pharmacodynamics, pharmacokinetics |
| How supplied and storage | how_supplied, then storage_and_handling |
| Patient counseling information | information_for_patients, then the patient package insert |
| Other | Every other text field in the record, under its own name, so nothing is hidden |
The menu lists a section if at least one of the labels has it, and shows how many do when it is not all of them. The groups are About, Use, Safety, Science, Supply and patients, and Other.
No words are rewritten, summarized or reordered. No AI is used. The same labels always produce the same page.
A search matches the brand name, the generic name or the active substance, as a phrase, in prescription and over-the-counter labels (the prescription label is chosen first when both exist). Characters that have a special meaning in the openFDA search language are removed from what you type.
A comparison puts the same section of two or three labels in a row. Each label's section is turned into plain text first, with subsection numbers kept and small headings marked.
When Mark words that differ is on, the text of each later label is compared word by word with the first label, using the longest common sequence of words (the method behind most text comparison tools). Words in a later label that are not part of that shared sequence are marked. Capital letters and punctuation are ignored, so Adults: and adults count as the same word. Words that are only in the first label are not shown. Very long sections use a simpler check, which marks a word if it appears nowhere in the first label.
The comparison shows wording differences. It does not say which differences matter clinically, and it does not match numbers inside tables across labels. A different order of sentences can show up as many marked words even when the meaning is the same.