> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tread.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Back-Hauls & Return Runs

> Haul material out and a different material back — one order per direction, one driver switching between them.

## No special setup

A back-haul is not a separate feature. It is two (or three) [orders](/concepts/orders-projects) dispatched to the same [Driver](/concepts/driver-lifecycle) — one order per direction. The driver switches jobs after each unload, so every load lands on the order that owns its material, customer, and rate.

## Example: gravel out, RAP back

A truck hauls gravel from the quarry to a job site, and reclaimed asphalt (RAP) from the job site back to the yard.

| Order     | Route             | Material |
| --------- | ----------------- | -------- |
| **Job A** | Quarry → Job site | Gravel   |
| **Job B** | Job site → Yard   | RAP      |

The driver's day alternates between the two:

1. Load gravel at the quarry, unload at the job site — logged on **Job A**.
2. Switch to **Job B**. Load RAP, unload at the yard — logged on **Job B**.
3. Switch back to **Job A** and repeat until both are done.

Add a third leg the same way — it's just one more order.

## Setup

<Steps>
  <Step title="Create one order per direction">
    Each [order](/workflows/create-a-project) carries its own pickup, dropoff, material, customer, and [rate](/workflows/manage-rates). Job A and Job B in the example are two ordinary orders.
  </Step>

  <Step title="Dispatch both to the same driver">
    Both assignments appear in the driver's Assigned menu on the [Driver App](/mobile/driver-app).
  </Step>

  <Step title="Driver switches jobs after each unload">
    After unloading, the driver opens the other job and logs the next load there. Tickets, quantities, and pricing stay separate per order — the outbound and return legs can bill different customers.
  </Step>
</Steps>

<Warning>
  **Log return loads on the return order, not the outbound one.** A RAP load logged on the gravel job gets the gravel job's rate and customer. If loads keep landing on the wrong job, the fix is the switch after each unload — not editing tickets later.
</Warning>

## Related

* [Create Project, Order & Dispatch](/workflows/create-a-project) — build each direction's order
* [Driver App](/mobile/driver-app) — how drivers see and switch between assigned jobs
* [Rates, Add-Ons & Fees](/workflows/manage-rates) — price each direction on its own order
* [Tickets & Timesheets](/concepts/tickets-timesheets) — where each leg's loads land
