Bulk HS code classification from a product list file
Drag an Excel or CSV file in here — a commercial invoice, a packing list, or your own SKU list. The tool finds the header row by itself, merges rows sharing a SKU code into a single item, then returns an 8-digit HS code with its basis for each item.
What the results look like
A real garment-manufacturing shipment, trimmed down. This is the shape of the table you get at the review step.
| Description in your file | HS code | Confidence | Why |
|---|---|---|---|
| POCKET BAG ANG-441 / WOVEN 100% NYLON3 SKU rows | 62179000 | Medium | Three rows sharing SKU ANG-441 merged into one article, classified once. Cut to shape → Section XI Note 7, so it is not classified as fabric. |
| ZIPPER 5# METAL, 18CM | 96071100 | High | Slide fastener with base-metal teeth — heading 96.07 names it directly. |
| SHELL FABRIC 150D POLY, 150CM2 SKU rows | 54077400 | LowNeeds review | Needs review: the file does not say whether the yarn is filament or staple. The two branches fall in different chapters (54 vs 55) with different duty — one extra word in the description settles it. |
| WOVEN SATIN LABEL, PRINTED LOGO | 58071000 | High | Woven label, not embroidered — heading 58.07, not the base-fabric heading. |
| CARTON BOX 5-PLY 60X40X354 SKU rows | 48191000 | High | Four box sizes sharing one source SKU — merged into one article, saving three runs. |
| SEWING THREAD 40/2 POLY, 5000M CONE2 SKU rows | 54011000 | Medium | Sewing thread of synthetic filament; retail packing does not change the code at this 8-digit level. |
The export has three sheets
- Article results
One row per article: HS code, confidence, legal basis, and a trace if you overrode the code by hand.
- SKU rows
Every row of the original file in its original order — ready to paste into ECUS.
- _meta
Records which columns were used as description, SKU and quantity, so the run can be audited later.
Three steps
Check data
Pick the description column, the SKU column, the quantity column. Drop the rows you don't want to run, and fix any description that is too terse. See how many items will run before you spend a single run.
Classify
Runs item by item, with progress, and you can stop midway. Each item gets an HS code with its legal basis and its own set of competing codes.
Review codes
Two groups: settled, and needs review. Click a row to see why it was classified that way, pick one of the competing codes, or type in your own. Every change you make is recorded in the export.
What costs a run, and what doesn't
Free, no account needed
Reading the file, finding the header row, mapping the columns, merging duplicate SKU rows, previewing the item count. This stage is deterministic — no AI runs, so it costs nothing.
Costs a run, account needed
Classification: one run per item. The free plan covers 50 items a day, resetting at 00:00 Vietnam time.
Because rows sharing a SKU code are merged before the run, a 500-row file usually costs a few dozen runs, not 500.
What it accepts
- Excel/CSV: no row limit on reading the file.
- Images/PDF: up to 10 items per file.
- A single run handles at most 100 items.
- A single export holds at most 2000 SKU rows. Over the ceiling you get an error with the real row count — the system will not trim your rows for you.
Frequently asked questions
What kind of Excel file can it read?
Does a 500-row file cost 500 runs?
Can I fix a wrong code?
Can the export go straight into ECUS?
Do I need an account?
Is your shipment more complicated than this?
Avenir is a customs broker. If your shipment has contested items, needs an advance ruling on the code, or needs someone to take responsibility on the declaration, send the file over.