Certificate of Analysis → verified Excel

Turn any Certificate of Analysis PDF into verified Excel.

Every analyte, limit and pass/fail — recomputed and cross-checked against the lab's printed verdict. Digital or scanned.

no login · pay per use · money-back if it's wrong
NSF-Labs · Report 24-08812
Lot VTD-2291 · analyzed 2026-05-30
● verified
AnalyteResultLimitVerdict
Lead (Pb)0.30 mg/kg≤ 1.0pass
Arsenic (As)0.08 mg/kg≤ 0.5pass
Cadmium (Cd)
verdict_mismatch
1.2 mg/kg≤ 1.0lab: pass · computed: fail
E. coliAbsent / 25 gAbsentpass
4 analytes · 1 flag
↓ .xlsx↓ .json
The difference

What it catches that a plain extractor misses

General document-AI pulls the fields. Coatables checks the part that carries the liability.

verdict_mismatch

The math vs the verdict

Recomputes pass/fail and flags where the lab's printed verdict disagrees.

missing_limit

No limit, no pass

“PASS” without a value or basis is flagged, never accepted.

ambiguous_unit

mg/kg · ppm · %

Units canonicalized and converted; mismatched unit classes flagged.

low_confidence

Scans, honestly

Low-confidence fields on scanned CoAs are flagged for human review.

How verification works

The lab said PASS. We check the math agrees.

A vision model reads the PDF; a deterministic layer does the part that has to be exact.

01 · extract

Read every analyte

Vision reads digital PDFs and scans natively — analyte, result, unit, limit, method, LOD/LOQ and the lab's printed verdict.

02 · verify

Recompute, deterministically

Limit notation and units are normalized, then pass/fail is recomputed from the numbers — not guessed by a model.

03 · reconcile

Cross-check the verdict

Our computed verdict is compared to the lab's printed one. Any disagreement, missing field or low-confidence read is flagged.

normalizes ≤  <  NMT  NLT ranges X–Y Absent in 25 g ND · <LOQ mg/kg ↔ ppm mg/g ↔ % CFU/g classes
Where it fits

Lighter than a QMS. More trustworthy than an extractor.

 Generic PDF extractorCOA management platformCoatables
Pulls the fields to Excel/JSON
Recomputes pass/fail from the numbers
Cross-checks the lab's printed verdict
Tuned for supplement lab reports
No login · no onboarding · no contract
One PDF, one deadline
Pricing

Pay per page. No subscription.

1 credit = 1 page — a typical supplement CoA is 1–2 pages. Credits don't expire.

Starter
€19
25 credits · €0.76/page
  • Verified XLSX + JSON export
  • Digital + scanned PDFs
  • All verification flags
Buy starter
Lab
€59
100 credits · €0.59/page
  • Everything in Starter
  • Priority processing
  • Best value per page
Buy lab pack
Volume
€199
500 credits · €0.40/page
  • Everything in Lab
  • Lowest per-page rate
  • Credits never expire
Buy volume

Try it free on our sample certificate first. Money-back if a verification is wrong.

FAQ

The honest answers

Does it handle scanned CoAs, not just digital PDFs?

Yes — a vision model reads scans natively, so there's no separate OCR step. But scans are less reliable than digital PDFs: low-confidence fields are flagged for you to check, and on dense multi-panel certificates a whole panel can occasionally be missed. Confirm every panel you expect is present, and use a digital PDF when you have one. We never promise a scan is 100% right.

What limit notation can it read?

The deterministic layer normalizes ≤, <, ≥, >, NMT, NLT, max, min, ranges like X–Y, microbial Absent in 25 g, and ND / <LOQ — then recomputes pass/fail from the parsed value and the structured limit.

Is this a replacement for QA review?

No. Coatables is an extraction and verification assistant. The verdict column is for review, not for release sign-off — a human QA reviewer stays in the loop, especially on flagged rows.

Which certificates does v1 support?

Third-party supplement lab reports — heavy metals, microbiology and contaminants — across a bounded set of common lab formats. It is not a general “any document” extractor; that's deliberate, so accuracy stays high on the formats it does cover.

Where does my CoA go? Do you store it?

No. Your file is processed in memory and never written to a database — we don't keep your CoAs or the extracted results. It's sent over an encrypted connection to our extraction provider, whose API does not use your data to train models. Your recent results are cached only in your own browser (you can clear them anytime). No account, no file store.

Do I need an account?

No login. You buy a credit pack, upload a CoA, and draw down credits as you verify. Payments are handled by Polar. Your recent results stay in your browser (localStorage) so they survive a refresh — and never leave your device.

Stop retyping CoA PDFs into spreadsheets.

Drop in a certificate and get a verified table back — every limit and pass/fail recomputed, so a misread number isn't your audit finding.

Try the sample cert →