Simplified heat index calculator
At 86 °F and 65 % relative humidity, the simplified heat index comes out at 87.36 °F, a quick reading of how muggy air adds to the heat. Built for moderate conditions and fast comparisons, not severe-heat warnings. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Temperature (°F)
- 86
- Relative humidity
- 65
- Heat index f
- 87.36
This simplified heat index calculator combines air temperature in degrees Fahrenheit with relative humidity to estimate how warm moderate heat may feel. It uses the low-order Steadman approximation, a compact deterministic formula suited to quick screening rather than severe-heat warnings. Enter a finite temperature and a humidity percentage from zero through one hundred. The result is returned in Fahrenheit, rounded to two decimal places, with the original inputs and formula name so automated workflows can record exactly what was calculated.
What the simplified heat index represents
Air temperature alone does not describe how readily perspiration can evaporate from skin. Relative humidity adds useful context because humid air generally slows evaporation, making a warm environment feel more stressful than the thermometer reading suggests. This calculator produces a simplified apparent-temperature estimate from those two measurements.
It is most useful for moderate heat, quick comparisons, educational examples, sensor dashboards, and preliminary comfort checks. The result is not a direct measurement of body temperature, indoor thermal comfort, or personal medical risk. Clothing, sunlight, wind, activity, hydration, age, acclimatization, and health conditions can all change how a person experiences the same weather.
Treat the value as a consistent indicator rather than a complete safety decision. For severe heat, official forecasts and locally published warning guidance should take priority because operational weather services may apply fuller regressions, corrections, exposure assumptions, and policy thresholds that this deliberately compact calculation does not include.
Choosing inputs and interpreting the result
Humidity may be exactly zero or exactly one hundred, but values below zero or above one hundred are rejected because they are outside the defined physical percentage range for this interface. Missing values, numeric strings, infinities, and nonnumeric values are also rejected instead of being silently converted. This strict behavior helps integrations catch unit mistakes and malformed sensor records early.
Check that upstream instruments report Fahrenheit rather than Celsius and percentage rather than a zero-to-one fraction. If a source gives 0.65 for sixty-five percent humidity, convert it to 65 before calling the calculator. For automated use, retain the echoed inputs and formula field alongside the result so later audits can distinguish this approximation from official or more complex models.
What you can do with it
Screen moderate outdoor conditions
Turn a temperature and humidity reading into a quick apparent-temperature estimate before planning routine outdoor work or recreation.
Add context to sensor dashboards
Display a deterministic simplified heat index beside raw Fahrenheit and relative-humidity telemetry without calling a weather service.
Teach apparent-temperature formulas
Demonstrate how humidity influences a low-order heat estimate with a formula that students can reproduce in a spreadsheet.
FAQ
Which heat index formula does this calculator use?
It uses the low-order Steadman approximation: 0.5 × (T + 61 + 1.2 × (T − 68) + 0.094 × RH), with Fahrenheit temperature and percentage humidity.
Why was my humidity rejected?
Relative humidity must be a finite number between 0 and 100 inclusive.
Is this suitable for official heat warnings?
No. It is a simplified estimate for moderate heat. Use official local forecasts and safety guidance when heat exposure may be hazardous.
Can I enter the temperature in Celsius?
No. The formula works in degrees Fahrenheit and returns the result in Fahrenheit, so convert a Celsius reading before you enter it. Mixing scales would give a heat index that means nothing.
Can the heat index be lower than the air temperature?
Yes. With this simplified formula the estimate can land below or above the measured temperature, depending on the temperature and humidity you enter. Compare the two values to see how much the humidity term changes the result.
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/earth/heat-index-simple \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"temp_f":86,"relative_humidity":65}'const res = await fetch("https://api.kit.forhosting.com/earth/heat-index-simple", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"temp_f": 86,
"relative_humidity": 65
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/earth/heat-index-simple",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"temp_f": 86,
"relative_humidity": 65
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/earth/heat-index-simple", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"temp_f":86,"relative_humidity":65}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"temp_f":86,"relative_humidity":65}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/earth/heat-index-simple", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"temp_f": 86,
"relative_humidity": 65
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "earth.heat_index_simple",
"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
How the Steadman approximation is calculated
The calculation uses the low-order Steadman approximation in Fahrenheit: one half of the sum of the air temperature, 61, 1.2 times the difference between the temperature and 68, and 0.094 times relative humidity. The implementation performs this arithmetic directly and rounds only the final value to two decimal places. It does not switch to a higher-order heat-index regression and does not apply dry-air or high-humidity adjustment branches. In symbolic form, the estimate is 0.5 × (T + 61 + 1.2 × (T − 68) + 0.094 × RH), where T is temp_f and RH is relative_humidity. That distinction makes the output easy to reproduce in a spreadsheet, browser, API client, or test suite. Because the same pure function handles every request without network access, random values, stored state, or the current time, identical numeric inputs always produce identical JSON output. The response also identifies the formula as steadman_simple to prevent confusion when results are stored beside values from other heat-index methods.
Choosing inputs and interpreting the result
Provide temp_f as a finite number in degrees Fahrenheit and relative_humidity as a finite percentage. Compare the returned heat_index_f with temp_f to see how the humidity term changes the simplified apparent temperature, but remember that the estimate can be below or above the measured air temperature depending on the inputs.
Technical questions
What units should I provide?
Provide temp_f in degrees Fahrenheit and relative_humidity as a percentage from 0 to 100, not as a zero-to-one fraction.
How much does an API calculation cost?
Each API request costs $0.002. The calculation is deterministic and the browser version can be used without an API request.