Predictive Pareto Planning
A single execution plan optimizes for one objective. Pareto planning generates the full set of non-dominated trade-offs across four objectives simultaneously, letting you choose the plan that best fits your mission constraints.How it works — CAE evaluates thousands of candidate plans with different relaxation combinations, filters dominated solutions, and returns only the Pareto-optimal frontier.
Objectives
Every plan is scored on four axes:| Objective | Unit | Direction | Description |
|---|---|---|---|
| Latency | seconds | minimize | Total time from job start to final output delivery |
| Energy | watt-hours | minimize | Total on-board energy consumed across all steps |
| Reliability | probability | maximize | Delivery confidence accounting for link errors and retransmissions |
| Quality | 0-1 score | maximize | Output fidelity — driven by quality tier selection in window steps |
Relaxation Types
To explore the frontier, the planner applies controlled relaxations — each trades one objective for gains in others.| Relaxation | Trades Away | Gains |
|---|---|---|
extend_windows | Latency | Reliability, Quality — more time allows higher tiers and more retransmission margin |
skip_checkpoint | Reliability | Latency, Energy — removing checkpoints saves time and power |
reduce_fec | Reliability | Latency, Energy — less FEC overhead means smaller transfers |
lower_quality_tier | Quality | Latency, Energy — lower tiers complete faster with less compute |
Dominance Filtering
Given two plans A and B, A dominates B if A is at least as good as B on all four objectives and strictly better on at least one. The Pareto frontier is the set of plans that no other plan dominates.API Usage
Single-Satellite Pareto
Addpareto: true to a standard plan request:
frontier array instead of a single plan:
Fleet-Level Pareto
For constellation workloads, use the fleet Pareto endpoint:Response Parameters
| Field | Type | Description |
|---|---|---|
frontier | array | Array of Pareto-optimal plan variants |
frontier[].plan_index | number | Index within the frontier (0 = baseline) |
frontier[].objectives | object | Objective scores for this variant |
frontier[].relaxations_applied | array | Which relaxations produced this variant |
frontier[].plan | object | Full plan object (same schema as standard plans) |
frontier_size | number | Number of non-dominated solutions |
candidates_evaluated | number | Total candidate plans generated |
dominated_filtered | number | Candidates eliminated by dominance filtering |
Console Integration
In the RotaStellar Console, the Generate Trade-offs button on the plan detail page triggers a Pareto analysis. Results are displayed as an interactive scatter chart where:- Each axis maps to one of the four objectives
- Each point is a Pareto-optimal plan variant
- Clicking a point loads the full plan detail
- Hovering shows the relaxations applied and objective scores
Pareto planning takes longer than single-objective planning because the planner must evaluate and filter many candidates. For complex workloads with many steps, expect 2-5x the normal planning time.
Create Plan API
API reference for POST /v1/plan
Constellation DAG
Fleet-level orchestration with ISL routing

