New — the Tender Checklist Workbench is live: review tenders with page-cited answers. See it →
← All products

Residue Control

EU residue compliance against the official pesticides database

Residue Control cross-checks the substances in a crop-protection residue analysis against EU active-substance authorization status, MRL data, and your customer-specific prohibited lists. Upload a lab report (PDF or XLSX) and it extracts each detected substance, matches it by CAS number or name, and returns a per-substance verdict. Each report rolls up to a single compliant, violations, or inconclusive outcome you can act on. The lookups run against the live EU Pesticides Database, so approvals and withdrawals stay current.

Know if it’s compliant before it ships.

A residue lab report lands in your inbox. Fifteen substances, each measured to the microgram — and somewhere in that table might be one that’s no longer authorized in the EU, or one a customer explicitly bans.

Residue Control finds it. Upload the PDF or spreadsheet and every detected substance is matched against the live EU Pesticides Database and your customer-specific prohibited lists, then scored: compliant, violation, or review needed. No manual cross-referencing. No stale lookup tables.

Fast enough for a trading desk, precise enough for QA. EU-hosted, private by design — your analyses and customer lists stay in the EU.

Check your first report →

Under the hood▾

Residue Control is a Next.js + Tailwind app served standalone on EU-hosted infrastructure (Proxmox LXC, VLAN-isolated), with SSO through the RapidCloud portal. Uploads (PDF/XLSX) land in private MinIO object storage; reports, findings, and customer prohibited lists persist in a dedicated Supabase Postgres schema.

Extraction: PDF parsing tuned for standard agro analyserapport layouts (parameter/result/LOQ tables); XLSX import for bulk substance and prohibited-list ingestion.

Matching: each detected substance resolves against the EU Pesticides Database of active substances — the same source exposed by the platform’s research-agent (search by name, full detail records including approval/expiry, MRL, and authorisation sections, plus a recent-updates feed). Matching is CAS-number first, then normalized name, with NL→EN spelling transforms. Customer negatieflijst checks layer on top.

Verdict logic: per-finding precedence (customer-blocked > not-authorized > allowed > unknown) rolls up to a report verdict. Lookups query the live EU source, so approvals and withdrawals reflect current regulation. All data stays in the EU — no third-party AI calls in the compliance path.