HTSReivewTool / README.md
joycecast's picture
Upload 2 files
e934b8c verified

A newer version of the Streamlit SDK is available: 1.54.0

Upgrade
metadata
title: HTS Review Tool
sdk: streamlit
emoji: 👀
colorFrom: blue
colorTo: green

HTS Checker - Tariff Audit Tool

A Streamlit application for auditing HTS (Harmonized Tariff Schedule) codes, validating primary HTS against additional tariffs and description keywords.

Features

  • Auto-validation: Validation runs automatically when file is uploaded
  • 17 Scenarios: Validates Steel, Aluminum, Copper tariff classifications
  • Unique Combinations View: De-duplicates entries by HTS+Description for efficient review
  • Interactive Filters: Filter by HTS, description, status, scenario
  • Bulk Export: Add filtered results to cache and export to Excel
  • HTS Reference: View all Steel/Aluminum/Copper HTS lists with overlap analysis
  • Editable Keywords: Customize metal, aluminum, copper, zinc, plastics keyword lists

Validation Scenarios

ID Description
S1 Steel HTS + 232 tariff applied - verify 99030133 present, no 99030125
S2 Metal keyword but NOT steel HTS - should apply 99030125, no 232 tariffs
S4 Aluminum HTS + 232 tariff applied - verify 99030133 present, no 99030125
S5 Aluminum keyword but NOT aluminum HTS - should apply 99030125, no 232 tariffs
S7 Dual Steel+Aluminum HTS - matches keyword, apply corresponding 232, no 99030125
S7a Dual Steel+Aluminum HTS + BOTH keywords - flag for manual review
S8 Dual Steel+Aluminum HTS + NO keywords - flag for manual review
S9 Copper keyword but NOT copper HTS - should apply 99030125, no 232 tariffs
S11 Dual Aluminum+Copper HTS + copper keyword - apply 99030133 + copper tariffs, no 99030125
S12 Dual Aluminum+Copper HTS + aluminum keyword - apply 99030133 + aluminum 232, no 99030125
S13 Zinc keyword - should ONLY apply 99030125, no 232 tariffs allowed
S14 Plastics keyword + metal HTS - override, should ONLY apply 99030125
S15 Steel HTS + aluminum keyword - should apply 99030125, no 99030133 or 232 tariffs
S16 Aluminum HTS + steel keyword - should apply 99030125, no 99030133 or 232 tariffs
S17 Copper HTS but NO copper keyword - should apply copper tariffs + 99030125, no 99030133

Key Additional HTS Codes

Code Type
99038190, 99038191 Steel Section 232
99038507, 99038508 Aluminum Section 232
99037801, 99037802 Copper tariffs
99030133 General 301 (accompanies 232)
99030125 Mismatch/Override code

Input File Format

Upload Excel file with these columns:

  • Column E (Description): Product description for keyword matching
  • Column F (Tariff): 10-digit Primary HTS code
  • Columns I-N (Primary 1-6): Additional HTS codes applied

Default Keywords

Metal: steel, stainless steel, carbon steel, iron, metal

Aluminum: aluminum, aluminium

Copper: copper

Zinc: zinc

Plastics: plastic, abs, pu, pvc, polyester, nylon

Tabs

  1. Upload & Filter: Upload Excel file, apply initial filters
  2. Validation Results: View all results with interactive filters, add to export cache
  3. Unique Combinations: De-duplicated view by HTS+Description with occurrence count
  4. Keyword Management: Edit keyword lists used for validation
  5. Export Selection: Manage export cache and download Excel reports
  6. HTS Reference: View Steel/Aluminum/Copper HTS lists and overlaps

Password Protection

The app requires password authentication. Configure it using one of these methods:

For Hugging Face Spaces

  1. Go to your Space's Settings > Repository secrets
  2. Add a secret named APP_PASSWORD with your password value
  3. The app will automatically use this for authentication

For Local Development

Set the environment variable before running:

# Windows
set HTS_CHECKER_PASSWORD=your_password_here
streamlit run app.py

# Linux/Mac
export HTS_CHECKER_PASSWORD=your_password_here
streamlit run app.py

Or create a .streamlit/secrets.toml file:

APP_PASSWORD = "your_password_here"

Note: If no password is configured, the app runs without authentication (for development).

Local Development

cd HTS_Checker
pip install -r requirements.txt
streamlit run app.py

Hugging Face Deployment

  1. Create a new Space on Hugging Face
  2. Select Streamlit as the SDK
  3. Upload these files:
    • app.py
    • hts_validator.py
    • HTS_list.py
    • requirements.txt
  4. Go to Settings > Repository secrets and add APP_PASSWORD
  5. The app will auto-deploy with password protection

Files

File Description
app.py Streamlit UI application
hts_validator.py Core validation logic
HTS_list.py Steel, Aluminum, Copper HTS code lists
requirements.txt Python dependencies

Requirements

  • streamlit
  • pandas
  • openpyxl