BOM Cleaner: part number matching for messy BOM lists
BOM Cleaner is a tool in the Automa.Net portal that matches every line of a BOM list from Excel or your ERP to its manufacturer part number (MPN), brand and catalogue record - the matching step of BOM scrubbing. It reads codes buried in descriptions, split by spaces or next to a misspelled brand, and every row comes back with a confidence score and the reason behind it.

Built on 1,205 real files
- files run through BOM Cleaner
- 1,205
- lines processed
- 5.1M
- lines matched automatically
- 1.5M
- median time for a 10,000-line export
- 3 min
* Every file run through BOM Cleaner from October 2025 to November 2026.
Three lines that break ordinary matching
A part list is not dirty because someone was careless. It is written the way procurement, maintenance and five different suppliers each write. Here are three such lines - two with no manufacturer and the code broken up by spaces, one with the manufacturer misspelled - and the record each one comes back as.
- Manufacturer:
- –
- Part number:
- –
- Description:
- Modulo de terminales ET 200SP, sin fabricante indicado. Codigo 6ES7193 6TP00 0TP1.

- Manufacturer:
- Siemens
- Part number:
- 6ES7193-6TP00-0TP1
- Category:
- Terminal Blocks
- Confidence:
- 88%
- EAN
- 4047623409564
- Lifecycle
- Active
- Net weight
- 0.029 kg
- Manufacturer:
- –
- Part number:
- –
- Description:
- Unidad de filtro regulador MS6, sin fabricante indicado. Codigo MS6 LFR 1/4 D7 ERM AS.

- Manufacturer:
- Festo
- Part number:
- MS6-LFR-1/4-D7-ERM-AS
- Category:
- Controllers & Regulators
- Confidence:
- 80%
- Net weight
- 0.875 kg
- Manufacturer:
- –
- Part number:
- –
- Description:
- Conector M12 hembra 5 pines BCC097P, montaje en riel DIN, tablero principal. Fabricante: Baluff.

- Manufacturer:
- Balluff
- Part number:
- BCC097P
- Category:
- General Accessories
- Confidence:
- 76%
- Tariff code
- 85366990
- Net weight
- 0.026 kg
Your sheet, returned with more on it
No template, no cleaning up first. You point at the columns that hold part numbers and the rest of the sheet is left alone.
- Files
- CSV, XLSX or XLS, with headers in any language. Delimiters, quoting and the byte order mark Excel hides in "CSV UTF-8" are detected for you.
- Columns you point at
- One or more MPN columns, brand columns if you have them. A bare code or a code buried in a description - same pass. Every other column travels through untouched.
- The manufacturer's own spelling
- Codes and brands come back as the manufacturer writes them, not as your file happened to. That is what makes five suppliers' lists comparable and leaves a BOM formatted for your ERP import.
- The catalogue record behind it
- Description, EAN, lifecycle, weight and packaging arrive with the match, next to its confidence and the reason for it.
Rules first, then the lines that hide the code
Every file goes through the same order. Rules settle every line they can, codes buried in text are read out of what is left, and you review only the rows that still need a decision.
Upload and map
Headers are read and rows counted before matching starts.
Deterministic pass
Codes are normalised, then looked up as main MPNs, alternative MPNs, designation codes and - only as a last resort - through search. Each route carries its own weight into the score.
Codes buried in the text
Lines the rules left unmatched have their code read out of the description around it. Whatever is read is checked back against the original text before it reaches matching.
Work the flagged rows, export
Open the matcher, filter to what needs a decision, correct in place and export a corrected XLSX - or just the codes that found nothing.
Inside the matcher

Every row, with its verdict on it
Filter by status, or by the specific reason a row was not settled. Search across MPN, brand and product. Correct in place; the row is rescored as you do.

Why it was not auto-matched
Thirty diagnostic codes under two headings a reviewer actually reads: what blocked the match, and what pulled the confidence down. No guessing what the tool was thinking.
Manufacturer data, not a best guess
A match is worth exactly as much as the record behind it. Every answer here comes from a manufacturer record in the catalogue, and the row names the one it used.
- Built on manufacturers' own data
- The catalogue is assembled from manufacturer data - part numbers, designations and attributes as the manufacturer publishes them.
- Nothing is invented
- A code only counts when it appears in your line character for character. Nothing is repaired, completed or pulled from anywhere else - a line with nothing to read comes back unmatched.
- Every match names the route that found it
- A main manufacturer part number, an alternative code, a designation code or the search fallback - the row says which route settled it, and each one carries its own weight into the score.
The catalogue covers parts from manufacturers such as















- 9000+OEM brands
Frequently asked questions
Which tool matches inconsistent part descriptions across BOM lists and supplier quotes?
Does it guess when it is not sure?
Why does a matched row still say review required?
What does the confidence number actually mean?
What comes back in the export?
Does it normalise MPNs and part numbers?
How is this different from the Warehouse Golden Record service?
What happens to my file after I upload it?
Bring one export you would normally clean by hand
Every list cleaned by hand means retyping codes line by line, and a wrong one still reaches the order. BOM Cleaner is free, with no row limit.




