01
The dilemma
Each container needed a certificate of analysis, safety data sheets and the rest of the export pack. Staff assembled them by hand from lab results and templates. A single shipment took about four hours, and customs waited on the paperwork.
What was breaking
- The lab and the document were different jobs. Assay results lived in the quality system. Someone re-typed them into the certificate.
- Languages and formats multiplied the work. The same batch needed more than one language and a GHS layout. Each copy was another manual pass.
- The pack blocked the shipment. Freight forwarders could not move until the documents were ready, so a slow certificate became a port delay.
The cost of standing still
Four hours per container is not only staff time. It is a shipment sitting while the paperwork catches up with a batch that has already passed quality.
02
The idea
Generate the certificate from the lab result and the approved formulation, and send the pack when quality signs off. People approve the batch. They should not re-type it.
The principles we worked to
- The assay is the source. The certificate reads the quality result. It does not get a second copy typed beside it.
- Sign-off is still a person. Nothing is dispatched until quality approves the batch. The engine prepares. It does not self-approve.
- Every formulation version stays. The audit trail records which formulation and which batch produced the document.
What we ruled out, and why
| Option considered | Why we did not take it |
|---|---|
| A shared template folder | Templates were already the process. They still needed someone to copy lab numbers and chase language versions. |
| Generating documents with no approval step | A wrong certificate on a hazardous shipment is not a formatting problem. Quality sign-off stays in the path. |
03
The build
A small portal and an API sit between the lab, the formulation record and Sage.
Certificate engine
Python services pull the live assay for the batch and fill the certificate. Background workers handle the pack so the portal stays responsive.
Safety data sheets
The same batch can produce a GHS safety data sheet in the languages the shipment needs, from the approved formulation rather than a fresh Word file.
Batch record
PostgreSQL stores formulation versions and batch approvals so a later question has an answer that was not edited after the fact.
Order and dispatch
Sage supplies the export sales order. When quality signs off, the document pack goes to the freight forwarder.
04
The impact
| Measure | Before | After |
|---|---|---|
| Certificate time | About 4 hours per shipment | About 30 seconds to generate, after quality sign-off |
| Lab results | Re-typed into the certificate | Read from the quality record |
| Export delays blamed on documents | A standing bottleneck at port | No document-caused shipping delays recorded across 18 months |
Beyond the numbers
- Quality approves a batch, not a typing job. The sign-off is still theirs. The copying is not.
05
What comes next
The certificate path is in production. Next is the rest of the export pack.
- More languages on the safety data sheet compiler.
- A forwarder acknowledgement back onto the batch record.
Engagement delivered by the Ideentrix founding team. Technologies, scope and outcomes as recorded at project close, published with the client's consent.
