API reference

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) or metric (kg, m, litres).
  • aircraft: empty (weight, and arm or moment, from the weight and balance report); stations (id, arm, optional max_weight): seats, baggage areas, cargo; fuel_tanks (id, arm, optional capacity in volume, and fuel_type avgas, jet_a or mogas, or your own unit_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 (name and points, the polygon as [arm, weight] pairs); optional mac (leading_edge_arm, length) for the centre of gravity in % MAC. Arms are from the datum, positive aft.
  • load: stations (weight by station id) and fuel (volume by tank id).
  • fuel_burn: taxi and trip fuel in volume, burned from the tanks in proportion to what each holds, unless burn_order names 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, and cg_mac_pct with mac), 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_burning is the fuel burned after takeoff when it leaves.