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

# Bid on Many Lanes by CSV

> Download the RFP's CSV template, fill in your prices, and upload bids for many lanes at once.

This page is for **Carriers & Brokers**. A shipper's carriers and brokers use Owlery the same way, so this page applies to both. If the person you're helping isn't a carrier or broker, this page doesn't apply to them.

**Where to find it:** `Dashboard → Management → RFP → [RFP] → Lanes`

To bid on many lanes at once, download the RFP's CSV template, fill in your prices, and upload it. To bid on one lane at a time, see [Submit a Bid](/carriers/rfps/submit-a-bid.md).

> [!WARNING]
>
> **An upload replaces your bids.** When you upload a CSV, Owlery deletes all your existing bids on this RFP that haven't been awarded, then submits the bids in the file. Include every lane you want to keep a bid on.

## Upload Your Bids

**1. Download the Template**

On the RFP's **Lanes** tab, click **Download CSV Template**. A download window opens.

If the RFP has lanes with 3 or more stops, tick **Include accessorial charge columns** in the window to price stops separately. Then click **Download CSV Template** in the window to get the file.

**2. Fill In Your Bids**

The file has one row per lane you can still bid on, and one row per bid you've already placed. Fill in the [columns below](#columns-you-fill-in).

Leave the lane columns as they are. Owlery uses them to match each row to its lane.

**3. Upload the File**

Save as CSV, click **Upload CSV Bids**, and choose the file.

**4. Review the Preview**

The preview shows how many rows are **Ready**, how many have **Errors**, and how many are **Unmatched**.

**5. Click Proceed with Upload**

Owlery submits the ready rows. Rows with errors and rows that don't match a lane are skipped.

## Columns You Fill In

| Column | Required? | What to enter |
| - | - | - |
| **Current Bid** | Yes, unless you use **Current Bid / mi** | Your total price for the lane, such as `6100` or `$6,100` |
| **Current Bid / mi** (or km) | Yes, unless you use **Current Bid** | Your rate per mile. Only works on lanes with a total distance. |
| **Currency** | No | `USD`, `CAD`, `EUR`, or `MXN`. Blank means `USD`. |
| **Use Shipper Fuel Schedule** | Yes, if the RFP has a fuel schedule | `Yes` or `No`. If `Yes`, **Current Bid** is your base rate without fuel. See [Using the Shipper's Fuel Schedule](/carriers/rfps/submit-a-bid.md#using-the-shippers-fuel-schedule). |
| **Stop Transit Min Hours N** / **Stop Transit Max Hours N** | No | Transit hours for the leg ending at stop N, starting at stop 2. Fill in one and Owlery copies it to the other. |
| **Stop Charge N** | No | Charge for stop N, starting at stop 3. Only in the template if you ticked **Include accessorial charge columns**. |

Fill in either **Current Bid** or **Current Bid / mi**, not both. If you fill in both, they must work out to the same total.

## Columns to Leave Unchanged

Leave these as they came in the template:

* Stop name, street, city, state, zip code, and country for each stop
* **Equipment**, **Mode**, **Shipment Mode**, **Team/Solo**
* **Volume**, **Total Weight**, **Current Round**, **Total Distance**

A row matches a lane only when its stops are the same and in the same order, and its equipment, mode, shipment mode, and team/solo all match.

## Sample Row

A 2-stop lane, with some columns left out:

```csv theme={null}
Stop City 1,Stop State 1,Stop City 2,Stop State 2,Stop Transit Min Hours 2,Stop Transit Max Hours 2,Equipment,Mode,Total Distance (mi),Current Bid,Current Bid / mi,Currency,Use Shipper Fuel Schedule
Chicago,IL,Atlanta,GA,12,14,Dry Van,FTL,716,1850,,USD,Yes
```

## Error Messages

| Message | What it means | What to do |
| - | - | - |
| Enter either Current Bid or Current Bid / mi or km | The row has no price | Fill in one of the two bid columns |
| Current Bid (…) does not match Current Bid / mi (…) | Both bid columns are filled and don't work out to the same total | Clear one of them |
| Current Bid / mi requires a total distance for this lane | The lane has no distance to multiply by | Use **Current Bid** instead |
| Invalid currency code | **Currency** isn't a supported value | Use `USD`, `CAD`, `EUR`, or `MXN`, or leave it blank |
| Missing mandatory columns: Use Shipper Fuel Schedule | The RFP has a fuel schedule and the column was removed | Download a fresh template |
| Missing lane matching columns | Stop or lane columns were removed from the file | Download a fresh template and keep all its columns |
| \[Column] is required to match the bid to the correct lane | A lane column such as **Equipment** or **Mode** is blank | Restore the value from the template |
| Unmatched records | A row's stops, equipment, or mode don't match any lane | Compare the row to the template and undo any changes |
| Cannot bid on awarded lane | That lane is already awarded to you | Remove the row |
| Transit min hours cannot be greater than max hours | The min is larger than the max | Swap the values, or enter only one |

***

Still stuck? Email [support@owlery.ai](mailto:support@owlery.ai) or contact the shipper running the RFP.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.