Freight billing software rates and invoices individual movements — a truckload, a container, a parcel batch — against a carrier or shipper contract, rather than running a recurring monthly schedule the way subscription billing does. The unit of work is a shipment, not a billing cycle.
That single difference — no billing period, just a movement that happened and needs to be priced — is why general-purpose subscription billing tools rarely handle freight well even when they're otherwise sophisticated. The core object each one is built around is fundamentally different.
The rate card is the actual product
A freight contract's commercial terms live in a rate card: base rates by lane or weight break, fuel surcharges, accessorials (detention, liftgate, residential delivery), and often a rate index — a published table (a diesel fuel index, for example) that a surcharge formula references.
Rate indexes commonly need branches: a specific carrier might be on a negotiated table that differs from the default published series. Getting this wrong in a specific, expensive way is common — a missing date on a carrier's specific branch silently falling back to the default table, quietly changing what a shipment should have cost. A correct system should never do that fallback silently; a missing rate on the chosen table should be a visible gap, not an automatic substitution.
The bill-to is the shipper, not "the customer"
In freight billing, the party that gets invoiced is the shipper — a distinct concept from a general "customer" record, and distinct from the carrier (the hauler actually moving the freight). Collections, bank reconciliation, and revenue recognition all need to key off the shipper as the billed party. Forcing freight AR into a generic customer catalog built for subscription billing tends to produce awkward workarounds — a "customer" record that's really a shipper, mixed in with actual SaaS customers, with no clean way to separate the two AR pictures.
From upload file to invoice
Freight billing at any real volume runs off files — a carrier or TMS export listing movements for a period. The typical path:
- Process — the file is parsed against a chosen contract and rate card; shipper identity gets resolved (matched to a catalog shipper, or flagged as new).
- Confirm shippers — ambiguous or new shipper matches need a person to confirm before anything downstream trusts the row.
- Create — rows with a confirmed shipper become shipment records with a calculated rate.
- Invoice — shipments get grouped (commonly by contract, shipper, and period) into an invoice.
A tool that skips the confirm step, or lets Create run against unconfirmed shipper matches, produces invoices billed to the wrong entity — a much worse failure than a late invoice.
Recognition happens on the haul date, not the invoice date
Freight revenue recognition is usually simpler than subscription recognition in one specific way: there's no deferred revenue to spread across a term. A haul either happened or it didn't, on a specific date — recognition should land on that shipment date, regardless of whether the invoice was raised earlier or later. Applying subscription-style ratable recognition to a one-time movement is a mismatch that overcomplicates something that should be point-in-time.
What to check before trusting freight billing software
- Does it support rate index branches per carrier, with no silent fallback to a default table on a missing date?
- Is the shipper (not a generic customer) the bill-to across billing, collections, and bank reconciliation?
- Does the upload workflow require confirming shipper matches before shipments get created, or does it guess?
- Does revenue recognition post on the shipment date, correctly, without treating a haul like a subscription term?
- Can it group shipments into invoices by contract, shipper, and period without manual spreadsheet work?
Sonic AI's shipment workspace runs from a carrier contract with rate index branches, resolves and requires confirmation of shipper identity before creating shipments, groups invoices by contract/shipper/period, and recognises revenue on the haul date. See how the shipment model works and shipment uploads, or the deeper mechanics on freight invoicing has no billing period, shipment billing is not a schedule, and rate index branches.
Related terms: rated shipment, rate card, rate index, shipper, point-in-time recognition.