Construction logistics is too complex for a generic transport system.
Multiple clients, multiple sites, multiple rate structures — running simultaneously
Construction logistics is not civil construction from the operator's perspective. Where civil construction operators typically work under one or two principal contractors at a time, a construction logistics operator is running deliveries for five or ten construction clients concurrently — different builders, different projects, different sites, different material types, and different rate agreements with each.
Active construction sites add a layer of operational complexity that general TMS tools are not built for. Sites have access restrictions — time windows, vehicle height limits, one-way access roads, marshalling requirements. A delivery that arrives outside the access window holds up the programme and creates friction with the site super. That friction becomes a client relationship problem. The site super expects the driver to arrive correctly briefed on site access, not to call the office from the gate.
Material types in construction logistics are also diverse within a single day's dispatch. One truck might deliver aggregate to a road base layer in the morning and collect concrete washout from a different site in the afternoon. Another might deliver drainage pipe bedding material at 7am and run fill to a slab preparation later. Managing the rate implications of different material types, different clients, and different billing models across a day of varied dispatch requires a system that holds all of it — not separate spreadsheets per client.
Construction logistics operational characteristics
- Multiple concurrent projects for different builder clients
- Active construction sites with access windows and restrictions
- Multiple material types: aggregates, fill, concrete washout, waste, formwork material
- Different rate structures per client — some on per-tonne, some per-load, some day rate
- Client contacts (site supers) expecting real-time delivery confirmation
- Owned fleet as core capacity, sub operators for overflow or specialist work
- Invoice disputes most common when POD evidence is not per-delivery
The billing challenge
When you have six active clients, each with a different rate card, and each day's dispatch mixes client jobs across your fleet, the invoicing process at week's end is where errors accumulate. A rate applied to the wrong client, a load count off by one, a delivery billed at last month's rate — each is small individually and expensive collectively when clients catch them and lose confidence in your billing accuracy.
The specific failure points that make generic TMS tools inadequate for construction logistics
Dispatching across multiple active clients simultaneously
When three clients need deliveries on the same morning and your fleet is at capacity, allocation decisions happen fast. Without a single dispatch view that shows all client jobs alongside available fleet and sub capacity, those decisions get made by memory and phone — and the record of what was decided doesn't exist.
Sub coordination when capacity is exceeded
When your own trucks are committed, you call sub operators. Without a structured delegation system, you are calling through a contact list, relaying site access instructions verbally, and hoping the sub driver arrives briefed. When the sub delivers late or to the wrong point, the client calls you, not the sub.
Different rate cards per client
Client A is on $22/tonne for road base. Client B is on $19/tonne for the same material because of a volume commitment. Client C is on a per-load rate. When rate cards live in Excel and invoicing happens in Xero manually, the wrong rate is applied regularly enough to generate invoice disputes. The dispute costs more time to resolve than the original error cost.
Site supers expecting real-time delivery confirmation
Construction site supervisors run tight programmes. When aggregate for a road base layer is due and the truck hasn't appeared, the super calls. If your dispatcher is managing five other clients' jobs, that call interrupts the work and still doesn't give the super a direct answer. The super wants to know where the truck is without calling anyone.
Invoice disputes on deliveries
Construction clients query invoices when the load count doesn't match their site record. Without per-delivery POD — a digital docket with timestamp and signature per delivery — disputes are resolved by negotiation rather than evidence. Negotiated disputes either cost you money or cost you the client relationship.
Multi-client billing through one accounting system
Raising invoices for six clients in Xero, each with different rate structures, each from a different job record — and making sure the right job data goes to the right client invoice — is the manual process that breaks first as the client roster grows. Every time it breaks, someone's invoice is wrong and you find out when they call to query it.
Multi-client dispatch, per-client rates, client self-service, and Xero — in one operation
Clients set up with their own rate cards
Each builder client has their own record in HaulageOps with their rate card — per-tonne, per-load or day rate per material type, with effective dating. When a job is created for that client, the rate is pulled from their card automatically. There is no cross-contamination between clients' rates.
Multi-client dispatch from one board
The dispatch board shows all active jobs across all clients, filtered however your dispatcher prefers — by client, by site, by driver, by status. Assigning an owned driver to a job sends a push notification to their phone. Delegating to a sub sends the job to the Subcontractor Portal. Both happen from the same board.
Site access instructions per delivery
Each job includes site-specific instructions for the driver — access window, entry point, site contact name and number, any restrictions on vehicle height or weight. Instructions are visible in the driver app before they leave the yard. Site supers stop getting calls from drivers who can't find the access gate.
Digital POD per delivery
Every delivery generates a digital POD record — docket photograph, GPS timestamp, and site contact signature captured in the driver app. The POD is attached to the job record immediately. When a client queries a delivery, the evidence is in the system before the call ends.
Client portal — each client sees only their jobs
Site supers and project managers log into the Client Portal and see the status of their deliveries, POD documents, and their invoices. They do not see other clients' jobs, your sub details, or your internal costs. RBAC controls access precisely — you can give a site super access to live delivery status only, or give a project manager access to invoices as well.
Invoice per client, sync to Xero
At billing time, each client's completed job data is the source for their invoice. Rate is already on the job. Quantities are recorded. The invoice is created in HaulageOps and synced to Xero per client — no manual re-entry, no risk of applying Client A's rate to Client B's invoice. Invoice status (draft, sent, paid, overdue) is visible in HaulageOps and in the client portal.
Screenshot: Admin Panel dispatch board in multi-client view. Left column: job list showing 8 active jobs across 4 clients (client names colour-coded). Each job shows: client name, site address, material type, rate type (per tonne / per load), assigned driver or sub, current status (en route / at site / delivered). Filter bar at top: "All clients" dropdown currently showing all. Right side: map with 6 truck positions marked — 4 own trucks (blue pins), 2 sub trucks (orange pins). One selected job highlighted: driver name, ETA displayed as "12 minutes", last POD photo thumbnail visible.
The features construction logistics operators use most in HaulageOps
Client Portal
Each construction client gets their own portal login. Site supers see live delivery status for their site. Project managers see job history, POD documents and invoices. Each client's portal is isolated — they cannot see any other client's data. You control what each portal user can access via role-based permissions.
- Live delivery status — site super sees truck ETA without calling
- POD documents and dockets accessible per delivery
- Invoice history — paid, outstanding, overdue
- Client-specific — no cross-client data exposure
Rate Management
Per-client rate cards mean the correct rate is on the job at creation — not looked up at invoicing time. Different material rates per client, effective dating for rate changes, and separate client charge and sub pay rates eliminate the manual rate-lookup that causes invoice errors.
- Per-client rate card — completely isolated between clients
- Per-material-type rates within one client card
- Effective dating — rate changes don't affect historical invoices
- Separate charge rate (client) and pay rate (sub) per job
Owned & Subcontracted Fleets
Dispatch your owned trucks and your sub network from one board. When owned capacity is committed, delegate to subs via the Subcontractor Portal — they accept, run the delivery, and update status independently. Your clients see a delivery happen; they don't see which operator ran it.
- Owned and sub trucks on one dispatch board
- Sub delegation from the same job record
- Sub status visible alongside own fleet status
- Client portal shows delivery — not who made it
Proof of Delivery
Every construction site delivery generates a POD record — docket photograph, GPS-tagged timestamp, and site contact signature. The POD is in the system before the driver has left the site. When a client queries a delivery, the evidence is accessible in seconds — from the job record or from the client's own portal.
- Docket photo capture at point of delivery
- Customer signature on driver's phone
- GPS timestamp per delivery event
- Stored in Azure — accessible from admin and client portal
Billing & Invoicing
Multi-client billing with Xero sync means each client gets their invoice from their job data at their rate — no manual assembly. Invoice lifecycle (draft, sent, paid, overdue, voided) is tracked in HaulageOps and in Xero. Clients can see their invoice status in the portal.
- Per-client invoice from job data — rate already applied
- Xero OAuth2 sync — draft invoices, payment webhooks
- Invoice status tracking in HaulageOps and client portal
- Invoice dispute resolution backed by digital POD
Subcontractor Portal
Construction logistics operators who run sub networks use the Subcontractor Portal for structured delegation. Subs get their own login — free for them, no HaulageOps subscription required. They accept jobs, receive site instructions, update status, and appear on your dispatch board alongside your owned fleet.
- Dedicated sub login — no second licence cost
- Site instructions delivered with the job — not by phone
- Accept/decline with confirmation record
- Sub status live on your dispatch board
Construction logistics questions about HaulageOps
How do I handle multiple active construction projects at once?
Each construction project and client has its own record in HaulageOps. Jobs are created under the relevant client and project. The dispatch board shows all active jobs across all clients simultaneously — you can filter by client, by site, by driver, or by status depending on what you need to see. Assigning trucks to jobs works the same way regardless of which client the job belongs to. At invoicing time, each client's completed job data feeds their invoice separately — there is no manual split required because the data is already separated at the job level.
Can different clients have different portal access levels?
Yes. Role-based access control (RBAC) lets you configure what each portal user can see. A site supervisor might get access to live delivery status and POD documents only. A project manager at the same company might additionally get access to invoice history and their rate card. A different client entirely gets their own isolated portal with their own permission configuration. No client can see another client's data — the isolation is enforced at the data level, not just the UI level.
How do per-load rates work when delivery sizes vary?
Per-load rates apply a fixed charge to each delivery event, regardless of the exact load size. When a client has agreed a per-load rate because their deliveries are consistently truck-capacity loads, this simplifies billing — every completed delivery records one load at the agreed rate. If you have some clients on per-tonne and others on per-load, both rate types are supported in HaulageOps. The rate type is set on the client's rate card and applies to all jobs created for that client unless you override it at the job level for a specific movement.
What does the site super see in the client portal?
The site supervisor sees the jobs scheduled for their site, the live status of each delivery (job accepted, driver en route, at site, delivered), estimated time of arrival based on GPS tracking, and POD records for completed deliveries. They can see what has been delivered, with timestamps and docket evidence, without calling the office. They do not see other clients' work, your sub details, internal costs, or rate information unless you have specifically configured their access to include rate visibility.
How do I manage subcontractor overflow when my fleet is committed across multiple clients?
From the dispatch board, when all owned trucks are allocated, you delegate overflow jobs to your subcontractor network via the Subcontractor Portal. Sub companies see the delegated job in their portal queue, accept it, and their drivers receive the job including site access instructions. Status updates from sub drivers appear on your dispatch board alongside your own fleet. The client's portal shows a delivery event — it does not identify whether the delivery was made by your driver or a sub driver. You control what client-facing information is surfaced.
How does Xero invoicing work when I have six clients to bill?
Each client's invoice is created from their completed job data in HaulageOps — quantity, rate and any additional charges already recorded at the job level. When you initiate billing, invoices are generated per client (not one combined invoice) and synced to Xero via OAuth2. Each invoice appears in Xero as a separate invoice against the corresponding customer contact. Payment status in Xero feeds back to HaulageOps via webhook so you can see payment status per client in the system without switching back and forth between platforms.
Is HaulageOps appropriate for a construction logistics company managing 20–40 trucks?
Yes. The target operator profile for HaulageOps is 15 to 80 vehicles — a mix of owned trucks and subcontracted capacity — running in bulk haulage and construction logistics. A construction logistics company with 20 to 40 owned and subcontracted trucks, multiple concurrent builder clients, varied material types, and per-client rate structures is exactly the profile the platform is built for. It is not designed for parcel delivery, 3PL warehousing, or freight forwarding — that narrowness means every feature in the platform has a direct application to construction logistics operations.
Related industries and features for construction logistics operators
Civil Construction
If your work is primarily under principal contractors on defined civil projects — rather than multi-client open logistics — the civil construction page covers that structure including compliance and audit requirements.
View pageBulk Haulage
If per-tonne billing, high-frequency short cycles, and docket management are the core operational challenge, the bulk haulage page covers that in detail including the full dispatch-to-invoice workflow.
View pageClient Portal
The detailed breakdown of what the Client Portal shows each construction client — live delivery status, POD records, invoices — and how RBAC controls access per portal user.
View pageOwned & Subcontracted Fleets
Managing a mixed fleet for construction logistics — owned trucks as core capacity, sub operators for overflow — from one dispatch board without separate coordination systems for each.
View page