Six stages, and you can see the state of all of them
This is the whole product. There is no seventh stage where something proprietary happens. The value is that each step is visible, attributable, and connected to the one after it.
Bring your data in
Product master, suppliers and purchase orders arrive as the exports you already produce.
Your column headings do not have to match ours. Map them once, save the mapping, and next month is one click. Individual bad rows do not fail the import: you get counts of what loaded, what warned and what errored, plus a file of the errors to fix.
Decide what is in scope
Each product is evaluated against a versioned ruleset of customs codes, commodities and countries.
The result records which rule matched and which version of the rules produced it. When Annex I is amended you load a new ruleset and re-evaluate. Previous decisions are superseded, never rewritten, so you can still answer why something was treated as out of scope last quarter. Anything matching no rule returns as needing review rather than quietly falling out of scope.
Ask suppliers once
Select a supplier and the products, and the system issues a secure link.
No account, no password, nothing to install. Five steps: producer, origin, production plots, documents, declaration. Geolocation is checked as it arrives and problems are explained in the supplier language. Coordinates can be pasted rather than uploaded, which is often all a smallholder can manage. Failed files are kept, so nobody argues about whether something was sent.
Chase without chasing
Reminders follow a schedule you configure, and escalate internally when they lapse.
Typically a nudge at three days, something firmer at seven, and an internal escalation at ten. Every message is recorded. Reminders stop the instant a supplier responds, because chasing someone for what they already sent is how you teach them to ignore you.
See what is blocking each order
Readiness is calculated from the evidence actually held. It cannot be typed in.
Each purchase order shows a status and, where it is not ready, the specific reason with the object that must change and the action that clears it. Because status is derived rather than stored, the dashboard, the exceptions queue and the order page cannot disagree with one another.
Close it out
Declarations work in both directions, because not every business files its own.
If you are an operator, the statement is assembled from linked evidence, submitted, and the reference stored against the order. If you are downstream, the supplier reference is recorded instead and validated on arrival. The integration runs against the Commission acceptance environment before production, and refuses to send development data to the live system.
Built for a regulation that keeps moving
Rules are data
Scope, country risk, effective dates and references live in versioned rulesets loaded from official sources. An amendment is a load, not a release.
External systems sit behind adapters
The Commission system, risk providers and ERP connectors each have one interface. A specification change touches one module.
Nothing is overwritten
Scope decisions, assessments and declarations are versioned. A correction creates a new record pointing at the old one.
Isolation is in the database
Customers are separated at row level in Postgres, not by application logic, so a bug in a screen cannot leak another company data.