Docs and methods
Drybench Patent.
How the patent app keeps the FDA's files, traces every date to its rule and row, what it lets you take away, how its code is checked and what it sends where.
Updated 13 October 2026 · v0.2.0
Methods
What the app shows, how it works and how it was built, in the words of its own write-up, followed by the parameter defaults and the data sources with their licences.
What it shows
Type a brand, an ingredient or an application number to explore the captured FDA patent and exclusivity rows for that US product, each with its date, the rule it rests on and the row it came from. The answer is a range of listed protection: the latest substance patent, the latest listed patent of any kind and the latest non-patent exclusivity, never one date. A date window groups listed dates by product and rule; these are not entry dates.
Beside the trace sit candidate ANDA products grouped by ingredient and dosage form, with their listed therapeutic-equivalence codes and unconfirmed reference-product matching; the Paragraph IV certifications list's row for the product as FDA publishes it; the Purple Book's exclusivity dates for biologics; and what changed in FDA's files between two captures.
How it works
A scheduled job saves the FDA Orange Book data files (products, patents and exclusivities), the Purple Book download and the Paragraph IV certifications list every day and keeps each file only when it changes, because the FDA publishes current files only and keeps no public history. The app reads one static store built from those files; the store is served from this site, with the capture date on every surface, and nothing is fetched from the FDA in your browser.
The trace identifies the supported rules and their source rows. Tentative-approval data is not included in this store. NCE-1 is the only computed date. A listed patent's expiry is shown as the application holder submitted it, with its substance, product and use flags. The pediatric row FDA lists for the same patent is shown as FDA lists it; the app never adds six months itself. Each non-patent exclusivity is shown with its code and FDA's definition of the code. NCE-1 is the NCE date minus one year. The Paragraph IV row is shown as listed, and an absent row is never read as no certification. Patents with a delist request or a use code stay in the table, flagged.
Every table and export carries, for each date, the source file, the row, the file's own date when known, the capture date and the file's checksum, so a reader can check any value against the FDA's own file.
How it was built
The parsers are written against the FDA files' published layouts and say what they did not find rather than guess. The rule engine is pure TypeScript with a second implementation in Python that the tests compare it with over a fixture, and every number on screen is traced to a row. The app serves the pinned FDA capture with mechanically transcribed source fixtures and implementation checks. Independent regulatory review remains pending (SCI-124/Q-19); the original F1–F7 requirements are not all complete.
The seven rules
- R1, listed patent expiry
- The Orange Book patent row's expiry as the application holder submitted it, including any extension, with its drug-substance, drug-product and use flags, its use code, its delist flag and its submission date. Nothing is verified against the patent itself.
- R2, pediatric exclusivity on a patent
- The second row the FDA lists for the same patent, marked *PED, with the amended date, shown as listed and labelled as pediatric exclusivity. The app never adds six months: a product with a PED exclusivity row but no *PED patent row shows no extension.
- R3, non-patent exclusivity
- Each exclusivity row's code and date, with the FDA's definition of the code; a code outside the definitions list is shown as such, never guessed.
- R4, NCE-1
- The NCE exclusivity date minus one calendar year, shown as the earliest ANDA submission with a Paragraph IV certification; the one computed date, marked as computed.
- R5, Paragraph IV and 180-day
- The Paragraph IV list's row as the FDA publishes it: first submission date, number of ANDAs, 180-day status, decision date, first approval, first marketing and the last qualifying patent's expiry. An absent row is never read as no certification.
- R6, tentative approvals unavailable
- Tentative-approval data is not included. Separately, candidate ANDA products are grouped by ingredient and dosage form with listed therapeutic-equivalence codes and approval dates; this does not confirm a reference-product relationship.
- R7, delisted and use-code patents
- Kept in the table with their flags: a delist request keeps the patent listed while a first applicant may keep 180-day eligibility, and a use-code patent is shown as blocking the coded use.
- The summary
- A set, never a point: the latest substance patent (with its *PED row where listed), the latest listed patent of any kind, the latest non-patent exclusivity, and the earliest and latest of every rule's dates.
- Join
- By application type and number only, with rows shown per product number because patents and exclusivities are listed per strength; the Purple Book joins by BLA number; the Paragraph IV list by one isolated 4–6 digit NDA token, padded to six digits and matched to NDA product rows only. Unresolved rows are retained separately with reasons.
- The store
- The capture's normalised text per file (header first, rows sorted) with the capture's record of each download, served as content-hashed metadata, a names/dates index and application shards. Initial capture and transformation-only corrections remain archived but are excluded from FDA listing changes.
Data sources, licences and versions
Sources and licences
FDA Orange Book data files (products, patents and exclusivities)
FDA Orange Book data files (products, patents and exclusivities)US government work, public domain (FDA website policies); the classification of this source is held for the General CounselEvery approved drug product with its listed patents, their flags and expiry dates, and its non-patent exclusivities, captured daily and kept on change
Data from the FDA Orange Book data files, U.S. Food and Drug Administration. Not endorsed by the FDA.
FDA Purple Book data download
FDA Purple Book data downloadUS government work, public domain (FDA website policies); the classification of this source is held for the General CounselLicensed biological products with their reference-product, interchangeable and orphan exclusivity dates where FDA lists them, captured on change
Data from the FDA Purple Book, U.S. Food and Drug Administration. Not endorsed by the FDA.
FDA Paragraph IV patent certifications list
FDA Paragraph IV patent certifications listUS government work, public domain (FDA website policies); the classification of this source is held for the General CounselThe first Paragraph IV submission date, the number of ANDAs, the 180-day status and the related dates for each reference listed drug, as FDA publishes them, captured on change
Data from the FDA Paragraph IV patent certifications list, U.S. Food and Drug Administration. Not endorsed by the FDA.
Times on screen are local time with the UTC offset; times in exports are UTC. Dates with no time are shown at the precision the source gave them.
Exports
Each view exports as CSV with a citation per row (the source file, the row, the file's date, the capture date and the checksum), the capture date of every source and the limits in a README beside the data. The link in the address reopens the same product, view and window.
Release gate: before the app leaves the preview, its exports and printed reports will carry the data versions, parameters, limits and a timestamp needed to reproduce a result, as the regulatory position says. This section will describe each format as it ships.
Verification
Each module below is a set of automated tests in the app's source code, with the expected results written into the tests. They check the app's logic against recorded inputs and stored reference records; none of them calls a live service.
Unit tests
- src/lib/exclusivity/reference-capture.test.ts
- 439 mechanically transcribed source rows and 30 application summaries from the pinned 17 October capture, with original coordinates and hashes. F4/F6/F7 source prerequisites remain unavailable. Independent regulatory review is pending (SCI-124/Q-19).
- src/lib/exclusivity/parse.test.ts
- The five parsers against the synthetic fixture: headers found and missing, dates in the FDA's forms and in words, the *PED marker, flags, quoted CSV and a changes section before the Purple Book's header.
- src/lib/exclusivity/trace.test.ts
- Implemented rule traces, including the negative control (a PED exclusivity without a *PED patent row shows no extension), the summary set, NCE-1 and the date window.
- src/lib/exclusivity/reference.test.ts
- The engine's trace over the synthetic store against the Python second implementation's expected values, field by field.
- pipeline/patent-exclusivity/capture.test.ts
- The capture script's built-in test: normalised layout, keyed diffs, the heartbeat, a failed source's exit code and the watchdog's allowances.
Release gate: before the app leaves the preview, each release will publish a verification dataset with expected outputs on this page, so you can run your own checks.
Oracles and build-time tools
Software the app's numbers were checked against, or its data built with. None of it ships with the app or is a dependency of it.
- Python standard library (pipeline/patent-exclusivity/trace_reference.py) 3.12 (Python-2.0; Oracle; 2026-10-13). a second implementation of the listed-protection trace over the synthetic fixture, compared with the engine in the tests
Security overview
Scientific computation runs in your browser, and individual apps need no account. Optional Bench accounts and backups use the site server and configured providers. The privacy statement, the hosts it contacts and the headers its workspace is served with are generated from its registry entry, the same record that sets the browser's policy.
What leaves your browser
What leaves your device. Requests for Drybench Patent's own files (pages, scripts, data files and images) go to the host that serves it. That host keeps standard web-server logs (IP address, user agent, requested address, time). Anything in the address bar before the # (a search, a SMILES, an accession or a step) is sent to this site's host when a page loads or a link is opened; anything after the # is not sent. No external scientific host is contacted for these operations. The app carries no analytics and no error reporting, and loads no font or script from any other origin. Optional Bench sign-in and billing contact the site server and its configured account providers; choosing an account backup uploads the selected Study.
What stays on your device. Anything you save in the app, your preferences, and anything you have not chosen to export, share or back up to your account. They live in this browser's storage on this device.
Where you choose to send data. A link you copy carries what you were looking at (the application you opened, the view, the date window and the source filter); anyone who receives it can read it, and mail and chat tools may fetch the link to show a preview. A file you export or share goes wherever you send it.
Hosts the app contacts
The app contacts no host but its own.
Headers the workspace is served with
These are the exact header values, generated from the app's registry entry.
- Content-Security-Policy
- default-src 'self'; script-src 'self' 'unsafe-inline'; worker-src 'self' blob:; connect-src 'self' blob:; img-src 'self' data: blob:; style-src 'self' 'unsafe-inline'; font-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'none'
- Referrer-Policy
- no-referrer
- Permissions-Policy
- camera=(), microphone=(), geolocation=(), payment=(), usb=()
- X-Content-Type-Options
- nosniff
- Cross-Origin-Opener-Policy
- same-origin
Limits
- 1. Not medical or investment advice, and not legal or regulatory advice: listed protection is a range of dates from the FDA's own rows, not a loss-of-exclusivity date, and litigation, settlements, patent term extensions, unlisted patents, at-risk launches, authorised generics and 505(b)(2) products are not in these files.
- 2. Patents and their expiry dates are as the application holder listed them; the FDA does not verify listings, and the Federal Trade Commission challenged more than 100 Orange Book listings in November 2023.
- 3. The only arithmetic is NCE-1, the NCE exclusivity date minus one year; a pediatric six-month extension is shown only where the FDA lists it and is never added here.
- 4. The Paragraph IV list is not complete: the FDA omits some forfeiture decisions and lists only substantially complete submissions, so an absent row never means that no certification was filed.
- 5. Most Purple Book exclusivity dates are blank, because the FDA determines reference-product exclusivity on request, and patents are listed for a handful of biologics only.
- 6. History begins at the first capture, whose date the app shows: the FDA publishes current files only, so nothing before that date can be shown, and a gap in the captures is a gap in the history.
- 7. While the shipped store is the synthetic example, every row on screen is invented in the FDA file layouts for the build, and no date is the FDA's; the app says so on every surface until the first capture replaces it.
Where it runs and what it sends
- The FDA's files, kept dailyA scheduled job saves the Orange Book data files, the Purple Book download and the Paragraph IV list every day and keeps each file only when it changes.
- One store, served from this siteThe app reads a static store built from those files, with the capture date on every surface; nothing is fetched from the FDA in your browser.
- Supported rules, one computationThe trace identifies supported rules and source rows. Tentative-approval data is not included. NCE-1 is the only computed date; pediatric six months is never added here.
- Traced to the rowEvery value names its file, row and capture, and the exports carry the same citations.
Built for the keyboard and for screen readers
Everywhere in the app
- Show every keyboard shortcut
- ?
- Go to the search field
- /
- Open the command palette
- ControlK
- Open Settings
- Control,
- Close the innermost panel, menu or dialog
- Escape
In this app
- Protection
- o
- Patents
- p
- Exclusivity
- x
- Generics and Paragraph IV
- g
- Changes
- h
- Date window
- w
Single-key shortcuts work outside text fields and can be turned off in Settings.
Commitments
- Controls work from the keyboard, with focus always visible.
- One polite live region announces what changes, for screen readers.
- Reduced motion is honoured, from your system setting or the app's own switch.
- Works at 375 px wide.
Questions buyers ask
Why is there no single expiry date for a product?
Because the FDA's rows give several, depending on the rule: a substance patent, a formulation patent, a pediatric row, an exclusivity code. Each is shown with its rule and its row, and the range runs from the earliest to the latest. Litigation, settlements and at-risk launches are not in these files, so a loss-of-exclusivity date cannot be read from them.
Where do the dates come from?
From the FDA's own files: the Orange Book data files, the Purple Book download and the Paragraph IV certifications list, saved daily by a scheduled job and kept when they change. Every date carries its source file, row, the file's own date when known, the capture date and the file's checksum.
Does the app add the pediatric six months?
No. The FDA lists the patent a second time with the amended date when pediatric exclusivity attaches, and the app shows that row as listed. The only arithmetic is NCE-1, the NCE exclusivity date minus one year, shown with its definition.
What does review pending mean?
The store contains mechanically transcribed FDA rows. The rule interpretations and fixtures have not received independent regulatory-affairs review. This app remains alpha.
Is this legal or investment advice?
No. The app describes the FDA's records as they stand and offers no opinion on a patent's validity, on infringement or on when a generic will enter. It is not regulatory, legal or investment advice.
How fresh is the data?
The scheduled capture checks daily; this store was built from the archive retained on 17 October 2026. Capture dates and last successful checks are shown separately. Store refreshes require a reviewed build and release; no automatic weekly refresh is promised.
Is it validated for regulated (GxP) work?
No. It is off-the-shelf software for research and decision support and has not been validated for use in a regulated environment. Validating it for your intended use is for your organisation to do; the regulatory position below says what we provide to help.
Next step
Want this tuned to your products?
Email m.beale@icloud.com with what you need, or use the contact page.