Trade Study Analysis (systems-engineering-safety/mbse/trade-study-analysis)
Use when the task is a trade study or alternative selection for an
aerospace system or subsystem: weighted scoring of candidate
concepts, Pugh matrix comparison against a baseline, sensitivity of
the ranking to the criterion weights, and the selection decision
with margin and traceability.
Domain quick reference
- Weighted scoring: score(A) = sum over criteria i of w_i * s_i(A),
with the weights summing to 1.0. Example: criteria mass, cost,
reliability with weights 0.5, 0.3, 0.2 and scores 8, 6, 9 give
80.5 + 60.3 + 9*0.2 = 7.6.
- Weight validation: weights must sum to 1.0 within a small
tolerance (about 1e-9). A set that does not sum to 1.0 raises
ValueError instead of silently skewing the ranking.
- Pugh matrix: rows are criteria, columns are alternatives, and each
cell is +1 (better than the baseline), 0 (same as the baseline),
or -1 (worse than the baseline). The baseline column scores 0 on
every row by definition. Net score of an alternative = sum over
rows of (cell - baseline cell); rank the alternatives by net score
descending.
- Selection margin: margin = best_score - runner_up_score. A margin
at or below the numerical tolerance is a tie; a margin below the
configured threshold (default 0.05 on the weighted score scale)
flags a weak decision that needs more discrimination between the
candidates.
- Sensitivity analysis: perturb each weight upward by a fixed
amount and renormalize the remaining weights so the set still sums
to 1.0, then re-rank. If the winner changes under a single weight
perturbation, the decision is sensitive to that criterion and the
weight needs justification.
- Traceability: every alternative's rationale should cite
requirement ids. The check flags alternatives that cite no
requirements and requirements that no alternative covers.
- ARP4754A sets the development-planning context: alternative
concepts are evaluated and the chosen concept is justified as part
of the development plan, and the selection rationale traces back
to the requirements. The scoring relations above are common
decision-analysis methodology.
Workflow
- Define the decision criteria and the weights; verify the weights
sum to 1.0 (the module raises ValueError otherwise).
- Score each candidate on each criterion on one common scale
(normalize any mixed scales first).
- Compute the weighted score of each alternative with
weighted_score(weights, scores).
- Build the Pugh matrix with entries in {-1, 0, +1} and get the
ranking with pugh_matrix_verdict(pugh_matrix, baseline_index).
- Test the stability of the ranking with
sensitivity_ranking(weights, scores, perturbation); rework the
weights if a single perturbation flips the winner.
- Apply selection_verdict(best_score, runner_up_score) and read
the margin and the tie handling before declaring a winner.
- Close the trade study with traceability_check(alternatives,
requirement_ids) so every candidate and requirement is covered.
Pitfalls
- Weights that do not sum to 1.0: the ranking is skewed toward the
criteria with the larger raw weights; the module rejects the set
with ValueError instead.
- Scoring on mixed scales: a 0 to 10 scale for one criterion and a
0 to 100 scale for another makes the wide scale dominate the
weighted sum; normalize every criterion to one scale first.
- Forgetting the baseline column: the Pugh matrix is meaningless
without the reference concept that every cell is judged against.
- Using raw sums instead of relative-to-baseline differences: a
candidate that beats the baseline on every row must rank above the
baseline, which only holds when each cell is compared with the
baseline cell.
- Treating a tie as a win: selection_verdict returns a tie verdict
when the margin is at or below the tolerance; add a discriminating
criterion or revisit the weights instead of picking arbitrarily.
- Skipping the sensitivity check: a decision that flips under one
weight perturbation rests on a single judgment and is not robust
to review.
- Closing without traceability: an alternative with no requirement
ids cannot be justified in the certification context; run
traceability_check before the selection is recorded.
- Treating a small margin as a confident win: a margin below the
threshold flags a weak decision even when the best score is the
largest.
Behavior contract (gate 3)
The weighted scoring, Pugh matrix verdict, sensitivity ranking,
selection verdict, and traceability check relations are exercised by
the gate 3 contract test: scripts/test_trade_study_analysis.py
against scripts/trade_study_analysis.py (stdlib unittest, offline).
Run: python3 scripts/test_trade_study_analysis.py
Compliance
- Standards referenced, not reproduced: ARP4754A is a commercial SAE
standard (purchase required); the trade study relations (weighted
scoring, Pugh matrix, sensitivity analysis) are common
decision-analysis methodology, summary-only per standards-map.yaml.
- compliance: STANDARDS-REF, gated: false.
1---2name: trade-study-analysis3description: Use when you must run a trade study or alternative selection for an aerospace system or subsystem: set decision criteria with weights that sum to 1.0, score each candidate, build a Pugh matrix with plus/zero/minus marks against a baseline concept, compute weighted scores, judge the selection margin between the best and runner-up alternative, perturb the weights to test sensitivity, and confirm every candidate traces to requirement ids. Produces the ranked alternative list, the Pugh verdict, the sensitivity ranking, and the selection decision with margin and tie handling. Trigger: trade study, trade-off, Pugh matrix, decision criteria, weighted scoring, sensitivity analysis, alternative selection, selection margin.4license: Apache-2.05---67# Trade Study Analysis (systems-engineering-safety/mbse/trade-study-analysis)89Use when the task is a trade study or alternative selection for an10aerospace system or subsystem: weighted scoring of candidate11concepts, Pugh matrix comparison against a baseline, sensitivity of12the ranking to the criterion weights, and the selection decision13with margin and traceability.1415## Domain quick reference1617- Weighted scoring: score(A) = sum over criteria i of w_i * s_i(A),18 with the weights summing to 1.0. Example: criteria mass, cost,19 reliability with weights 0.5, 0.3, 0.2 and scores 8, 6, 9 give20 8*0.5 + 6*0.3 + 9*0.2 = 7.6.21- Weight validation: weights must sum to 1.0 within a small22 tolerance (about 1e-9). A set that does not sum to 1.0 raises23 ValueError instead of silently skewing the ranking.24- Pugh matrix: rows are criteria, columns are alternatives, and each25 cell is +1 (better than the baseline), 0 (same as the baseline),26 or -1 (worse than the baseline). The baseline column scores 0 on27 every row by definition. Net score of an alternative = sum over28 rows of (cell - baseline cell); rank the alternatives by net score29 descending.30- Selection margin: margin = best_score - runner_up_score. A margin31 at or below the numerical tolerance is a tie; a margin below the32 configured threshold (default 0.05 on the weighted score scale)33 flags a weak decision that needs more discrimination between the34 candidates.35- Sensitivity analysis: perturb each weight upward by a fixed36 amount and renormalize the remaining weights so the set still sums37 to 1.0, then re-rank. If the winner changes under a single weight38 perturbation, the decision is sensitive to that criterion and the39 weight needs justification.40- Traceability: every alternative's rationale should cite41 requirement ids. The check flags alternatives that cite no42 requirements and requirements that no alternative covers.43- ARP4754A sets the development-planning context: alternative44 concepts are evaluated and the chosen concept is justified as part45 of the development plan, and the selection rationale traces back46 to the requirements. The scoring relations above are common47 decision-analysis methodology.4849## Workflow50511. Define the decision criteria and the weights; verify the weights52 sum to 1.0 (the module raises ValueError otherwise).532. Score each candidate on each criterion on one common scale54 (normalize any mixed scales first).553. Compute the weighted score of each alternative with56 weighted_score(weights, scores).574. Build the Pugh matrix with entries in {-1, 0, +1} and get the58 ranking with pugh_matrix_verdict(pugh_matrix, baseline_index).595. Test the stability of the ranking with60 sensitivity_ranking(weights, scores, perturbation); rework the61 weights if a single perturbation flips the winner.626. Apply selection_verdict(best_score, runner_up_score) and read63 the margin and the tie handling before declaring a winner.647. Close the trade study with traceability_check(alternatives,65 requirement_ids) so every candidate and requirement is covered.6667## Pitfalls6869- Weights that do not sum to 1.0: the ranking is skewed toward the70 criteria with the larger raw weights; the module rejects the set71 with ValueError instead.72- Scoring on mixed scales: a 0 to 10 scale for one criterion and a73 0 to 100 scale for another makes the wide scale dominate the74 weighted sum; normalize every criterion to one scale first.75- Forgetting the baseline column: the Pugh matrix is meaningless76 without the reference concept that every cell is judged against.77- Using raw sums instead of relative-to-baseline differences: a78 candidate that beats the baseline on every row must rank above the79 baseline, which only holds when each cell is compared with the80 baseline cell.81- Treating a tie as a win: selection_verdict returns a tie verdict82 when the margin is at or below the tolerance; add a discriminating83 criterion or revisit the weights instead of picking arbitrarily.84- Skipping the sensitivity check: a decision that flips under one85 weight perturbation rests on a single judgment and is not robust86 to review.87- Closing without traceability: an alternative with no requirement88 ids cannot be justified in the certification context; run89 traceability_check before the selection is recorded.90- Treating a small margin as a confident win: a margin below the91 threshold flags a weak decision even when the best score is the92 largest.9394## Behavior contract (gate 3)9596The weighted scoring, Pugh matrix verdict, sensitivity ranking,97selection verdict, and traceability check relations are exercised by98the gate 3 contract test: scripts/test_trade_study_analysis.py99against scripts/trade_study_analysis.py (stdlib unittest, offline).100Run: python3 scripts/test_trade_study_analysis.py101102## Compliance103104- Standards referenced, not reproduced: ARP4754A is a commercial SAE105 standard (purchase required); the trade study relations (weighted106 scoring, Pugh matrix, sensitivity analysis) are common107 decision-analysis methodology, summary-only per standards-map.yaml.108- compliance: STANDARDS-REF, gated: false.