← Back to the app

How it works

One pass through the app, plant to plain-language finding

You define a small supply chain network — plants, distribution centers, and the regions that demand product from them — and the app finds the cheapest way to route everything, then explains the biggest opportunity to make it cheaper still. Every number shown, including the AI finding, comes from actually solving the model. Nothing is estimated or made up.

  1. Step

    Start with a working example

    The app loads with a prefilled network — plants, distribution centers, and demand regions with realistic capacities and costs — so there's a full result to look at before you type anything.

  2. Step

    Edit anything

    Change capacities, demand, mileage, cost per mile, or fixed costs for any facility, or add and remove plants, distribution centers, regions, and lanes.

  3. API call

    Run optimization

    The full network — every node, lane, and constraint — is sent to the backend as JSON.

  4. Backend

    Solve the model

    FastAPI builds a mixed-integer optimization model with PuLP and solves it with CBC, a free open-source solver, in under 10 seconds. See “What's actually solving this?” below.

  5. Branch

    Feasible, and proven optimal?

    If demand can't be met within the given capacities, the app reports why instead of guessing. Otherwise it has a solution proven to be the cheapest possible for this exact network.

  6. Result

    Results render

    Which plant or distribution center serves which region, how much flows on each lane, which facilities are open versus idle, and the total cost breakdown.

  7. API call

    Ask for the AI finding

    The backend re-solves the model with a bit more capacity at each fully-used facility, keeping only the deltas that are real and would actually lower cost.

  8. AI

    Claude narrates the top finding

    Claude Haiku 4.5 turns the single biggest computed opportunity into one plain-language sentence — e.g. “increasing Plant 1 capacity by 500 units would reduce total cost by $12,000/year.” If Anthropic is unavailable, a plain-template sentence built from the same real numbers is shown instead. See “What is the AI actually doing?” below.

  9. Step

    Explore what-if scenarios

    Three one-click presets — apply the AI's finding, add 10% demand, or close the least-used facility — each re-solve the real model locally and show a before/after cost comparison.

  10. Loop

    Apply and keep going

    Applying a scenario updates the live network and re-renders the diagram and results, free to explore again from step 2.

What's actually solving this?

This is a mixed-integer linear program (MILP)— a well-established class of optimization problem used throughout supply chain planning. In plain terms: the model has a list of decisions it's allowed to make (how much to ship on each lane, whether each facility is open), a set of hard rules those decisions must obey (a region's demand must be fully met, a facility can't ship more than its capacity), and a single number to minimize — total cost, meaning transportation plus the fixed cost of running each open facility.

PuLP is a Python library for describing that problem in code — the decisions, the rules, the cost to minimize — without hand-writing the underlying math. CBC(COIN-OR Branch and Cut) is the actual solver: a free, open-source engine that takes the problem PuLP describes and searches the space of possible decisions for the cheapest one it can prove is optimal — or proves is impossible, if demand simply can't be met. Both are free and open source, which is part of why this tool costs nothing to run and is easy to fork.

What is the AI actually doing?

Claude never invents a savings figure. After the real solver finds a solution, the backend re-solves the model a handful of extra times — once for each facility that's fully used ("binding") — with a bit more capacity added, and keeps only the resulting cost deltas that are real and positive. Those already-computed numbers are the only thing sent to Claude. Its job is narrow: rank them and phrase the single best one as a plain-English sentence.

That's why the model behind it is Claude Haiku 4.5, a small and inexpensive model — the task is phrasing a known number, not reasoning about the network, so a larger model would just cost more for the same sentence. If the Anthropic API is ever unavailable, the same real numbers are narrated by a plain string template instead — the finding never disappears, and it's never a guess.