TAS from Mach and temperature calculator
Mach 0.82 at minus 56.5 °C is about 470 knots true, because the speed of sound in that cold air is only around 295 m/s. Enter Mach and static outside air temperature to feed fuel and time-en-route planning. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Mach
- 0.82
- Oat
- -56.5
- Result
- 241.9557751123
- Temp unit
- C
- Oat c
- -56.5
- Temperature k
- 216.65
High-altitude jet cruise is planned and monitored in Mach, but fuel burn, time en route, and wind triangle work still need true airspeed in knots or kilometres per hour. True airspeed is simply the aircraft’s speed relative to the air mass: Mach times the local speed of sound, and that local speed depends on outside air temperature. This TAS from Mach and temperature calculator accepts a non-negative Mach number and static outside air temperature (Celsius by default, or Kelvin or Fahrenheit), computes dry-air local speed of sound with a equals the square root of gamma R T, multiplies by Mach, and returns true airspeed in metres per second, kilometres per hour, and knots together with the intermediate temperature in kelvin.
Why TAS depends on Mach and outside air temperature
Mach number is a ratio, not a speed: it is true airspeed divided by the local speed of sound in the surrounding air. At high altitude the freestream is cold, so the local speed of sound is lower than the familiar sea-level figure near 340 metres per second or 661 knots. Multiplying a cruise Mach of 0.82 by a sea-level constant therefore overstates true airspeed and will skew fuel and time estimates.
For ideal dry air the local speed of sound is a equals the square root of gamma times R times absolute temperature, with gamma equal to 1.4 and R equal to 287.05 joules per kilogram-kelvin. Outside air temperature from the aircraft static system, converted to kelvin, plugs directly into that expression. True airspeed is then TAS equals Mach times a.
At International Standard Atmosphere sea-level conditions of fifteen degrees Celsius the formula recovers about 340.3 metres per second and 661.5 knots, which is a useful sanity check for Mach 1.0. In the tropopause cold soak around negative fifty-six point five degrees Celsius the same Mach 0.82 yields roughly 470 knots true — the number dispatchers and performance tables expect for modern airliners. This calculator implements exactly that closed form so you do not need a full atmosphere model when you already know Mach and OAT for the cruise segment.
What you can do with it
Dispatch cruise TAS from FMS Mach and OAT
Convert reported cruise Mach and static air temperature into knots true airspeed for fuel and time models without a full performance package.
ATPL and flight-training checks
Let students verify TAS = M × √(γRT) for exam-style OAT and Mach pairs with a deterministic classroom formula.
Telemetry notebooks and APIs
Turn Mach and static temperature streams into SI and knot TAS fields for dashboards and replay tools.
FAQ
How do I calculate true airspeed from Mach and temperature?
Send non-negative mach and oat (outside air temperature).
Why is high-altitude TAS lower than Mach times 661 kt?
Local speed of sound falls as static temperature falls. Using the sea-level 661 kt factor at cold cruise OAT overstates true airspeed; this calculator uses √(γRT) at your OAT instead.
Does this return IAS, CAS, or ground speed?
No. It returns true airspeed only. Indicated/calibrated/equivalent airspeed and wind-triangle ground speed need additional pressure, position error, and wind inputs not accepted here.
How can I sanity-check the result?
Try Mach 1.0 at 15 °C, the standard sea-level temperature. The result should be about 340.3 metres per second, or 661.5 knots, the familiar sea-level figure that the formula recovers under those conditions.
Which temperature should I enter?
Enter the static outside air temperature, the reading from the aircraft's static system, in Celsius, Kelvin or Fahrenheit. Temperatures at or below absolute zero are rejected, because the speed of sound is undefined there.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/travel/tas-from-mach \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"mach":0.82,"oat":-56.5}'const res = await fetch("https://api.kit.forhosting.com/travel/tas-from-mach", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"mach": 0.82,
"oat": -56.5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/travel/tas-from-mach",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"mach": 0.82,
"oat": -56.5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/travel/tas-from-mach", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"mach":0.82,"oat":-56.5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"mach":0.82,"oat":-56.5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/travel/tas-from-mach", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"mach": 0.82,
"oat": -56.5
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "travel.tas_from_mach",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
Invalid Mach, temperatures at or below absolute zero, and missing fields fail with invalid_input and are not billed.
Input contract, units, and response fields
Temperatures at or below absolute zero are rejected because the speed of sound is undefined there. Values are rounded to twelve decimal places for stable cross-runtime goldens. Example: mach 0.82 with oat negative 56.5 Celsius yields local a near 295 metres per second and TAS near 242 metres per second or about 470 knots. Pair the knots figure with your own wind triangle if you need ground speed; this capability does not solve wind or heading. POST a JSON body with two required finite numbers: mach (aliases mach_number, M) must be non-negative, and oat (aliases temperature, t, temp, oat_c, sat) is outside air temperature in the unit named by optional temp_unit. Default temp_unit is C for Celsius; accept K or kelvin and F or fahrenheit as well. Negative Mach is rejected because this endpoint defines Mach as a non-negative ratio of true airspeed to local a. On success the body echoes mach, oat, and temp_unit; adds oat_c and temperature_k for transparency; reports speed_of_sound_mps; and returns tas_mps, tas_kmh, and tas_kt as true airspeed in SI and aviation units. The field result duplicates tas_mps for clients that always read a single numeric result. A formula string restates a equals square root of gamma R T_K and TAS equals M times a, method is mach_times_local_speed_of_sound, and message summarises the cruise numbers in plain language.
Where a TAS-from-Mach API earns its keep
Airline and charter dispatch teams convert FMS Mach and reported OAT into TAS for fuel burn models and ETOPS time checks without opening a full performance suite for a single cruise segment. Flight training organisations and ATPL exam prep sites need a deterministic oracle that matches the gamma-R-T classroom formula rather than a black-box E6B app. Engineering notebooks that already hold Mach and static temperature from telemetry can call a tiny parse API instead of re-deriving sqrt of gamma R T in every language binding. Keep requests small, pin the rounded tas_kt and speed_of_sound_mps in tests, and you get reproducible cruise TAS for planners, LMS plugins, and edge workers without standing up atmosphere libraries of your own.
Technical questions
What temperature units are supported?
Celsius (default), Kelvin, and Fahrenheit via temp_unit. Aliases like celsius, kelvin, and fahrenheit are accepted. OAT must stay strictly above absolute zero.
What does the TAS from Mach calculator cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.