Original research · tariff classification

Six digits against CBP's own rulings

U.S. Customs and Border Protection publishes binding classification rulings: CBP's own description of a product, and the tariff number CBP assigned to it. That is ground truth we did not write and cannot influence. We sent 100 of those descriptions to our own HS classifier; 98 came back with an answer and 2 returned HTTP 503 with none. Of the 98 answered, it matched CBP's 6-digit subheading 23.5% of the time (23 of 98; 95% confidence interval 16.2–32.8%). Every miss is listed below, and the whole run is downloadable.

The result

Agreement with CBPCountShare of 98 answered
Exact — same 6-digit subheading2323.5%
Same 4-digit heading3838.8%
Same 2-digit chapter5859.2%

The shape of the error matters more than the headline. Of the 75 misses, 35 landed in the correct chapter — the classifier usually knows what kind of thing it is looking at and then picks the wrong drawer within it. CBP's answer appeared among our returned alternate subheadings in 8 of the misses, so offering alternates recovers very little.

What the confidence score is actually worth

Each answer carries the model's own 0–1 confidence. It ranks — the mean was 0.817 when the answer was right and 0.618 when it was wrong — but it is badly calibrated: a 0.74 does not mean 74%.

Confidence bandAnswersCorrectShare correct
0.00 – 0.30700%
0.30 – 0.502328.7%
0.50 – 0.70200%
0.70 – 0.8038513.2%
0.80 – 0.9017952.9%
0.90 – 1.0011763.6%

Correction, same day. This page first published at n=45 and reported that none of the 17 answers below 0.7 was correct — a clean "do not rely on this" line. At n=100 that is 2 of 32, and the band table shows the 0.70–0.80 group behaving almost like the low group rather than like the rest of the "confident" answers. The rule did not survive the larger sample, so it is withdrawn rather than restated. Nothing was built on it; it is corrected here, on the product page and on the free tool.

What a refuse-below-X rule would really do, computed over the 98 answered rows — the reason we did not ship one:

Refuse belowStill answersOf those, correctCorrect answers thrown away
0.568 of 9821 (30.9%)2
0.766 of 9821 (31.8%)2
0.7555 of 9821 (38.2%)2
0.828 of 9816 (57.1%)7
0.8528 of 9816 (57.1%)7
0.911 of 987 (63.6%)16

Even the best cut here answers a minority of cases and is still wrong more often than a buyer would expect. A threshold does not make this product safe; it only makes it quieter.

Where the error actually lives

The classifier proposes candidate subheadings and then picks one. In 67 of the 75 misses, CBP's code was not among the candidates we returned at all; in only 8 was it present and passed over. That points at candidate generation, not the choice step, as the place the accuracy is lost — so a better prompt at the choosing stage could address at most a small share of these cases. Stated as the inference it is: this study records the alternates we publish, not the full internal candidate list, so absence is consistent with never-retrieved rather than proof of it.

By CBP chapter, over the 98 answered rulings — thin per chapter, listed because the pattern is where any fix would start:

CBP chapterRulingsWe matched
85156
84122
87123
9581
6872
3063
3960
4251
8351
7640
9040

What we did, exactly

  1. Frame, fixed before any result was seen. CROSS collection ny, sorted newest first, subject beginning "The tariff classification of", exactly one tariff code of at least six digits. Rulings dated 2026-07-07 to 2026-08-14.
  2. The search API requires a search term, which could have selected the sample. It does not: a, the and of each return the same total and the identical first five rulings, so the term is inert. Rulings were taken in date order, never chosen.
  3. Only the merchandise description was used. A ruling prints its tariff number in the header and argues its way to it in the body, so the description was cut out between CBP's request sentence and the first line of its legal reasoning.
  4. Then a leak gate disqualified the ruling if that description still contained an HTS-shaped number, the words HTSUS, heading, subheading or classification, or the answer's own six digits. 47 rulings were dropped by that gate and none was edited to save it — editing is exactly where a leak would survive. Other drops: 91 whose subject was not a classification, 40 carrying more than one code, 21 where no description could be isolated.
  5. Each surviving description was sent once to the live product, and the 6-digit answer compared to CBP's. No retries, no second opinions, no prompt tuning between calls. Two calls returned HTTP 503 with no classification, and a call that returns no answer is not a wrong answer — so accuracy is computed over the 98 that answered, and these two are reported rather than counted as misses. One of them is the product working as designed: its model reply stopped at the output token limit, and this API refuses a cut-off reply rather than serving the partial answer inside it. The other never reached the model at all. Neither was retried, because the retry would have cost more than the approved budget had left.

