Skip to content

Rate cards & pricing

How freight pricing works — rate cards, rate entries, zones, service levels, and the add-ons (fuel levy, GST) that reach the final quote.

Rate Cards is where all freight pricing lives. It’s under Rates → Rate Cards (/operations/rate). This page explains the pricing model end to end, then how to work with cards day to day.

A rate card is a pricing agreement you assign to one or more customers. Each card holds rate entries — one per lane (origin → destination) — and each entry says how to charge (per pallet, per kg, per hour, flat…) and how much. When a quote or booking is priced, the system finds the customer’s matching card and entry for that lane, prices each item, then layers on add-ons (fuel levy, GST, tailgate…) to reach the total.

Rates are stored net — GST and fuel levy are not baked into the card; they’re added at quote time as add-ons.

Every quote and booking is priced by the same engine. The flow:

Request ─► customer, pickup & delivery, items, service level
1 Resolve the lane suburb NAME first, then postcode ─► zones
2 Find the price rule customer cards first, then global fallback
│ check conditions (dimensions / vehicle / service level)
│ ─► first matching rate entry
3 Price the freight per item; oversize items priced separately
│ apply service-level multiplier + minimum charge
4 Add-ons waterfall mandatory → automatic → manual, in order
│ fuel levy, then GST on the taxable base
Result ◄─ rate card + per-item breakdown + add-on lines + grand total
  1. Resolve the lane. Pickup and delivery locations map to zones. Suburb name is matched before postcode, so the most specific zone wins.
  2. Find the price rule. The customer’s own cards are tried first; general cards can be a fallback — see Rates hierarchy for the full order. Each candidate entry’s conditions (dimensions, vehicle type, service level) are checked, and the first that passes is used.
  3. Price the freight. Each item is priced on the matched entry. Oversize items (that break the standard pallet envelope) are priced on the card’s oversize rule while normal items keep the pallet rate. The service level multiplier and any minimum charge apply.
  4. Add-ons. Surcharges, discounts, fuel levy and GST are applied on top (see Add-ons).

The method on an entry decides how it’s charged:

The Charge By picker lists only the methods in use:

MethodCharges by
Loadper vehicle load (FTL) — a flat per-lane rate
Pallet (Tiered)pallet spaces, with brackets (½ / 1–4 / 5–12 / 13+)
Hourlyper hour, by vehicle type
Chargeable Weightper kg on the greater of actual vs cubic weight
Per KGper kg on the actual (dead) weight only — supports tiers
Per TonneFTL — base_rate ($/t) × tonnes

On Create Booking, Charge By is constrained by Job Type: FTL → Load or Per Tonne; LTL → Pallet, Chargeable Weight, or Per KG; Hourly Hire → Hourly; Towhaul → Load; Empty Run is non-priced. A booking prices only on a rate card of the selected method.

Each service level carries a cost multiplier and a cubic factor (used to convert volume to chargeable weight — m³ × factor = kg):

Service levelCost multiplierCubic factor
Express×1.50250
Standard×1.00333
Hot Shot×1.85250

The service level’s factor drives the booking form’s live chargeable-weight preview (and the public quotation widget). The priced amount uses the engine’s chain instead: the rate card’s own cubic-factor override → the tenant default in Rate card settings.

The list has two views (toggle top-right):

  • By Group — cards organised into customer contract groups, with summary stats (cards, rates, contracts linked). Use this to see a customer’s whole pricing at a glance.
  • By Card — a flat list of every card. Use this to jump straight to one card.

Open a card and click Add rate entry, then set:

  1. Origin zone and destination zone(s) — the lane.
  2. Calculation method — how it charges (see the table above).
  3. The price — on tiered entries base_rate is the Base Charge (flagfall): a fixed per-consignment charge added on top of the tier pricing. It’s per-unit only for Load / Per Tonne / Hourly and non-tiered per-kg entries. Tier brackets carry the per-unit prices for pallet/weight cards. Optionally a minimum charge.

Save is enabled once the required fields are set.

Per-pallet prices live in tiers — different rates by quantity bracket (½ / 1–4 / 5–12 / 13+), or a single “All pallets” tier covering every quantity (previously non-tiered lanes were migrated to one). The Base Charge (flagfall) sits on top of the tier price; a flagfall of 0 on pallet lanes is normal, not missing data.

Hourly entries are keyed by vehicle type: the $/hr lives in base_rate, plus a minimum hours field. On a booking, Hours defaults to the card’s minimum and the entry is matched via the vehicle type behind the chosen transport configuration.

An entry can be gated so it only applies in certain cases — e.g. a specific vehicle type / transport configuration, freight dimensions, or service level. If a booking doesn’t meet the condition, the engine moves to the next candidate entry.

If an item exceeds the standard pallet envelope, it’s priced by the pallet card’s oversize fallback (Oversize tab) while normal items in the same consignment keep the pallet rate. Exactly one strategy runs — no cascade:

  • Chargeable weight rate card (default) — a weight card on the lane, on chargeable weight.
  • Custom $/kg on chargeable weight — this card’s rate × chargeable weight.
  • Custom $/kg on actual (dead) weight — this card’s rate × dead weight.
  • Actual weight rate card — an actual-weight card on the lane, on dead weight.

If the chosen strategy has no matching card/rate, the quote returns no match instead of under-charging. The standard size is resolved from the card, then the tenant defaults in Rate card settings, then the pallet type.

Three behaviours worth knowing:

  • On a card-fallback strategy the Base Charge (flagfall) comes from the fallback card, not the pallet card; the custom $/kg strategies keep this card’s flagfall.
  • Mixed consignments keep normal items on the pallet card and price only the oversize items on the oversize strategy.
  • The booking’s Charge By label switches to the effective weight method.

Add-ons sit on top of the net freight price. Each has a value (percentage, fixed amount, or a live feed) and a trigger (mandatory, automatic, or operator-selected). Their value can be set at several levels; the most specific wins: per-booking 1-off → rate entry (lane) → customer → rate card → global default. A per-card/lane value also beats an External Source feed. In Create Booking each add-on line shows its source — this lane / rate card / global / 1-off.

  • Fuel levy is customer-specific and lives on the rate card — each customer’s card carries its own %, which auto-applies. To give a customer a custom levy, change the override on their card. For a spot customer with no card rate, an operator adds the Fuel Levy (JAT) add-on for the live market rate.
  • GST (10%) is a mandatory tax applied on the taxable base, after other add-ons.

A card can also override an addon’s trigger: an addon that is Manual globally can be Mandatory on this card — this per-card trigger override is the mechanism behind the card’s fuel levy auto-applying.

Manage these under Rates → Add-ons.

Each card and entry has Edit, View, and Deactivate actions. Deactivating keeps the record for history but removes it from pricing. A card only prices for a customer once it’s assigned to that customer.

  • Zones — how suburbs/postcodes map to pricing areas.
  • Service levels — multipliers and cubic factors.
  • Add-ons — surcharges, fuel levy, GST, discounts.
  • Transit times — delivery lead-time profiles attached to cards.