Landing Performance

Calculate landing performance data including approach speeds, required distances, maximum landing weight, and braking requirements.

Calculation Modes

The API supports two calculation modes depending on your use case. The mode is determined by the landingMode parameter.

Dispatch Calculation

Calculate the Maximum Landing Weight (MLW) — the maximum allowable weight for the given conditions.

Use case: Dispatch planning, fuel planning, alternate selection.

How: Set landingMode to "dispatch" (default)

Returns: MLW, limiting factors, required distances

Inflight Calculation

Calculate complete landing data for a specific landing weight.

Use case: Approach preparation, EFB data, pilot briefing.

How: Set landingMode to "inflight" and provide landingWeight

Returns: VREF, VAPP, landing distances, autobrake settings

Request

POST /api

Full Request Structure

JSON
{
  "query": "performance",
  "apiVersion": "1.3.6",
  "data": {
    "requestType": "LANDING",
    "landingMode": "dispatch",
    "units": {
      "weight": "kg",
      "wind": "kt",
      "altitude": "feet",
      "distance": "feet",
      "depth": "mm",
      "pressure": "hpa"
    },
    "aircraft": {
      "file": "737-800W_CFM56-7B26.json",
      "userRegistration": null,
      "virtualAirline": null
    },
    "airport": "EBBR",
    "runway": "25R",
    "weather": {
      "windDirection": 250,
      "windSpeed": 10,
      "headwind": null,
      "temperature": 15,
      "qnh": 1013
    },
    "runwayCondition": {
      "state": "DRY",
      "depth": 0
    },
    "configuration": {
      "flap": "OPTIMUM",
      "autobrake": null,
      "antiIce": "OFF",
      "reverser": "ALL",
      "speedbrake": "AUTO",
      "vrefAdditive": 0,
      "nonNormalCondition": null,
      "approachType": null,
      "landingTechnique": null,
      "missedApproachClimbGradient": 2.5
    },
    "weight": {
      "landingWeight": null,
      "cg": null,
      "cgPosition": null
    },
    "inopItems": {
      "mel": [],
      "cdl": []
    },
    "notam": null
  }
}

Units

The API uses standard units by default. You can override any unit by specifying it in the units object. Response values will be returned in the same units.

Standard Units (Default)

Parameter Standard Unit
weight kg
wind kt (knots)
altitude feet
distance feet
depth mm (millimeters)
pressure hpa (hectopascal)

Custom Units

Override defaults by including the units object:

Parameter Allowed Values
weight kg, lb
wind kt, ms (meters per second)
altitude feet, meter
distance feet, meter
depth mm, inches
pressure hpa, inhg (inch of mercury)

Parameters

Data Source Requirement

Configuration values (flap, autobrake, antiIce, runwayCondition.state, etc.) must match the options provided in the aircraft's formData from the Aircraft API. Custom values not present in formData will be rejected.

landingMode

Parameter Type Default Description
landingMode string "dispatch" "dispatch" — Maximum landing weight calculation. Distances and gradients are calculated differently than inflight.
"inflight" — Actual landing distances and speeds at a given weight. Requires landingWeight.

aircraft Required

Parameter Type Description
file string Required. Aircraft profile filename from Aircraft API
userRegistration string|null Custom aircraft registration for personalized profiles
virtualAirline string|null Virtual airline identifier for VA-specific aircraft

airport & runway Required

Parameter Type Description
airport string Required. ICAO airport code (e.g., "EBBR")
runway string Required. Runway identification from the Airports API (e.g., "25R", "25RI3" intersection, "25RN1" notam)

weather

Parameter Type Default Description
windDirection integer 0 Wind direction in degrees magnetic (0-360)
windSpeed integer 0 Wind speed in knots (or unit specified)
headwind integer|null null Direct headwind component. Negative = tailwind. Overrides direction/speed if provided.
temperature number 15 Outside Air Temperature (OAT) in °C
qnh number 1013 Altimeter setting. Default unit is hPa; set pressure unit to "inhg" to provide and receive values in inches of mercury (e.g., 29.92).

