Performance Computation (avionics/flight-management/performance-computation)
Use when the task is flight management system performance computation:
cost index and ECON cruise speed selection, the fuel and time trade
between candidate speeds, step-climb logic between flight levels, and
the VNAV top of descent for the vertical profile. This leaf is the
performance sibling of avionics/flight-management/flight-planning
(lateral route geometry) and avionics/flight-management/vertical-navigation
(descent path checking); together they cover the FMS performance and
guidance computations that run under the DO-178C airborne software
lifecycle discipline.
Domain quick reference
- Cost index (CI) is the ratio of time cost per hour to fuel cost per
kilogram, in kg/h. A high CI means time is expensive, so the FMS
flies faster; a low CI means fuel dominates, so the FMS flies
slower. CI = 0 selects the pure fuel-optimal (max range) speed.
- ECON cruise speed is the Mach number that minimizes total cost per
nautical mile: cruise fuel per nm plus CI times time per nm. The
optimum sits where the marginal fuel cost of flying faster balances
the marginal time saving, and is clamped to the aircraft Mach
envelope (M_MIN to M_MMO).
- Cruise fuel per nm comes from a simplified three-term drag model
(parasite, induced, compressibility) over the ISA atmosphere; the
induced term grows with weight squared, so heavier aircraft select
a faster ECON Mach.
- Fuel and time trade: for a fixed leg, a faster speed saves time but
usually burns more fuel above the max range speed; the net
fuel-equivalent cost change is extra fuel minus CI times time
saved, and is near zero at the ECON speed.
- Step-climb logic trades the extra climb fuel against the lower
cruise fuel at a higher flight level; the step is advised when the
cruise saving exceeds the climb penalty plus a margin.
- VNAV top of descent (TOD) is the distance from the descent start to
the target altitude: altitude to lose divided by the descent
gradient (about 318 ft/nm for a 3 degree flight path angle),
corrected for wind by scaling by TAS over groundspeed. A headwind
lengthens the descent distance, a tailwind shortens it.
- Typical FMS functions in this leaf: cost index derivation, ECON
Mach selection, cruise speed trade, step-climb benefit, and TOD
distance with wind correction.
Workflow
- Derive the cost index with cost_index from the time cost per hour
and fuel cost per kg.
- Select the ECON cruise Mach with econ_mach_from_cost_index for the
weight and cruise altitude; inspect the detail with
econ_speed_summary (Mach, TAS, fuel per nm, time per nm, total
cost per nm).
- Compare candidate speeds over a leg with fuel_time_trade to get
the extra fuel, time saved, and net fuel-equivalent cost change.
- Evaluate a step climb between flight levels with
step_climb_benefit; step when step_advised is true.
- Compute the vertical profile descent with top_of_descent to get
the wind-corrected TOD distance and gradient.
- Confirm the deterministic checks with the contract test
scripts/test_performance_computation.py.
ECON cruise speed model
The cruise fuel burn per nautical mile is modeled as
fuel_per_nm(V) = SFC * nm * (c1 * V + c2 / V^3 + c3 * V^7)
with V in m/s: the c1 term is parasite drag (linear in speed), the c2
term is induced drag (falls with V^3, proportional to weight squared
over air density), and the c3 term is transonic drag rise (grows with
V^7). The coefficients come from wing area, drag coefficients, span
efficiency, aspect ratio, thrust specific fuel consumption, and ISA
density; they are order-of-magnitude for a mid-size transport and must
be calibrated per aircraft against the FMS performance manual. No
proprietary performance tables are reproduced.
The ECON speed minimizes total cost per nm:
C(V) = fuel_per_nm(V) + CI * time_per_nm(V)
where time_per_nm is hours per nautical mile. The optimum is found
deterministically by Newton iteration (stdlib only) and clamped into
[M_MIN, M_MMO]. At CI = 0 the optimum collapses to the max range speed
max_range_speed_kts, where fuel per nm is minimum.
Worked example
A mid-size transport at 70,000 kg, cruise FL350. Time cost is 150
currency units per hour, fuel cost 3 currency units per kg:
- CI = 150 / 3 = 50 kg/h.
- ECON: econ_mach_from_cost_index(50, 70000, 35000) gives Mach 0.8041,
TAS 463.5 kts, 5.759 kg fuel per nm. At CI = 0 the speed drops to
Mach 0.8017 (the max range speed); at CI = 999 it clamps at the
envelope limit Mach 0.82.
- Trade over a 1000 nm leg at Mach 0.80 versus Mach 0.82:
fuel_time_trade(50, 70000, 35000, 0.80, 0.82, 1000) reports 9.3 kg
extra fuel and 0.053 h saved, a net cost increase of 6.6 kg
fuel-equivalent at this CI, so Mach 0.82 is slightly faster than
economic here; at the ECON speed the trade against either neighbor
is within 1 kg per 1000 nm.
- Step climb FL350 to FL390 over a 2000 nm leg:
step_climb_benefit(70000, 35000, 39000, 2000) reports cruise fuel
11,517 kg at FL350 versus 11,123 kg at FL390, a 280 kg climb
penalty, and a net benefit of +114 kg, so the step is advised. Over
an 800 nm leg the benefit is negative and the step is not advised.
- Top of descent FL350 to FL100 at 3 degrees flight path angle, TAS
450 kts, 60 kt headwind: top_of_descent(35000, 10000, 3.0, 450, 60)
gives 25,000 ft to lose, gradient 318.4 ft/nm, air distance 78.5
nm, and wind-corrected ground distance 90.6 nm (the headwind
lengthens the descent).
Pitfalls
- Inverting the cost index: CI is time cost per hour divided by fuel
cost per kg (150 / 3 = 50 kg/h) - a high CI means time is expensive
and the FMS flies faster, a low CI flies slower, and CI = 0 selects
the pure fuel-optimal max range speed; swap the ratio and every
ECON selection points the wrong way.
- Trusting the raw optimum outside the Mach envelope: the ECON speed
is clamped into [M_MIN, M_MMO], so a very high CI (999) resolves to
the envelope limit Mach 0.82, not to the unconstrained Newton
optimum - report the clamped Mach for guidance.
- Judging a speed change on time saved alone: the trade is extra fuel
minus CI times time saved (Mach 0.82 over 0.80 burns 9.3 kg extra
for 0.053 h, a net +6.6 kg cost at CI 50), so "faster saves time"
is not "faster is economic" above the max range speed.
- Advising a step climb without the leg length: step_climb_benefit
trades the climb penalty against cruise savings over the leg, so
the step is advised at 2000 nm (+114 kg) but not at 800 nm - a
step that pays over a long leg can lose money on a short one.
- Dropping the wind correction at TOD: the descent distance scales by
TAS over groundspeed, so a 60 kt headwind stretches the 78.5 nm air
distance to a 90.6 nm ground distance - an uncorrected TOD puts the
aircraft high at the constraint.
- Treating the drag model coefficients as aircraft data: the c1/c2/c3
terms are order-of-magnitude for a mid-size transport and must be
calibrated per aircraft against the FMS performance manual - no
proprietary performance table is reproduced in this leaf.
Behavior contract (gate 3)
Run the deterministic contract test (stdlib unittest, offline):
python3 scripts/test_performance_computation.py
The test covers the cost index definition and edge cases, ECON Mach
monotonicity in CI, the CI = 0 max range selection, envelope clamps,
weight and altitude effects, fuel and time trade invariants, ECON cost
neutrality, step-climb verdicts and validation, TOD geometry with
wind correction, ISA helper sanity, and invalid-input edge cases.
Related leaves
- avionics/flight-management/flight-planning: lateral route geometry,
leg distances, and vertical constraint checks for the plan.
- avionics/flight-management/vertical-navigation: descent path
gradient and flight path angle, altitude constraint checks.
- The avionics pack router skills/avionics/SKILL.md dispatches to this
leaf for FMS performance queries.
Compliance
- Standards referenced, not reproduced: DO-178C text is proprietary
(RTCA); the performance methodology here is common knowledge,
summary-only per standards-map.yaml and brief 06. FAR-25 is the
public airworthiness context for transport category performance.
- compliance: STANDARDS-REF, gated: false.
1---2name: performance-computation3description: Use when the task is FMS performance computation, ECON speed selection, cost index, fuel versus time trade, step-climb logic, or top of descent for a flight management system. Compute flight management system performance values: derive the cost index from time and fuel costs, select the ECON cruise Mach that minimizes total fuel and time cost, quantify the fuel-for-time trade between candidate cruise speeds, evaluate step-climb benefit between flight levels, and compute the VNAV top of descent with wind-corrected descent distance for the vertical profile. Produces the ECON Mach and true airspeed, the fuel and time per leg, the step-climb verdict, and the top-of-descent distance from cruise altitude to the arrival constraint. Trigger: cost index, econ cruise speed, fuel time trade, step climb, top of descent, vnav, fms performance.4license: Apache-2.05---67# Performance Computation (avionics/flight-management/performance-computation)89Use when the task is flight management system performance computation:10cost index and ECON cruise speed selection, the fuel and time trade11between candidate speeds, step-climb logic between flight levels, and12the VNAV top of descent for the vertical profile. This leaf is the13performance sibling of avionics/flight-management/flight-planning14(lateral route geometry) and avionics/flight-management/vertical-navigation15(descent path checking); together they cover the FMS performance and16guidance computations that run under the DO-178C airborne software17lifecycle discipline.1819## Domain quick reference2021- Cost index (CI) is the ratio of time cost per hour to fuel cost per22 kilogram, in kg/h. A high CI means time is expensive, so the FMS23 flies faster; a low CI means fuel dominates, so the FMS flies24 slower. CI = 0 selects the pure fuel-optimal (max range) speed.25- ECON cruise speed is the Mach number that minimizes total cost per26 nautical mile: cruise fuel per nm plus CI times time per nm. The27 optimum sits where the marginal fuel cost of flying faster balances28 the marginal time saving, and is clamped to the aircraft Mach29 envelope (M_MIN to M_MMO).30- Cruise fuel per nm comes from a simplified three-term drag model31 (parasite, induced, compressibility) over the ISA atmosphere; the32 induced term grows with weight squared, so heavier aircraft select33 a faster ECON Mach.34- Fuel and time trade: for a fixed leg, a faster speed saves time but35 usually burns more fuel above the max range speed; the net36 fuel-equivalent cost change is extra fuel minus CI times time37 saved, and is near zero at the ECON speed.38- Step-climb logic trades the extra climb fuel against the lower39 cruise fuel at a higher flight level; the step is advised when the40 cruise saving exceeds the climb penalty plus a margin.41- VNAV top of descent (TOD) is the distance from the descent start to42 the target altitude: altitude to lose divided by the descent43 gradient (about 318 ft/nm for a 3 degree flight path angle),44 corrected for wind by scaling by TAS over groundspeed. A headwind45 lengthens the descent distance, a tailwind shortens it.46- Typical FMS functions in this leaf: cost index derivation, ECON47 Mach selection, cruise speed trade, step-climb benefit, and TOD48 distance with wind correction.4950## Workflow51521. Derive the cost index with cost_index from the time cost per hour53 and fuel cost per kg.542. Select the ECON cruise Mach with econ_mach_from_cost_index for the55 weight and cruise altitude; inspect the detail with56 econ_speed_summary (Mach, TAS, fuel per nm, time per nm, total57 cost per nm).583. Compare candidate speeds over a leg with fuel_time_trade to get59 the extra fuel, time saved, and net fuel-equivalent cost change.604. Evaluate a step climb between flight levels with61 step_climb_benefit; step when step_advised is true.625. Compute the vertical profile descent with top_of_descent to get63 the wind-corrected TOD distance and gradient.646. Confirm the deterministic checks with the contract test65 scripts/test_performance_computation.py.6667## ECON cruise speed model6869The cruise fuel burn per nautical mile is modeled as7071 fuel_per_nm(V) = SFC * nm * (c1 * V + c2 / V^3 + c3 * V^7)7273with V in m/s: the c1 term is parasite drag (linear in speed), the c274term is induced drag (falls with V^3, proportional to weight squared75over air density), and the c3 term is transonic drag rise (grows with76V^7). The coefficients come from wing area, drag coefficients, span77efficiency, aspect ratio, thrust specific fuel consumption, and ISA78density; they are order-of-magnitude for a mid-size transport and must79be calibrated per aircraft against the FMS performance manual. No80proprietary performance tables are reproduced.8182The ECON speed minimizes total cost per nm:8384 C(V) = fuel_per_nm(V) + CI * time_per_nm(V)8586where time_per_nm is hours per nautical mile. The optimum is found87deterministically by Newton iteration (stdlib only) and clamped into88[M_MIN, M_MMO]. At CI = 0 the optimum collapses to the max range speed89max_range_speed_kts, where fuel per nm is minimum.9091## Worked example9293A mid-size transport at 70,000 kg, cruise FL350. Time cost is 15094currency units per hour, fuel cost 3 currency units per kg:9596- CI = 150 / 3 = 50 kg/h.97- ECON: econ_mach_from_cost_index(50, 70000, 35000) gives Mach 0.8041,98 TAS 463.5 kts, 5.759 kg fuel per nm. At CI = 0 the speed drops to99 Mach 0.8017 (the max range speed); at CI = 999 it clamps at the100 envelope limit Mach 0.82.101- Trade over a 1000 nm leg at Mach 0.80 versus Mach 0.82:102 fuel_time_trade(50, 70000, 35000, 0.80, 0.82, 1000) reports 9.3 kg103 extra fuel and 0.053 h saved, a net cost increase of 6.6 kg104 fuel-equivalent at this CI, so Mach 0.82 is slightly faster than105 economic here; at the ECON speed the trade against either neighbor106 is within 1 kg per 1000 nm.107- Step climb FL350 to FL390 over a 2000 nm leg:108 step_climb_benefit(70000, 35000, 39000, 2000) reports cruise fuel109 11,517 kg at FL350 versus 11,123 kg at FL390, a 280 kg climb110 penalty, and a net benefit of +114 kg, so the step is advised. Over111 an 800 nm leg the benefit is negative and the step is not advised.112- Top of descent FL350 to FL100 at 3 degrees flight path angle, TAS113 450 kts, 60 kt headwind: top_of_descent(35000, 10000, 3.0, 450, 60)114 gives 25,000 ft to lose, gradient 318.4 ft/nm, air distance 78.5115 nm, and wind-corrected ground distance 90.6 nm (the headwind116 lengthens the descent).117118## Pitfalls119120- Inverting the cost index: CI is time cost per hour divided by fuel121 cost per kg (150 / 3 = 50 kg/h) - a high CI means time is expensive122 and the FMS flies faster, a low CI flies slower, and CI = 0 selects123 the pure fuel-optimal max range speed; swap the ratio and every124 ECON selection points the wrong way.125- Trusting the raw optimum outside the Mach envelope: the ECON speed126 is clamped into [M_MIN, M_MMO], so a very high CI (999) resolves to127 the envelope limit Mach 0.82, not to the unconstrained Newton128 optimum - report the clamped Mach for guidance.129- Judging a speed change on time saved alone: the trade is extra fuel130 minus CI times time saved (Mach 0.82 over 0.80 burns 9.3 kg extra131 for 0.053 h, a net +6.6 kg cost at CI 50), so "faster saves time"132 is not "faster is economic" above the max range speed.133- Advising a step climb without the leg length: step_climb_benefit134 trades the climb penalty against cruise savings over the leg, so135 the step is advised at 2000 nm (+114 kg) but not at 800 nm - a136 step that pays over a long leg can lose money on a short one.137- Dropping the wind correction at TOD: the descent distance scales by138 TAS over groundspeed, so a 60 kt headwind stretches the 78.5 nm air139 distance to a 90.6 nm ground distance - an uncorrected TOD puts the140 aircraft high at the constraint.141- Treating the drag model coefficients as aircraft data: the c1/c2/c3142 terms are order-of-magnitude for a mid-size transport and must be143 calibrated per aircraft against the FMS performance manual - no144 proprietary performance table is reproduced in this leaf.145146## Behavior contract (gate 3)147148Run the deterministic contract test (stdlib unittest, offline):149150 python3 scripts/test_performance_computation.py151152The test covers the cost index definition and edge cases, ECON Mach153monotonicity in CI, the CI = 0 max range selection, envelope clamps,154weight and altitude effects, fuel and time trade invariants, ECON cost155neutrality, step-climb verdicts and validation, TOD geometry with156wind correction, ISA helper sanity, and invalid-input edge cases.157158## Related leaves159160- avionics/flight-management/flight-planning: lateral route geometry,161 leg distances, and vertical constraint checks for the plan.162- avionics/flight-management/vertical-navigation: descent path163 gradient and flight path angle, altitude constraint checks.164- The avionics pack router skills/avionics/SKILL.md dispatches to this165 leaf for FMS performance queries.166167## Compliance168169- Standards referenced, not reproduced: DO-178C text is proprietary170 (RTCA); the performance methodology here is common knowledge,171 summary-only per standards-map.yaml and brief 06. FAR-25 is the172 public airworthiness context for transport category performance.173- compliance: STANDARDS-REF, gated: false.