Import cost dashboard ◆ sample data, wire to your PO history
A standing read on where landed costs and tariff exposure sit across active sourcing. Figures below are illustrative; live values arrive from Postgres once PO history is wired in.
Sourcing exposure by origin
Your recent estimates
Compare every source for one product
Search a product, set your terms, and the tool prices the full landed-cost stack for each qualified supplier, then calls the winner.
Landed cost by source
Live rates
Every input the landed-cost engine needs, in one place, with how fresh each one is and where it comes from. Green feeds refresh automatically; amber need a periodic check; grey change on a fixed schedule.
Country tariff matrix
Every duty layer that can stack onto an import, by country of origin, for the selected tariff line. This is the number the sourcing engine turns into dollars.
Product catalog
Each product carries its spec once and lists every qualified source beneath it. Add, edit or remove products here.
Suppliers
Contact and ordering details for each vendor, and the products you source from them. Update prices, lead times and terms here, and changes flow straight into the sourcing engine.
Scenario planner
Move the levers that actually swing landed cost (tariffs, freight, FX, quantity) and watch every source re-price against today's baseline. Built for the "what happens when the 10% expires?" question.
Levers
Sales order feasibility
A customer wants a price. Enter the order and the tool tells you whether it clears your margin floor, at which source, and the lowest price you could accept.
Section 301 cost report
Every China-sourced line in the catalog, what the 25% Section 301 duty costs at a reference order, and what you'd save by moving to the best non-China source for the same product.
Supplier comparison
Pick two vendors and see them side by side on the products they both make: unit cost, lead time, landed cost, tariff and compliance exposure.
My estimates
Estimates you save from the Sourcing screen live here. Only you can see them, other users have their own list.
Materials & classification
Asheville Mica's product lines go well beyond mica plate. Ceramics, laminates, films and papers each classify differently and carry different duty. This is the map from material to tariff line.
Rate review
Automated feeds propose changes here rather than editing your cost basis directly. Nothing affects a landed cost until someone confirms it.
Freight rates
Freight is the one major input with no free live feed, so you maintain it here. Update a lane once and every product shipping on it re-prices immediately.
Where to check the market
Free to view, no subscription needed. Useful for asking your forwarder why a quote moved.
Glossary
Every term, fee and field used in this app, explained without jargon. If something on another screen is unclear, it is defined here.
Settings
Your profile, security, and the defaults this tool assumes when it opens.
Profile
How you appear in the app and on saved estimates.
Security
Password changes are handled by email so nobody can change it from an unattended screen.
Estimate defaults
What the Sourcing and Feasibility screens assume before you change anything.
Alerts
What is worth interrupting you for. These record your preference now and drive notifications once the alert job is deployed.
Admin
Connection status, data feeds, and the setup reference for this deployment.
Administrator access
This section exposes deployment and data-feed configuration. Enter the admin passphrase to continue.
1 Authentication
Supabase Authentication handles sign-in. Accounts are created by an admin, public signup should stay switched off for an internal tool.
- Authentication → Users → Add user to create an account
- Tick Auto Confirm User or they wait on a confirmation email
- Sign In / Providers → Email → turn off "Allow new users to sign up"
2 Database
Postgres holds reference data everyone reads, and estimates only their owner can read.
- products + product_sources, one product, many suppliers
- suppliers, vendor master
- rates, FX and fees, written by the scheduled job
- estimates, private per user via row level security
3 Rate feeds
An edge function fetches each automatable rate on a schedule and writes it to rates.
- FXLIVE Open Exchange Rates, daily at 06:00 UTC
- Base duty / HTSLIVE USITC HTS, weekly, proposals go to Rate Review
- Tariff actionsLIVE Federal Register, daily, proposals go to Rate Review
- FreightPAID Freightos / Xeneta, needs a contract
- Federal feesANNUAL CBP schedule, review yearly
4 Security
Row level security is enforced by the database, not this app, it holds even if someone calls the API directly.
- Reference tables: readable by any signed-in user
- Estimates: auth.uid() = user_id, owner only
- service_role key is server-side only, never in this file
- The anon key in this file is safe by design
-- the rule that makes a saved estimate private create policy "owner reads own estimates" on estimates for select to authenticated using (auth.uid() = user_id); -- verify it: sign in as two users, save an estimate as one, -- and confirm the other cannot see it in My Estimates.