Limitations, including the one that flatters us

Every miss

All 100 rows, including the exact text the classifier was given and the two that returned no answer, are in results.csv. The 77 misses:

RulingMerchandiseCBPOursConf.
N363472 gas storage cylinders from Spain 761300 731100 0.45
N363464 smoked quail eggs from South Korea 210690 190190 0.72
N363546 a Nasal Atomizer Assembly from China 901920 842420 0.65
N363957 kneepads from Vietnam 401699 401512 0.75
N363550 dental loupes from Israel 901890 900490 0.75
N363841 infrared heat shrink machine from Germany 841989 847981 0.75
N363613 handmade decorative wall hanging from Poland 630492 940690 0.25
N363923 a vibrating sound conversion device from China 854370 847180 0.45
N363416 swivel casters from China 830220 848210 0.45
N363562 a semiconductor photolithography wafer stage module from the Netherlands 848640 848690 0.78
N363892 a mobile container carrier from China 842890 842710 0.25
N364050 a concrete sprayer from Finland 870590 870323 0.15
N363803 a crankshaft position sensor from Japan 854370 854231 0.45
N363447 Halloween decorations from China 950590 846721 0.15
N363551 paper cap from South Korea 950590 650500 0.75
N362998 STERITALC® (talc) powder in dosage form, from France 300490 300212 0.25
N363956 a tape measure from China 901780 901720 0.95
N363583 hydronic boilers from Canada 840310 840219 0.75
N363531 a costume from China and Vietnam 950590 620311 0.35
N363254 a plastic rake from China 392490 940370 0.15
N362937 Fosfomycin Tromethamine for oral solution in dosage form, from Mexico 300420 300410 0.75
N363845 polyethylene glycol powder from Switzerland 390729 390120 0.45
N362938 Progesterone Capsules in dosage form, from China 300439 293723 0.85
N363425 a paper party decoration from China 950590 670290 0.75
N363777 the Gabi System from Romania 902920 847149 0.45
N363473 an Alpha Eagle from Italy 843680 842641 0.75
N363476 a RoboMIDI and RoboMAX from Italy 843680 870410 0.45
N363287 self-wound aluminum foil tape from China 760719 481141 0.75
N363820 Dried Poppy Heads from the United Kingdom 060490 120791 0.45
N357749 bearing steel balls from Japan 848291 732611 0.75
N363787 a 2000 Subaru Impreza WRX STI from Japan 870323 870324 0.75
N363922 a mobility scooter from China 870390 850780 0.45
N363316 a control panel subassembly from Mexico 853710 854390 0.72
N363690 a 2000 Nissan Skyline 25GT-X from Japan 870323 870324 0.92
N363389 a fire resistant case from China 420219 420292 0.75
N362854 steel decorative wall hangings from Zimbabwe 830629 732620 0.72
N363296 a printed circuit board assembly from China 851762 847330 0.72
N363426 a paper party decoration from China 950590 491191 0.35
N363645 a side-by-side vehicle from Mexico 870322 870340 0.85
N363399 a bellows from South Korea 830790 830710 0.72
N363173 collectible miniature studio equipment from Belgium 392640 970510 0.72
N363697 Frozen Salmon Teriyaki Meal from France 160420 030481 0.45
N362925 a gas-line system from Canada 848180 848130 0.65
N361396 a house slipper from China 640520 640419 0.75
N363385 dog apparel from Russia 420100 611090 0.45
N363423 polyethylene foam packaging inserts from China 392390 390110 0.45
N363308 a motorized chassis from Canada 870600 870880 0.45
N363362 “Treasure Guess” and “Full Throttle Axolotl” children’s games from China 950490 950300 0.85
N363283 an electric motor for submersible wastewater pumps from Brazil 850152 850153 0.92
N363001 the Turnout Remover and Carrier System from Australia 842619 842612 0.85
N362847 a roof rack system from Germany 870829 761090 0.75
N362917 a pre-install cable set from the Netherlands 854470 900110 0.75
N362921 PET/Aluminum composite film from Germany 760720 392062 0.72
N362995 a status light assembly from China 853120 853400 0.75
N363251 the “huupe ARENA” system from China 950450 852871 0.35
N362772 Indian-style dumplings from India 190220
N362974 fermented black garlic bulbs from China 200599 070320 0.35
N362531 a carry case from China 420292 420212 0.85
N363127 Frozen Shrimp Spring Roll from Vietnam 160529 190531 0.45
N362836 a plastic cartridge from China 392690 844399 0.72
N357263 N-Phenyl-N-(trichloromethylsulfenyl)-benzenesulfonamide (CAS No. 2280-49-1) from China 293590 293020 0.75
N363339 electrostatic discharge (ESD) suppressors from the Philippines 853630 854160 0.35
N363073 Frozen Potato Shrimp from Vietnam 160529 160521 0.85
N362508 semi-finished airbag inflator tubes from Germany 870895 730459 0.72
N362770 a zinc alloy ring from the Netherlands 850990 732611 0.35
N358093 Snowfall stone from Brazil 680293 251690 0.92
N355899 Super Black stone from Brazil 680299 251520 0.75
N355895 White Delicatus stone from Brazil 680299 251520 0.75
N362680 wall mounted iron hanging sign brackets from Argentina 830250 732599 0.72
N362493 a tote bag from Argentina 420291 420221 0.85
N362417 a lock-valve spring retainer from South Korea 840991 848190 0.35
N362469 aluminum cups from China 761510 800700 0.75
N362694 an epoxy resin key chain making kit from China 390730 390910 0.15
N355231 White Ice stone from Brazil 680299 251520 0.72
N355897 Bahamas White stone from Brazil 680299 680291 0.75
N362825 a load wheel assembly from China 871690 848210 0.85
N362453 an aluminum automotive component from Mexico 870829

