Flight radiation calculator
An 8-hour flight at an average of 4 microsieverts per hour gives about 32 µSv, roughly 1.6 chest X-rays. Enter the flight hours and a published dose rate for the route to estimate your cosmic radiation dose. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Duration hours
- 8
- Dose rate
- 4
- Dose usv
- 32 usv
- Dose msv
- 0.032
- Duration minutes
- 480
- Chest xray equivalents
- 1.6
Commercial jet passengers sit above much of the atmosphere that normally shields the ground from galactic cosmic rays and solar energetic particles, so a long-haul hour typically delivers a few microsieverts of equivalent dose. This flight radiation calculator multiplies flight duration in hours by an average dose rate in microsieverts per hour and returns the estimated dose in microsieverts, plus millisieverts and two published reference comparisons.
Cosmic radiation at cruising altitude, explained
Commercial flight radiation is equivalent dose from galactic cosmic rays and, during rare solar particle events, solar energetic particles. At cruise altitude the remaining atmosphere above the cabin is thinner than at sea level, so the secondary-particle shower those primaries produce in nitrogen and oxygen reaches seats more readily. The rate also rises toward the geomagnetic poles, where Earth's magnetic field guides charged particles inward, and it falls toward the equator.
Typical mid-latitude cruise figures sit around three to five microsieverts per hour; polar long-haul sectors can run five to eight; a sea-level hour is only a few hundredths of a microsievert. This calculator does not reconstruct a city-pair route, solar-cycle modulation, or geomagnetic cutoff rigidity. It applies the transparent product that dose in microsieverts equals duration in hours times the average dose rate you supply in microsieverts per hour.
That is the first-order estimate crews, frequent flyers, and clinicians use when they already have a rate from a published table, a previous CARI-7 run, or an airline briefing.
What you can do with it
Frequent-flyer personal totals
Turn each sector's block hours and a published cruise rate into microsieverts, then add the doses across a month of trips without opening a route-dose code.
Pregnancy and occupational first estimates
Give clinicians and travelers a transparent hours-times-rate figure before they commission a CARI-7 or EPCARD city-pair run for a specific itinerary.
FAQ
How is flight radiation dose calculated?
An eight-hour flight at four µSv/h returns thirty-two µSv.
What happens if the flight duration is negative?
A negative duration cannot produce a physical radiation dose and is not billed.
What dose rate should I enter?
Use a published or previously computed average for your sector. Mid-latitude cruise is often about 3–5 µSv/h; polar long-haul can be 5–8 µSv/h. The calculator does not invent a rate from city pairs.
Is this the same as a CARI-7 or airline crew dose report?
No. This is a first-order hours-times-rate estimate. It does not model flight level, geomagnetic latitude, or solar cycle, and it is not a legal dose-of-record.
How does a flight dose compare with an X-ray or natural background?
The result is also shown as chest X-ray equivalents, counting 20 µSv per X-ray, and as a share of the 2400 µSv of natural background a person receives in a year.
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/life/flight-radiation \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"duration_hours":8,"dose_rate":4}'const res = await fetch("https://api.kit.forhosting.com/life/flight-radiation", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"duration_hours": 8,
"dose_rate": 4
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/life/flight-radiation",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"duration_hours": 8,
"dose_rate": 4
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/life/flight-radiation", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"duration_hours":8,"dose_rate":4}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"duration_hours":8,"dose_rate":4}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/life/flight-radiation", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"duration_hours": 8,
"dose_rate": 4
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "life.flight_radiation",
"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.
Limits
max_duration_hours | 10000 |
max_dose_rate | 1000 |
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
A negative duration is rejected as invalid_input instead of inventing a negative exposure. Successful API calls cost $0.002 per item; failed validation is not charged.
What cosmic radiation at altitude is and what the response contains
The response echoes both inputs, returns dose_usv as the primary result, dose_msv as the same quantity divided by one thousand, duration_minutes, a chest-x-ray equivalent using a documented twenty-microsievert PA chest constant, and the fraction of a documented twenty-four-hundred-microsievert annual natural background.
Input contract, formula, and error behaviour
Zero duration or zero rate is legal and returns a zero dose. Magnitudes above the documented ceilings of ten thousand hours and one thousand microsieverts per hour fail rather than silently overflowing. Rounding uses twelve decimal places and collapses negative zero so goldens stay stable across runtimes. Send a JSON body with two required finite numbers. duration_hours is the airborne or block time you want to cost in radiation, including taxi only if your source rate already includes it; aliases duration, hours, flight_hours, time_hours, and flight_duration are accepted so spreadsheets and query strings can reuse the same contract. dose_rate is the average equivalent-dose rate in microsieverts per hour for that sector; aliases rate, dose_rate_usv_h, usv_per_hour, and average_dose_rate keep older column names working. Each field may arrive as a JSON number or as a numeric string with an optional sign and scientific notation. Missing fields, empty strings, non-numeric tokens, and non-finite values fail with invalid_input naming the field. A negative duration_hours is rejected because a flight cannot last minus three hours and a negative product would invent a negative dose; that is the documented error path and it is not billed. A negative dose_rate is also rejected so the model stays a physical exposure estimate rather than a signed ledger. On success the body includes the rounded inputs, dose_usv, dose_msv, duration_minutes, chest_xray_equivalents, annual_background_fraction, unit usv, the formula string dose_usv equals duration_hours times dose_rate, and method duration_times_dose_rate.
Where a flight radiation estimate earns its keep
People reach for a flight radiation calculator when a frequent flyer wants a running personal total after a month of long-haul sectors, when a pregnant traveler or occupational physician needs a first-order number before they open a full route code such as CARI-7 or EPCARD, and when a dispatcher or safety officer converts block hours into an estimated microsievert load for a roster. The tool is also useful in classrooms that teach environmental radioactivity: students can see that an eight-hour ocean crossing at four microsieverts per hour is thirty-two microsieverts, about one and six-tenths of a twenty-microsievert chest radiograph and a little over one percent of typical annual natural background, which puts cabin exposure in context without medical alarmism. Pair it with an equivalent-dose unit converter when you already have sieverts or rem and only need another unit. On this page the work runs entirely in your browser; through the API each successful lookup costs $0.002, failed validation is not charged, and nothing is stored after the response returns. That split matches the rest of the KIT tier-A catalog and lets you move from a kitchen-table estimate to an automated pipeline without changing the mathematical result.
Integration use cases
Aircrew hour-to-dose worksheets
Convert rostered block hours and a briefing dose rate into an estimated microsievert load for planning, teaching, or a dashboard fixture.
Technical questions
What does the flight radiation calculator cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.