A carrier PDF becomes a table in about half a minute.

The sheet is dropped on the screen. The model reads it twice and proposes rows. The operator reviews the table and presses Create — and only then does anything exist.

What it does

Two passes, because a skipped line does not look like an error.

A rate table missing one row is not broken: it quotes confidently, and it quotes the wrong number. The sheet is therefore read a second time for the one question that matters: whether anything was dropped. Fig. 1 follows both passes.

Fig. 1 — The sheet is read twice, and the second pass is the safeguard.lib/rate-read.ts
Rates → Read a rate sheet — PDF, image, Excel or CSV PACIFIC-LAX-PUS-SEP26.pdf 4 pages, one carrier sheet Pass 1 — pull the lines out Done Pass 2 — check none were skipped Done about half a minute, and a few cents — the screen says so before it starts 16 lines found. Two of them are not certain. Nothing is saved until you press Create Lane and serviceBasisBuyRead from LAX → PUS · LCLW/M62.000p.2 row 14 LAX → PUS · FCL 20GPPer container1,180.000p.2 row 15 LAX → PUS · FCL 40HCPer container1,940.000p.2 row 16 LAX → PUS · LCL minimum charge, figure not legibleMinimump.2 footnote LAX → INC · LCL port code could be ICN or INCW/M64.000p.3 row 4 An unticked row is a question, not a failure. The tick is off and the reason is on the row.
A missing row does not look like an error, because the table quotes confidently without it — so the second pass asks the only question the first pass cannot ask itself.
Rates → Read a rate sheet PDF · Image · Excel · CSV
Drop a rate sheet hereOr choose a file
PACIFIC-LAX-PUS-SEP26.pdf — 4 pagesLoaded
Pass 1 — pulling the lines outDone
Pass 2 — checking none were skippedDone
16 lines found on pages 2 and 3. Two of them are not certain, and they will arrive with the tick already off.
What the screen states
Nothing is saved until the table has been reviewed and Create is pressed. The sheet is read twice — once to pull the lines out, once to check none were skipped — which takes about half a minute and costs a few cents.
2 of 16
Arrive unticked
Neither hidden, nor guessed at, nor rounded into the other fourteen.

The screen states the cost before it is spent

Half a minute and a few cents. That figure is placed on the screen because a job that costs money and takes time should say so before it starts rather than after. The alternative is a spinner that a person cancels at twenty seconds because nothing indicated that twenty seconds was normal.

It also states what it read from

Every proposed row carries the page and the row it came off, so checking a line means looking at one place on the PDF instead of re-reading four pages.

The table it proposes

Nothing here exists yet, not one row.

16 lines read — nothing saved 2 not certain
Rate lines read from a carrier sheet, nothing saved yet
ChosenLane and serviceBasisBuyValidRead from
LAX → PUS · LCLW/M62.0001–30 Sepp.2 row 14
LAX → PUS · FCL 20GPPer container1,180.0001–30 Sepp.2 row 15
LAX → PUS · FCL 40HCPer container1,940.0001–30 Sepp.2 row 16
LAX → PUS · LCL minimum charge, figure not legibleMinimum01–30 Sepp.2 footnote
LAX → INC · LCL port code could be ICN or INCW/M64.0001–30 Sepp.3 row 4
Create
14 lines are ticked. Pressing Create brings 14 rate lines into existence. The two that are not ticked remain on this screen until a person decides what they say.

An unticked row is a question rather than a failure

A minimum charge printed over a fold, or a port code that could be one of two airports — the model can read those two ways and it will not choose one for the operator. The tick is off, the reason is on the row, and the sheet remains open beside the table.

The cost of a guess here is not a broken screen. It is a quotation that goes out at the wrong number and is accepted.

What happens when that quote is under the floor →

Recording — 12 s, silent, loops R-02 · not yet shot
What it shows A carrier’s PDF becoming a rate table with nobody retyping a line — and the two lines the model is not sure of arriving with the tick already off.
Where to shoot it Rates → Read a rate sheet on the demo company, with PACIFIC-LAX-PUS-SEP26.pdf in a folder beside the window
The take
  1. Drag the PDF onto the drop area and let go.
  2. Let both passes run through to Done. Do not cut the half minute out.
  3. Stop on the proposed table: 14 rows ticked, 2 unticked with their reasons. Do not press Create.
Why here This is the paragraph a reader takes as a sales claim. Watching two rows arrive unticked by themselves is the cheapest proof that the pause is a real part of the product.
The rule this screen is built on

The model proposes. A person creates.

There is no unattended import here, and none is planned. The basis those LCL rows carry — W/M — is the rule in Fig. 2.

A wrong rate is a silent failure

Twenty checks can stop a release at CBMGO, and one of them fails any build that draws a zero when a read failed — a screen showing a confident number for data it never received. The reading screen follows the same principle. A line the model is not certain of is not drawn as a fact, because a wrong rate does not announce itself. It prices, the customer accepts, and the loss appears at invoicing weeks later.

The pause is therefore part of the product

The gap between reading and saving is not a delay in automation. It is the one moment where a person who knows the lane looks at sixteen rows for fifteen seconds and catches the one that is wrong. Without that moment the sheet reader stops being a tool and becomes a source of silent errors with a machine’s authority behind them.

Fig. 2 — The greater of the two, and nothing else.46 U.S.C. §41104(a)(2) · lib/rton.ts
FMC filed tariff — ocean LCL “per 1 Cubic Meter (M) or 1,000 Kilos (W), whichever yields the greater revenue” Volume 8 CBM on the B/L 8.000 Weight 12,000 kg ÷ 1,000 12.000 Greater the four R.TON between them Chargeable quantity 12.000 W/M 12.000 CBM fifty per cent over — it fights the B/L 8.000 four R.TON short, on every file like it FCL neither weight nor volume — a flat rate per container
The filed rule is one cubic metre or 1,000 kilos, whichever yields the greater revenue: 8 CBM against 12,000 kg reads 8.000 by volume and 12.000 by weight, so 12.000 is the chargeable quantity and the four R.TON between them are the whole argument. FCL is neither — a flat rate per container. A table that cannot say which of the two gauges it was filed under will price confidently in the wrong unit, and the mistake surfaces first on the customer’s copy.
What this does not do

Four things it will not do.

No live carrier or airline rate feed
There is no API behind this pulling rates as they change. Rates arrive on a sheet or through a person’s hands, and that is the complete list of ways in.
No saving without a person
There is no scheduled overnight import, and no watched mailbox that reads a sheet and creates rows while the office is closed. Create is a button a person presses.
It does not quote
This screen makes rate lines. Pricing a quotation, checking it against the margin floor and sending it are elsewhere in QMS and in SCM.
It does not fill in what the sheet left out
An illegible minimum charge stays empty and unticked. The model does not reach for the last figure it saw on another sheet.
Get a demo

The sheet nobody wants to retype is welcome.

The scanned one, the one with the footnote nobody reads, the one that arrives as four photographs. It is dropped on the screen during the call and the result is read together, including whatever comes back unticked.