Bulk Haulage

Built for bulk haulage operators. Not adapted from something else.

Bulk haulage runs on high frequency, tight margins and paper trails that disappear. HaulageOps handles per-tonne billing, owned and subcontracted dispatch, digital dockets and client visibility — in the workflow bulk haulage actually uses.

Per-tonne & per-load ratesDigital dockets & PODSubcontractor portal includedXero invoicing
15–80vehicles supported
5 portalsaround one job record
Per-tonnebilling built in
Offlinedriver app
Xeronative sync
2–4 weekstypical onboarding
What Bulk Haulage Actually Involves

High volume, short cycles, demanding clients — and a paper trail that doesn't keep up

Bulk haulage is not route freight. The same truck might run eight loads in a day — quarry to site, back again, different material, same client or a different one. Each load generates a docket. Each docket needs to be captured, attached to the right job, and eventually turned into an invoice line. At volume, this process breaks with paper and spreadsheets.

Common job types include quarry-to-site aggregate delivery, spoil removal from excavation sites, fill placement for earthworks contractors, road base supply to construction projects, and bulk material transport between stockpile and processing. The work is high-frequency, often short-cycle, and billing usually tracks quantity rather than distance.

Most bulk haulage operators use a mix of owned trucks and subcontractors. Own trucks are the core capacity; subs fill demand when excavation accelerates or when multiple clients want trucks on the same day. Managing that mix — dispatching to both, getting visibility from both, and billing correctly from both — is where WhatsApp and spreadsheets start failing.

Typical operational parties in a bulk haulage job

  • Dispatcher — creates job, sets rate, assigns owned driver or delegates to sub
  • Own driver — runs the loads, captures docket or signature at site
  • Subcontractor — receives delegated job via their own portal, updates progress independently
  • Site foreman — receives delivery, signs off on load or quantity
  • Client project manager — expects real-time visibility without calling the dispatcher
  • Accounts — needs completed dockets attached before raising invoice

Charging models

  • Per tonne — most common for aggregate and fill; billing tracks actual tonnes delivered
  • Per load — common where weighbridge tickets are not available; fixed rate per truck movement
  • Hourly — used for slower or waiting-time work; billed against driver time records
  • Fixed-fee project — less common; used for defined-scope contracts
Where Systems Break

The six points where WhatsApp, paper and Excel stop working

Dispatch via WhatsApp

Job instructions sent by message mean no audit trail, no confirmation loop, and no way to track whether the driver or sub actually picked up the job. When a load is missed or delivered to the wrong site, there is no record of who was told what.

Paper dockets in the cab

Drivers bring dockets back at the end of the week — or they don't. Dockets get wet, torn or left in a different truck. Accounts can't invoice until dockets arrive, and quantity disputes with clients have no digital evidence to resolve them.

Rate sheets separate from invoicing

When the rate card lives in Excel and the invoice is raised in Xero manually, rate errors creep in. When a rate changes mid-contract, some invoices go out at the old rate. When a client queries a charge, the rate history doesn't exist.

Subcontractor visibility lost at delegation

Once a job is handed to a sub by phone or message, the dispatcher has no live status. The client calls asking where the truck is. The dispatcher calls the sub. The sub calls the driver. None of this appears in any record.

No client self-service

Clients tracking project progress call the dispatcher for delivery confirmation. High-demand clients may call multiple times per day. This absorbs dispatcher time that should be spent on coordination, not answering status queries.

CoR obligations with no audit trail

Chain of responsibility obligations apply to the operator and to the clients directing the work. Paper records and WhatsApp threads don't produce the timestamped, attributed action log that an audit or incident investigation requires.

How HaulageOps Works for Bulk Haulage

The dispatch-to-invoice workflow, built for high-volume short-cycle operations

01

Create job with tonne rate

Dispatcher creates the job in the Admin Panel. Sets material type, delivery point, per-tonne rate from the client rate card, and scheduled date. The rate card is stored against the client — no manual lookup in Excel.

02

Dispatch to own driver or delegate to sub

Assign to an owned driver (push notification via Firebase FCM to the driver app) or delegate to a subcontractor (the sub sees the job in their portal and accepts or declines). Both appear on the same dispatch board.

03

Driver or sub updates progress

Own driver updates via the mobile app — en route, loaded, at site, delivered. GPS position is tracked. Sub drivers update via their own portal. The dispatcher sees live status for both on one board without calling anyone.

04

Digital docket and signature captured

At delivery, the driver photographs the docket and captures a customer signature in the app. Both are stored in Azure and attached to the job record. The docket is already there when accounts go to invoice.

05

Invoice from job, sync to Xero

Billing pulls quantity and rate from the completed job. Draft invoice is created in HaulageOps and synced to Xero via OAuth2. No re-entry. The client can see the invoice in their portal.

06

Client portal for self-service visibility

Client project managers log into their portal to see job status, delivery history, POD documents and invoices. They get the visibility they need without calling the dispatcher. Your rate card with that client is visible to them — not to other clients.

HaulageOps Dispatch Board — Bulk Haulage View

Screenshot: Admin Panel dispatch board showing multiple active bulk haulage jobs. Left panel shows job list with material type (roadbase, fill, aggregate), client name, tonne rate, and status (dispatched, en route, delivered). Right panel shows map with driver GPS positions. Own trucks shown in blue; subcontractor trucks in orange. One job expanded showing driver name, truck rego, load count for the day, and docket thumbnail attached.

Relevant Modules

Platform features that apply directly to bulk haulage operations

Dispatch Management

