Network optimization · Centre of gravity · Isaac PKD

Design your supply chain network on evidence, not opinion.

Beanome models your network in tables you already understand — sites, materials, demand, lanes, capacities, costs — solves it with mixed-integer optimization, and returns a run you can trace back to the exact data it came from. Then ask Isaac what changed and why.

Illustrative — a sample network, not customer data.

What Beanome answers

Questions about the shape of your network.

Not where a truck is right now. Where the trucks should be going at all — and what it costs to serve demand from there.

?

Where should we produce, store and ship from?

Which sites to open or close, which operations to run where, and which lanes carry what. Or, one question earlier: given where demand is, where should facilities be at all — the centre-of-gravity study.

What does it cost to serve this demand — and what drives that cost?

Every cost in the model is named: resource, transport, site, operation, inventory, opening and closing. A run returns the objective it achieved and the decisions and flows that got it there.

Δ

If a site closes, a lane is capped, or demand moves — what changes?

A scenario is the same network with something changed. Solve it, compare it against the baseline, and read what moved. Nothing under either run can shift afterwards.

How a run is made

Describe. Branch. Solve. Keep the proof.

  1. 01

    Describe the network

    The model is tabular — sites, materials, customers, demand, lanes, capacities, costs and the rules connecting them. Author it in the grid or bring a workbook. Slicers narrow a table to the records you mean; mass edit changes them in one move.

    Grid · workbook import / export · slicers · mass edit
  2. 02

    Branch a scenario

    A scenario is a pinned data version plus your changes to it. Ask “what if Porto closes in the winter peak” without touching the baseline. Scenarios have lineage — a child inherits its parent's changes unless it overrides them.

    Draft · lineage · pending changes shown, never silently dropped
  3. 03

    Solve, asynchronously

    The platform validates the model, picks a solution strategy for its size and structure, and runs it. Large models are decomposed automatically. Objectives solve in priority order, not as a weighted blend.

    Mixed-integer optimization · auto-decomposition · lexicographic objectives
  4. 04

    Read the run

    A run is immutable and bound to the exact model version it was produced from. Six months later it still names the data it used, and that data still exists, unchanged. Compare runs, read the map, export the tables, ask Isaac.

    Frozen snapshot · run compare · stress map · export
In the product

One scenario, four ways to read it.

ProjectsIberia networkClose Porto, winter peak only run #14
Tables
  • Sites 5
  • Demand 1,240
  • Internal network 18
  • Service network 212
  • Resources 9
  • Objective hierarchy 2
Slicers
customerIberia · 3 of 14
periodP11 – P12
3 pending changesmass edit · +12% quantity
customermaterialperiodquantityprice
Lisboa RetailSKU-1180P111,34442.00
Lisboa RetailSKU-1180P121,56842.00
Porto NorteSKU-2210P1182037.50
Porto NorteSKU-2210P1291837.50
Madrid CentroSKU-1180P112,41041.20
Madrid CentroSKU-3020P121,10558.00

Illustrative — a sample network, not customer data.

Meet Isaac

Ask the run, not the model's memory.

Isaac is the assistant inside every scenario. It answers from the run's actual output — the flows, costs, activated sites and demand it produced — and says so. It does not answer from what a language model happens to remember about supply chains.

  • Grounded by enforcement, not by hopeEvery number Isaac states is read from the run through tenant-scoped primitives. If it cannot find the answer there, it tells you.
  • Reasons in steps“Why does the alternative cost more?” is a multi-step question — find both runs, diff them, drill the delta, test whether a capacity explains it. Isaac composes those steps itself.
  • Your data stays where you put itThe language model is a configurable endpoint — self-hosted in the pilot, so nothing leaves the machine — and there is a no-LLM tier that still answers the structured questions.
Ask Isaac about your network
Isaac, Beanome's assistant
IsaacScenario: Close Porto, winter peak only · run #14
You

Isaac
run #14 vs baseline #12read from both runs

Total cost is +4.1%. Transport carries the whole difference: with Porto closed, Lisbon serves the Iberian customers at about 2.3× the distance, and the fixed cost Porto no longer incurs does not cover it.

Transport+€312k
Site fixed−€180k
Demand metunchanged