runway_condition

Parameter Type Default Description
state string "DRY" Runway condition value from the aircraft profile conditionDispatch or conditionEnroute options.
depth number 0 Contamination depth in mm (or unit specified). Only used when state indicates contamination.

configuration

Parameter Type Default Description
flap string "OPTIMUM" OPTIMUM (Airbus only) or a specific value from the aircraft profile. Some flap settings include autoland info (e.g., "30|AUTOLAND").
autobrake string|null null Dispatch: ignored (always OFF).
Inflight: "ALL" to iterate all settings (Boeing only), or a specific value from the aircraft profile autobrake options.
antiIce string "OFF" value from the aircraft profile ai options.
reverser string "ALL" value from the aircraft profile reversers options.
speedbrake string "AUTO" value from the aircraft profile groundSpoilers options.
vrefAdditive integer 0 Dispatch: ignored.
Inflight: Speed additive above Vref (0–20 kt). Automatically capped. Minimum 5 kt for autoland approaches.
nonNormalCondition string|null null Dispatch: ignored.
Inflight: Non-Normal Checklist item from the aircraft profile nonNormalConf options. Requires NNC subscription.
approachType string|null null Airbus only. CAT_II, AUTOLAND, MANUAL_LDG
missedApproachClimbGradient number 2.5 Required Missed Approach Climb Gradient (MACG) in percent.
Airbus dispatch: sent directly to the performance calculator as a climb gradient constraint (appClbGrd). The calculator enforces this limit when computing the regulated landing weight.
Boeing dispatch: not sent as a constraint; the calculator returns the actual gradient and the API compares it against this value — an advisory caution is raised if the gradient falls below the required minimum.
Inflight: used for the same advisory comparison as Boeing dispatch (no constraint enforced).
landingTechnique string|null null Airbus only. AUTO_LDG or MANUAL

weight

Parameter Type Default Description
landingWeight number|null null Landing weight in the selected unit. Required when landingMode is "inflight". Ignored in dispatch mode.
cg number|null null Center of gravity as % MAC (Boeing)
cgPosition string|null null CG position from the aircraft profile (e.g. STANDARD, FWD, AFT)

notam

NOTAM (Notice to Airmen) runway restrictions. When provided, the landing distances are adjusted to reflect temporary runway modifications. Requires NOTAM in subscription. Pass null or omit when not applicable.

The shortenStart and shortenEnd values reduce the Landing Distance Available (LDA) accordingly.

All distance values use the distance unit from the units section (default: feet).

Parameter Type Default Description
shortenStart number 0 Runway closure distance from the start threshold. Must be ≥ 0.
shortenEnd number 0 Runway closure distance from the end threshold. Must be ≥ 0.

inopItems

Parameter Type Default Description
mel array [] Minimum Equipment List items (codes from the aircraft profile)
cdl array [] Configuration Deviation List items (codes from the aircraft profile)

Response

Common Response Fields

Field Type Description
calculationPossible boolean true if calculation succeeded
subCalculation string "LANDING_DISPATCH" or "LANDING_INFLIGHT"
units object Unit labels for all returned values (weight, distance, altitude, wind, depth)
caution array Caution and advisory messages (icing, MACG, overweight, brake cooling, etc.)
error string|array Error messages when calculationPossible is false

Performance — General Fields

Returned in both dispatch and inflight modes.

Field Type Description
flap string Selected flap setting
lda integer Landing Distance Available (may be reduced by NOTAM)
isNOTAM boolean true if a NOTAM runway reduction was applied
runwayIdent string Active runway designator

Performance — Weight & Time Fields

