Spaces:
Sleeping
Sleeping
A newer version of the Streamlit SDK is available:
1.54.0
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
- Upload & Filter: Upload Excel file, apply initial filters
- Validation Results: View all results with interactive filters, add to export cache
- Unique Combinations: De-duplicated view by HTS+Description with occurrence count
- Keyword Management: Edit keyword lists used for validation
- Export Selection: Manage export cache and download Excel reports
- 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
- Go to your Space's Settings > Repository secrets
- Add a secret named
APP_PASSWORDwith your password value - 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
- Create a new Space on Hugging Face
- Select Streamlit as the SDK
- Upload these files:
app.pyhts_validator.pyHTS_list.pyrequirements.txt
- Go to Settings > Repository secrets and add
APP_PASSWORD - 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