Enter the password to continue.
Reference Guide
A browser-based Integer Linear Programming tool that minimizes total freight costs across IMI's 12 Contract of Affreightment lanes and 18 destination ports — directly replicating the R lpSolve workflow in an interactive React dashboard.
Six steps from opening the tool to reading your optimal freight plan
The Cost Matrix tab displays a 12×18 editable grid of freight costs ($/MT). Each row is a COA lane (origin) and each column is a discharge port. Cells showing 999 are impossible routes — they are automatically excluded from the solver.
The Demand Minimum row (highlighted light red) at the bottom of the Cost Matrix sets the minimum number of shipments each port must receive. Click any cell to edit it directly. A running total is shown in the rightmost column.
The COA Constraints section shows six contract groups. Each has an editable MIN SHIPMENTS and MAX SHIPMENTS. The solver enforces that the total shipments assigned to each group's two lanes falls within this range — matching the R lpSolve constraint formulation exactly.
Below the cost matrix, use the Apply % Change slider to uniformly scale all freight costs. Drag right for a cost increase, left for a decrease. The slider holds its position after applying — click Apply again to stack changes or type a precise value. Use Reset to restore all defaults.
Press the SOLVE button in the header bar. The
javascript-lp-solver
ILP engine runs entirely in your browser — no server required. The dashboard
automatically switches to the Decision Variables tab where
cells with assigned shipments are highlighted in yellow.
A TRUE/FALSE validation row confirms each port's demand was met.
The Optimization Results panel shows the Optimized Cost, your Metric Tons Shipped input, and Total Cost = Cost × MT. Below the solution matrix, the Shipment Flow (Sankey) diagram visualizes which lanes feed which ports, while the Cost Share donut breaks down spend by COA group.
Click any cost cell to edit it directly. Press Enter or Tab to confirm. The cell will flash green when saved.
The solver treats any cost ≥ 999 as an impossible route (Big-M). Setting a cell to 999 blocks that lane → port combination completely.
The COA Cost column on each lane row shows the SUMPRODUCT of that lane's costs × decision variables — a per-lane cost contribution.