The rule sets are the asset. Each destination country or customs bloc has its own versioned set with a five-state lifecycle — author and approver must be different people, versions carry a future effective date, and a new version is simulated against twelve months of past shipments before it is allowed to take effect. A rule entry names the certificate, cites its legal basis, states which control point it must be in place before, and declares who bears the obligation, so an importer’s duty never blocks at the carrier’s level while a statutory duty blocks on every shipment. Determinations are append-only. The gate freezes its whole input vector — rule set version, checklist, elected values, check results, open holds — at the moment it issues, and never edits it afterwards. Evidence is sealed in sets at their own points, and every field records which source it came from, keeping both values when two sources disagree. Seventeen modules, 128 record types, 24 workflows and 119 capabilities, on Drupal with a single-writer database.
Highlights
- Rule changes are simulated against twelve months of past shipments before they can take effect
- A determination is append-only and freezes its whole input vector — you can reconstruct exactly why it said what it said
- Statutory and sanctions items have no waiver route; only contractual items can be waived, on a configurable ladder
- Who bears the obligation is declared per rule, so an importer’s duty never blocks at the carrier’s level
- Every field keeps its source — when two sources disagree both values are retained and the operator elects which to use
Built with: Drupal, PHP-FPM, MySQL / MariaDB, Redis, Object Storage, Twig