One thing to check: Lisbon line 2 reaches 97% of capacity in periods 11–12. If demand there grows, this scenario stops being feasible before it stops being expensive.

Also answered from the run: Which customers drive most demand?Which resources are at capacity?What changed between runs 12 and 14?
Capabilities

Built for the questions planners actually argue about.

Objective hierarchy

Priorities, not weights

Objectives are solved lexicographically: priority 1 alone, its result fixed as a constraint, then priority 2 within it. A lower priority can never cost you on a higher one. Scope any objective to a group — maximize demand met for the key accounts, then minimize inventory at the Iberian sites.

  1. 1Maximize demand metkey accountsfixed
  2. 2Minimize inventoryIberiafixed
  3. 3Minimize costnetwork-widesolving
Two analysis kinds

Network optimization & centre of gravity

Full network design over all 21 tables — or a greenfield study over five: given where demand is, where should facilities be? Both are runs, with the same provenance.

Stress map

See where the network is tight

Sites and lanes drawn on the map with their utilization: healthy, at capacity, bottleneck. The picture a run paints of itself, not a status board.

Halos on the map · list in the panel
Working with data

Slicers, mass edit, workbook in and out

A slicer offers only the values actually present in your data. It defines the record set mass edit acts on. Import a workbook, export the tables a study reads — and only those.

Demand scenarios

Plan under uncertainty

Write down alternative demand futures and their likelihoods. Two or more, and the run is solved as a stochastic one across them rather than against a single forecast.

Scenarios & runs

A run freezes. A scenario keeps moving.

Submitting a solve materialises the scenario's data into a content-addressed version and records it on the run. The scenario stays editable; the run never changes. Compare any two runs side by side, restore a scenario from a run, and name scenarios so they still mean something in six months.

Network Modeling Guide

Every field, and what it does to the answer

The guide lives inside the app, next to the grid. It says what each field means, what a blank means, and — where a field is stored but never reaches the model — says so plainly rather than inventing a purpose.

How it's built

Rules we keep, so the answer is worth trusting.

These are not slogans. Each one is a checked property of the product, or a decision recorded in its architecture.

01

A run always names the exact data it used.

Versions are immutable and hash-addressed. A result can always be traced back to the input that produced it — and that input still exists.

02

Absent is not empty.

A centre-of-gravity study has no bill of materials. Not an empty one — none. The tables an analysis does not read are simply not offered, so the data pane and the export can never disagree about what your scenario is.

03

Failures are classified, never guessed.

An infeasible model is told apart from a timeout, and both from a platform fault, by the tier that knows. A failure nobody can attribute is recorded as unattributed rather than as a plausible-looking one.

04

The modeling guide is a checked property.

The in-app Network Modeling Guide documents every field and what it does to the answer. A build gate compares it against the model itself: a field you find there exists, and a field that exists is there.

05

Blank usually means something.

A lane with no distance is measured great-circle; an inventory row with no period applies to all of them. Each field's entry says what a blank means, and it is rarely “nothing”.

06

Workspaces are the isolation boundary.

Data does not cross between workspaces. Sign-in is OIDC through the identity provider; an unknown identity is never auto-provisioned into a tenant.

What's available today

Stated plainly, rather than implied.

Beanome is in pilot. Here is what you can use now and what is being built — so the site does not promise what the product does not yet do.

Available in the pilotIn development
  • Web applicationModel, scenarios, solves, runs, map, compare, Isaac, modeling guide
  • Workbook integrationImport and export your model as an Excel workbook, in Beanome's layout
  • Network optimization & centre of gravityBoth analysis kinds, deterministic and stochastic runs
  • Public APIA credentialed programmatic API is in development; developer docs describe the contract
  • ERP data lakeSource extracts landed as received and derived into scenario data — an SAP extract has solved end to end in a spike
  • Cloud deploymentPilot runs on dedicated hardware; the architecture is portable and the cloud design is documented
Evolve. Elevate. Optimize.

Bring a network. Leave with a run.

We are taking on a small number of pilot networks. Bring your sites, demand and lanes in a workbook; we will load them, solve the baseline with you, and branch the first what-if together.

  • OIDC sign-in
  • Workspace isolation
  • Self-hosted LLM option