The surveillance problem
A prescribing information document runs to dozens of pages of dense text, tables and boxed warnings. Revisions are published as complete new PDFs. A pharmacovigilance or regulatory team has to know which warnings, doses, contraindications and interactions changed, and it has to be certain it did not miss one.
What the engine had to get right
- Reflow. A sentence added to section 5 must not be reported as changes on every later page.
- Tables. Dosing and adverse reaction tables that are unchanged must not light up because the extractor read the cells in a different order.
- Running headers and footers. Reference IDs and revision dates repeat on every page and must be reported once, not per page.
- Two-column layouts. Highlights sections are laid out in columns and must be read in the right order.
- Determinism. The same two documents must always produce the same result, because the result is part of a regulated record.
From labels to everything else
The same engine now runs behind the comparison tool on this site and its API. Pharma teams use it for the label problem it was built for, and for the documents around it: SOP revisions that QA has to approve, protocol amendments, CMC documents and regulatory submissions that must match the internally approved version before filing.
Validation
Because the diff is rules-based rather than model-based, it is reproducible and can be validated. Enterprise deployments run pinned versions inside the customer's own infrastructure, which supports IQ/OQ documentation and keeps documents off shared servers.
Try it on your own documents. Upload two versions on the homepage. Documents up to 30 pages need no account, and nothing is stored.
Industry page: PDF comparison for pharma and life sciences