Skip to content

Privacy Policy

Last updated: 2026-07-25

This policy describes how DutyLookout, a product of Altered Horizon Ventures Inc. (“we”, “us”), handles data for merchants who install our Shopify app and for visitors who use the free HS lookup on this site.

The short version: we store product catalog data, never shopper data. DutyLookout does not request access to your customers or orders, and no customer personal information ever reaches our systems. This is by design, not by policy alone — the app’s Shopify permissions are limited to reading products and writing inventory-item HS codes.

What we store (merchants)

  • Shop identity: your shop’s myshopify domain, the app access token (encrypted at rest with AES-256-GCM), your plan, and the merchant contact email used for alerts.
  • Product catalog data: product titles, descriptions (trimmed), product types, vendors, tags, declared materials, and origin countries — the text needed to classify each product.
  • Classification results: suggested and approved HS/HTS codes, confidence scores, rationales, and the audit trail of who approved what and when.
  • Usage aggregates: counts and token totals for the AI classification service, used for capacity planning and billing sanity.

What we never store

  • Shopper / customer personal information of any kind
  • Orders, addresses, payment details, or checkout data
  • Anything from Shopify scopes we did not request — we ask for product read and inventory write access only

The free HS lookup

  • We store the product description you type, without any identifier linking it to you, so that repeated queries can be answered from cache.
  • For daily rate limiting we store a one-way keyed hash (HMAC-SHA-256 with a server-side secret) of your IP address and a counter. The raw IP address is never written to our database or logs, and the hash cannot be reversed without the secret.
  • After two lookups in a day, a Cloudflare Turnstile check may run to deter abuse; Cloudflare processes the verification transiently under its own terms.

How classification uses AI

Product text is sent to Anthropic’s Claude API to suggest HS codes: title, description, product type, materials, vendor and tags. We never send your shop’s name, domain, account or any customer data. Note that Shopify defaults a product’s Vendor field to your store name unless you change it, so if you have left it at the default, that value travels with the product text like any other product field. Classification results are cached by a hash of the product text so identical products are never re-sent. Duty rates and duty math never involve AI: they come from a versioned database built from official sources (USITC, Federal Register, CBP).

Subprocessors

ProviderPurposeWhat they see
ShopifyPlatform, OAuth, billingStandard app platform data
AnthropicAI classificationProduct text only (incl. vendor and tags) — no account or customer data
ResendTransactional email (alerts, digests)Merchant email address and alert content
DigitalOceanHosting infrastructureEncrypted application data at rest
CloudflareTurnstile bot check on the free lookupTransient verification data on that page only
Google AnalyticsWebsite usage measurement — only if you accept cookiesPage addresses (redacted, see below), referrer, approximate location, device and browser. Never the text you type into the HS lookup.

GDPR and Shopify compliance webhooks

  • customers/data_request: we hold no customer data, and we respond to Shopify confirming exactly that.
  • customers/redact: nothing to redact — we hold no customer data.
  • shop/redact (and app uninstall): all rows belonging to your shop are hard-deleted from our database within 30 days. We retain billing usage counts for our own accounting, with the store domain overwritten so the remaining rows carry no shop identity.

Cookies and analytics

This website uses Google Analytics 4 to measure which pages are useful. It runs only after you accept — analytics storage is denied by default, nothing is loaded or measured until you choose, and declining is a single click that carries the same weight as accepting. You can change your mind at any time via “Cookie settings” in the footer; declining afterwards unloads the tag and deletes its cookies.

What is never sent to Google. The product description you type into the free HS lookup is yours and is never transmitted to Google in any form — not as a page address, not as a page title, not as an event parameter. Result pages carry an unguessable token in their address; that token is replaced with redacted before anything is measured, and the page title of a result page is replaced with a generic one. Query strings are filtered by allow-list, so only campaign parameters such asutm_source survive and everything else is discarded.

Google Signals, advertising features and ad personalisation are all disabled. We run no advertising on this site and do not use analytics data for advertising. Analytics is not loaded at all inside the Shopify admin or on the embedded app — it exists on these marketing pages only.

Cookies used: dl_consent stores your choice for one year and is strictly necessary for us to honour it. If you accept, Google Analytics sets its own _ga cookies; if you decline, they are never set, and any existing ones are deleted.

Security

  • Access tokens encrypted at rest (AES-256-GCM); TLS on every connection
  • Database not exposed to the public internet
  • Webhook signatures verified on every delivery

Data retention

Shop data is kept while the app is installed and deleted within 30 days of uninstall or a shop/redact request. Free-lookup rate-limit counters expire naturally — they are keyed by day and contain only a hash.

Contact

Questions or requests: support+dutylookout@alteredhorizonventures.com. We answer data requests from merchants directly and via Shopify’s standard processes.