The operation moved product from Korean farms and processing plants into U.S. distribution, at a scale of roughly $20 to $40 million in annual landed value. It worked. It had worked for years. And the only place the full picture existed was in the head of one person who reconciled four spreadsheets by hand, most evenings, after everyone else had gone home.
That is not an unusual situation. It is close to the default in cross-border operations that grew faster than anyone had time to design for. What made this one worth writing up is how precisely the cost could be measured once the sources were laid side by side.
The four sheets, and what each was actually for
On paper there was one process. In practice there were four systems of record, each authoritative for something, none authoritative for everything, and no rule anywhere describing which won when they disagreed.
- A procurement sheet, maintained in Korea, holding what had been ordered from which farm and at what price.
- A production sheet, maintained at the plant, holding what had actually been processed and packed.
- A logistics sheet, maintained by whoever booked the container, holding freight, duty and arrival dates.
- A U.S. inventory sheet, maintained in the warehouse, holding what was physically on hand.
Each sheet was correct about its own slice. The problem was the joins. A purchase order in the procurement sheet became a different SKU in production, a different case count in logistics, and a third quantity in the warehouse, and nothing in the chain recorded that these were the same thing. Landed cost, the number the business actually ran on, was assembled by hand from all four.
How discovery was run
We did not start with a data model. We started with interviews, in both countries, with the people who touch the process rather than the people who describe it in meetings. Fourteen sessions over two weeks, each one following a single order end to end and asking, at every handoff, where the information came from and what the person did when it looked wrong.
That produced two artefacts. The first was a workflow map: every step, every system, every place a human retyped something a machine already knew. The second was a list of 34 questions nobody in the business could answer with confidence, which turned out to be the more valuable document of the two.
The questions were not obscure. They were things like: when a container arrives short, which number do we correct, and who is allowed to correct it? Nobody had written that down, so four people had four answers.
The 25 divergences
Reconciling the four sources against one another produced 25 places where the same field carried two different values. Some were harmless. Several were not.
The pattern that mattered was not the size of any single gap but which copy people trusted. In three cases, the number reported upward came from the sheet that was structurally least likely to be right, because it was the one that was easiest to open. In two cases, the discrepancy had been silently absorbed into landed cost for long enough that the margin on an entire product line was understated.
Ranking those 25 by commercial exposure rather than by count is what turned the audit into a plan. Most of them could wait. Four of them were worth more than the whole engagement.
Deciding the source of truth before designing a screen
The design phase started with a single decision made in writing: for each field in the operation, which system owns it, who is allowed to change it, and what happens to the downstream copies when it changes. That document was two pages. It was also the entire reason the build went smoothly.
Teams skip this. They go straight to screens, because screens are what the client asked to see, and then discover six weeks in that two departments hold irreconcilable definitions of the word "shipped". Writing the ownership rules down first turns that argument into a twenty-minute conversation rather than a rebuild.
What got built
One relational system holding purchase orders, production runs, shipments and inventory as linked records rather than as parallel lists. On top of it, the daily work:
- Shortage and coverage calculation, versioned, so any figure can be walked back to the inputs that produced it.
- Procurement and purchase order management, with the Korean and U.S. views of the same order kept in sync rather than reconciled.
- Supplier and plant interfaces sized for the people who actually use them, in both languages, on the devices they already carry.
- Role-based access with field-level audit logs, so a corrected figure keeps its history instead of overwriting it.
The sheets stayed alive
We did not switch the spreadsheets off. They sync in, and imports land in a review queue rather than straight into the record. That decision cost a fortnight of engineering and removed the single largest risk in the project, which was that people would keep working the old way in parallel and the new system would slowly become a reporting layer over a process it did not control.
Run-in ran for three weeks. The measure was not whether the software worked. It was whether an ordinary week went through it without anyone opening the old sheet.
What is still open
Duty and tariff classification is still handled outside the system by a broker, and the arrival dates it produces are still entered by hand. Forecasting sits deliberately out of scope until the historical record is clean enough to forecast from, which is a question of months rather than features. Both are written into the roadmap with an honest note about what they depend on.