> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.chrt.com/prod/couriers/dispatching/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.chrt.com/_mcp/server. # Dispatching > How couriers dispatch orders in chrt — open the order, assign a driver, attach a rate sheet, and reassign if plans change. Dispatching turns a staged order into a job a driver is actively running. From the order page you pick the driver, pick the rate sheet that determines what they get paid, and create the route — the driver then sees the job in their app and can accept it. This page walks the assign-driver flow end to end and covers the support pieces around it (driver list, rate sheet defaults, reassignment). ## Before you start * You need at least one **driver** on your org. See [Drivers](/couriers/drivers) for adding and managing drivers. * To preselect a rate sheet during assignment, create a **provider-pay-driver** rate sheet first — see [Rate sheets](/couriers/rate-sheets). Assignment works without one; you can attach a sheet later from the order's financials. * Driver assignment is per **task group**, not per order. On a multi-leg order you'll dispatch each ground leg separately. See [Orders](/docs/concepts/orders) for the task group model. ## 1. Open the order Open [chrt.com/orders](https://chrt.com/orders) and pick the order you want to dispatch. Orders waiting on a dispatch decision show a **Pending acceptance** or **Staged** badge. If the order has multiple ground task groups, each one shows its own **Assign Driver** action — dispatch them one at a time. ## 2. Open the assign-driver dialog Click **Assign Driver** on the task group. The dialog opens with: * A **search box** to filter your driver roster by name. * A list of drivers showing **availability**, **current workload** (in-flight orders), and a **rate sheet** selector per row. * An **estimated revenue** rollup at the bottom once a rate sheet is picked. > **Note** > > Only drivers marked **Available** appear at the top. Drivers marked > **Unavailable** still show, ordered below — useful when you need to override > availability for a high-priority job. ## 3. Pick the driver and a rate sheet 1. Click the driver row to select them. The row expands. 2. Pick a **rate sheet** from the dropdown. The list shows active **provider-pay-driver** rate sheets owned by your org. If you've set a default sheet on this driver's profile, it's preselected. 3. Confirm the **estimated revenue** at the bottom of the dialog reflects what you expect for this job. > **Tip** > > If you assign the same driver to most jobs at the same rate, set their > default sheet on their profile (see [Drivers](/couriers/drivers)). The > dialog preselects it and you can dispatch in two clicks. If you don't have a rate sheet ready, you can still assign — the task group goes to the driver without a sheet, and you can attach one later from the order's **Financials** tab. ## 4. Create the route Click **Create Route**. chrt: * Assigns the task group to the driver. * Attaches the selected rate sheet to the task group, so line items start generating as the driver completes work. * Pushes a notification to the driver's app so they can **accept** or **decline** the job. The order's status moves from **Staged** to **Pending acceptance**. Once the driver accepts and marks **Started driving** in the app, the order moves to **In progress** and live tracking applies. See [Tracking](/docs/concepts/tracking) for what happens next. ## 5. Skip assignment for now If you're not ready to pick a driver, click **Skip** on the dialog. The order stays staged and shows the **Assign Driver** action so you can come back to it. Skipping is useful when: * You want to share the job to your team's [Marketplace](/couriers/marketplace) for first-accept or bidding instead of assigning directly. * You need to wait on a customer confirmation before tendering the work. ## Reassign a driver If the assigned driver can't run the job (sick day, equipment issue, customer re-route), reassign without losing any progress already made. 1. Open the order. 2. Click **Reassign Driver** on the task group. 3. Pick a new driver in the same dialog. Existing milestones the prior driver completed stay on the task group; the new driver picks up from where the route left off. > **Warning** > > Reassigning notifies the original driver that they've been removed from the > job. Their app drops the order from the **Active** list. Don't reassign as a > test — it sends real driver-facing notifications. ## Variant: marketplace dispatch For jobs you want multiple drivers (or partner couriers) to see, use **Marketplace** instead of direct assignment. #### Direct dispatch — when you've already picked the driver Open the order, click **Assign Driver**, pick the driver, attach the rate sheet, click **Create Route**. Documented above. #### Marketplace — when you want recipients to pick it up Create a **listing** from the task group with **First accept wins** or **Negotiation** mode. Recipients see the listing in their bidding inbox and can accept, counter, or bid. See [Marketplace](/couriers/marketplace) for the full flow. ## How to know it worked * The task group's badge moves from **Staged** to **Pending acceptance** with the driver's name attached. * The order's timeline shows a **Driver assigned** event with a timestamp and the rate sheet that was attached. * The driver's app shows the order in their **Inbox**. Once they accept, the badge flips to **Accepted** and the order moves toward **In progress**. ## If something looks different * **The driver list is empty.** No drivers are set up yet — see [Drivers](/couriers/drivers). * **The rate sheet dropdown is empty.** You don't have any active provider-pay-driver rate sheets. Create one at [chrt.com/rate-sheets/ground/create](https://chrt.com/rate-sheets/ground/create) (see [Rate sheets](/couriers/rate-sheets)). * **The driver never gets the assignment in their app.** Confirm they've installed the driver app and signed in. If the app is installed and they still don't see it, check their availability — drivers marked unavailable can still be assigned but won't get a push notification. * **Assignment fails with an error.** The most common cause is a task group that's already in a state where a driver can't be added (e.g., it's been cancelled). Refresh the order page and check the task group's badge. * Contact [hi@chrt.com](mailto:hi@chrt.com) if dispatch is blocked. ## Related guides * [Drivers](/couriers/drivers) — manage your driver roster, defaults, and profile. * [Marketplace](/couriers/marketplace) — list a job for first-accept or negotiation instead of assigning directly. * [Rate sheets](/couriers/rate-sheets) — the pricing templates that drive driver pay. * [Creating Orders](/couriers/creating-orders) — build orders before you dispatch them. * [Orders](/docs/concepts/orders) — the task group model dispatching attaches to. > Assign drivers to orders, pick the right rate sheet, and keep dispatch moving.