# About shipment lanes

Your organization may need to manage your fulfillment center shipment lanes to ensure packages are sorted and loaded onto the correct carrier's trailer. Shipium supports configuration of shipment lanes to help you manage which package goes onto which trailer on the same calendar day for the same carrier service method.

## Fulfillment contexts

In order to use Shipium’s APIs, your organization needs to establish your fulfillment network configurations within the Shipium platform. We refer to these configurations as **Fulfillment Contexts**. A [fulfillment context](https://docs.shipium.com/docs/fulfillment-contexts) allows you to configure the characteristics for your network origins, carrier contracts, label augmentations, third party billing, injection shipping, and tenants, in addition to other feature settings. Shipment lanes are optional but can be established for a fulfillment context.

## Shipment lane assumptions

- Any number of shipment lanes may be added to a shipment lane sort configuration and any number of shipment lane sort configurations may be added to an origin so long as they do not share the same carrier definition.
- Within a shipment lane sort configuration, postal codes can only be configured on one lane by default. To allow multiple lanes within the same configuration to share postal code coverage, enable **Allow Overlapping Postal Codes** on the configuration. Attempting to upload conflicting postal codes when this setting is disabled will result in an error.
- A ZIP code can only be configured for one `partnerLaneId` per carrier service method, unless **Allow Overlapping Postal Codes** is enabled for the Lane Sort Configuration.
- Shipment lanes require a schedule by day of week. Custom carrier cutoff time exceptions can be set for a shipment lane. Holidays configured for the fulfillment center and Shipium-configured carrier holidays will be honored at the shipment lane level.
- Once a shipment lane is created with a given destination type ( **Default**, **All Postal Codes**, or **Configure by Postal Codes**), the destination type cannot be changed. To change a lane's destination type, you must delete and recreate the lane.
- An API call response will only include shipment lane fields if the shipment was filtered by your configuration.

## Configure your account to manage shipment lanes

In order to configure shipment lanes for a fulfillment context, you'll need to access **Fulfillment Contexts** in the **Configure** section of the lefthand navigation menu within the [Shipium Console](https://partner.shipium.com/login). These instructions assume you've already established a fulfillment context in the Shipium platform. If you haven't yet set up a fulfillment context, you can find guidance for how to do so in the [fulfillment contexts documentation](https://docs.shipium.com/docs/fulfillment-contexts).

To locate the fulfillment context for which you wish to configure shipment lanes, you can use the search bar at the top of the **Fulfillment Contexts** homepage or simply scroll through a list of the available contexts. Once you've located the desired context, you can access it by clicking on its name.

Within the **Shipment Lane** tab of the context, you can add a shipment lane configuration by selecting the **Add Carrier Method(s) Shipment Lane Configuration** button within the message that there is no carrier shipment lane configuration associated with the fulfillment context or by selecting **Add a Shipment Lane Configuration** from the dropdown menu at the right of the screen.

## Shipment lane landing page

Once you have one or more shipment lanes configured for a Lane Sort Configuration, the **Shipment Lanes** section of the configuration displays your lanes organized by cutoff time, with controls for searching, filtering, and navigating to individual lane details.

Key landing page features:

- **Lanes grouped by cutoff time.** Lanes are organized into collapsible groups based on their shipping schedule. Use the **Today** view to see only lanes shipping today, or **Full Week** to see all schedule patterns.
- **Search across groups.** The search bar filters lanes by name, Partner Provided ID, or description across every group on the page.
- **Default and All Postal Codes badges.** Lanes designated as the default for the configuration display a **Default** badge. Lanes covering all postal codes display an **All Postal Codes** badge and are sorted to the top of their group.
- **No Schedule warning group.** Lanes without a configured schedule appear in a separate group with a warning indicator. These lanes are not used for routing until a schedule is added.
- **Lane Enabled toggle.** Each lane row has a **Lane Enabled** toggle that controls whether the lane can be assigned to a shipment.
- **Limits column.** The **Limits** column shows each lane's count limits. In the **Today** view, it shows the lane's count for the day against the strictest active limit, displayed as count over maximum (e.g., 0 / 100), or _No limit_ when the lane has no active limit.
- **Direct lane navigation.** Click a lane name to open its detail page directly.
- **Expand and collapse controls.** Collapse or expand individual groups, or use the chevron control to expand or collapse all groups at once.

## Enable or disable a shipment lane

Each shipment lane has a **Lane Enabled** state that controls whether the lane can be assigned to a shipment. Disabling a lane prevents that lane from being assigned; the lane's carrier and service method remain eligible for selection. You can change a lane's state from the **Lane Enabled** toggle on its row on the shipment lane landing page. A change takes effect at the next shipment lane configuration refresh, which can take a brief time to apply during carrier selection.

## Shipment lane sort configuration

To create a shipment lane, you'll first establish a shipment lane sort configuration, which combines individual shipment lanes. You'll provide details to be associated with the new shipment lane sort configuration.

- **Carrier.** _Required._ You'll select the desired carrier for the shipment lane sort configuration from a dropdown menu. Once you do so, you can select the desired carrier service method(s). In addition, available shipment lanes for the selected carrier within your configured fulfillment network will appear.
- **Service Method.** _Optional._ You can select specific service methods for this carrier that you wish to associate with the shipment lane sort configuration.
- **Shipment Lane Configuration Name.** _Required._ A human-readable name your organization will use to refer to the shipment lane sort configuration.
- **Shipment Lane Configuration Description.** _Optional._ An optional description your organization can use to help you organize your shipment lane sort configurations.
- **Effective Date.** _Optional._ The date the configuration begins to be used during carrier selection. When no date is set, the configuration displays as **Always active**.
- **Expiration Date.** _Optional._ The date the configuration stops being used during carrier selection. When no date is set, the configuration displays as **No expiration**.
- **Allow Overlapping Postal Codes.** _Optional._ When enabled, multiple lanes within this configuration can share the same postal codes.

### Configuration lifecycle

Configurations are grouped by lifecycle status so you can see which are in effect:

- **Active.** The configuration is within its effective and expiration window and is used during carrier selection.
- **Upcoming.** The configuration has an effective date in the future and is not yet used during carrier selection.
- **Expired.** The configuration's expiration date has passed and it is no longer used during carrier selection.

A configuration's status is evaluated against the shipment's ship date, and a configuration is used during carrier selection only while it is Active.

## Shipment lane

Once you've established a shipment lane sort configuration, you can create a shipment lane. Within the **Shipment Lane** section of the **Shipment Lane** tab of the fulfillment context, you'll select the **Add** button; or, you can select **Add a Shipment Lane** from the dropdown menu.

### About the default lane

A default lane acts as a fallback within a Lane Sort Configuration; it handles any shipments not matched by another lane in the same configuration. Only one lane can be marked as default per Sort Configuration. Once a lane's destination type is set (including Default), it cannot be changed; to change a lane's destination type, you must delete and recreate the lane.

To create a shipment lane, you'll provide details to be associated with it:

- **Shipment Lane Name.** _Required._ A human-readable name your organization will use to refer to the shipment lane.
- **Shipment Lane Description.** _Optional._ An optional description your organization can use to help you organize your shipment lanes.
- **Partner Provided ID.** _Optional._ A unique ID your organization can provide to identify this shipment lane.
- **Partner Lane Match Name.** _Required._ An ID your organization provides to reference in API call responses. This value does not need to be unique to only one shipment lane.

Next, you'll provide **Schedule** information.

- **Ships.** _Required._ You'll toggle the button to either _Yes_ or _No_ depending on if your fulfillment center ships on that day of the week.
- **Cutoff Time.** _Optional._ By default, the carrier cutoff time will be the origin cutoff time configured for the fulfillment center. If the carrier cutoff time differs from the origin cutoff time, you can establish carrier cutoff times for each day of the week.
- **Origin Cutoff Time.** _Display only._ The origin cutoff time for each day of the week is displayed for reference when configuring the carrier cutoff times.
- **Cutoff Exceptions.** _Optional._ Override cutoff times for specific dates, such as holidays or peak days.

Finally, you'll provide **Routing** information.

- **Define Destination.** _Required._ Choose one of three destination types:
  - **Default.** The lane acts as a fallback for any shipment within the parent Lane Sort Configuration that is not matched by another lane.
  - **All Postal Codes.** The lane is eligible for any destination the carrier services.
  - **Configure by Postal Codes.** The lane matches only the postal codes you upload via CSV.

## Shipment lane detail page

To view details for a configured shipment lane, click the lane name from the landing page. The detail page shows the lane's full configuration.

The detail page includes:

- **Lane configuration.** Name, Shipment Lane ID, description, Partner Lane Match Name, and Lane Type (e.g., Default Lane).
- **Schedule.** A table of the lane's cutoff times by day of week, plus any configured cutoff exceptions.
- **Postal codes.** For lanes configured with **Configure by Postal Codes**, you can download the configured postal codes as a CSV.
- **Limits.** Any shipment count limits scoped to the lane appear here.
- **Edit and Delete.** Edit and Delete buttons in the header let you update or remove the lane.

## Limits on a shipment lane

Applying a shipment count limit to a lane is optional. Lanes are used during carrier selection whether or not they have a limit.

Limits are added after a lane is created, not during initial lane creation. To add or manage a lane's limits, open the lane, select **Edit**, and use the **Limits** section at the bottom of the edit view. Select **Add Limit** to create one.

A popup modal will appear for you to set the limit's name, dates, the days it applies to, and a **Maximum Limit** for those days. A lane with no limits shows **No limits configured**.

## Best practices for uploading postal codes

This guide describes how to configure postal codes on your lanes in a way that keeps your configuration small, fast to evaluate, and easy to maintain. Following these practices reduces the size of your uploaded postal code sets and prevents common configuration mistakes.

## The core principle: Upload as few postal codes as possible

The single most important guideline is to **keep your uploaded postal code set as small as you can while still expressing the routing you need.** Very large postal code lists can lead to a minor increase in carrier-selection latency, and they are harder to maintain over time.

There are three levers you can use to reduce the size of your upload:
1. Use **All Postal Codes** instead of enumerating every postal code a carrier services.
2. Use a **Default** lane as a catch-all instead of listing every postal code that should fall through to it.
3. Use **shorter postal code prefixes** instead of full postal codes whenever the routing is the same across the prefix.

## Choose the destination type carefully — it can't be changed later

When you create a lane, you choose one of three destination types:
- **Default.** The catch-all lane within a configuration
- **All Postal Codes.** Eligible everywhere the carrier services
- **Configure by Postal Codes.** Eligible only for the postal codes you upload

### Destination type is permanent

Once a lane is created with a given destination type, that setting cannot be updated. If you need to switch a lane from one destination type to another (e.g., from **Configure by Postal Codes** to **All Postal Codes**), you must delete the lane and recreate it with the new setting.

### Quick comparison

| Concept | What it does | When to use it |
| --- | --- | --- |
| **All Postal Codes** | Lane is eligible anywhere the carrier services, with no postal codes uploaded | Carrier defines its own coverage |
| **Default** | Lane catches anything not matched by other lanes' explicit postal code mappings | You have several specific lanes and want one fallback |

## Shipment lane information returned in API response

Shipium returns shipment lane information in calls to the [Carrier and Method Selection & Shipment Label API](https://docs.shipium.com/docs/carrier-and-method-selection-and-shipment-label-api) when the network information in the call matched a shipment lane you configured in the Shipium Console.

| Response attribute | Field properties | Description |
| --- | --- | --- |
| `carrierSelection.laneMatch.laneId` | _String_<br>Ex: `asdqwdq-qwd123ds-123asdwd-123asd` | The `laneId` of the lane chosen during carrier selection; returned only when the shipment matched a configured lane |
| `carrierSelection.laneMatch.partnerLaneId` | _String_<br>Ex: `myCustomId` | The Partner Lane Match Name for the lane chosen during carrier selection; returned only when the shipment matched a configured lane and a Partner Lane Match Name is set |
| `carrierLabel.laneMatch.laneId` | _String_<br>Ex: `asdqwdq-qwd123ds-123asdwd-123asd` | The `laneId` of the lane used for the label that was created; matches `carrierSelection.laneMatch.laneId` except after a label failover; returned only when the shipment matched a configured lane |
| `carrierLabel.laneMatch.partnerLaneId` | _String_<br>Ex: `myCustomId` | The Partner Lane Match Name for the lane used for the label that was created; returned only when the shipment matched a configured lane and a Partner Lane Match Name is set |
