Coordinate Operations

Run owned trucks and subcontractors from the same dispatch workflow.

Most bulk haulage operators use a mix of owned vehicles and subcontracted capacity. HaulageOps puts both on the same dispatch board, with separate rates, one job record and POD from both flowing into the same place.

One dispatch boardOwned + subcontracted capacitySeparate client and pay ratesPOD from both fleetsSubcontractor portal includedNo second TMS required
One dispatch board
Owned + subcontracted capacity
Separate client and pay rates
POD from both fleets
Subcontractor portal included
No second TMS required
The problem

Managing two fleets in two systems means two of everything.

Most bulk haulage operators don't run a pure owned fleet. They have a core of owned trucks and use subcontracted capacity to cover peaks, specialised equipment requirements, or geographic reach beyond their own vehicles. That's standard practice.

The problem is what happens when those two capacity types are managed separately. Owned drivers get jobs through the dispatch system. Subcontractors get a forwarded message, a phone call or a WhatsApp. Status for owned trucks comes through the driver app. Status for subs comes through a second call. Dockets from owned drivers go into one folder. Dockets from subs — if they arrive at all — go somewhere else.

By the time a job is complete and an invoice needs to go out, there are two sets of records to reconcile, two sources of confirmation, and often a gap where the subcontractor's paperwork hasn't yet arrived. The more subcontracted capacity you run, the bigger that reconciliation problem becomes.

The same problem shows up when a client asks for a status update. The dispatcher knows where the owned trucks are. They need to call or message to find out where the subcontracted vehicle has got to. The client is waiting. The answer takes longer than it should.

And at invoice time: the rate for the owned driver's run is in one spreadsheet. The pay rate for the subcontractor is in another agreement or someone's memory. The client rate is somewhere else again. Pulling together one invoice from a job that crossed both fleet types takes longer than it should, and introduces the opportunity for errors.

None of these are unusual problems. They're the standard consequence of running a mixed fleet without a system that handles both capacity types natively.

How HaulageOps works

One job creation process. One dispatch board. Both capacity types.

When a job is created in HaulageOps, the dispatcher assigns it to either an owned driver or delegates it to a subcontractor. The process is the same either way. The job record, the status tracking and the POD collection all work through the same system — what changes is which portal receives the assignment.

01

Job created once

The job is created in the admin panel with all relevant details: origin, destination, material, schedule, client. The dispatcher then assigns it — to an owned driver via the driver app, or to a subcontractor via the subcontractor portal. One creation step. One record.

02

Assignment to the right fleet

Owned driver assignments push to the iOS or Android driver app via Firebase FCM push notification. Subcontractor assignments appear in their dedicated portal login — where they can accept or decline, view the job location on Mapbox maps, and see all relevant details. No forwarded message required.

03

Status and POD from both

Owned drivers update status through the driver app. Subcontractors update status through their portal. Digital POD — photo, document, customer signature — is submitted through both and lands in the same job record. The dispatcher sees a single dispatch board with live status across all jobs regardless of fleet type.

Rate separation without rate confusion

Every job in HaulageOps carries two rate dimensions: the client charge rate and, where a subcontractor is involved, the subcontractor pay rate. These are stored separately and both flow from the relevant rate cards and agreements already in the system.

The client sees the rate they were quoted. The dispatcher sees margin. The subcontractor sees their pay rate. No one sees what they shouldn't. No manual calculation needed at invoice time because the rates were stored when the agreements were made, not entered fresh each job.

HaulageOps Dispatch Board — Mixed Fleet
JobFleetStatusClient ratePay ratePOD
JOB-1842Owned — Truck 07Loaded$24 / t
JOB-1843Sub — D. OkaforEn Route$22 / t$18 / t
JOB-1844Owned — Truck 03Delivered$19 / load
JOB-1845Sub — G. PatelAssigned$30 / hr$26 / hr

Owned and subcontracted jobs on the same board — client charge rate and subcontractor pay rate stored separately per job.

What this changes

What the client sees. What management sees. What doesn't need to happen.

What the client sees