Field Type Description
landingWeight integer Dispatch: Calculated max landing weight
Inflight: User-provided landing weight
perfLimitedLandingWeight integer Most restrictive performance-limited landing weight, computed as min(appClimbLimit, fieldLimit, ldgClimbLimit, tireSpeed). Excludes structural (MSLW) and quick-turnaround weight. For Airbus dispatch this equals landingWeight; for Boeing it may differ when the structural cap is the binding constraint.
appClimbLimit integer Approach Climb limited weight
fieldLimit integer Field length limited weight
ldgClimbLimit integer Landing Climb limited weight
quickTurnWeight integer Quick turnaround limited weight
quickTurnTime integer Quick turnaround time (minutes) before next takeoff
structLandingWeight integer Structural max landing weight (MSLW)
tireSpeed integer Tire speed limited weight
limitedBy string Limiting factor code: STRUCT., MACG, FIELD, CLIMB, QUICK, TIRE
isOverweightLanding boolean true when the actual landing weight (inflight) or the calculated max landing weight (dispatch) exceeds the structural maximum landing weight (structLandingWeight / MSLW). When true, an overweight landing caution is also added to cautionMessages referring to FCTM guidance. Always false for dispatch because the dispatch weight is capped at MSLW.

Performance — Balked Landing Procedure (Airbus & Boeing, PRO)

Returned as performance.balkedLandingProcedure for Airbus aircraft (dispatch and inflight modes) and Boeing aircraft (inflight mode). When the active runway's engine-failure procedure (EFP) is non-standard and the user holds a PRO subscription (is_balkedLanding), the API runs a parallel takeoff calculation — DRY runway condition, the same runway at full length, no takeoff weight (regulated maximum, TOGA / no FLEX) — to determine the maximum weight at which a balked landing (go-around) can safely clear obstacles. The go-around takeoff flap is resolved as follows:

  • Airbus — derived from the selected landing flap: CONF FULL → CONF 3, CONF 3 → CONF 2, any optimum/other selection → CONF 3.
  • Boeing — a fixed setting from the aircraft profile (landing.goAroundFlap), independent of the selected landing flap. Defaults to 15 for all 737 variants (737NG / 737MAX) and 20 for every other Boeing type when not explicitly configured on the profile.

When the EFP is standard (STD / STANDARD) the procedure is simply "Follow published missed approach." and no takeoff calculation is run.

When a landing enroute non-normal condition (NNC) other than NONE is selected, the balked-landing procedure is not applicable — the aircraft's configuration and performance are altered enough that the predetermined go-around procedure and its takeoff-weight check no longer apply. In this case procedure is "N/A", isCalculationRequired is false, and no takeoff calculation is run (regardless of EFP or subscription).

