Guide
Build a Model
A model in SSPLAX is a flow network: nodes connected by edges, subject to constraints, optimized toward an objective. This page covers every building block.
Nodes
Nodes represent stages in your system — sources, processes, queues, and outputs. Every model has at least one source (where material enters) and one sink (where it exits).
Entry point — raw material, inbound demand, input stage.
Exit point — delivered output, final destination.
A service, tool, or machine that transforms flow.
A buffer or inventory point between stages.
In the Model Editor, you can add nodes, rename them, and connect them with edges. The canvas shows the network visually so you can verify the topology before solving.
Flows and paths
An edge connects two nodes and carries a commodity (typically "throughput") in one direction. Each edge has a minimum and maximum flow, defining the feasible range.
The solver decides how much flows along each edge to meet the objective while respecting all constraints. A path from source to sink may pass through multiple intermediate nodes — the solver optimizes the entire network simultaneously.
If a stage loses material (e.g., 72% yield in a manufacturing step), set the yield ratio on its outbound edge. Output = input × yield. The solver accounts for this when computing end-to-end throughput.
Mark an edge as reversible to allow flow in either direction. Useful for modeling transfers between work centers or bidirectional material movement.
Set an edge's variable type to "binary" when the decision is on/off rather than how-much. The solver treats these as 0/1 integer variables — the edge is either active or inactive. You can also force a binary edge on or off to test specific configurations.
Capacities and limits
Edge bounds (min/max) define what's physically possible for each flow path. The min is typically 0; the max is the stage's capacity. When you adjust these on the Constraints screen, you're telling the solver the feasible range for each path.
If the solver returns a flow at its maximum, that edge is capacity-constrained. Check the constraint shadow prices in the results to understand which limits are most worth relaxing.
Costs, demand, and resources
Each edge can carry multiple cost and resource overlays:
USD per unit of flow. When minimizing cost, the solver routes flow through the cheapest available paths. Cost rates also appear in budget constraints.
Define breakpoints where the cost rate changes. For example, the first 100 units cost $5/unit, the next 50 cost $8/unit. The solver picks the optimal volume on each segment.
Tonnes of CO₂ per unit of flow. Feeds into carbon cap constraints and the carbon minimization objective.
Define any resource (FTEs, GPU hours, water, energy) and attach consumption rates to edges. Then add resource limit constraints to cap total usage across the network.
Constraints
Constraints are the heart of SSPLAX. They represent real-world limits that the solver must respect. On the Constraints screen, you adjust each constraint's value within its allowed range using sliders.
Total cost across all paths cannot exceed this amount (USD).
Total CO₂ emissions across the network cannot exceed this limit.
Throughput through a specific stage or path is capped at this rate.
Total consumption of a custom resource (FTEs, GPU hours, etc.) is capped.
A minimum delivery requirement at a specific output point.
For details on each type, see the Reference page.
Objectives
The objective tells the solver what "good" means. Each template defines one or more objectives:
Push as much flow as possible from sources to sinks. The most common objective — answers "how much can we deliver?"
Find the cheapest way to meet all minimum throughput requirements. Answers "what's the least-cost plan that still delivers?"
Minimize total consumption of a specific resource (carbon, FTEs, energy) while meeting delivery requirements.
On the Objective screen, if the template has minimum throughput requirements, you'll also set the required delivery levels before proceeding.
Common modeling patterns
Most real-world models fall into a few recurring shapes:
One source feeding multiple parallel paths (e.g., demand split across suppliers). The solver decides how much flows through each.
Stages in series with yield losses at each step. The binding constraint is usually the tightest stage, not the last one.
Two parallel paths that merge before the sink. Useful for comparing routes (e.g., build in-house vs. outsource) under a shared budget.
The same network solved across multiple time periods with demand growth, ramp rates, and carry-over between periods. Set this up in Planning Settings.
For step-by-step walkthroughs, see Modeling Playbooks.