agenticlogistics's picture
undefined - Initial Deployment
02ef2f9 verified
raw
history blame
44.7 kB
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>XYZ Cosmetics – FTZ Analysis & Optimization Studio</title>
<script src="https://cdn.tailwindcss.com"></script>
<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
<script src="https://unpkg.com/tabulator-tables@5.4.4/dist/js/tabulator.min.js"></script>
<link href="https://unpkg.com/tabulator-tables@5.4.4/dist/css/tabulator.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<style>
:root {
--primary: #4f46e5;
--primary-dark: #4338ca;
--secondary: #10b981;
--accent: #f59e0b;
--dark: #1e293b;
--light: #f8fafc;
--danger: #ef4444;
--gray: #94a3b8;
}
body {
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
background-color: #f1f5f9;
color: #1e293b;
}
.sidebar {
background: linear-gradient(135deg, #1e293b 0%, #0f172a 100%);
transition: all 0.3s ease;
}
.tab-content {
display: none;
}
.tab-content.active {
display: block;
}
.chart-container {
background: white;
border-radius: 0.5rem;
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
padding: 1.5rem;
margin-bottom: 1.5rem;
}
.kpi-tile {
background: white;
border-radius: 0.5rem;
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
padding: 1.25rem;
transition: transform 0.2s ease;
}
.kpi-tile:hover {
transform: translateY(-3px);
}
.tab-button {
position: relative;
padding: 0.75rem 1rem;
font-weight: 500;
color: #64748b;
transition: all 0.3s ease;
}
.tab-button.active {
color: var(--primary);
}
.tab-button.active::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 3px;
background-color: var(--primary);
border-radius: 3px 3px 0 0;
}
.scenario-card {
border: 1px solid #e2e8f0;
border-radius: 0.5rem;
transition: all 0.3s ease;
}
.scenario-card:hover {
border-color: var(--primary);
box-shadow: 0 10px 15px -3px rgba(79, 70, 229, 0.1);
}
.scenario-card.active {
border-color: var(--primary);
box-shadow: 0 10px 15px -3px rgba(79, 70, 229, 0.15), 0 4px 6px -2px rgba(79, 70, 229, 0.05);
}
.table-container {
background: white;
border-radius: 0.5rem;
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
overflow: hidden;
}
.tooltip {
position: relative;
}
.tooltip:hover::after {
content: attr(data-tooltip);
position: absolute;
bottom: 100%;
left: 50%;
transform: translateX(-50%);
background: rgba(30, 41, 59, 0.9);
color: white;
padding: 0.5rem;
border-radius: 0.25rem;
font-size: 0.875rem;
white-space: nowrap;
z-index: 10;
}
.sparkline {
height: 40px;
}
.slider-container {
padding: 1rem;
background: white;
border-radius: 0.5rem;
box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
}
.footer {
background: #0f172a;
color: #94a3b8;
font-size: 0.875rem;
}
@media (max-width: 768px) {
.sidebar {
position: fixed;
top: 0;
left: -100%;
height: 100%;
z-index: 100;
}
.sidebar.active {
left: 0;
}
.mobile-overlay {
display: none;
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.5);
z-index: 99;
}
.mobile-overlay.active {
display: block;
}
}
</style>
</head>
<body class="min-h-screen">
<!-- Mobile Overlay -->
<div class="mobile-overlay" id="mobileOverlay"></div>
<!-- Main Layout Container -->
<div class="flex flex-col md:flex-row">
<!-- Sidebar -->
<div class="sidebar md:static z-50 w-64 flex flex-col shadow-lg h-screen md:h-auto" id="sidebar">
<div class="p-5">
<h1 class="text-white text-xl font-bold">XYZ Cosmetics</h1>
<p class="text-gray-300 text-sm">FTZ Analysis Studio</p>
</div>
<div class="px-4 py-3">
<h2 class="text-gray-300 text-xs uppercase font-semibold tracking-wider mb-2">Global Filters</h2>
<div class="mb-4">
<label class="block text-gray-300 text-xs mb-1">Date Range</label>
<div class="grid grid-cols-2 gap-2">
<select class="w-full bg-slate-800 text-white text-sm rounded p-2">
<option>2023-01</option>
<option>2026-12</option>
</select>
<select class="w-full bg-slate-800 text-white text-sm rounded p-2">
<option>2026-12</option>
<option>2023-01</option>
</select>
</div>
</div>
<div class="mb-4">
<label class="block text-gray-300 text-xs mb-1">Product Family</label>
<div class="grid grid-cols-2 gap-2">
<label class="flex items-center text-white text-sm">
<input type="checkbox" class="mr-2 rounded text-indigo-500">
<span>Skincare</span>
</label>
<label class="flex items-center text-white text-sm">
<input type="checkbox" class="mr-2 rounded text-indigo-500" checked>
<span>Makeup</span>
</label>
<label class="flex items-center text-white text-sm">
<input type="checkbox" class="mr-2 rounded text-indigo-500" checked>
<span>Fragrance</span>
</label>
<label class="flex items-center text-white text-sm">
<input type="checkbox" class="mr-2 rounded text-indigo-500">
<span>Haircare</span>
</label>
</div>
</div>
<div class="mb-4">
<label class="block text-gray-300 text-xs mb-1">HS Codes</label>
<div class="space-y-1 max-h-40 overflow-y-auto">
<label class="flex items-center text-white text-sm">
<input type="checkbox" class="mr-2 rounded text-indigo-500" checked>
<span>3304 - Beauty/Makeup</span>
</label>
<label class="flex items-center text-white text-sm">
<input type="checkbox" class="mr-2 rounded text-indigo-500">
<span>3305 - Hair Products</span>
</label>
<label class="flex items-center text-white text-sm">
<input type="checkbox" class="mr-2 rounded text-indigo-500" checked>
<span>3307 - Perfumes</span>
</label>
<label class="flex items-center text-white text-sm">
<input type="checkbox" class="mr-2 rounded text-indigo-500">
<span>4202 - Cosmetic Bags</span>
</label>
<label class="flex items-center text-white text-sm">
<input type="checkbox" class="mr-2 rounded text-indigo-500">
<span>3923 - Packaging</span>
</label>
</div>
</div>
<div class="mb-4">
<label class="block text-gray-300 text-xs mb-1">Supplier Country</label>
<select class="w-full bg-slate-800 text-white text-sm rounded p-2">
<option>All Countries</option>
<option>France</option>
<option>Italy</option>
<option>Spain</option>
<option>China</option>
<option>South Korea</option>
</select>
</div>
</div>
<div class="px-4 py-3 mt-auto">
<button class="w-full bg-indigo-600 hover:bg-indigo-700 text-white py-2 rounded-md text-sm font-medium transition">
Apply Filters
</button>
</div>
</div>
<!-- Main Content -->
<div class="md:ml-64">
<!-- Top Navigation -->
<nav class="bg-white shadow-sm p-4 flex justify-between items-center">
<div class="flex items-center">
<button id="sidebarToggle" class="md:hidden text-gray-500 mr-4">
<i class="fas fa-bars"></i>
</button>
<h2 class="text-xl font-semibold">FTZ Analysis & Optimization</h2>
</div>
<div class="flex items-center space-x-3">
<select class="border border-gray-300 rounded-md text-sm p-2">
<option>Standard Entry</option>
<option selected>FTZ - Baseline</option>
<option>FTZ - Privileged Foreign</option>
<option>FTZ - Inverted Tariff</option>
<option>Bonded Warehouse</option>
</select>
<button class="bg-indigo-600 hover:bg-indigo-700 text-white px-4 py-2 rounded-md text-sm font-medium">
Run Scenario
</button>
<button class="border border-gray-300 hover:bg-gray-50 px-4 py-2 rounded-md text-sm font-medium">
Reset
</button>
<button class="border border-gray-300 hover:bg-gray-50 px-4 py-2 rounded-md text-sm font-medium">
Regenerate Data
</button>
<select class="border border-gray-300 rounded-md text-sm p-2">
<option>USD</option>
<option>EUR</option>
<option>JPY</option>
<option>KRW</option>
</select>
</div>
</nav>
<!-- Tabs -->
<div class="border-b border-gray-200 bg-white">
<div class="flex overflow-x-auto px-4">
<button class="tab-button active" data-tab="overview">Overview</button>
<button class="tab-button" data-tab="inventory">Inventory & Flows</button>
<button class="tab-button" data-tab="duty">Duty & Fees</button>
<button class="tab-button" data-tab="comparison">FTZ vs. Alternatives</button>
<button class="tab-button" data-tab="optimization">Optimization Lab</button>
<button class="tab-button" data-tab="compliance">Compliance & Risk</button>
<button class="tab-button" data-tab="about">About</button>
</div>
</div>
<!-- Tab Content -->
<div class="p-4 md:p-6">
<!-- Overview Tab -->
<div id="tab-overview" class="tab-content active">
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4 mb-6">
<div class="kpi-tile">
<div class="flex justify-between items-start">
<div>
<h3 class="text-gray-500 text-sm font-medium">Total Duty Paid YTD</h3>
<p class="text-2xl font-bold mt-1">$2.4M</p>
</div>
<div class="bg-green-100 p-2 rounded-full">
<i class="fas fa-arrow-down text-green-600"></i>
</div>
</div>
<p class="text-green-600 text-sm mt-2">
<i class="fas fa-arrow-down"></i> 12.3% vs Standard Entry
</p>
</div>
<div class="kpi-tile">
<div class="flex justify-between items-start">
<div>
<h3 class="text-gray-500 text-sm font-medium">MPF/HMF Fees YTD</h3>
<p class="text-2xl font-bold mt-1">$185K</p>
</div>
<div class="bg-green-100 p-2 rounded-full">
<i class="fas fa-arrow-down text-green-600"></i>
</div>
</div>
<p class="text-green-600 text-sm mt-2">
<i class="fas fa-arrow-down"></i> 28.7% vs Standard Entry
</p>
</div>
<div class="kpi-tile">
<div class="flex justify-between items-start">
<div>
<h3 class="text-gray-500 text-sm font-medium">Avg Landed Cost/Unit</h3>
<p class="text-2xl font-bold mt-1">$8.45</p>
</div>
<div class="bg-blue-100 p-2 rounded-full">
<i class="fas fa-dollar-sign text-blue-600"></i>
</div>
</div>
<p class="text-blue-600 text-sm mt-2">
<i class="fas fa-equals"></i> Standard Entry: $9.12
</p>
</div>
<div class="kpi-tile">
<div class="flex justify-between items-start">
<div>
<h3 class="text-gray-500 text-sm font-medium">Gross Margin %</h3>
<p class="text-2xl font-bold mt-1">64.2%</p>
</div>
<div class="bg-green-100 p-2 rounded-full">
<i class="fas fa-chart-line text-green-600"></i>
</div>
</div>
<p class="text-green-600 text-sm mt-2">
<i class="fas fa-arrow-up"></i> +3.2% vs Standard Entry
</p>
</div>
</div>
<div class="grid grid-cols-1 lg:grid-cols-2 gap-6">
<div class="chart-container">
<h3 class="text-lg font-semibold mb-4">Duty and Fees by HS Code</h3>
<div id="duty-chart" class="h-80"></div>
</div>
<div class="chart-container">
<h3 class="text-lg font-semibold mb-4">Monthly Duty/Feet Trend</h3>
<div id="monthly-chart" class="h-80"></div>
</div>
</div>
<div class="grid grid-cols-1 lg:grid-cols-2 gap-6 mt-6">
<div class="chart-container">
<h3 class="text-lg font-semibold mb-4">Cost Composition</h3>
<div id="cost-chart" class="h-80"></div>
</div>
<div class="table-container">
<h3 class="text-lg font-semibold p-4">Top Savings Opportunities</h3>
<div id="top-skus-table" class="p-4"></div>
</div>
</div>
</div>
<!-- Comparison Tab -->
<div id="tab-comparison" class="tab-content">
<div class="mb-6">
<h2 class="text-xl font-semibold mb-4">Scenario Comparison</h2>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-5 gap-4">
<div class="scenario-card p-4 cursor-pointer active">
<div class="flex justify-between items-start">
<h3 class="text-lg font-semibold">Standard Entry</h3>
<span class="text-gray-400">$0</span>
</div>
<p class="text-gray-500 text-sm mt-1">Base reference scenario</p>
<div class="mt-3">
<div class="text-2xl font-bold">$12.8M</div>
<p class="text-gray-500 text-sm">Total Cost</p>
</div>
</div>
<div class="scenario-card p-4 cursor-pointer">
<div class="flex justify-between items-start">
<h3 class="text-lg font-semibold">FTZ - Baseline</h3>
<span class="text-green-500">-$1.2M</span>
</div>
<p class="text-gray-500 text-sm mt-1">Deferred duty, weekly entry</p>
<div class="mt-3">
<div class="text-2xl font-bold text-green-600">$11.6M</div>
<p class="text-gray-500 text-sm">Total Cost</p>
</div>
</div>
<div class="scenario-card p-4 cursor-pointer">
<div class="flex justify-between items-start">
<h3 class="text-lg font-semibold">FTZ - Privileged Foreign</h3>
<span class="text-green-500">-$1.8M</span>
</div>
<p class="text-gray-500 text-sm mt-1">Locked duty rates</p>
<div class="mt-3">
<div class="text-2xl font-bold text-green-600">$11.0M</div>
<p class="text-gray-500 text-sm">Total Cost</p>
</div>
</div>
<div class="scenario-card p-4 cursor-pointer">
<div class="flex justify-between items-start">
<h3 class="text-lg font-semibold">FTZ - Inverted Tariff</h3>
<span class="text-green-500">-$2.1M</span>
</div>
<p class="text-gray-500 text-sm mt-1">Lower finished good rates</p>
<div class="mt-3">
<div class="text-2xl font-bold text-green-600">$10.7M</div>
<p class="text-gray-500 text-sm">Total Cost</p>
</div>
</div>
<div class="scenario-card p-4 cursor-pointer">
<div class="flex justify-between items-start">
<h3 class="text-lg font-semibold">Bonded Warehouse</h3>
<span class="text-green-500">-$950K</span>
</div>
<p class="text-gray-500 text-sm mt-1">Postponed payment</p>
<div class="mt-3">
<div class="text-2xl font-bold text-green-600">$11.9M</div>
<p class="text-gray-500 text-sm">Total Cost</p>
</div>
</div>
</div>
</div>
<div class="chart-container">
<h3 class="text-lg font-semibold mb-4">Cost Comparison (Millions $)</h3>
<div id="comparison-chart" class="h-96"></div>
</div>
<div class="table-container mt-6">
<h3 class="text-lg font-semibold p-4">Decision Matrix</h3>
<div class="p-4">
<table class="min-w-full divide-y divide-gray-200">
<thead class="bg-gray-50">
<tr>
<th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Factor</th>
<th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Standard Entry</th>
<th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">FTZ</th>
<th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Bonded Warehouse</th>
</tr>
</thead>
<tbody class="bg-white divide-y divide-gray-200">
<tr>
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900">Duty Timing</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">At entry</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">At U.S. commerce entry</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">At withdrawal</td>
</tr>
<tr>
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900">Rate Lock</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">No</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">Yes (Privileged Foreign)</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">No</td>
</tr>
<tr>
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900">MPF Savings</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">None</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">Weekly entry reduces counts</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">None</td>
</tr>
<tr>
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900">Storage Cost</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">Customs exam areas</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">Operator/monthly fees</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">Warehouse/per pallet</td>
</tr>
<tr>
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900">Best For</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">Low volume</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">High volume, fluctuating rates</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">Declining rates, short term</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<!-- Optimization Tab -->
<div id="tab-optimization" class="tab-content">
<div class="grid grid-cols-1 lg:grid-cols-3 gap-6">
<div class="lg:col-span-2">
<div class="chart-container">
<h3 class="text-lg font-semibold mb-4">Sensitivity Analysis</h3>
<div id="sensitivity-chart" class="h-80"></div>
</div>
<div class="chart-container mt-6">
<h3 class="text-lg font-semibold mb-4">Network Optimization</h3>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4">
<div class="border border-gray-200 rounded-lg p-4">
<div class="flex justify-between items-center mb-2">
<span class="text-gray-600">FTZ Allocation</span>
<span class="font-bold">65%</span>
</div>
<div class="w-full bg-gray-200 rounded-full h-2.5">
<div class="bg-indigo-600 h-2.5 rounded-full" style="width: 65%"></div>
</div>
</div>
<div class="border border-gray-200 rounded-lg p-4">
<div class="flex justify-between items-center mb-2">
<span class="text-gray-600">Bonded Warehouse</span>
<span class="font-bold">25%</span>
</div>
<div class="w-full bg-gray-200 rounded-full h-2.5">
<div class="bg-green-500 h-2.5 rounded-full" style="width: 25%"></div>
</div>
</div>
<div class="border border-gray-200 rounded-lg p-4">
<div class="flex justify-between items-center mb-2">
<span class="text-gray-600">Direct to DC</span>
<span class="font-bold">10%</span>
</div>
<div class="w-full bg-gray-200 rounded-full h-2.5">
<div class="bg-blue-500 h-2.5 rounded-full" style="width: 10%"></div>
</div>
</div>
</div>
</div>
</div>
<div>
<div class="slider-container mb-6">
<h3 class="text-lg font-semibold mb-4">Optimization Controls</h3>
<div class="mb-4">
<label class="block text-gray-700 text-sm mb-1">Tariff Increase Assumption</label>
<input type="range" min="0" max="10" value="3" class="w-full">
<div class="flex justify-between text-xs text-gray-500 mt-1">
<span>Falling</span>
<span>Neutral</span>
<span>Rising</span>
</div>
</div>
<div class="mb-4">
<label class="block text-gray-700 text-sm mb-1">Inventory Dwell Time</label>
<input type="range" min="15" max="90" value="45" class="w-full">
<div class="flex justify-between text-xs text-gray-500 mt-1">
<span>Short</span>
<span>Medium</span>
<span>Long</span>
</div>
</div>
<div class="mb-4">
<label class="block text-gray-700 text-sm mb-1">Component Complexity</label>
<input type="range" min="1" max="5" value="3" class="w-full">
</div>
<div class="flex items-center justify-between mb-2">
<span class="text-gray-700">Weekly Entry</span>
<label class="switch">
<input type="checkbox" checked>
<span class="slider"></span>
</label>
</div>
<button class="w-full bg-indigo-600 hover:bg-indigo-700 text-white py-2 rounded-md text-sm font-medium mt-4">
Optimize Network
</button>
</div>
<div class="slider-container">
<h3 class="text-lg font-semibold mb-4">Scenario Recommendation</h3>
<div class="p-4 bg-indigo-50 rounded-lg">
<p class="text-indigo-800">
<span class="font-bold">Recommended Mix:</span> FTZ 70%, Bonded 20%, Direct 10%
</p>
<p class="text-indigo-700 text-sm mt-2">
This configuration optimizes for the current tariff increase projection while
balancing inventory holding costs and administrative overhead.
</p>
</div>
</div>
</div>
</div>
</div>
<!-- About Tab -->
<div id="tab-about" class="tab-content">
<div class="chart-container">
<h2 class="text-xl font-semibold mb-4">About FTZ Analysis & Optimization Studio</h2>
<div class="prose max-w-none">
<p>
The FTZ Analysis & Optimization Studio is a simulation environment that enables logistics,
finance, and compliance teams to evaluate the financial impact of using U.S. Foreign Trade Zones
versus Bonded Warehouses and standard entry procedures for imported beauty and cosmetic goods.
</p>
<h3 class="text-lg font-semibold mt-6 mb-3">Key Concepts</h3>
<ul class="list-disc pl-5 space-y-2">
<li><strong>Foreign Trade Zones (FTZs)</strong>: Areas considered outside the U.S. customs territory for tariff purposes. Duties are deferred until merchandise enters U.S. commerce. Benefits include weekly entry, direct delivery, inverted tariff opportunities, and scrap/waste relief.</li>
<li><strong>Bonded Warehouses</strong>: Secure storage facilities where imported goods can be stored without paying duties until they're withdrawn for domestic consumption. Duties are assessed at withdrawal time, allowing benefit from declining rates.</li>
<li><strong>Privileged Foreign Status</strong>: Within FTZs, goods can be admitted with privileged foreign status locking in duty rates at the time of admission, providing protection against rate increases.</li>
<li><strong>Inverted Tariff Opportunities</strong>: When components with higher duty rates are imported as privileged foreign status, and the finished products have lower duty rates, savings can be achieved.</li>
</ul>
<h3 class="text-lg font-semibold mt-6 mb-3">Application Features</h3>
<ul class="list-disc pl-5 space-y-2">
<li><strong>Multi-scenario Comparison</strong>: Evaluate Standard Entry, FTZ Baseline, FTZ with Privileged Foreign Status, FTZ with Inverted Tariff, and Bonded Warehouse scenarios.</li>
<li><strong>Dynamic Cost Modeling</strong>: Calculates customs duties, MPF/HMF fees, storage costs, and compliance overhead based on current and anticipated tariff rates.</li>
<li><strong>Optimization Recommendations</strong>: Provides allocation recommendations between FTZs, Bonded Warehouses, and direct distribution based on financial modeling.</li>
<li><strong>Risk Assessment</strong>: Incorporates potential disruptions, policy changes, and regulatory compliance into financial projections.</li>
</ul>
<h3 class="text-lg font-semibold mt-6 mb-3">Disclaimer</h3>
<p>
This demonstration uses synthetic data generated client-side. All FTZ and customs treatment information
is summarized from public resources including strtrade.com, geodis.com, bergenlogistics.com,
chiefexecutive.net, and zhftaxlaw.com. Actual duty/tariff calculations should be verified with
customs brokers and legal advisors.
</p>
</div>
</div>
</div>
</div>
</div>
<!-- Footer -->
<div class="footer p-4 text-center text-sm">
Demonstration only. FTZ/Bonded mechanics summarized from public resources:
strtrade.com, geodis.com, bergenlogistics.com, chiefexecutive.net, zhftaxlaw.com.
</div>
<script>
// Tab switching functionality
document.querySelectorAll('.tab-button').forEach(button => {
button.addEventListener('click', () => {
// Remove active class from all tabs and buttons
document.querySelectorAll('.tab-button').forEach(btn => btn.classList.remove('active'));
document.querySelectorAll('.tab-content').forEach(tab => tab.classList.remove('active'));
// Add active class to clicked button
button.classList.add('active');
// Show corresponding tab content
const tabId = button.getAttribute('data-tab');
document.getElementById(`tab-${tabId}`).classList.add('active');
});
});
// Mobile sidebar toggle
document.getElementById('sidebarToggle').addEventListener('click', () => {
document.getElementById('sidebar').classList.toggle('active');
document.getElementById('mobileOverlay').classList.toggle('active');
});
document.getElementById('mobileOverlay').addEventListener('click', () => {
document.getElementById('sidebar').classList.remove('active');
document.getElementById('mobileOverlay').classList.remove('active');
});
// Close sidebar when clicking outside on mobile
document.addEventListener('click', (e) => {
const sidebar = document.getElementById('sidebar');
const toggle = document.getElementById('sidebarToggle');
if (window.innerWidth < 768 &&
sidebar.classList.contains('active') &&
!sidebar.contains(e.target) &&
e.target !== toggle) {
sidebar.classList.remove('active');
document.getElementById('mobileOverlay').classList.remove('active');
}
});
// Initialize charts
document.addEventListener('DOMContentLoaded', () => {
// Duty by HS Code Chart
const dutyChart = document.getElementById('duty-chart');
const dutyData = [{
type: 'bar',
x: ['3304', '3305', '3307', '4202', '3923', '7010'],
y: [1200000, 800000, 1500000, 450000, 600000, 900000],
marker: { color: '#4f46e5' }
}];
const dutyLayout = {
title: 'Duty by HS Code',
xaxis: { title: 'HS Code' },
yaxis: { title: 'Duty Amount (USD)' },
margin: { t: 40, l: 40, r: 20, b: 60 }
};
Plotly.newPlot(dutyChart, dutyData, dutyLayout, {displayModeBar: false});
// Monthly Trend Chart
const monthlyChart = document.getElementById('monthly-chart');
const months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
const monthlyData = [{
type: 'scatter',
mode: 'lines+markers',
name: 'FTZ Scenario',
x: months,
y: [180000, 195000, 190000, 185000, 175000, 170000, 165000, 170000, 175000, 185000, 195000, 205000],
line: { color: '#10b981', width: 3 },
marker: { size: 6 }
}, {
type: 'scatter',
mode: 'lines+markers',
name: 'Standard Entry',
x: months,
y: [220000, 235000, 230000, 225000, 215000, 210000, 205000, 210000, 215000, 225000, 235000, 245000],
line: { color: '#94a3b8', width: 2 },
marker: { size: 4 }
}];
const monthlyLayout = {
title: 'Monthly Duty/Fees Comparison',
xaxis: { title: 'Month' },
yaxis: { title: 'Amount (USD)' },
margin: { t: 40, l: 60, r: 20, b: 60 }
};
Plotly.newPlot(monthlyChart, monthlyData, monthlyLayout, {displayModeBar: false});
// Cost Composition Chart
const costChart = document.getElementById('cost-chart');
const costData = [{
type: 'pie',
values: [35, 25, 15, 10, 10, 5],
labels: ['Duty', 'FTZ Operator Fees', 'Storage Costs', 'MPF/HMF Fees', 'Compliance Overhead', 'Demurrage'],
marker: {
colors: ['#4f46e5', '#818cf8', '#c7d2fe', '#10b981', '#34d399', '#a7f3d0']
},
textinfo: 'label+percent'
}];
const costLayout = {
title: 'Cost Composition Breakdown',
margin: { t: 40, l: 0, r: 0, b: 0 }
};
Plotly.newPlot(costChart, costData, costLayout, {displayModeBar: false});
// Top SKUs Table
const topSKUsTable = new Tabulator("#top-skus-table", {
height: "300px",
data: [
{sku: "FRG-001", hs: "3307", savings: 125000, dw: "Y", dwell: 45, cost: 8500},
{sku: "SKC-003", hs: "3304", savings: 98000, dw: "Y", dwell: 38, cost: 6200},
{sku: "MKP-012", hs: "3304", savings: 87000, dw: "N", dwell: 52, cost: 11000},
{sku: "FRG-025", hs: "3307", savings: 78000, dw: "Y", dwell: 35, cost: 5500},
{sku: "HRC-007", hs: "3305", savings: 65000, dw: "N", dwell: 48, cost: 9200},
],
layout: "fitColumns",
columns: [
{title: "SKU", field: "sku", width: 100},
{title: "HS Code", field: "hs", width: 100},
{title: "Savings", field: "savings", formatter: "money", formatterParams: {symbol: "$"}, hozAlign: "right"},
{title: "Priv. Foreign", field: "dw", width: 120, hozAlign: "center"},
{title: "Dwell (Days)", field: "dwell", width: 120, hozAlign: "center"},
{title: "Storage Cost", field: "cost", formatter: "money", formatterParams: {symbol: "$"}, hozAlign: "right"},
],
});
// Comparison Chart
const comparisonChart = document.getElementById('comparison-chart');
const comparisonData = [{
type: 'bar',
x: ['Standard Entry', 'FTZ - Baseline', 'FTZ - Privileged Foreign', 'FTZ - Inverted Tariff', 'Bonded Warehouse'],
y: [12800000, 11600000, 11000000, 10700000, 11900000],
marker: {
color: ['#94a3b8', '#4f46e5', '#818cf8', '#6366f1', '#a78bfa']
}
}];
const comparisonLayout = {
title: 'Total Cost Comparison (Millions USD)',
xaxis: { title: 'Scenario' },
yaxis: { title: 'Total Cost' },
margin: { t: 40, l: 80, r: 20, b: 100 }
};
Plotly.newPlot(comparisonChart, comparisonData, comparisonLayout, {displayModeBar: false});
// Sensitivity Chart
const sensitivityChart = document.getElementById('sensitivity-chart');
const sensitivityData = [
{
type: 'bar',
orientation: 'h',
x: [0.15, 0.25, -0.1, 0.05, 0.3],
y: ['Tariff Rate Change', 'Dwell Time', 'Weekly Entry', 'Storage Costs', 'Inventory Turns'],
marker: {
color: ['#ef4444', '#ef4444', '#10b981', '#10b981', '#10b981']
}
}
];
const sensitivityLayout = {
title: 'Sensitivity Analysis: Net Savings Impact',
xaxis: { title: 'Impact on Savings (% of total cost)' },
yaxis: { title: 'Factor' },
margin: { t: 40, l: 120, r: 20, b: 60 }
};
Plotly.newPlot(sensitivityChart, sensitivityData, sensitivityLayout, {displayModeBar: false});
});
</script>
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=agenticlogistics/ftz-analysis-optimization" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
</html>