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 certificate. No subscription.

Credit packs you draw down as you verify. Credits don't expire.

Starter
€19
25 certificates · €0.76 each
  • Verified XLSX + JSON export
  • Digital + scanned PDFs
  • All verification flags
Buy starter
Lab
€59
100 certificates · €0.59 each
  • Everything in Starter
  • Priority processing
  • Best value per cert
Buy lab pack
Volume
€199
500 certificates · €0.40 each
  • Everything in Lab
  • Lowest per-cert 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. Scans are inherently less certain than digital PDFs, so any low-confidence field is flagged for you to check rather than silently guessed. 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.

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.

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 →