A quotation is a document rather than an opportunity.

Buy and sell priced side by side from the rate tables, the minimum margin for that customer’s grade checked before it goes out, and every accepted line carried onto the shipment. What was quoted is what is billed, because it is the same line.

175
Demo quotations
About 175, each priced against a customer grade and its own credit terms.
4,241
Charge lines
The same lines the shipments carry and the invoices bill.
What it does

Priced from the tables, checked against the grade.

Air by weight break, LCL by revenue ton, FCL per container — contract or spot, from the rate tables in QMS. The buy line and the sell line sit next to each other, so the margin is visible while the quotation is being written rather than after the job is closed.

A line below the minimum margin for that customer’s grade still goes out, but only after someone with the right to approve it does so, and that approval stays on the quotation. Trade notices — congestion, equipment shortage, a surcharge — appear on quotations that use the affected lane. When the customer accepts, the shipment opens with these lines already on it.

Quotation QT-2609-0142 · Grade B · LAX → SIN · valid to 16 Sep 1 line needs approval
Quotation QT-2609-0142 — charge lines, buy and sell
ChargeBasisQtyBuySellMargin
Ocean freight, LCL8.000 CBM / 12,000 KGS · W/M = 12.000 Per W/MContract SEA-26-114, to 30 Sep 12.000780.001,044.0025.3%
Terminal handling, originPer shipment 1145.00185.00 21.6%Under grade minimum 22.0%
DocumentationPer B/L 125.0065.0061.5%
Pickup, Vernon CAPer truck2 hours free, then per hour 1245.00320.0023.4%
Trade notice — equipment shortage reported on this lane, 28 August. Shown on every quotation that uses it until it is cleared.
Buy 1,195.00  ·  Sell 1,614.00Margin 419.00 — 26.0%
Before it can be sent
One line sits under the minimum margin for this grade. It can still go out — but someone with the right to approve it must approve it, and the approval stays on the quotation with the name and the time on it.
Fig. 1 — The number is typed once and then it travels.lib/charge-line.ts
QuotationShipmentInvoice USD 1,614.00 USD 1,614.00 USD 1,614.00 Nothing is re–typed, so nothing can be typed differently.
This is the document where the figure is keyed, which is why an argument about the invoice three months later is settled by opening one record instead of comparing two.
One rule

An expired table cannot price a line.

Validity is not printed on the rate sheet as a reminder. It is enforced: once a table is past its end date, it will not price anything, and the quotation says which table stopped it.

The accident it is built against: a contract table ends on the 31st. On the 2nd the desk quotes twelve lanes from it, because the file is still open on the screen and the numbers still look right. Nothing appears wrong until the carrier invoices at the new tariff — and by then the customer is holding an accepted quotation in writing. The margin was never there; it had never been checked.

The morning queue therefore warns 30, 14 and 7 days before a table expires, and the table itself refuses to work once it has.

The same reasoning

A rule that only warns is a rule that is clicked through.

The minimum margin by customer grade works the same way. It does not colour the line red and let the quotation go out anyway. It stops, asks for an approval from someone who is allowed to give one, and then records that approval on the document.

That record is the purpose. Six months later, when the job is being argued over, the question is never “was the margin thin” — it is “who decided that, and when”. A warning answers neither.

Rate tables and margin rules in QMS →

What this does not do

Where the quotation desk stops.

No live carrier or airline rate feed
There is no real-time rate API behind this. Rates are entered by people, from the contracts and tariffs the company holds.
Reading a rate sheet is not filing it
The model reads PDF, image and Excel sheets, and the screen states it plainly: “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.” Lines it is unsure about arrive with the checkbox already off.
No sales pipeline
No leads, no opportunities, no stages. That is deliberate: in forwarding a quotation is a document with a validity date rather than a card on a board. Contacts, activity and follow-ups live in the CRM extension.
Old quotations do not come across
On migration, customers, open shipments and rate sheets import. Quotations, historic invoices, supplier bills, settlements and claims do not.
Get a demo

Difficult lanes are welcome.

The lane is priced from a table the office already holds, during the call, then accepted, and the same lines are followed onto the shipment and the invoice. 45 minutes, and the session ends with a written quotation.