Guide
Reference
Quick-lookup tables for every option, setting, and output you'll encounter in SSPLAX.
Constraint types
Each constraint you add to a model is one of these types. The type determines how the limit is applied.
| Type | What it limits | Typical unit |
|---|---|---|
| Budget | Total cost across all flow paths | USD |
| Carbon cap | Total CO₂ emissions across the network | tCO₂ |
| Capacity | Throughput through a specific stage or path | units / period |
| Resource limit | Total usage of a custom resource (FTEs, GPU hours, etc.) | resource unit |
| Minimum throughput | Minimum delivery at a specific output point | units / period |
Objective types
| Direction | What it does | Common targets |
|---|---|---|
| Maximize | Push the target as high as possible | Throughput, output volume |
| Minimize | Push the target as low as possible | Cost, carbon, resource usage |
An objective can target the entire network or a specific output node. When minimizing, you typically also set minimum delivery requirements so the solver doesn't simply stop all flow.
Node types
Nodes are the stages in your flow network. Each node has a type that describes its role.
| Type | Role |
|---|---|
| Source | Where material, work, or demand enters the system |
| Sink | Where delivered output exits the system |
| Service | A tool, machine, or service that transforms flow |
| Queue | A buffer or inventory point between stages |
Flow path settings
Each flow path (edge) between two nodes has these configurable properties.
| Setting | Description |
|---|---|
| From / To | Which two nodes this path connects |
| Commodity | What flows through (e.g., "throughput") |
| Unit | The measurement unit (e.g., "units/week") |
| Min / Max | The allowed flow range — min is usually 0, max is the capacity |
| Cost rate | Cost per unit of flow (USD) |
| Cost segments | Breakpoints where the cost rate changes at different volumes |
| Carbon rate | CO₂ emitted per unit of flow |
| Resource rates | How much of each custom resource this path consumes per unit |
| Yield | Fraction of input that becomes output (e.g., 0.72 = 28% loss) |
| Decision type | Continuous (how much), integer, or binary (on/off) |
| Reversible | Whether flow can move in either direction |
Scenario presets
Built-in presets that adjust constraints in realistic ways for quick comparisons.
| Preset | What it does |
|---|---|
| Baseline | Solve with current constraints — the default starting point |
| Aggressive | Relax capacity limits and tighten delivery requirements |
| Budget cut | Reduce budget constraints by a realistic percentage |
| Supplier slip | Lower capacity on vendor-linked paths |
| Custom | Manually adjust any constraint values for the comparison |
Interventions
One-click what-if actions suggested when the solver finds bottlenecks or infeasibility. Domain-specific templates may include additional interventions beyond these.
| Intervention | What it changes |
|---|---|
| Increase capacity | Raises a constrained capacity limit by 10% |
| Relax budget | Increases available budget by 10% |
| Defer demand | Reduces minimum delivery requirement by 10% |
| Expand route capacity | Opens 10% more capacity on a flow path |
What the results show
After solving, the Results screen organizes findings across several tabs.
| Tab | What you see |
|---|---|
| Answer | The recommended plan, total objective value, flow breakdown per path, and a narrative explanation of the decision logic |
| Bottlenecks | Ranked list of constraints by impact (tornado chart), marginal values, and tradeoff curves showing how the objective shifts as you relax each limit |
| Robustness | Monte Carlo feasibility check — how likely the plan survives real-world variation, and which constraints cause failures most often |
| Compare | Side-by-side diff of two scenarios: what changed in the objective, which paths gained or lost flow, and which limits flipped |
| Explore | Regime map (2D parameter sweep), Pareto frontier (tradeoff curve between two objectives), and hypothesis testing (natural-language what-if) |
Result status
Every solve returns one of these outcomes.
| Status | What it means |
|---|---|
| Optimal | A best feasible plan was found that satisfies all constraints |
| Infeasible | No plan can satisfy all constraints simultaneously — SSPLAX shows the minimum changes needed to restore feasibility |
| Unbounded | The objective can improve without limit — usually means a constraint is missing |
| Error | Something went wrong during the solve |
Assumption ledger fields
Each constraint in the ledger carries these metadata fields.
| Field | Options |
|---|---|
| Confidence | High, Medium, Low, or Unspecified |
| Value type | Measured, Estimated, Placeholder, Imported, or Unspecified |
| Source | Free text — where the number came from |
| Owner | Free text — who is accountable for this assumption |
| Low / High range | Plausible bounds for sensitivity and Monte Carlo analysis |
| Note | Free text — any additional context |
| Impact | Auto-computed sensitivity score (0-100) showing how strongly the result depends on this constraint |
Planning settings
Multi-period planning options available in the Constraints screen.
| Setting | Description |
|---|---|
| Periods | Number of time periods to plan across (1-12) |
| Demand growth | Percentage increase in demand each period (-20% to +50%) |
| Ramp rates | Maximum percentage a flow path can increase between periods |
| Cumulative budget | Whether budget is shared across all periods or per-period |
| Queue carry-over | Whether inventory in queue nodes carries between periods |
Model warnings
The Model Editor checks your network for structural issues before solving. These are the warnings and errors you may see.
A node has no connections — it won't participate in the solve. Connect it or remove it.
Every model needs at least one entry point (source) and one exit point (sink).
A path connects a node back to itself. Remove it or route through an intermediate node.
A path's minimum exceeds its maximum, or a constraint's default is outside its allowed range.
There's no connected path from any source to this sink. Flow can't reach it.
Yield must be between 0 and 1. A value of 0.72 means 72% passes through; 28% is lost.
Cost segment breakpoints must increase, and rates must be zero or positive.
Two paths between the same nodes carrying the same commodity. Merge them or differentiate the commodity.
The model has no constraints. Without limits, the result is trivial.
The model has no objective. Add one so the solver knows what to optimize.
How a model is organized
Every SSPLAX model has three layers:
The structural blueprint — which nodes exist, how they're connected, what constraints and objectives are available, and what custom resources are defined. Templates can be starter templates (pre-built for a domain) or created from scratch in the Model Editor.
The specific values you've set: which objective is selected, what constraint values you've dialed in, how you've adjusted flow path capacities and costs, and your planning settings (periods, demand growth, ramp rates).
The computed output: the optimal plan, which constraints are binding, how much headroom each non-binding constraint has, the marginal value of relaxing each limit, and (if infeasible) the minimum changes needed to restore feasibility.