Every contract created, approved, stored and monitored in one place.
A defined process from first draft to renewal.
Every contract moves through a structured workflow. Nothing sits in someone's inbox or gets overwritten without a record. The stages are visible, the approvals are tracked, and the expiry date is monitored from the moment the contract goes active.
Draft
A new contract is created in HaulageOps — parties, effective dates, rates or rate schedule reference, and scope of services. The contract starts in Draft status and is only visible to users with contract-creation access.
Review
The contract is submitted for internal review. Reviewers can view the full document and leave notes. Any change at this stage creates a new version, preserving the previous draft. The contract cannot be used for job assignments while under review.
Approval
An authorised approver confirms the contract. The approval is logged with the approver's user identity and timestamp — this record cannot be edited later. Once approved, the contract moves to Active and its rates become available to link to jobs.
Active
The contract is live. Rate cards linked to this contract are applied to relevant jobs. The contract record shows start date, end date, and the rates in effect. Any amendment creates a new version under the same contract record.
Expiry Alert
HaulageOps generates an alert ahead of the contract end date — before the lapse, not after. The lead time is configurable per contract. No more contracts expiring silently while jobs continue under lapsed terms.
Renewal
The contract owner initiates renewal (a new version or a new record) or allows the contract to lapse. Lapsed contracts cannot be used for new job assignments. All versions, approvals, and activity remain accessible.
Every change is a new version, not an overwrite.
When a contract is amended — rates adjusted, scope changed, extension agreed — HaulageOps creates a new version rather than replacing the existing document. The full history is retained: who made the change, what changed, and when.
- Compare current version against any prior version
- See which user submitted each version for approval
- Identify which version was active on any given job date
- Retain full history even after a contract expires
- The approval gate prevents accidental overwrites
v1 Original
Approved 12 Jan by John M
v2 Rate Amendment
Approved 3 Apr by Sarah K
v3 Current
Pending review
Side-by-side diff showing changed rate fields between v1 and v2.
Client contracts and subcontractor agreements — both in one place.
Most operators manage two sets of commercial agreements simultaneously: what they charge clients and what they pay subcontractors. Both live in HaulageOps, linked to the parties, the rates, and the jobs they apply to.
Client contracts
Agreements that define the terms under which you haul for a specific client — rates, payment terms, scope of work, review dates. Linked to the client record so the rates applied to that client's jobs always trace back to an approved, current agreement.
- Link client rate cards to the governing contract
- Effective dating on rates within the contract
- Expiry alert before the client agreement lapses
- Contract history visible alongside the client job record
Subcontractor agreements
The terms under which an external subcontractor works for you — pay rates, insurance requirements, obligations, and responsible contractor acknowledgements. Stored alongside the subcontractor record, with expiry alerts so you know when renewal is due before work continues under a lapsed agreement.
- Stored alongside the subcontractor's profile and documents
- Expiry alerts for each agreement independently
- Link the agreed subcontractor pay rates to the contract
- Supports responsible contractor management documentation
Expiry: 30 Sep 2026 — 45 days
Linked pay rate card: Per-tonne aggregate
Version: v2 current
Approved by: Sarah K, 3 Apr 2026
Signed agreement PDF — Azure storage
Contracts as part of your documented due diligence.
Having a contract is not the same as having a managed contract. An agreement emailed as a Word document three years ago, never updated, with no expiry alert, is not evidence of active management.
Contract management in HaulageOps means every agreement has a status, a review date, an approval record, and an expiry alert. When you are asked to demonstrate that your commercial relationships are actively managed — whether by a client, insurer, or regulator — you have a record that shows exactly that, including who approved each version and when.
- Approval record shows who authorised each contract version
- Expiry alerts prevent unintentional lapse
- Contract history remains accessible after expiry
- Supports documentation for responsible contractor management
The signed agreement lives with the contract record.
Contract records in HaulageOps are not just metadata fields — you can attach the actual signed document directly to the contract record. Files are stored in Microsoft Azure Blob Storage. When an auditor or your solicitor asks for a specific version of an agreement, you retrieve it from one place, not from someone's inbox.
Attached to the record
The signed document file is stored directly against the contract record in HaulageOps — not in a separate shared drive folder that may or may not correspond to the correct version of the agreement.
Microsoft Azure storage
Files are stored in Microsoft Azure Blob Storage — the same infrastructure that backs the rest of the HaulageOps document store, including POD photographs, driver documents, and vehicle records.
Access controlled by role
RBAC determines who can view, create, approve, or delete contract records. Dispatch staff do not carry the same access as management. Every contract action is recorded in the audit log with the acting user's identity.
The difference from emailing Word documents: A contract stored as an email attachment has no version history, no status, no expiry alert, and no record of who approved it. It may exist in one person's inbox and nowhere else. If that person leaves, the contract is effectively lost. HaulageOps records the full lifecycle — including the signed file — in a system that persists regardless of staff changes.
Contract management connects to the rest of operations.
Rate Management
Client charge rates and subcontractor pay rates can be linked directly to the governing contract — so the rate applied to a job traces back to an approved commercial agreement.
Rate managementDocument Management
Contract files sit alongside driver licences, vehicle registrations, insurance certificates and POD in a single document store — all in Azure, all attached to the relevant record.
Document managementSubcontractor Management
Subcontractor agreements form part of the subcontractor record — alongside insurance details, ABN, pay rates, and job history. Document and contract expiry alerts in one place.
Subcontractor managementContract management — common questions.
How many contracts can we manage in HaulageOps?
There is no hard cap on contract records. You can manage client contracts and subcontractor agreements across your full network. Each contract record is independent, with its own lifecycle, version history, and expiry alert configuration.
Can we set custom review dates and renewal reminders per contract?
Yes. Each contract carries an expiry date and a configurable alert lead time — the number of days before expiry that HaulageOps triggers the alert. Critical long-term agreements can have a longer notice window; shorter-term arrangements are configured accordingly. Alerts go to the contract owner assigned to that record.
What happens when a contract expires?
When a contract passes its expiry date without being renewed, it moves to Expired status. Expired contracts are flagged in the system and cannot be used as the basis for new job assignments. The contract record — including all versions, approvals, and attached documents — remains accessible for historical reference. Rate cards linked to an expired contract also become inactive.
Who can approve contracts — can we restrict that to management?
Yes. Contract approval is gated by role. RBAC means you can restrict the approval action to management-level users while allowing dispatch or admin staff to draft or submit contracts for review. The approval itself is logged with the approver's user identity and timestamp — a permanent, uneditable record.
Can we attach the actual signed contract document, not just the contract fields?
Yes. You can attach the signed document — PDF, DOCX, or image — directly to the contract record. It is stored in Azure Blob Storage alongside the contract metadata and version history. When a specific document version is needed for a dispute or audit inquiry, you retrieve it directly from the contract record.
How does contract management connect to rates and invoicing?
Rate cards in HaulageOps can be linked to a specific contract. When that contract expires or is superseded, the rate card status reflects that. Jobs run under those rates trace back to the governing agreement. This creates a direct line from invoice line item to the contract that authorised it — useful when a client disputes a charge or when you need to document the basis for a rate change.
Is contract management available on all HaulageOps plans?
Contract management is part of the HaulageOps platform. Book a demo to walk through the setup relevant to your contract volumes, approval structure, and team size.