True to magnetic bearing calculator
A true bearing of 90° with 7.5° east declination becomes 82.5° magnetic: enter the bearing and the signed declination, and the result is wrapped into the compass range from 0° up to 360°. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- True bearing
- 90
- Declination
- 7.5
- Magnetic bearing
- 82.5
- Precision
- 6
This true to magnetic bearing calculator converts a direction referenced to geographic north into the equivalent direction referenced to magnetic north. Supply the true bearing and the local magnetic declination explicitly; the calculator subtracts east-positive declination and normalizes the answer to a compass bearing from 0 degrees inclusive to 360 degrees exclusive. It does not guess your position, date, or declination. That narrow contract makes the result deterministic and useful for navigation exercises, survey notes, map work, and automated software tests.
Understand the north reference before converting
A bearing is meaningful only when its north reference is known. A true bearing is measured clockwise from geographic, or true, north: the direction of a meridian toward the geographic North Pole. A magnetic bearing is measured clockwise from magnetic north, which is the direction indicated by an ideal magnetic compass after local instrument effects are excluded.
The angular difference between those references is magnetic declination, also called variation in some aviation and marine material. This calculator uses the common east-positive convention: an easterly declination is entered as a positive number, while a westerly declination is entered as a negative number. To go from true to magnetic, subtract the signed declination.
For example, a true bearing of 90 degrees with 7.5 degrees east declination becomes 82.5 degrees magnetic. With 7.5 degrees west, enter minus 7.5, so the same true bearing becomes 97.5 degrees magnetic. Keeping the sign in the value avoids a separate east-or-west switch and makes the rule easy to reproduce in code, spreadsheets, worksheets, and field calculations.
Check the convention printed on your chart or supplied by your data source, because reversing its sign is the most common cause of a plausible but incorrect result.
Supply declination explicitly and read the normalized result
The true bearing may be written outside the usual compass interval when data comes from accumulated rotations or arithmetic: the calculator normalizes it into the range from 0 inclusive to 360 exclusive. It then subtracts declination and normalizes again, so a result that crosses north wraps cleanly. A true bearing of 2 degrees with an east declination of 8 degrees produces minus 6 before wrapping and therefore returns 354 degrees magnetic.
Negative true bearings and values greater than 360 are handled by the same modular rule. Declination remains a signed offset rather than being normalized, because changing a west value such as minus 12 into 348 would destroy its meaning.
Use the conversion responsibly in navigation workflows
The calculation is intentionally local and algebraic. It does not look up declination from coordinates, infer a location from an address, or calculate how the magnetic field changes with date. Obtain declination for the relevant place and epoch from an appropriate chart, navigation authority, survey record, or geomagnetic model, then pass that value explicitly.
This separation is valuable in audited work because the source of the declination remains visible and the bearing conversion stays reproducible. Hikers can translate a true map course for compass practice, pilots and mariners can check training problems that specify charted variation, and survey teams can convert true-north azimuths for comparison with magnetic observations. The same deterministic function runs without network access, randomness, or the current date, so identical inputs produce identical outputs.
Remember that real compass navigation may also require correction for instrument deviation, nearby metal, electrical equipment, grid convergence, and updated field data. Those effects are outside this calculator; it performs only the stated true-minus-declination conversion and makes no claim to replace operational navigation procedures.
What you can do with it
Map course to compass bearing
Convert a true-north map course into a magnetic bearing after obtaining current local declination.
Navigation training
Check aviation, marine, surveying, or outdoor education exercises with an explicit east-positive variation.
FAQ
What formula does the calculator use?
It uses magnetic bearing = true bearing − declination, with east-positive declination, then normalizes the result to [0, 360).
How do I enter west declination?
Enter west declination as a negative number. Subtracting that negative value increases the magnetic bearing.
Does it find declination from my location?
No. You must provide local declination explicitly from a suitable source for the relevant location and date.
What happens when the result is negative?
The result wraps around north into the standard bearing interval. For example, minus 6 degrees becomes 354 degrees.
Is magnetic declination the same as variation?
Yes. Aviation and marine charts often call it variation, but it is the same angle between true north and magnetic north. Enter it with east as positive and west as negative, whichever name your chart uses.
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/geo/true-to-magnetic \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"true_bearing":90,"declination":7.5}'const res = await fetch("https://api.kit.forhosting.com/geo/true-to-magnetic", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"true_bearing": 90,
"declination": 7.5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/true-to-magnetic",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"true_bearing": 90,
"declination": 7.5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/true-to-magnetic", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"true_bearing":90,"declination":7.5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"true_bearing":90,"declination":7.5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/true-to-magnetic", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"true_bearing": 90,
"declination": 7.5
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.true_to_magnetic",
"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
Supply declination explicitly and read the normalized result
Enter true_bearing and declination as finite numbers in degrees. The optional precision field controls displayed decimal places from zero through twelve and defaults to six; numeric JSON output naturally omits insignificant trailing zeros. Inputs must be actual JSON numbers. Missing values, text such as “north,” non-finite numbers, excessive magnitudes, and invalid precision values are rejected as invalid_input instead of being guessed. The response repeats the normalized true bearing and supplied declination, gives magnetic_bearing, reports precision, and includes the formula so downstream users can audit the convention without consulting hidden state.
Use the conversion responsibly in navigation workflows
A browser calculation is useful for individual checks, while an API request costs $0.002 when the conversion belongs in an automated pipeline.
Integration use cases
Software test fixtures
Generate deterministic normalized magnetic bearings for mapping and compass application tests.
Technical questions
How much does the API cost?
Each API request costs $0.002. The interactive browser calculator is free.