Field Type Description
procedure string The runway's engine-failure / balked-landing procedure text (formatted per the user's display preferences). When the EFP is standard, this is "Follow published missed approach." When a landing enroute NNC other than NONE is active, this is "N/A".
isCalculationRequired boolean true when the runway's EFP is non-standard, i.e. a balked-landing takeoff calculation is required. This reflects the logic/warning only and is set regardless of subscription: it is true even for non-PRO users when a PRO user would have triggered a calculation. false when the EFP is standard.
userAllowed boolean true when the subscription includes the PRO balked-landing feature (is_balkedLanding); otherwise false and no weights are computed.
maxLandingWeight integer|null Maximum takeoff weight (in the request's weight unit) at which a go-around can safely clear obstacles from this runway. null when the EFP is standard, the user is not PRO, or the underlying takeoff calculation returned no usable result for this runway.
margin integer|null maxLandingWeight minus the reference landing weight (in the request's weight unit). The reference weight is the user-provided landing weight when supplied, otherwise the calculated dispatch-limited landing weight. Negative when the reference weight exceeds the maximum. null when no max weight was computed.
goAroundFlaps string|null Recommended takeoff flap for the balked-landing (go-around) takeoff. For Airbus, derived deterministically from the selected landing flap (e.g. "CONF 3", "CONF 2"). For Boeing, a fixed value from the aircraft profile, regardless of the selected landing flap (defaults to "15" for 737 variants, "20" for every other Boeing type when the profile doesn't override it). This is informational and does not depend on isCalculationRequired, subscription, or whether maxLandingWeight was computed — it is populated for both standard and non-standard EFP. null only when procedure is "N/A" (landing enroute NNC active), where no balked-landing guidance applies at all.

When the reference landing weight exceeds maxLandingWeight, a caution is added to caution: "In case of balked landing, the aircraft performance at that weight may not be sufficient to safely clear the obstacles. Reduce landing weight, or refer to your operator special procedure."

Performance — Speed Fields

Field Type Description
vRef integer Reference landing speed (knots)
vFly integer Target approach speed = Vref + additive (knots)
vApp integer Speed in the approach configuration (knots). Not to be confused with vFly, which some terminologies may also refer to as "Vapp".
vMca integer Minimum control speed approach (knots)
vrefLabel string Display label for Vref (aircraft-dependent, e.g., "Vref")
vrefAdditive integer Applied Vref additive (inflight only)

Performance — Distance Fields

Field Type Description
requiredLandingDist integer Required landing distance (dispatch only)
factoredLandingDistance integer|null Airbus dispatch only. Factored inflight landing distance at the dispatch landing weight, computed with autobrake OFF and the runway condition converted to its inflight equivalent (e.g. WET → GOOD, SLUSH → MEDIUM-POOR).
actualLandingDistance integer|null Airbus dispatch only. Unfactored actual landing distance at the dispatch landing weight, same conditions as factoredLandingDistance.

Performance — Go-Around Fields

Field Type Description
ldgGaClimbGrad number Calculated go-around climb gradient (%) at 66% of the go-around altitude
goAroundAltitude integer|null Calculated go-around altitude used for the climb gradient calculation. Does not necessarily represent the actual go-around altitude for the procedure being flown.

Performance — Autobrake Results (Inflight Only)

When landingMode is "inflight", the response includes an autobrakeLandingDist array with data for each autobrake setting. Entries are sorted by factoredDistance (shortest first).

Field Type Description
label string Human-readable, customizable autobrake label to display to the user
autobrakeValue string Autobrake value from the aircraft profile autobrake options (e.g., "OFF", "1", "MAX")
airDistance integer Air distance component (flare + ground effect)
landingDistance integer Actual landing distance
landingDistanceIsAboveLDA boolean true if landing distance exceeds LDA
factoredDistance integer Landing distance × landing factor (regulatory)
factoredDistanceIsAboveLDA boolean true if factored distance exceeds LDA
unfactoredDistance integer Actual distance × 0.85 (15% EASA reduction). With NNC: actual distance (no reduction).
unfactoredDistanceIsAboveLDA boolean true if unfactored distance exceeds LDA
order integer Sort order (0 = shortest factored distance)

Performance — Brake Cooling Schedule

Each autobrake entry may include a brakeCoolingSchedule object when the aircraft supports brake cooling data.

Field Type Description
credit string Reverse thrust credit applied (e.g., "CREDIT FOR ALL REVERSE")
aerodynamicDrag boolean Whether aerodynamic drag credit is applied
ground string Cooling time for ground scenario (minutes, "CAUTION", or "FUSE MELT")
air string Cooling time for air scenario (minutes, "CAUTION", or "FUSE MELT")
btms number Brake Temperature Monitoring System value
energy number Adjusted brake energy

Performance — VApp Details (Airbus Only)

Airbus aircraft return a vAppDetails object showing the VApp composition.

Field Type Description
deltaWind number Wind correction component (kt)
athrOn number Auto-thrust ON additive (5 kt if active, 0 otherwise)
deltaIceAccretion number Ice accretion correction (5 or 10 kt)
approachCorrection number APPR_COR = max(athrOn, deltaWind, deltaIceAccretion)
vPilot integer Pilot additional additive
totalVrefCorrection integer Total correction applied = APPR_COR + vPilot

Performance — Inflight Extras

Field Type Description
nonNormalCondition string|null Applied NNC item (inflight only)
runwayExits array Available runway exit points (inflight only)
graphic object Generated SVG/PNG/JPG graphics.
Inflight: factored and unfactored sub-objects, each containing svg, png, jpg URLs.
Dispatch (Airbus only): additionally exposes a dispatch sub-object (single Required Landing Distance chart); factored and unfactored mirror that same image for backwards compatibility.

Dispatch Response Example

JSON
{
  "apiVersion": "1.3.6",
  "copyright": "Calculated by Virtual Performance Tool",
  "disclaimer": "For entertainment and educational use only.",
  "calculationPossible": true,
  "subCalculation": "LANDING_DISPATCH",
  "units": {
    "weight": "kg",
    "distance": "ft",
    "altitude": "ft",
    "wind": "kt",
    "depth": "mm"
  },
  "performance": {
    "flap": "30",
    "lda": 9800,
    "isNOTAM": false,
    "runwayIdent": "25R",
    "appClimbLimit": 66000,
    "fieldLimit": 65400,
    "landingWeight": 65400,
    "perfLimitedLandingWeight": 65400,
    "ldgClimbLimit": 66500,
    "quickTurnWeight": 63000,
    "structLandingWeight": 66361,
    "tireSpeed": 66361,
    "limitedBy": "FIELD",
    "quickTurnTime": 0,
    "ldgGaClimbGrad": 3.12,
    "goAroundAltitude": 1500,
    "balkedLandingProcedure": {
      "procedure": "STRAIGHT AHEAD TO 3000 FT",
      "isCalculationRequired": true,
      "userAllowed": true,
      "maxLandingWeight": 71200,
      "margin": 5800,
      "goAroundFlaps": "CONF 3"
    },
    "vRef": 138,
    "vFly": 138,
    "vApp": 143,
    "vMca": 115,
    "vrefLabel": "Vref",
    "requiredLandingDist": 5200,
    "graphic": {
      "dispatch": {
        "svg": "https://api.virtualperformancetool.com/flightenvelope/Performance/landingResultAirbusDispatch_1_1775923266.svg",
        "png": "https://api.virtualperformancetool.com/flightenvelope/Performance/landingResultAirbusDispatch_1_1775923266.png",
        "jpg": "https://api.virtualperformancetool.com/flightenvelope/Performance/landingResultAirbusDispatch_1_1775923266.jpg"
      },
      "factored": {
        "svg": "https://api.virtualperformancetool.com/flightenvelope/Performance/landingResultAirbusDispatch_1_1775923266.svg",
        "png": "https://api.virtualperformancetool.com/flightenvelope/Performance/landingResultAirbusDispatch_1_1775923266.png",
        "jpg": "https://api.virtualperformancetool.com/flightenvelope/Performance/landingResultAirbusDispatch_1_1775923266.jpg"
      },
      "unfactored": {
        "svg": "https://api.virtualperformancetool.com/flightenvelope/Performance/landingResultAirbusDispatch_1_1775923266.svg",
        "png": "https://api.virtualperformancetool.com/flightenvelope/Performance/landingResultAirbusDispatch_1_1775923266.png",
        "jpg": "https://api.virtualperformancetool.com/flightenvelope/Performance/landingResultAirbusDispatch_1_1775923266.jpg"
      }
    }
  },
  "caution": [],
  "remainingCalculations": 95,
  "extraCalculations": 0
}

Inflight Response Example

JSON
{
  "apiVersion": "1.3.6",
  "copyright": "Calculated by Virtual Performance Tool",
  "disclaimer": "For entertainment and educational use only.",
  "calculationPossible": true,
  "subCalculation": "LANDING_INFLIGHT",
  "performance": {
    "runwayExits": [
      {
        "name": "A6",
        "exitLength": 7696
      },
      {
        "name": "B8",
        "exitLength": 7552
      },
      {
        "name": "B9",
        "exitLength": 7309
      },
      {
        "name": "A5",
        "exitLength": 6092
      },
      {
        "name": "B7",
        "exitLength": 5062
      },
      {
        "name": "A3",
        "exitLength": 4166
      },
      {
        "name": "B5",
        "exitLength": 3996
      },
      {
        "name": "B3",
        "exitLength": 1899
      },
      {
        "name": "B6",
        "exitLength": 4432
      }
    ],
    "nonNormalCondition": null,
    "flap": "30",
    "lda": 10954,
    "isNOTAM": false,
    "runwayIdent": "25R",
    "appClimbLimit": 81311,
    "fieldLimit": 60000,
    "landingWeight": 60000,
    "perfLimitedLandingWeight": 60000,
    "ldgClimbLimit": 86183,
    "quickTurnWeight": 76446,
    "structLandingWeight": 66361,
    "tireSpeed": 86183,
    "limitedBy": "FIELD",
    "quickTurnTime": 55,
    "goAroundAltitude": 1500,
    "ldgGaClimbGrad": 6.5,
    "balkedLandingProcedure": {
      "procedure": "STRAIGHT AHEAD TO 3000 FT",
      "isCalculationRequired": true,
      "userAllowed": true,
      "maxLandingWeight": 71200,
      "margin": 11200,
      "goAroundFlaps": "CONF 3"
    },
    "vApp": 153,
    "vMca": 88,
    "vrefLabel": "Vref",
    "vFly": 142,
    "vRef": 142,
    "requiredLandingDist": 3007,
    "autobrakeLandingDist": [
      {
        "label": "AUTO BRK 3",
        "autobrakeValue": "3",
        "airDistance": 1500,
        "landingDistance": 6404,
        "landingDistanceIsAboveLDA": false,
        "factoredDistance": 6404,
        "factoredDistanceIsAboveLDA": false,
        "unfactoredDistance": 5443,
        "unfactoredDistanceIsAboveLDA": false,
        "brakeCoolingSchedule": {
          "credit": "CREDIT FOR ALL REVERSE",
          "aerodynamicDrag": true,
          "ground": "0",
          "air": "0",
          "btms": 2.3,
          "energy": 14.47
        },
        "order": 0
      }
    ],
    "vrefAdditive": 0,
    "graphic": {
      "factored": {
        "svg": "https://api.virtualperformancetool.com/flightenvelope/Performance/landingResult_1_factored_1775923266.svg",
        "png": "https://api.virtualperformancetool.com/flightenvelope/Performance/landingResult_1_factored_1775923266.png",
        "jpg": "https://api.virtualperformancetool.com/flightenvelope/Performance/landingResult_1_factored_1775923266.jpg"
      },
      "unfactored": {
        "svg": "https://api.virtualperformancetool.com/flightenvelope/Performance/landingResult_1_unfactored_1775923266.svg",
        "png": "https://api.virtualperformancetool.com/flightenvelope/Performance/landingResult_1_unfactored_1775923266.png",
        "jpg": "https://api.virtualperformancetool.com/flightenvelope/Performance/landingResult_1_unfactored_1775923266.jpg"
      }
    }
  },
  "caution": [],
  "units": {
    "altitude": "feet",
    "distance": "feet",
    "weight": "kg",
    "depth": "mm",
    "pressure": "hpa"
  },
  "remainingCalculations": 597,
  "extraCalculations": 50
}

Dispatch vs Inflight — Quick Reference

Feature Dispatch Inflight
Landing weight Calculated (max) User-provided (required)
Autobrake Ignored (OFF) "ALL" or specific value
Vref additive Ignored (0) 0–20 kt (min 5 for autoland)
NNC Not available Optional (subscription required)
MACG Second request at DRY From primary response
Icing check Yes (OAT ≤ 10°C) No
Autobrake distances Not returned Full array with brake cooling
Graphics SVG/PNG/JPG — single dispatch chart (dispatch, factored, unfactored all mirror same image). Airbus only. SVG/PNG/JPG factored & unfactored (per autobrake)
MEL/CDL Accepted Accepted (dispatch calc only)
NOTAM Accepted Optional