Real-time dispatch board for owned trucks and subcontractors. Assign jobs, track status, see GPS positions. Both own and sub trucks on one view — no switching between systems.

  • Live status updates from driver app and sub portal
  • Socket.io real-time board — no manual refresh
  • Filter by driver, vehicle, client or job status
Dispatch Management details

Rate Management

Store per-tonne, per-load and hourly rate cards against each client. Set separate charge rates (what you bill the client) and pay rates (what you pay the sub). Effective dating so rate changes don't break historical invoices.

  • Per-tonne, per-load, hourly, fixed-fee rate types
  • Client-specific rate cards with version history
  • Separate client charge and subcontractor pay rates
Rate Management details

Subcontractor Portal

Subcontractors get their own login — no second HaulageOps subscription required. They see their job queue, accept or decline, track with Mapbox maps, and update progress. You see their status without calling them.

  • Dedicated login for each subcontractor company
  • Accept/decline with reason — visible to dispatcher
  • Job history and documentation per sub
Subcontractor Portal details

Digital Dockets

Driver photographs the paper docket or captures a digital docket at site. Customer signs on the driver's phone. Both go to Azure storage, attached to the job. Accounts see the docket before they raise the invoice — not a week later.

  • Photo docket capture in driver app
  • Customer signature on mobile at point of delivery
  • Stored in Azure, attached to job and invoice
Digital Dockets details

Billing & Invoicing

Invoice is generated from the completed job — quantity and rate already there. Xero sync via OAuth2. Invoice lifecycle: draft, sent, paid, overdue, voided. Client can see invoice in their portal.

  • Job-to-invoice in one action — no re-entry
  • Xero native sync with 6-hourly cron and real-time payment webhooks
  • Client portal invoice visibility
Billing & Invoicing details

Haulage Dispatch Solution

The complete dispatch workflow — from job creation through assignment, tracking and completion — built for operators who manage both owned capacity and subcontractor overflow simultaneously.

  • One board for owned and subcontracted jobs
  • Job templates and recurring jobs for repeat work
  • Firebase push notifications for assignments
Haulage Dispatch Solution details
Frequently Asked Questions

Bulk haulage questions about HaulageOps

How does per-tonne billing work in HaulageOps?

Each client has a rate card stored in the system. When you create a job for that client, you select the material and rate type — per tonne, per load, or hourly. The rate is pulled from the card automatically. When the driver completes the job and records the quantity delivered (or you enter it from the weighbridge ticket), the invoice line calculates from quantity times rate. The invoice is then created in HaulageOps and synced to Xero. No manual lookup, no risk of using the wrong rate.

How do I handle multiple loads per day from the same driver?

Each load is recorded as a job completion event in the driver app. The driver marks the load delivered, captures the docket and signature, and the job resets for the next run if it is a recurring or multi-load job. At the end of the day, you have a complete record of how many loads each driver or truck completed, with dockets attached to each. Invoicing is calculated from total tonnes or loads across all events — not from a manual count at the end of the week.

Can I track tonnes delivered versus tonnes contracted?

Yes. Jobs are created with a target quantity. As deliveries are completed and quantities recorded, the system tracks delivered against the contract quantity. Management reporting shows this at job level and client level. This is useful when you have a supply contract for a defined volume of material and need to track progress against it without counting paper dockets manually.

What happens if I use subcontractors for overflow capacity?

Subcontractors access their own portal — they do not need a HaulageOps licence. You delegate the job from the dispatch board to a sub company. The sub sees the job, accepts it, and their driver updates progress through the sub portal. You see their status alongside your own trucks on the same dispatch board. Their completed job data feeds into your invoicing and reporting. The client does not see that work was subcontracted unless you choose to show it.

Can clients see delivery status without calling the office?

Yes. Each client has login access to the Client Portal. They can see the status of their current jobs, delivery history, POD documents and dockets, and their invoices. The portal shows their specific rate card. It does not show other clients' data, your internal costs, or your subcontractor details. Most clients use this to confirm deliveries on active construction sites without tying up your dispatcher on status calls.

Does the driver app work without mobile signal at site?

Yes, the driver app is offline-capable. If signal drops at a delivery site or quarry face, the driver can still complete job updates, capture photos and record signatures. The data queues locally and synchronises when connectivity returns. This is confirmed behaviour — not a roadmap item.

Is HaulageOps built for bulk haulage or is it a general TMS?

HaulageOps is purpose-built for bulk haulage and construction logistics operators managing between 15 and 80 vehicles, with a mix of owned trucks and subcontractors. It is not designed for parcel delivery, 3PL warehousing, or freight forwarding. That narrowness is deliberate — the per-tonne billing model, subcontractor portal, client portal with rate cards, and digital docket workflow are all built around how bulk haulage operations actually run, not adapted from a generic TMS.

Related Pages

More on managing bulk haulage with HaulageOps

Dispatch Management

The real-time dispatch board for owned trucks and subcontractors — one view, live status, no phone calls for updates.

Learn more

Subcontractor Portal

Dedicated portal for your subcontractor network. They accept jobs, update status and access documents — no HaulageOps licence required on their side.

Learn more

Rate Management

Per-tonne, per-load and hourly rate cards per client with effective dating. The rate is already on the job when you invoice.

Learn more

Haulage Dispatch Solution

The complete job-creation-to-completion workflow for bulk haulage dispatch — owned capacity and sub overflow in one operation.

Learn more

See how HaulageOps runs a bulk haulage operation

20-minute walkthrough of the dispatch board, per-tonne billing, driver app, subcontractor portal and Xero integration — in the workflow bulk haulage actually uses.