Metadata correction, September 19, 2026. The machine-readable dataset description still described the initial 45-ruling sample after the study expanded. It now derives the attempted and answered counts from the same summary as this page. The benchmark results and earlier correction remain unchanged.

Run it yourself, against anything

The descriptions and CBP's answers are public domain, so this test set works against any classifier, including ones that are not ours. A benchmark only its author can run is a brochure.

Source: U.S. Customs and Border Protection, Customs Rulings Online Search System, read 2026-09-17. CBP's Copyright Notice places its website information in the public domain and asks that CBP be cited as the source; it is. CBP did not participate in this study and does not endorse it. The product graded here is Aervik Labs' Landed Cost / HS Classifier, and the figures are what it returned on 2026-09-17.

Suggested citation

Cite the measurement date and this page; the method, limitations and dated corrections travel with the data.

text
Aervik Labs (2026). Six digits against CBP's own rulings [Data set]. Measured 2026-09-17. CC BY 4.0. https://aerviklabs.com/research/cross-six-digit-2026/
bibtex
@misc{aervik_cross_six_digit_2026,
  author       = {{Aervik Labs}},
  title        = {Six digits against CBP's own rulings},
  year         = {2026},
  howpublished = {Data set, CC BY 4.0},
  note         = {Historical classifier benchmark; 100 attempted rulings, 98 answered; measured 2026-09-17},
  url          = {https://aerviklabs.com/research/cross-six-digit-2026/}
}