Your tariffs already have a schedule. Now you can see it.
The Terminal is one dense screen for every lane you import. Today's fully stacked duty rate, the next scheduled Chapter 99 change with its date, and what that change costs you per shipment.
Five screens, one keyboard. Type go CN, cal, or cmp 8517.13.00.00 and the whole board follows.
One lane, the whole picture, including the part that has not happened yet.
Pick an origin and an HTS code you already have. LANE resolves the base column and every Chapter 99 measure that applies, in the right legal order, and prints the effective rate. Under it sits the term curve: the same resolver run at every date the lane actually changes, so a step-up or a sunset shows up as a dated step rather than a surprise on an entry summary.
Put in a code you import today and see whether the number holds.
Placeholder codes and origins. Not a real lane or rate.
Your whole watchlist on one grid, with the next move in the last column.
MON is every lane you watch as a dense table: rate, movement since we started watching it, duty dollars against your typical shipment value, and the date of the next scheduled change. A lane the resolver cannot identify shows a dash, never a zero. A lane whose total is conditional says so instead of guessing a number.
Add the codes you import and the board fills itself in.
| Lane | Rate | Δ | Duty | Next |
|---|---|---|---|---|
| 0000.00.00.10 · XA | 6.5% | ▲2.4 | $650 | in 18d +8.5 |
| 0000.00.00.20 · XB | 25% | — | $2,500 | — |
| 0000.00.00.30 · XC | Cond | — | — | — |
| 0000.00.00.40 · XD | 10% | ▼1.2 | $1,000 | — |
Δ is movement since the last captured snapshot; blank means no baseline yet, never zero.
Placeholder codes and origins. Not a real lane or rate.
Scheduled changes, in dollars, on the dates they land.
A rate move is abstract. "This costs you $4,250 more per shipment in 18 days" is not. CAL takes every watched lane with a scheduled step inside the next 180 days, groups them by date, and prices the move against the shipment value on that watch item. It reads the resolver's own before and after, not a raw measure end date, so stacking, exemptions and suppression are already accounted for.
Find out what your next quarter costs before your supplier tells you.
| 0000.00.00.10 · XA | +8.5 pts → 15% | +$4,250 |
| 0000.00.00.40 · XD | −2 pts → 8% | −$900 |
| 0000.00.00.30 · XC | Becomes conditional | — |
Scheduled under current law; a proclamation can change any of it.
Placeholder codes and origins. Not a real lane or rate.
One code, every origin we model, cheapest first.
Give CMP a code you already use and it resolves that code across roughly forty two origins in a single batch call, ranked by effective rate, with the stack shown next to each one. Origins already on your watchlist are marked.
CMP compares rates for a code you supply. It does not classify a product and it does not tell you where to source.
Run a code you buy from one country and see what the other forty look like.
| # | Origin | Effective | Stack |
|---|---|---|---|
| 1 | XA | 0% | base only |
| 2 | XB Watched | 0% | base only |
| 3 | XC | 10% | Ch. 99 +10% |
| 4 | XD | 25% | Ch. 99 +25% |
| 42 | XE | Conditional | no single total |
Placeholder codes and origins. Not a real lane or rate.
Click a country, get the lane.
GLOBE is the fastest way to change origin without typing. Click a country and it becomes the origin for the lane you are looking at, with an arc drawn to Los Angeles and the freight estimate for that port pair. Type loop and it tours your watchlist on its own, which is what makes the Terminal something you can leave on a second monitor.
Point at a country and find out what it costs you.
The notices, newest first, filtered by program.
WIRE merges our published data changelog, the regulatory alerts we track and the trade news feed into one chronological column, filterable by program. It tells you a Section 232 notice landed this morning. It does not claim that notice hits your lanes, because the underlying records carry no HTS code and a scope claim guessed from prose is the kind of confident wrong answer we refuse to ship.
Read the wire next to your own rates instead of in a separate tab.
Federal Register: proclamation adjusting steel derivative scope
Federal Register
1,412 duty rows updated from the current USITC revision
Tariffs API changelog
USTR notice: List 3 modification and exclusion extensions
USTR
Ports report container volume shift ahead of the quota year
Trade press
Chronological, filterable by program. No per-lane relevance claim.
Everything is two keystrokes away.
The command bar drives the whole board. Screens, lanes, comparisons and the globe tour are all verbs, so you never hunt for a menu. Type help to see the list.
If you have ever used a real terminal, you already know how to drive this one.
The wire follows you onto a phone.
Below the width where the wire column makes sense, the same stream runs as a tape across the bottom of the screen. Scroll speed scales with how much is on it, so a busy week does not blur past. The board itself stacks rather than shrinking, so the rate you came for is still legible on a phone in a warehouse.
Check a rate from the dock, not just from the desk.
Placeholder codes and origins. Not a real lane or rate.
A tariff is not one number. It is a curve.
Every Chapter 99 measure carries an effective-from and an effective-to date. That means a sunset or a step-up is not news, it is a dated future price change that is already written down. Your rate on the day before a measure changes and your rate on the day it changes can be different numbers, and both are knowable today.
Everyone else shows you one number: what the rate is right now. Quote a Q1 shipment off that number and you are quoting a price that expires. The Terminal resolves the same lane at every date it actually changes and draws the steps, so the forward half of the curve is a schedule rather than a guess.
Two rules make it usable. Forward levels are scheduled under current law, and a proclamation can change any of them; we say so on the screen. Measures whose dates we cannot confirm never draw a step, they are counted instead, so an incomplete schedule reads as incomplete rather than as settled.
Look up one lane you already import and see whether it changes in the next six months.
Sourced, published and tested where you can check it.
Rates come from the Harmonized Tariff Schedule published by USITC, plus USTR, CBP CSMS and Federal Register notices for Section 301, 232, 122 and IEEPA measures. Nothing is typed in by hand and nothing is inferred from a third-party summary.
Every screen in the Terminal calls the same resolver the API calls, through one formatter. There is no separate marketing math. The status strip along the top of the board reads the same freshness service our public status page renders, so you can see when we last synced without leaving the screen.
Known lookups are pinned in a regression corpus and re-run on every data update. When a tuple goes red, the badge in the status strip goes amber, and you can see the same run on the public status page. We would rather show you a failing check than hide one.
USITC, Federal Register, CBP CSMS. Every rate traceable to a published source.
A public status page. Last sync, next sync and corpus health, open to anyone.
A pinned regression corpus. Known lanes re-tested before an update ships.
Read the status page first if you want to. Then open the board.
General educational information, not customs advice. Tariffs API is not a licensed customs broker; verify classification and duty with a licensed broker before filing.
In private beta.
The Terminal is in private beta. It is not part of the Importer or Developer plan yet, and a new account or trial does not include it. We are letting accounts in by hand while we finish it.
Tell us which lanes you import and we will get back to you about access.
You ask. We answer.
What is the Terminal?
A full-screen monitor for the tariffs you actually pay. Five screens share one shell: LANE for a single lane and its forward curve, MON for your whole watchlist, CAL for scheduled changes priced in dollars, CMP for one code across every modeled origin, and GLOBE for picking an origin by clicking it. It runs in the browser, no install.
Where do the rates come from?
The Harmonized Tariff Schedule published by USITC for base rates, plus USTR, CBP CSMS and Federal Register notices for Section 301, Section 232, Section 122 and IEEPA measures. Every screen calls the same resolver our API calls, so the number on the board is the number the API returns.
How can you know a rate will change on a specific date?
Because the schedule says so. Chapter 99 measures carry effective-from and effective-to dates, so a sunset or a step-up is already written down. We resolve the lane at each date its measure set actually changes and draw the result. Forward levels are scheduled under current law; a proclamation can change them, and the screen says that.
Will the Terminal tell me which HTS code my product is?
No. We report rates on codes you already have. Classifying a product into an HTS code is customs business and belongs with a licensed customs broker. CMP compares rates for a code you supply and never suggests one, and no screen in the Terminal will pick a code for a product.
Does the wire tell me whether a notice affects my lanes?
Not yet, and we will not fake it. The wire is chronological and filterable by program. The underlying records carry no HTS code, so a claim that a notice hits three of your lanes would be a scope claim guessed from prose. A missed match teaches you to distrust the panel, and a false match is worse. Tagging is the next thing we are building.
How current is the data?
Base HTS data is refreshed against the USITC schedule and Chapter 99 updates are captured from USTR and CBP notices. The status strip at the top of the Terminal shows the last successful sync and the regression corpus result, reading the same service our public status page renders. If the sync is stale, you can see it on the board.
Do I need to be a developer to use it?
No. The Terminal is a screen, not an endpoint. You add the codes you import to your watchlist and the board fills in. The command bar is optional, and every command has a click equivalent.
Is the Terminal included in my plan?
Not yet. The Terminal is in private beta. It is not part of the Importer or Developer plan today, and the 14-day trial does not include it. We are letting accounts in by hand; use Request access on this page to ask.
Your next rate change already has a date on it.
Add the codes you import, and the Terminal will tell you what they cost today, what they cost after the next scheduled change, and how many days you have. It is in private beta, and access is granted by hand.
Not included in a plan or trial yet. Request access and we will reply.