Mass and balance
Beta
POST /v1/planning/mass-balance
Weight and centre of gravity at ramp, takeoff, landing and zero fuel for one loading, checked against the aircraft's weight limits and centre of gravity envelopes, with the centre of gravity path as the trip fuel burns. It computes on the aircraft data in the request: BravoEcho holds no aircraft data, so the answer is only as right as that data. Check it against the aircraft flight manual.
Request:
units:imperial(lb, in, US gallons; the default) ormetric(kg, m, litres).aircraft:empty(weight, andarmormoment, from the weight and balance report);stations(id,arm, optionalmax_weight): seats, baggage areas, cargo;fuel_tanks(id,arm, optionalcapacityin volume, andfuel_typeavgas,jet_aormogas, or your ownunit_weight: avgas and mogas weigh 6.0 lb a gallon or 0.72 kg a litre, jet_a 6.7 lb or 0.80 kg);limits(max_ramp,max_takeoff,max_landing,max_zero_fuel);envelopes(nameandpoints, the polygon as[arm, weight]pairs); optionalmac(leading_edge_arm,length) for the centre of gravity in % MAC. Arms are from the datum, positive aft.load:stations(weight by station id) andfuel(volume by tank id).fuel_burn:taxiandtripfuel in volume, burned from the tanks in proportion to what each holds, unlessburn_ordernames the tanks to empty in turn.
Anything else is 400 unknown_field. A load naming a station or tank the aircraft does not have, or more fuel burned than loaded, is 422.
{
"aircraft": {
"empty": { "weight": 1663, "arm": 39.45 },
"stations": [{ "id": "front_seats", "arm": 37 }, { "id": "rear_seats", "arm": 73 }, { "id": "baggage_1", "arm": 95, "max_weight": 120 }],
"fuel_tanks": [{ "id": "main", "arm": 48, "capacity": 53, "fuel_type": "avgas" }],
"limits": { "max_ramp": 2558, "max_takeoff": 2550, "max_landing": 2550 },
"envelopes": [{ "name": "normal", "points": [[35, 1500], [35, 1950], [39.5, 2550], [47.3, 2550], [47.3, 1500]] }]
},
"load": { "stations": { "front_seats": 340, "rear_seats": 0, "baggage_1": 30 }, "fuel": { "main": 48 } },
"fuel_burn": { "taxi": 1.4, "trip": 20 }
}
Response (shortened):
{
"summary": "Takeoff 2,312.6 lb at 40.84 in, landing 2,192.6 lb at 40.45 in. The centre of gravity stays within the normal envelope from takeoff to landing.",
"ok": true,
"units": { "system": "imperial", "weight": "lb", "arm": "in", "fuel": "gal" },
"phases": {
"ramp": { "weight": 2321, "moment": 94859.35, "cg_arm": 40.87, "cg_mac_pct": null, "fuel": 48, "envelopes": [{ "name": "normal", "within": true }] },
"takeoff": { "weight": 2312.6, "moment": 94456.15, "cg_arm": 40.844, "cg_mac_pct": null, "fuel": 46.6, "envelopes": [{ "name": "normal", "within": true }] },
"landing": { "weight": 2192.6, "moment": 88696.15, "cg_arm": 40.452, "cg_mac_pct": null, "fuel": 26.6, "envelopes": [{ "name": "normal", "within": true }] },
"zero_fuel": { "weight": 2033, "moment": 81035.35, "cg_arm": 39.86, "cg_mac_pct": null, "fuel": 0, "envelopes": [{ "name": "normal", "within": true }] }
},
"limits": [{ "what": "takeoff weight", "value": 2312.6, "max": 2550, "margin": 237.4, "ok": true }],
"cg_path": [{ "name": "normal", "within": true, "leaves_after_burning": null }],
"stations": [{ "id": "front_seats", "weight": 340, "arm": 37, "moment": 12580 }],
"notes": ["BravoEcho holds no aircraft data: every figure comes from the request, and the answer is only as right as it is. Check it against the aircraft flight manual.", "Lateral balance is not computed."]
}
ok: every limit met, and when envelopes are given, the centre of gravity within at least one of them all the way from takeoff to landing.phases: weight, moment, centre of gravity (cg_arm, andcg_mac_pctwithmac), the fuel left and each envelope's verdict. A point on an envelope's edge is within it.limits: each station, tank and phase weight against its maximum, with the margin.cg_path: each envelope against the centre of gravity as the trip fuel burns;leaves_after_burningis the fuel burned after takeoff when it leaves.