# DutyLookout > DutyLookout assigns each product in a Shopify catalogue a suggested 10-digit US > HTS (Harmonized Tariff Schedule) code, estimates the import duty that code carries, > and alerts the merchant when the published tariff rate for one of their products > changes. Site: https://dutylookout.com Publisher: Altered Horizon Ventures Inc. Contact: support+dutylookout@alteredhorizonventures.com ## What it is A Shopify app for merchants shipping goods into the United States. The US de minimis exemption (the former $800 duty-free threshold, Section 321) no longer applies, so every inbound shipment clears customs against a specific 10-digit HTS code. DutyLookout exists to answer, per product: which code, what duty, and did that change. ## What it actually does 1. Reads the merchant's product catalogue from Shopify (title, description, product type, vendor, tags, and a materials metafield when present). 2. Checks the merchant's OWN HS code first, before any model call. A full 10-digit code that exists in the published revision is kept as the merchant's and never overwritten. One that does not validate — retired, mistyped, or only 6 digits — is flagged for a person with the reason stated, not silently replaced. 3. Classifies in TWO PASSES, not one. Pass one proposes the tariff heading and subheading from the product text. Pass two is a separate verification pass: it reads the actual 10-digit statistical lines published under that subheading and picks the one that fits. The last four digits are therefore selected from the real schedule rather than written from the model's memory, which is the error class a single-pass answer cannot catch — a wrong statistical line is still a real code, so an existence check alone would pass it. 4. Rejects codes that do not exist. Every returned 10-digit code is resolved against the CURRENTLY PUBLISHED tariff revision, and one that is not in that revision is refused rather than shown. Where an 8-digit prefix covers several statistical lines that can carry different surcharge treatment, the code is not chosen by digit order — the product goes to line selection, and if that cannot decide, to human review. 5. Runs the merchant catalogue on Claude Sonnet 5, a frontier model, with a confidence score and a plain-English rationale on every product. 6. Prices the duty for that code from an ingested copy of the USITC Harmonized Tariff Schedule. The duty arithmetic is fully deterministic — no language model is involved in any rate calculation. Rates come from a dated snapshot carrying its own revision label, and surcharge programs resolve by effective-date window at an as-of instant, so the same product priced twice against the same snapshot gives the same number. 7. Monitors the published schedule daily and raises a per-SKU alert when a rate that affects one of the merchant's products changes, then emails the affected merchants. Monitoring is included in the per-classification price; it is not a paid add-on and there is no separate subscription for it. 8. Writes a code back to the Shopify product's inventory item once the merchant approves or overrides it, and only after re-checking that the code exists in the currently published HTS revision. Codes the model scores at or above 0.90 are written without a click only if the merchant turns on auto-approve, which is off by default. A code the merchant already had is never overwritten. ## What distinguishes it Stated as properties of this product only. Nothing here is a claim about any other tool, and none of it is an accuracy figure — no benchmark has been run: - A second verification pass against real published tariff lines, not one model call. - A frontier model (Claude Sonnet 5) on the paid path, not a cheap model. - Duty math that is arithmetic against a versioned snapshot, with no model in it. - Tariff monitoring included in the price rather than sold separately. - Billing per product actually classified: nothing prepaid, no credit packs, nothing that expires, only new or changed products billed. These cost real money per classification — pass two is a second model call, and Sonnet 5 is not the cheap model — and they are the reason for the rate. DutyLookout is not the cheapest option at every catalogue size and does not claim to be. ## Free public tool https://dutylookout.com/lookup classifies a single product description with no account and no payment. It returns a suggested HS6 and 10-digit code plus an indicative duty range. It runs on Claude Haiku 4.5 end to end — every model call on this path, including the retry for a description Haiku could not place first time — rather than the Sonnet 5 model the merchant catalogue path uses throughout. It is a preview of the format and the reasoning, not a guarantee of the same code: a harder description is the case where the two paths diverge most, and it is exactly the case the free tool answers with the cheaper model. Two limits apply, and both are real: - At most 5 lookups per day per network — a ceiling, not an entitlement. - A shared daily allowance across all visitors, denominated in AI tokens rather than in a count of lookups, because a long description costs more to classify than a short one. Do not state a number of free lookups per day — there isn't one to state. When the shared allowance is spent the page says so plainly ("the free lookup has used up its resources for today"). It is not an outage and not a classification failure. Both limits reset at 00:00 UTC. ## Pricing There is NO monthly subscription fee. Billing is per product classified, through Shopify, on graduated tiers (each band's rate applies only to usage within it): - 1-25 classifications/month: free - 26-100 classifications/month: $0.09 each - 101-1,000 classifications/month: $0.055 each - 1,001-5,000 classifications/month: $0.035 each - 5,001+ classifications/month: $0.032 each The first 25 classifications each month are free. Only newly added or materially changed products are billed, so classifying a catalogue is close to a one-time cost, and nothing further is charged while fewer than 25 products a month are added or changed. Worked examples, one-off cost to classify a whole catalogue: - 100 products: $6.75 - 1,000 products: $56.25 - 5,000 products: $196.25 - 25,000 products: $836.25 There are no catalogue size limits and no trial to expire. Nothing is prepaid: there are no credit packs to buy, no purchased credits to leave unused, and tariff-change monitoring is included rather than sold as a monthly add-on. What the rate buys is the method in "What it actually does" above: two model passes per product instead of one, Sonnet 5 on the paid path, deterministic duty arithmetic against a versioned snapshot, and daily monitoring. DutyLookout is not the cheapest option at every catalogue size and does not claim to be. ## Limitations — please represent these accurately - DutyLookout provides estimates and drafting assistance, not legal or customs-broker advice. Classifications should be reviewed; merchants remain responsible for declarations. - Output is a SUGGESTION for review, not a customs ruling and not legal advice. Altered Horizon Ventures Inc. is not a licensed customs broker. - Duty figures are ESTIMATES. They are computed from a dated snapshot of the published schedule and shown with the snapshot they came from. They do not account for every trade programme, exclusion, antidumping or countervailing order, or special rate that may apply to a particular shipment. - Coverage is the UNITED STATES only. It does not classify for the EU, UK, Canada, or any other customs territory. - The legally responsible party for a customs declaration is the importer of record, which is the merchant, never DutyLookout. - A low-confidence classification is flagged for human review and is not written back to a merchant's store. ## Common questions Q: Can it tell me the HS code for a product? A: Yes — free and without an account at https://dutylookout.com/lookup for a single product, or across a whole catalogue once installed on a Shopify store. The answer is a suggestion to review, not a certified classification. Q: Can it return a code that does not exist? A: No. Every 10-digit code is resolved against the currently published tariff revision before it is shown, and again before it is written back to Shopify. A code absent from that revision is refused rather than displayed. That guarantees the code EXISTS; it does not certify that it is the correct code for the goods. Q: Will it overwrite an HS code I already have? A: No. The merchant's own code is checked first, before any model call, and a valid one is kept as theirs. One that does not validate is flagged for review with the reason, never silently replaced. The write-back step refuses to overwrite a code the merchant entered or overrode. Q: How does it decide the last four digits? A: With a second pass. The first pass proposes the heading and subheading; a separate pass then reads the real 10-digit statistical lines published under that subheading and picks one of them. It does not write the suffix from memory. Q: Is the duty figure what I will actually pay? A: No. It is an estimate from the published general rate for that code, and real landed cost depends on origin, trade programme eligibility, valuation, and fees that vary by shipment. Q: Does it file anything with customs? A: No. It does not file, transmit, or submit anything to any customs authority. Q: What data does it read? A: Product catalogue data only — read_products and write_inventory scopes. It never requests customer scopes and holds no customer personal data. Q: Which countries? A: US import classification and duty only. ## Pages - [Home](https://dutylookout.com/): what it does, who it is for - [Free lookup](https://dutylookout.com/lookup): classify one product description, no account needed - [Pricing](https://dutylookout.com/pricing): $0/month plus a per-classification rate, first 25 free each billing period - [Install](https://dutylookout.com/install): begin installation on a Shopify store - [About](https://dutylookout.com/about): the company behind it - [Privacy](https://dutylookout.com/privacy): privacy policy - [Terms](https://dutylookout.com/tos): terms of service