{
  "id": "e6b",
  "version": "a92e24af3d9d",
  "status": "published",
  "name": "E6B Calculator",
  "question": "E6B: heading and ground speed?",
  "summary": "E6B calculator, the wind side of the flight computer: true heading, wind correction angle and ground speed from the true course, true airspeed and wind, with headwind, crosswind, time en route and fuel.",
  "category": "physics",
  "subcategory": "weather",
  "url": "https://www.acalculator.org/physics/e6b-calculator",
  "markdown": "https://www.acalculator.org/physics/e6b-calculator.md",
  "kind": "function",
  "method": "SWC = (WS ÷ TAS) × sin(WD − TC); WCA = asin(SWC); heading = TC + WCA; GS = TAS × √(1 − SWC²) − WS × cos(WD − TC); time = distance ÷ GS; fuel = burn per hour × time.",
  "assumptions": [
    "The course, wind direction and heading are all true (winds aloft forecasts are true). Apply magnetic variation and deviation to get a compass heading.",
    "A steady wind over the whole leg; no answer when the crosswind is stronger than the airspeed or the headwind is at least the airspeed."
  ],
  "inputs": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "tc": {
        "title": "True course",
        "description": "The course over the ground you want to fly, in degrees true (0 to 360).",
        "type": "number",
        "minimum": 0,
        "maximum": 360
      },
      "tas": {
        "title": "True airspeed",
        "description": "The aircraft’s true airspeed.",
        "type": [
          "number",
          "string"
        ],
        "x-quantity": "speed",
        "minimum": 0.5144444444444445,
        "maximum": 1028.888888888889
      },
      "wd": {
        "title": "Wind direction",
        "description": "The direction the wind blows from, in degrees true (winds aloft are true).",
        "type": "number",
        "minimum": 0,
        "maximum": 360
      },
      "ws": {
        "title": "Wind speed",
        "description": "The wind speed.",
        "type": [
          "number",
          "string"
        ],
        "x-quantity": "speed",
        "minimum": 0,
        "maximum": 1028.888888888889
      },
      "d": {
        "title": "Distance",
        "description": "The distance of the leg, for the time en route. Leave empty to skip.",
        "type": [
          "number",
          "string"
        ],
        "x-quantity": "length",
        "exclusiveMinimum": 0,
        "maximum": 37040000
      },
      "ff": {
        "title": "Fuel burn per hour",
        "description": "Fuel used per hour in any unit (gal, L, lb), for the fuel for the leg. Leave empty to skip.",
        "type": "number",
        "exclusiveMinimum": 0,
        "maximum": 100000
      }
    }
  },
  "outputs": {
    "heading": {
      "label": "True heading",
      "description": "The heading to fly: true course + wind correction angle, 0 to 360.",
      "format": "number"
    },
    "groundSpeed": {
      "label": "Ground speed",
      "description": "The speed over the ground.",
      "format": "quantity",
      "unit": "kn"
    },
    "wca": {
      "label": "Wind correction angle",
      "description": "Degrees to turn into the wind: positive to the right of the course, negative to the left.",
      "format": "number"
    },
    "correction": {
      "label": "Correct",
      "description": "Which way to turn from the course into the wind.",
      "format": "text"
    },
    "headwind": {
      "label": "Headwind",
      "description": "The wind along the course: WS × cos(WD − course); negative is a tailwind.",
      "format": "quantity",
      "unit": "kn"
    },
    "crosswind": {
      "label": "Crosswind",
      "description": "The wind across the course: WS × |sin(WD − course)|.",
      "format": "quantity",
      "unit": "kn"
    },
    "minutes": {
      "label": "Time en route",
      "description": "Distance ÷ ground speed, in minutes.",
      "format": "number"
    },
    "fuelUsed": {
      "label": "Fuel for the leg",
      "description": "Fuel burn per hour × time en route, in the fuel unit you typed.",
      "format": "number"
    }
  },
  "defaultAnswer": {
    "inputs": {
      "tc": 90,
      "tas": "120 kn",
      "wd": 30,
      "ws": "20 kn",
      "d": "150 nmi"
    },
    "outputs": {
      "heading": 81.70107893206671,
      "groundSpeed": 55.94244873665062,
      "wca": -8.298921067933279,
      "correction": "Left",
      "headwind": 5.144444444444446,
      "crosswind": 8.910439154493224,
      "minutes": 82.76362770238661
    },
    "text": "Fly a true heading of 81.7° (-8.3° correction) for a ground speed of 108.7 kn."
  },
  "examples": [
    {
      "given": {
        "tc": 90,
        "tas": 61.733333333333334,
        "wd": 0,
        "ws": 10.28888888888889,
        "d": 277800
      },
      "expect": {
        "wca": -9.594068226860461,
        "heading": 80.40593177313954,
        "groundSpeed": 60.86988754611383,
        "headwind": 6.300127422280273e-16,
        "minutes": 76.06388292556649
      },
      "source": "Ed Williams, Aviation Formulary V1.47, In-flight wind calculations (SWC = (WS/TAS) sin(WD − CRS); HD = CRS + asin(SWC); GS = TAS √(1 − SWC²) − WS cos(WD − CRS)), https://edwilliams.org/avform147.htm (retrieved 2026-10-05); Wikipedia, E6B (wind correction angle = sin⁻¹((Vw ÷ Va) sin(w − d))), https://en.wikipedia.org/wiki/E6B (retrieved 2026-10-05); hand calculation in content.mdx: SWC = (20 ÷ 120) × sin(−90°) = −1/6; WCA = −9.594°; GS = 120 × √(35/36) = 118.32 kn; 150 ÷ 118.32 h = 76.06 min",
      "tolerance": 1e-9
    },
    {
      "given": {
        "tc": 360,
        "tas": 51.44444444444445,
        "wd": 360,
        "ws": 12.861111111111112,
        "d": 277800,
        "ff": 8
      },
      "expect": {
        "wca": 0,
        "heading": 0,
        "groundSpeed": 38.583333333333336,
        "headwind": 12.861111111111112,
        "minutes": 120,
        "fuelUsed": 16
      },
      "source": "Ed Williams, Aviation Formulary V1.47, In-flight wind calculations (SWC = (WS/TAS) sin(WD − CRS); HD = CRS + asin(SWC); GS = TAS √(1 − SWC²) − WS cos(WD − CRS)), https://edwilliams.org/avform147.htm (retrieved 2026-10-05); hand calculation in content.mdx: SWC = 0, GS = 100 − 25 = 75 kn; 150 ÷ 75 = 2 h = 120 min; 2 h × 8 = 16",
      "tolerance": 1e-9
    },
    {
      "given": {
        "tc": 270,
        "tas": 77.16666666666667,
        "wd": 300,
        "ws": 15.433333333333334
      },
      "expect": {
        "wca": 5.739170477266787,
        "heading": 275.7391704772668,
        "groundSpeed": 63.41420516498768
      },
      "source": "Ed Williams, Aviation Formulary V1.47, In-flight wind calculations (SWC = (WS/TAS) sin(WD − CRS); HD = CRS + asin(SWC); GS = TAS √(1 − SWC²) − WS cos(WD − CRS)), https://edwilliams.org/avform147.htm (retrieved 2026-10-05); hand calculation in content.mdx: SWC = 0.2 × sin 30° = 0.1; WCA = asin(0.1) = 5.739°; GS = 150 × √0.99 − 30 × cos 30° = 149.2481 − 25.9808 = 123.267 kn",
      "tolerance": 1e-9
    }
  ],
  "sources": [
    "Ed Williams, Aviation Formulary V1.47, in-flight wind calculations (heading and ground speed from course, TAS and wind), retrieved 2026-10-05. https://edwilliams.org/avform147.htm",
    "Wikipedia, E6B: the flight computer, its wind side and the wind correction angle formula, retrieved 2026-10-05. https://en.wikipedia.org/wiki/E6B",
    "NIST Special Publication 811 (2008), Appendix B.8: 1 nautical mile = 1,852 m, 1 knot = 1,852 m/h, retrieved 2026-10-05. https://www.nist.gov/pml/special-publication-811"
  ],
  "related": [
    "crosswind",
    "density-altitude",
    "speed"
  ],
  "changelog": []
}
