In short: Seven tabs (FCL, LCL, air, local charges, door zones, customs, rules) and the columns that let anyone quote from it.
In most small forwarders the rates exist, but not in one place. Ocean rates are in a carrier's email from last Tuesday, local charges in a spreadsheet someone built in 2022, cartage zones in a transport company's PDF, and the clearance fee in the ops manager's head. That works while one person quotes. It breaks when they're on leave, and it makes any kind of automation impossible.
A good rate sheet is one workbook that a new staff member could quote from on their first day, and that software can read without guessing. Here's a structure that does both.
Columns: origin port, destination port, container type, rate, currency, carrier, transit time, valid from, valid to, surcharges included (yes/no), notes. If surcharges are listed separately, put each one on its own row with the same port pair and a type column, rather than in extra columns that half the rows leave blank.
Columns: origin, destination, rate per W/M, minimum W/M, currency, consolidator, valid from, valid to. Put origin and destination CFS charges on the local charges tab, not here, so they can differ by port without copying rows. The calculation these rates feed is in how to calculate an LCL quote.
One row per origin, destination and weight break: minimum, under 45 kg, +45, +100, +300, +500, +1000. Columns: origin airport, destination airport, break, rate per kg, minimum charge, currency, airline, valid from, valid to. Add a column for the volumetric divisor if you buy from carriers that use different ones. Fuel and security surcharges go on their own rows, per chargeable kilo.
This is the tab most sheets get wrong. Every charge at origin or destination, one row each. Columns: port or airport, direction (import or export), mode (FCL, LCL, air), charge name, basis (per container, per W/M, per bill, per kg), container type if it applies, amount, minimum, currency, GST applies (yes/no), and a condition column: always, if clearance, if EXW, if DG, if inspected. That condition column is what turns a list of charges into something you can quote from without remembering which ones apply.
Two parts. First, a postcode table: postcode from, postcode to, zone. Second, a price table: port or airport, zone, equipment (20, 40, side-loader, pallet, tailgate), basis, amount, waiting time allowance, waiting time rate. Pricing by postcode rather than suburb avoids the ambiguity of suburb names and matches how most transport companies already work.
If your carrier passes on terminal access charges, add them here or on the local charges tab, and decide once which line they belong on.
Your brokerage fee, any fee for extra tariff lines over a set number, the fee for lodging a biosecurity import declaration, permit handling, and government charges marked "at cost" with a link to the current schedule, because they change each financial year. Duty and import GST aren't rates; they're calculated per shipment and passed through.
The things you know but haven't written down.
A rate sheet is only useful if it's trusted. Give one person the job of updating it, and do it on a fixed day. When a rate expires, don't delete it: move it to an archive tab so you can see what you quoted last month. Highlight rows that expire in the next seven days with a formula, not by hand.
Everything above is what software needs to quote from your rates instead of guessing. Clear units, explicit conditions and real dates are the difference between a tool that drafts a correct quote and one that drafts a plausible one. It's also what makes freight quote automation worth starting: if the rates are clean, reading the email is the only hard part left.
Laneworks has a free rate sheet template in Excel with these seven tabs set up. Ask for it when you forward a real quote request to try@getlaneworks.com. You'll get the template and a drafted reply to that request, priced from a sample tariff, in about two minutes. Fill the template in and send it back, and every line of every draft comes from your rates. Here's a sample draft so you know what to expect.
Forward a quote request