Most articles about AI in manufacturing talk about robots or predictive maintenance. We do not have those. What we have is Excel files that people send us on WeChat — and it turns out AI is very good at those.
Here is a real one from last week.
The file
A wholesale account asked us to total up what they had bought from us so far this year. They sent one .xls file: 33 KB, four worksheets, 113 rows. Ten months of purchase records.
Four worksheets sounds organised. It was not.
- Two of them covered the same customer in two separate chunks — January–February, then March–October.
- One was labelled 代发 (drop-ship) and had no customer name and no model column at all.
- The date column was filled in only on the first row of each group. Every row below it was left blank, because that is how people keep a ledger.
- Model names kept shifting: 大号 and 大号有盖 (large, and large-with-lid) were the same product. On one line someone had typed 无盖 (no lid) where they meant the small size.
None of this is sloppiness. It is what a ledger looks like when a real person maintains it. The trouble starts when you try to run a pivot table on it: every one of those blank dates collapses into the wrong month, and you get a total that is quietly, invisibly wrong.
Why we stopped doing it by hand
We used to. It took an afternoon, and we still got it wrong once — we added up the same customer's two worksheets and double-counted a month because we had not checked whether the date ranges overlapped.
Spreadsheet cleaning is not hard. It is boring enough that you stop paying attention, and the mistakes leave no trace. A wrong total looks exactly like a right one.
What we asked the AI to do
We do not have AI write formulas for us. We describe the file and the rules, and it writes a script that applies them the same way every time.
Four steps:
- Read the file as it is. This .xls is the old binary Excel format that plenty of Chinese ERP systems still export. The script reads it row by row, so we never have to open it and re-save it as .xlsx first.
- Fill the dates downward. Each blank date inherits the one above it. This is the single step that makes all later grouping correct.
- Merge the model names using an explicit map. 大号 = 大号有盖, 小号 = 无盖. We write that map ourselves — the AI does not guess it. If a name appears that is not on the map, the script reports it instead of silently dropping the row.
- Only then aggregate. Per customer, per month, per size.
The whole job took about twenty minutes, and most of that was us answering questions about what the columns actually meant.
What came out
Two accounts, 48 orders, 36,400 units over ten months.
| Account | Orders | Units | Large | Small |
|---|---|---|---|---|
| Account A | 29 | 24,820 | 14,290 | 10,530 |
| Account B | 19 | 11,580 | 7,270 | 4,310 |
| Total | 48 | 36,400 | 21,560 | 14,840 |
Account A month by month:
- January: 7,310
- February: 485
- March through October: 1,340 to 2,755, drifting upward
That February figure is the one worth looking at. A 93% drop is not a demand collapse — it is Chinese New Year. The supply side of this industry shuts down for two to three weeks, and everyone who has sourced from China before knows the shape of it: a rush in January to get goods out before the stop, near-nothing in February, and a slow restart in March.
The data did not tell us anything we did not already know. It put a number on it.
Account B went from 540 units in March to 1,850 in October. We had felt that climb without ever measuring it, and now there is a reasonable basis for holding more fabric for them next spring instead of guessing.
Where the AI stopped
25 rows carried no customer name and no model — only a quantity and a price. 6,755 units.
The useful thing the AI did was refuse. It put those rows into a separate tab labelled "needs confirming" and left the total alone. It did not merge them into either account, and it did not split them evenly to make the numbers look tidy.
That is the part worth remembering. A tool that guessed would have produced a clean-looking 43,155 units, and we would have sent that to a customer who would have spotted it. Cleaning data is mostly about being honest about what you do not know.
What this means if you are buying from us
Not much, directly. It is a back-office thing.
But it is why we can tell you, mid-negotiation, roughly how much of something you bought last year and which months you lean on. It is why we can tell a holiday dip apart from a real one. And it is the same habit that lets us reserve fabric before your order actually lands — we are working from a measured baseline, not a memory.
We are a 2,000㎡ workshop. We are not hiring a data team. But this took twenty minutes instead of an afternoon, and the answer is one we can defend.