Free 3PL rate card builder
Write your rates as rules a lookup can follow, test which rule prices a job, and download the card as CSV or JSON.
| Service | Result |
|---|
How the lookup works
Each row is one rule: a service code plus the attributes that change the price. The test panel runs the same deterministic lookup we describe in how to build a rate card that quotes itself, once per service code on your card:
- Customer card first, then the published card. If you pick a customer, only rows with that exact customer name are tried. If none of them fits, the lookup falls back to rows with a blank customer, and the result says it did, so a regular is never quietly quoted list price.
- Blank is a wildcard, filled is a requirement. A row that says 40ft never matches a job whose size was not stated. A row that says “Any” matches every size.
- The SKU tier is a ceiling. Four SKUs bill at the ≤5 tier. The lookup takes the lowest tier at or above the count. Above your top tier, tiered rows stop matching.
- Most specific wins. Each filled attribute that matches scores a point. The highest score wins.
- A tie is not an answer. Two rows with the same top score show as “ambiguous, needs a person”. The tool never picks the cheaper or the first one.
- Zero or blank is unpriced, not free. A matched rule with no rate is shown as unpriced so nobody quotes the work at $0.
The “approval” columns do not change the lookup. They record which matched lines a person must sign off before a quote goes out, and why, for example “any quote over $2,000”.
What the downloads contain
The CSV opens straight in Excel or Google Sheets: one header row, one rule per
row, and the word any where a column is a wildcard. A CSV file can only hold one sheet,
so the column definitions and lookup rules go in a separate notes .txt file.
The JSON keeps wildcards as null, which is what you want if a system
is going to read the card.
What this tool does not do
- It does not calculate quantities or totals. It tells you which rule applies; how many pallets, cartons or hours to multiply by comes from the job.
- It only knows the columns shown here. Storage duration, stackability, hazmat, temperature and per-diem or chassis charges are not modelled. Add a separate service code for each if you price them.
- Sizes match exactly: a 40HC job does not match a row marked 40ft. Use “Any” or add a 40HC row if you price them the same.
- Your card is saved only in this browser (local storage). Clearing site data or switching device loses it, so download a copy.
- The starter rates are illustrative. They are not market prices and not a quote.
This is the structure Adriana prices from. In Rapid Ai 10x, she reads each enquiry, matches it against your rate card rule by rule (customer card first, then the published one), leaves ambiguous or unpriced lines for a person, and puts the draft quote in front of someone on your team to approve before it is sent. See how the agents work.
Common questions
One row per combination that changes the price: for container work, usually size, load type, SKU tier and timing, plus the unit, rate, any minimum charge, and which customer the rate belongs to. A single “container unload” line cannot price an enquiry without a person. Here is the full method.
Two rules fit the job equally well, usually because they have identical attributes. The tool will not pick the cheaper or the first one. Add the attribute that tells them apart, or delete the duplicate.
No. Everything runs in your browser. The card is saved in this browser’s local storage so it survives a refresh, and nothing is sent to Rapid Ai 10x. Download a CSV or JSON copy to keep it safe.
No. They are illustrative placeholders so the tester has something to match against. Replace every rate with your own before anyone quotes from the card.
One platform. Every shipper. Every lane.
Find shippers. Win the contract. Fill your space. All in one place.
Start with a guided pilot on your own accounts.