Skip to content

Map Lanes

Map raw rows into the scenario's lanes table: the set of routes Network Optimization is allowed to ship on, with the per-unit cost of each.

Lanes are required for Network Optimization. Without them the optimizer has nothing to route through, and the run stops.

When to use this

  • You're building a scenario that will be optimized
  • You want the optimizer to consider routes that were not used in historical shipments. That is how it discovers new sourcing
  • You need per-mode alternatives (FTL vs LTL, ocean FCL vs LCL) on the same origin-destination pair

What you need

  • An upstream Import Data node carrying one row per lane, or one row per origin-destination-mode combination
  • Origin and destination columns whose values match identifiers in the locations table
  • A per-unit cost on each lane. A lane without one is free shipping, and the optimizer will use it greedily

Field mapping

Auto-detection is all or nothing. With no explicit mapping on the node, every field is matched against the headers listed below, case-insensitively, and a space in your header reads as an underscore, so Site Name matches site_name. Set even one field explicitly and detection switches off for the whole node: only the fields named in the mapping are filled, and the rest arrive empty.

Set mappings in the node's panel. Connect an upstream table and select the mapping node to see automatic matches. Choosing a column saves all displayed matches as an explicit mapping. Use Use automatic detection to return to header detection. Required fields without a match are marked in the panel.

Field Type Required Example What it is Auto-detected headers
Source text Yes Warehouse A Origin location name source, from, origin, source_id, from_id
Target text Yes Store 1 Destination location name target, to, destination, dest, target_id, to_id
Product text Yes Widget Product or SKU this lane carries, or ALL for a lane open to every product. product, sku, item, material, product_id
Unit Cost number No 5.0 Cost per unit shipped unit_cost, cost_per_unit, rate, freight_rate, transport_rate
Capacity number No 1000.0 Maximum flow allowed on this lane. Blank = unlimited. Its unit goes in Quantity Unit. capacity, max_flow, max_quantity, max_volume, quantity
Lead Time number No 2.0 Transit time in days lead_time, transit_time, days, transit_days
Emissions per Unit number No 0.5 CO2 per unit shipped emissions_per_unit, co2_per_unit, carbon_per_unit, emission_rate
Transport Mode text No FTL Transport mode (e.g., FTL, LTL, rail, ocean, air) transport_mode, mode, shipping_mode, carrier_type, shipment_mode, transport_type
Minimum Quantity number No 20.0 Minimum shipment quantity for this lane (e.g., FTL threshold). Its unit goes in Quantity Unit. min_quantity, min_qty, minimum_quantity, min_shipment, minimum_qty, min_order
Quantity Unit text No pallets Unit that capacity and minimum quantity are expressed in. Pick one unit and use it consistently across the scenario. quantity_unit, qty_unit, unit, uom

Lanes compared with flows

lanes (Map Lanes) flows (Map Transport)
What it represents What routing is allowed, and at what cost What actually flowed
Required for Network Optimization Yes No
Cost Per unit Realized total

How it works

Each row becomes a lane record on the scenario. Network Optimization reads them as the set of routes it may use. Include every route you want considered, even ones not used in historical data. If you only have historical shipments, build a lanes table from your location pairs first. Distance-based per-unit costs are a reasonable starting point.

For consolidation-versus-direct decisions, give the same origin-destination pair several rows, one per transport mode, and set Minimum Quantity on the full-load modes. The optimizer then picks FTL or FCL only when volume justifies it.

Workflow wiring

flowchart LR
    n1["Import Data (locations.csv)"] --> n2["Map Locations"]
    n3["Import Data (lanes.csv)"] --> n4["Map Lanes"]
    n4 --> n5["Create Scenario"]
    n5 --> n6["Network Optimization"]
    n7["Import Data (supply.csv)"] --> n8["Map Supply Policy"]
    n9["Import Data (demand.csv)"] --> n10["Map Demand Policy"]
    n2 --> n5
    n8 --> n5
    n10 --> n5

Common mistakes

  • Skipping Map Lanes when only shipment history is available. Network Optimization rejects the scenario. Build lanes from your origin-destination pairs instead.
  • Forgetting the unit cost. Lanes without cost are free, and the optimizer routes everything through them.
  • Putting realized totals on Unit Cost. It is per unit. The realized total of an observed flow belongs on Map Transport.