Guide
Reference
Quick-lookup tables for the main options, settings, result views, and exports 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 per 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 per 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. Supports holding cost, max storage, and inventory carry-over across periods |
Flow path settings
Each flow between two nodes has these configurable properties.
| Setting | Description |
|---|---|
| From / To | Which two nodes this path connects |
| Product | The exact named product or material carried by this flow |
| Unit | Derived from the product quantity unit and planning period |
| 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), whole numbers, or yes/no (on/off) |
| Reversible | Whether flow can move in either direction |
Conservation, queue inventory, backlog, output floors, and product objectives are separate for every node-and-product pair in every period. Transforming one product into another requires an explicit conversion with input/output amounts; yield never changes product identity. Conversion activity supports continuous, whole-number, and yes/no decisions, an explicit activity unit, bounds, and per-activity resource rates.
Constraint policy and enforcement
Each constraint carries these settings alongside its value. They control how firm the limit is and whether it may appear in recommendations.
| Setting | Options / meaning |
|---|---|
| Decision interpretation | Operational bottleneck (default, eligible repair option), Protected requirement (visible but never relaxed, cannot be softened), Policy relief permitted (relaxable, but labeled as policy relief) |
| Implementation cost / unit | What relaxing this limit would actually cost, used to price repair options |
| Allow a penalized violation | Switches enforcement from hard to soft |
| Penalty / violation unit | What each unit of violation costs the optimization score |
| Maximum violation | Cap on how far the limit may be exceeded; blank means unbounded |
| Repair priority | Higher priority makes a constraint more expensive to change in a combined repair |
Decision group and option fields
Authored in the Model Editor under Decision alternatives. See Decisions & Targets.
| Field | Description |
|---|---|
| Group name / description | What choice this group represents |
| Min / Max selected | How many options may be chosen from the group |
| Option type | Yes/no, Integer, or Continuous |
| Option min / max | Quantity range when the option is selected; yes/no is fixed to 0 and 1 |
| Fixed cost | Charged once if the option is selected at all |
| Variable cost | Charged per unit of selected quantity |
| Intervention cost | The cost of changing the plan; used only by target seeking |
| Override | Solver decides, Require, or Exclude |
| Decision stage | Adaptive (may differ by scenario) or Committed (fixed before scenarios) |
| Resource rates | Consumption per unit, e.g. labor:2; money:50 |
| Enable / disable flows | Turn flow paths on or off, e.g. +vendor_route; -internal_route |
| Enable / disable conversions | Same syntax for conversions |
| Capacity effects | Capacity added per unit selected, e.g. qc_hours:30 |
| Output effects | Direct delivery per unit selected, e.g. release:lot:1 |
| Rules | Requires (A ≤ B) and Excludes (A + B ≤ 1) between any two options |
Scenario analysis modes
Run from Analysis in Results when the model has saved scenarios. See Scenario Planning.
| Mode | What it holds fixed | The question it answers |
|---|---|---|
| Adaptive scenario analysis | Nothing. Each scenario re-optimizes independently | Best feasible response if replanning is allowed |
| Committed-plan check | Committed values stay at baseline; adaptive values may move | Does the committed plan survive, and what does it cost us |
| Scenario-aware optimization | Committed values shared across all scenarios | What to commit to now, on an expected-value or worst-case rule |
| Scenario weighting | Rule |
|---|---|
| Equal weighting | No per-scenario values needed |
| Probabilities | All scenarios or none; must form a valid total |
| Relative weights | All scenarios or none; at least one must be positive |
Data import
Opened from the Constraints screen. Accepts CSV, TSV, and XLSX. See Import Model Data.
| Path | Tables available |
|---|---|
| Update limits and capacities | Constraints |
| Add scenarios | Scenario values |
| Advanced model tables | Resources, flows, conversions, decision groups, decision options, scenario values, uncertainty values |
| Import limit | Maximum |
|---|---|
| File size | 10 MB |
| Data rows | 10,000 |
| Columns | 200 |
| Characters in one cell | 50,000 |
Scenario presets
Built-in presets with illustrative default constraint changes, used to stage Scenario B in the Compare tab. These are one-off comparisons, distinct from the named, weighted scenarios saved with the model.
| 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 default percentage |
| Supplier slip | Lower capacity on vendor-linked paths |
| Custom | Manually adjust any constraint values for the comparison |
Interventions
Predefined what-if actions in the Compare tab's intervention library. Each stages a Scenario B change so you can compare it against the baseline. 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.
| Destination | What you see |
|---|---|
| Answer | Solved decision, achieved outcome, governing limits, repair, and the relevant time plan |
| Analysis | Drivers, pressure tests, uncertainty simulation, tradeoffs, decision maps, and scenario-aware analysis when enabled |
| Compare | A separate re-solve beside the baseline, with changed assumptions, active-limit changes, and a Form-native solution diff |
| Report | Decision brief, export controls, constraint audit, documented inputs, risk checks, and scenario results |
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 returns pre-solve checks, a verified combined repair package, and ranked single-limit changes |
| Unbounded | The objective can improve without limit, which usually means a constraint is missing |
| Error | Something went wrong during the solve |
Input documentation fields
Each constraint can carry these documentation fields. They describe the input; they do not change the baseline solve.
| Field | Options |
|---|---|
| Input 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 input |
| Review range | Optional lower and upper bounds for input review; separate from uncertainty sampling |
| 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 | Default percentage increase in minimum-throughput demand each period (-20% to +50%) |
| Constraint schedules | Per-constraint time pattern: Flat, Growth, Step, Ramp, or Custom. Generates period-by-period values so you don't have to type each one |
| 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 |
| Backlog | When enabled, unmet demand carries forward with a penalty rate instead of causing infeasibility |
| Inventory economics | Adds holding costs and storage caps to queue node inventories when carry-over is on |
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, so it will not 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 greater than 0. A value of 0.72 means 72% passes through; values above 1 model a genuine gain or multiplication step.
Cost segment breakpoints must increase, and rates must be zero or positive.
Two paths between the same nodes carrying the same product. Merge them or differentiate the products.
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 result in its Network, Composition, Portfolio, or Assignment grammar: the baseline answer, next move, governing limits, remaining headroom, and (if infeasible) the minimum changes needed to restore feasibility.