The client portal shows job status, delivery evidence and invoices. Whether the delivery was made by an owned vehicle or a subcontractor is not visible to the client — they see one job record, one status, one POD. No gaps, no “we’ll have to check with the sub” answers.

  • Live job status in client portal regardless of which fleet type made the delivery
  • POD accessible in client portal immediately on submission
  • Invoice reflects the client rate — not the subcontractor pay rate

What management sees

The management reporting layer shows job-level and financial data across both fleet types. Dispatcher utilisation, job completion rates, POD compliance, and where margin sits across owned versus subcontracted runs — all visible without pulling two systems together manually.

  • Cross-fleet job history and completion data
  • Client charge rate versus subcontractor pay rate visibility per job
  • Audit trail covering both fleet types equally

What doesn’t need to happen

When both fleet types are in the same system, a series of manual steps become unnecessary: the separate status call to find out where the sub is, the reconciliation of two sets of records at invoice time, the re-entry of subcontractor dockets that arrived by email or photo message.

  • No separate status calls for subcontracted jobs
  • No reconciliation of two record sets at invoice time
  • No manual re-entry of subcontractor dockets

Subcontractors don’t need a licence

The subcontractor portal is a dedicated login included in the HaulageOps subscription. Subcontractors access their portal for free — they do not need to be HaulageOps customers or pay for their own subscription. This is a meaningful difference from platforms where subcontractor access requires the sub to hold their own paid account.

  • Subcontractor portal access is free for the subcontractor
  • No requirement for subs to be existing HaulageOps customers
  • Only the operating company holds the subscription
Related platform features

The features behind this solution

Dispatch Management

The dispatch board where owned and subcontracted jobs are assigned, tracked and managed. Real-time status via Socket.io, vehicle and driver visibility in one view.

Subcontractor Portal

Dedicated login for external transport partners. Job queue, accept/decline, Mapbox maps, job history and POD submission — without needing a separate TMS.

Rate Management

Client charge rates and subcontractor pay rates stored separately per job. Per-tonne, per-load, hourly and fixed-fee rate types with effective dating for rate changes.

Also relevant: Subcontractor Coordination · Billing & Invoicing

Frequently Asked Questions

Owned and subcontracted fleets — common questions.

How do I see all jobs together — owned and subcontracted — in one view?

The dispatch board in the admin panel shows all live and scheduled jobs regardless of whether they’re assigned to an owned driver or delegated to a subcontractor. Each job card shows the fleet type, current status and any POD submissions. You’re not switching between two views — everything is in the same board, filtered and sorted as needed.

Can a job switch from an owned driver to a subcontractor after it's been assigned?

Yes. Jobs can be reassigned within the admin panel. If a vehicle breaks down or capacity isn’t available, the dispatcher can reassign the job to a subcontractor and the subcontractor receives the assignment through their portal. The job record, rate and all previously entered data carry through — no need to create a new job from scratch.

How does billing work when a job uses a subcontractor?

The invoice to the client is based on the client charge rate, regardless of whether the delivery was made by an owned vehicle or a subcontractor. The subcontractor pay rate is stored separately on the job record and is visible in the admin panel for cost accounting purposes — it is not visible to the client. At invoice time, the client charge rate is already applied; no manual rate lookup is required.

Do subcontractors need their own HaulageOps subscription to use the portal?

No. The subcontractor portal is accessed via a dedicated login provided by the operating company. Subcontractors do not pay for access and do not need to be HaulageOps customers. This is different from some competing platforms where subcontractor coordination only works if the subcontractor also pays for their own account.

What happens if a subcontractor submits their own POD outside HaulageOps?

Subcontractors submit POD through their portal — photo, document upload or customer signature. If a subcontractor sends a photo by email or message outside the system, it can be uploaded manually into the job record by the admin team. The goal is to move subcontractor POD submission into the portal, which removes the manual upload step — but the system supports both workflows during transition periods.

How many subcontractors can I manage in HaulageOps?

There is no fixed limit on the number of subcontractor records or portal users in the standard subscription. HaulageOps is designed for operators in the 15–80 vehicle range who typically manage a network of subcontractors alongside their owned fleet. If you have a particularly large or complex subcontractor network, discuss the specifics during the demo.

See how your mixed fleet would work in HaulageOps.

A demo covers owned driver dispatch, subcontractor portal delegation and how rates and POD connect across both — in 20 minutes.