Back to Articles|Published on October 27, 2026|30 min read

Landing Aero Article

Magnetic vs True North in Flight Operations Data (WMM2025)

Explainer for OCC data teams on magnetic vs true north in flight operations data: field matrix of documented north references, WMM2025 and WMMHR2025 validity, and a reproducible test of 92 values (2026).

By Landing.aero

Magnetic vs True North in Flight Operations Data (WMM2025)

Summary

  1. 01Direction values become comparable only when their meaning, north reference, source edition, time and location are recorded. Heading and track can share a north while remaining different quantities.
  2. 02Evaluate the options in order: label fields that already share a documented north, retain a supported provider conversion, and validate a ground transformation only when a confirmed gap remains.
  3. 03With east-positive declination, magnetic equals true minus declination, normalised around the compass circle. Apply the rule only to a true-referenced input of known meaning and preserve the raw provider value.
  4. 04The reported test supports one pygeomag implementation within the rounding of the official vectors. Plausible numbers returned for invalid coordinates and incorrect height units show why the adapter needs its own checks.
  5. 05Unknown references, undefined values, model warnings and dates outside validity need explicit statuses. Carry null with a reason code where appropriate, and preserve warning flags through downstream tables, APIs and maps.
Inside this article
  1. 01Executive Summary
  2. 02Introduction and Background
  3. 03Direction Semantics: Meaning, Reference and Context
  4. 04Field Provenance: What Documented Products Say About North
  5. 05Decision Path: Label, Retain or Convert
  6. 06WMM2025 and WMMHR2025: Versions, Validity and Official Assets
  7. 07Reproducible Tests and Synthetic Interface Cases
  8. 08Data Analysis and Evidence
  9. 09Unknown Labels, Escalation and Vendor Questions
  10. 10Case Studies and Real-World Examples
  11. 11Implications and Future Directions
  12. 12Frequently Asked Questions (FAQs)
  13. 13Conclusion

Executive Summary

A direction number in an operations feed is only comparable to another once four things are known: what it measures (heading, track, bearing or wind-from), which north it uses (true, magnetic or grid), which source version produced it, and the time and place it applies to. Primary documentation shows that the north reference belongs to each product and field, not to the word "heading". The US METAR wind is "referenced to true north" [1], the runway number is a magnetic azimuth [2], and the FAA's air traffic control order treats magnetic as the default for controller-issued directions [3]. A dashboard that joins these sources mixes references unless each field is labelled.

For ground-data owners the first decision is about labelling, not mathematics. If two fields already share a documented north, they need an explicit label. If a provider supplies a documented conversion, the provider value is retained as raw data. Only where neither holds does a narrowly scoped ground transformation need validation. NOAA's technical report measures declination clockwise from true north [4], positive east [5], so a true-to-magnetic derivation subtracts an east-positive declination, and that value changes with time and place.

The current model is WMM2025. NOAA's technical report gives its validity as 1 January 2025 to 31 December 2029 [4], while the British Geological Survey states 2025.0 to 2030.0 [6]. The higher-resolution WMMHR2025 carries 18,210 non-zero coefficients where WMM has 336 [7], and NOAA warns that custom WMM code may need additional testing and modification [7]. NOAA publishes official test vectors with heights referenced to the WGS 84 ellipsoid [4].

This research ran one open-source WMM2025 implementation, pygeomag 1.1.0, against all 12 official vectors. All 92 comparisons agreed within the rounding of the published digits (largest differences 0.0500 nT and 0.0050 degrees), which supports that one library in one environment and nothing broader. The same library returned numbers for latitude 91 and for a height in the wrong unit, so range and unit checks belong in the adapter. NOAA's technical report says WMM declination values are inaccurate inside a blackout zone [4], so an undefined or flagged output must stay labelled and never become zero. This is ground-data interpretation, not avionics, navigation-data certification or operational guidance.

92Comparisons matching published rounding in one pygeomag run
0.0500 nTLargest magnetic-field difference in the reported vector comparisons
0.0050 degreesLargest angular difference in the reported vector comparisons
2000 nTHorizontal intensity below which NOAA defines blackout zones

Introduction and Background

Operations-control-centre (OCC) data engineers routinely join surveillance tracks, airport weather and runway data on one map. The recurring question is whether a mismatch between two direction numbers reflects a source-definition difference or a failed conversion. This report is aimed at airline and charter OCC data engineers, ground-dashboard owners and flight-department IT staff. It is not a lesson for pilots and does not support runway selection, crosswind or performance decisions. Students and hobbyists should treat it as a data-handling reference, not a calculator tutorial.

The scope is deliberately narrow. The report documents how named public products define their direction fields, how NOAA and the British Geological Survey (BGS) define and version the World Magnetic Model (WMM), and how a ground team can record, test and label a conversion. It does not propose a new geomagnetic model, claim that every feed uses WMM, or assert that any organisation is migrating to true north. The aeronautical background is only context: an ICAO working paper presented by Canada records that Annex 4 asks for bearings, tracks and radials in degrees magnetic, with an exception for exceptional circumstances (Source: www.icao.int). A later Canadian paper to the ICAO Assembly records a recommendation that ICAO study a change of reference (Source: www.icao.int), which is a request to study, not a decision.

Background on why magnetic north persists is available from OPSGROUP, whose May 2021 article states that bearings, tracks and radials "must still be published in degrees magnetic" (Source: ops.group). Radio Canada International (RCI) listed that article by title among the additional information sources of its 6 May 2021 story on pole movement [8]. That listing is a contextual reference only. This report relies on neither source for scientific or navigation claims, and technical facts come from NOAA, BGS and the aviation authorities.

LANDING.AERO, which publishes this report, builds custom flight operations software. The text is an independent technical reference, and the publisher is not used as a source for any claim in it. All sources were retrieved on 27 October 2026. No live wind, airport value or aircraft-navigation output was validated, and sample values in the worked sections are labelled synthetic.

Direction Semantics: Meaning, Reference and Context

Four quantities that are not interchangeable

A direction number needs a meaning before it needs a reference. The FAA Pilot/Controller Glossary defines a bearing as a horizontal direction usually measured clockwise from true north, magnetic north or some other reference point through 360 degrees [9]. It defines a course as the intended direction of flight measured in degrees from north, without a qualifier [10], and its track entry says direction is usually expressed in degrees from North (True, Magnetic, or Grid) [11]. A feed field named "heading" therefore has no single authoritative definition to inherit.

The practical taxonomy for a ground data model has four meanings:

  • Heading: where the aircraft nose points, which differs from the path over the ground because of wind [12].
  • Track: the path over the ground, typically derived from ground velocity components; the mode-s.org description of ADS-B velocity gives a 0 to 360 degree range "with North at 0" [13].
  • Bearing or course: a direction to or between points, with the reference left open by the FAA glossary [9].
  • Wind-from: the direction the wind blows from, the opposite of the direction of travel; the US METAR wind field is explicitly the direction the wind is blowing from [1].

Heading and track can share the same north and still be different quantities, so a conversion applied to the wrong one may be arithmetically right and semantically wrong.

Three references and the sign of declination

The reference choices are true north, magnetic north and grid north. NCEI defines magnetic declination, sometimes called magnetic variation, as the angle between magnetic north and true north [5], and BGS measures it positive eastwards [14]. NRCan defines true north as the direction from a location to the north geographic pole [15], and NOAA's technical report measures declination clockwise from true north to the horizontal component of the field [4].

Grid north is a separate concept. The technical report describes grivation, also called grid variation, as the angle between grid north and magnetic north [4]. The official test file prints NaN for grid variation in all four equatorial rows and gives numeric values only at latitudes 80 and -80 (observed in this research). OPSGROUP's phrase for variation, the angular difference between the true and magnetic poles (Source: ops.group), is a pole-to-pole description, whereas the operational quantity is the local angle between the two north directions.

Circular angles and wraparound

Compass directions are circular. US interagency wildland fire guidance describes an azimuth as the direction measured in degrees clockwise from north on an azimuth circle [16], and notes that 360 degrees and 0 degrees both mark north [16]. Arithmetic on direction values needs modulo 360 normalisation and comparisons need a circular difference, otherwise 359 and 1 appear 358 degrees apart.

Field Provenance: What Documented Products Say About North

Table 1 below collects documented north references for named products and fields, as stated in each product's own documentation at the editions retrieved. Each row applies to that product only. Nothing in it establishes the reference for any other feed or custom feed, and "not stated" means only that the documentation text reviewed did not state a reference. The contract and schema of each contracted feed remain the authority.

Product / field (edition)Quantity meaningDocumented north referenceUnit and vertical basisStatus for a ground join
US METAR wind direction (FAA AIM 7-1)Wind-fromTrue: "referenced to true north" [1]; AWC and the Federal Meteorological Handbook agree [17] [18]Tens of degrees, nearest 10 [1]Documented true
US winds aloft forecast (AIM 7-1)Wind-fromTrue [1]Degrees and knotsDocumented true
US pilot report wind element (AIM 7-1)Wind-from, pilot-reportedMagnetic [1]Degrees, knotsDocumented magnetic; differs from METAR
US ASOS voice message (1998 user's guide)Wind-fromMagnetic in computer-generated voice messages [19]; true in METAR [19]DegreesOld edition; confirm current product
Canada METAR and SPECI wind (MANOBS, 8th Edition, Amendment 3)Wind-fromTrue, rounded to nearest 10 degrees [20]DegreesDocumented true
Canada voice wind, Southern Domestic Airspace (MANOBS)Wind-fromMagnetic [20]Tens of degreesDocumented magnetic
UK METAR wind vs wind to aircraft (CAP 746)Wind-fromTrue for METAR [21]; magnetic for wind passed to aircraft [21]Degrees, knotsDocumented, two references
Runway designator (FAA AIM 2-3)Runway centreline azimuthMagnetic azimuth [2]Nearest 10 degreesDocumented magnetic
Runway heading, northern Canadian airspace (TC AIM RAC, 2020)Runway headingTrue in the Northern Domestic Airspace [22]DegreesEdition-specific
OpenSky state vector true_trackTrack"clockwise from north (north=0)" [23]; the field name says trueDegrees; velocity in m/s [23]; geo_altitude in metres, datum not named [23]Reference by field name only
FlightAware AeroAPI position headingDescribed as aircraft headingNot stated in the schema text reviewed [24]Altitude in hundreds of feet, datum not stated [24]Ask provider
FlightAware AeroAPI outbound_courseRoute-fix courseTrue [24]Integer degreesDocumented true
FlightAware AeroAPI weather wind_directionDescribed as heading direction of windNot stated in the schema text reviewed [24]DegreesAsk provider
Flightradar24 API trackTrack over groundTrue [25]; 0 can in some cases mean unknown [25]Integer degrees; altitude is barometric AMSL [25]Documented true; zero is ambiguous
Flightradar24 API runway headingRunway headingNot stated [25]DegreesAsk provider
ADS-B Exchange v2 track, mag_heading, true_headingTrack; headingTrack true [26]; mag_heading magnetic [26]; airborne true_heading derived with WMM2020 [26]alt_geom referenced to WGS84 ellipsoid [26]Mixed references in one record
Mode S BDS 6,0 magnetic heading; ADS-B and BDS 5,0 trackHeading; trackMagnetic heading [12]; track angle associated with true north [12]Per message definitionDocumented per message
FAA ASTERIX Category 33 airborne velocityN/S, E/W velocityTrue north (Source: www.eurocontrol.int); surface item carries a true/magnetic flag (Source: www.eurocontrol.int)Per specificationFlag must be read

The row pattern matters more than any single entry. Several products carry more than one reference inside a record, as in the ADS-B Exchange documentation, which says the reference for a navigation-selected heading field is not defined in DO-260B [26]. Other products document the reference on one field and leave a neighbouring field unstated. Neither pattern is a defect to report. It is the reason a field-by-field matrix, sourced to the contract in force, should exist before any join. The UK and Canadian rows show a third pattern: one authority publishes true values in the observation product and magnetic values for aircraft, and a SKYbrary summary states the same split for ATIS wind (Source: skybrary.aero).

Heights need the same treatment because the model input is ellipsoidal. The FAA's advisory circular on ADS-B position sources says geometric altitude is the height above the WGS-84 ellipsoid and "not MSL" [27], and ICAO material records WGS-84 as the horizontal geodetic reference system for air navigation (Source: www.icao.int). A barometric altitude is a different quantity, and the National Geodetic Survey states that converting an ellipsoid height to an orthometric height requires a geoid model [28].

Heading and track can share the same north and still be different quantities, so a conversion applied to the wrong one may be arithmetically right and semantically wrong.

Decision Path: Label, Retain or Convert

The decision in this report has three outcomes, evaluated in order:

  • Label only: the fields already share a documented north.
  • Retain vendor output: a supported conversion exists and the raw value is kept.
  • Validate a ground transformation: neither of the above holds.

Outcome 1: the fields already share a north and need only a label

If the contracts for two fields name the same reference, no conversion is needed. The work is a schema change: add a reference attribute and a meaning attribute to the direction columns, with the source product and edition. The US and Canadian METAR winds are both documented as true [1] [20], so a dashboard joining them needs a label and no arithmetic.

Outcome 2: a supported vendor conversion exists

Where a provider documents a converted field, keep the provider value as raw data and keep any derivative separately. The ADS-B Exchange documentation illustrates why: an airborne true heading may be derived from a transmitted magnetic heading using a named model, WMM2020 in that documentation [26]. A ground team that re-derives the value with WMM2025 may get a different number, and neither is wrong, because they differ in model epoch. If the provider discloses no model, the field should carry a status of "provider model undisclosed", not an assumed one.

Outcome 3: a narrowly scoped ground transformation needs validation

A transformation is justified only when the source reference is documented, a different reference is needed, and no supported conversion exists. Three limits apply. First, published magnetic values may not equal a fresh model evaluation: the FAA AIM explains that SID and STAR procedures use the airport magnetic variation of record [29] and that area navigation systems display magnetic course only for pilot reference [29]. A ground recomputation is not a substitute for any published magnetic value. Second, nothing here changes an aircraft database, because a ground model lifecycle is separate from aeronautical data publication. Third, results must carry their validity context, described below.

The conversion, using the east-positive sign convention [14], is magnetic equals true minus declination, normalised to 0 to 360 degrees. This follows from the definition and is shown with its inverse in the test sketch later. It applies only to a true-referenced input of a known meaning; applying it to a magnetic value, or to a track as if it were a heading, silently changes the data.

Figure 01
Decide whether to label, retain or convert
  1. 01Label only

    When fields already share a documented north, add reference and meaning attributes with the source product and edition. No conversion is needed.

  2. 02Retain vendor output

    Where a provider documents a converted field, retain that provider value as raw data and keep any derivative separately.

  3. 03Validate a ground transformation

    Proceed only when the source reference is documented, a different reference is needed, and no supported conversion exists. Carry the model and validity context with the result.

WMM2025 and WMMHR2025: Versions, Validity and Official Assets

What each model is

NOAA's National Centers for Environmental Information (NCEI) and BGS jointly produce the WMM. WMMHR2025 is a higher-resolution companion, with approximately 300 kilometres resolution at the equator against 3300 kilometres for the standard model [30]. The NCEI page gives 18,210 non-zero coefficients for WMMHR against 336 for WMM [7].

NOAA states that custom implementations of WMM software may need additional testing and modification [7]. The technical report encourages all users to use WMMHR in systems that can support the additional coefficients [4]. A ground team should read these as statements about models and software, not as an aviation approval of either: more resolution alone does not make a conversion suitable for any operational purpose.

Validity and lifecycle: reading the pages consistently

Public wording on validity is not uniform, so the technical report is the stable reference. The NCEI overview says WMM2025 was released on 17 December 2024 and will remain valid until late 2029 [31]. The technical report says the models are valid from 1 January 2025 to 31 December 2029 [4]. BGS states validity for 2025.0 to 2030.0 [6], and NOAA's WMMHR file description uses the same decimal-year range [7]. These are consistent if 2030.0 is read as the start of 2030 (an inference, not a NOAA statement). An implementation should store the model epoch and the stated end of validity as data.

The coefficient file has one header line, 90 coefficient lines and two terminating lines [31]. The header carries an epoch, a model name and a release date, and NOAA notes the release date has no significance in the field calculation [31]. A model identifier record should therefore store epoch and name, and use the release date as a label only.

Height basis and inputs

The technical report says heights are with respect to the WGS 84 ellipsoid [4], and the official test file defines field 2 as the height above the WGS84 ellipsoid in kilometres [32]. NOAA states that the effect of a geoid height correction is negligible in magnetic declination [31], and the technical report notes the user can enter the height directly [4]. The GeoJSON coordinate convention adds two traps: its first two elements are longitude then latitude [33], and its optional third element is a height in metres [33], whereas NOAA's test file uses latitude, longitude and kilometres.

Warnings, blackout zones and storms

NOAA defines blackout zones as areas where horizontal intensity H is less than 2000 nT [34], and says WMM declination values are not accurate there and compasses are unreliable [34]. The technical report says it is the user's responsibility to use the correct zone for the current time [4]. Beyond the zones, NOAA says some local, regional and temporal declination anomalies can exceed 10 degrees [34]. The technical report advises against use during extreme G5-class storms [4]. A model warning is information to preserve and show, never a value to hide.

Licence and citation

NOAA states that the WMM source code is in the public domain and not licensed or under copyright [31]. Derived software and records should still carry the model name, epoch and the DOI citation NOAA publishes on the product page, which becomes part of the reproducibility record below.

Figure 02
Standard and higher-resolution magnetic models
WMM2025Standard model
  • Approximately 3300 kilometres resolution at the equator.
  • Carries 336 non-zero coefficients.
WMMHR2025Higher-resolution companion
  • Approximately 300 kilometres resolution at the equator.
  • Carries 18,210 non-zero coefficients.

Custom WMM implementations may need additional testing and modification. WMMHR was not tested in the reported run, and more resolution alone does not establish operational suitability.

Reproducible Tests and Synthetic Interface Cases

What was run

The test used pygeomag, a Python package that describes itself as a direct port of the legacy C code provided by NOAA [35] and states that it tests official NOAA values for WMM-2025 and WMMHR-2025 [35]. Release 1.1.0 was installed from PyPI into an isolated Python 3.13 environment on Linux on 27 October 2026. The coefficient file shipped with the package was used, and its header names WMM-2025, epoch 2025.0 and release date 11/13/2024. This research did not compare that file with NOAA's own download, so the checksum below identifies the exact file used and nothing more. All 12 data rows of the official file were compared.

The same approach applies to a magnetic variation table or database held in a ground system: validate it against the official vectors, then record what was tested. Table 2 lists the reproducibility record a ground team should keep for any implementation. The values are measured results from this one run, not benchmarks of any operator system.

Record fieldValue in this run
Official input and expected outputNOAA WMM2025_TEST_VALUES.txt, 12 rows: dates 2025.0 and 2027.5, heights 0 and 100 km (ellipsoid), positions (80, 0), (0, 120) and (-80, 240) [4]
Model and epochWMM-2025, epoch 2025.0 (from the coefficient header)
Implementationpygeomag 1.1.0, legacy-C port; WMMHR not tested
Coefficient file checksum (SHA-256)dfa8597825af4e0b87ff4198a5b4fb661b3c49f4cd090cd0164e0259b075582f
Expected precisionOfficial values printed to 0.1 nT and 0.01 degrees, so the rounding bound is 0.05 nT and 0.005 degrees
Observed maximum differenceX 0.0482, Y 0.0440, Z 0.0487, H 0.0500, F 0.0454 nT; inclination 0.0050, declination 0.0046, grid variation 0.0046 degrees
Result92 of 92 comparisons within the rounding bound; grid variation skipped in 4 rows where the official value is NaN
Not coveredWMMHR, rows outside the 12 official ones, annual-rate columns, other implementations
ReviewPending by the competent operator or vendor; this record is not an approval

The result is interpreted narrowly. H and inclination sit exactly at the rounding limit, which is what rounding to the printed digits produces, so the tolerance is a statement about published digits and not about field accuracy. Three sample comparisons show the scale, for rows at 2025.0 and height 0 km. Declination was 1.28 officially against 1.281 from the library at latitude 80, longitude 0. At latitude 0, longitude 120 it was -0.16 against -0.158, with grid variation NaN against a null result. At latitude -80, longitude 240 it was 68.78 against 68.775, with grid variation -51.22 against -51.225.

Synthetic interface checks (Hypothetical Example)

The sketch below is a ground-adapter test fixture. All inputs are synthetic, not live winds or headings, and it is a data-labelling exercise, not a navigation tool. It carries the raw provider value unchanged, requires a meaning and a reference, validates coordinates, and returns a status instead of guessing.

from dataclasses import dataclass

@dataclass(frozen=True)
class Direction:
    value_deg: float   # raw provider value, never overwritten
    meaning: str       # "heading" | "track" | "bearing" | "wind_from"
    north: str         # "true" | "magnetic" | "grid" | "unknown"

def wrap360(a): return a % 360.0

def true_to_magnetic(true_deg, decl_east_deg):
    return wrap360(true_deg - decl_east_deg)   # declination positive east

def magnetic_to_true(mag_deg, decl_east_deg):
    return wrap360(mag_deg + decl_east_deg)

def derive(d, decl_east_deg, lat, lon):
    if d.north == "unknown":
        return None, "UNRESOLVED_REFERENCE"
    if not (-90.0 <= lat <= 90.0 and -180.0 <= lon <= 180.0):
        return None, "COORDINATE_OUT_OF_RANGE"
    if d.north != "true":
        return None, "NOT_TRUE_INPUT"
    return true_to_magnetic(d.value_deg, decl_east_deg), "DERIVED"

Running it gave these synthetic results:

  • Wraparound: a true value of 358 with east declination 3 gives magnetic 355, and the inverse returns 358; a true value of 2 gives 359 and returns 2; 360 with zero declination gives 0.
  • Sign convention: a true value of 5 with declination -12.812 gives 17.812 and round-trips to 5. This tests sign consistency only, not whether the declination value is right, which is the job of the official vectors.
  • Status paths: an unknown reference returns UNRESOLVED_REFERENCE, latitude 91 returns COORDINATE_OUT_OF_RANGE, and a true wind-from of 10 with declination 3 returns 7 with status DERIVED.

Acceptance cases and observed behaviour

Table 3 lists acceptance cases for a ground conversion layer and, where the selected library was probed, what it did. Expected behaviour must follow the actual library and the source contract, so where nothing was probed the table states an adapter rule only. No operational threshold is invented.

CaseAdapter rule or contract checkObserved with pygeomag 1.1.0 (probe on 27 October 2026)
Unknown north referenceStatus UNRESOLVED_REFERENCE; no derivativeNot applicable to the library
Track supplied where heading expectedReject on meaning mismatch; heading differs from track because of wind [12]Not applicable
Wind-from versus direction of travelCarry meaning "wind_from" explicitly [1]Not applicable
Degrees versus radiansReject direction values outside 0 to 360 degrees; library documents degreesA height of 10668 supplied as kilometres instead of metres returned declination -4.119 against -12.779 for 10.668 km, with no error
East/west signRound-trip test with a fixed east-positive convention [5]Declination negative at latitude 45, longitude -75 (-12.812 at 2026.8)
0 and 360 normalisationModulo 360 and circular difference [16]See synthetic results above
Different model epochsStore model name, epoch and validityDates 2031.0 and 2024.5 raised ValueError by default; with the library's allow flag, 2031.0 returned -12.525 against -12.812 at 2026.8
Time outside model validityLabel OUT_OF_VALIDITY; do not extrapolate silently [4]As above: extrapolation only on request
Mean-sea-level height as ellipsoid heightRecord height basis per feed [27]Docstring mentions either basis; no geoid conversion found in the package source; 10.668 km against 0 km moved declination from -12.812 to -12.779
Out-of-range coordinateReject before calling the libraryLatitude 91 and longitude 400 each returned a number without error
WMMHR coefficients in a custom parserTreat as a new implementation needing its own vectors (see the model section above)WMMHR not tested here
Provider already converted, converted againKeep raw and derived separate with a flag; double conversion shifts by one declinationNot applicable; synthetic: a magnetic 355 mistaken for true gives 352 with declination 3
Warning or undefined value lost in JSONJSON does not permit NaN or Infinity [36]; map to null plus a statusGrid variation returned None at the equator; at latitude 86, longitude 140 a blackout-zone flag was set yet declination -153.54 was returned by default, and an exception only when requested

Three results deserve emphasis. The library accepted an out-of-range latitude and a unit error and returned plausible-looking numbers, so the adapter is the place for range and unit validation. The blackout-zone probe returned a number together with a flag, which makes the flag a first-class output to carry to the dashboard. And the validity check raised by default but could be waived by a parameter, so a waiver must be visible in the provenance record.

Data Analysis and Evidence

Magnitudes in the official vectors

The 12 official vectors show the range of the quantity being converted. Declination in the retrieved file runs from -0.24 degrees (2027.5, latitude 0, longitude 120, height 0 km) to 68.78 degrees (2025.0, latitude -80, longitude 240, height 0 km). The southern high-latitude value shows that a mismatch of many degrees between feeds can be a legitimate declination and not a defect. At a synthetic mid-latitude point (latitude 45, longitude -75, 2026.8) the library returned -12.812 degrees, so a direction labelled with the wrong reference could be wrong by over 12 degrees without any defective conversion.

Model performance checkpoints

NOAA's December 2025 State of the Geomagnetic Field (SoGF) report says global errors remained well below the limits specified for the WMM [37]. The technical report gives global average declination errors of 0.41 degrees for WMM2025 and 0.39 degrees for WMMHR2025 [4]. These describe model performance against satellite-derived data, not any operator system.

Feed arithmetic that follows from documentation

Resolution and unit differences stack. METAR winds are in tens of degrees, rounded to the nearest 10 [1], so a METAR wind cannot support a comparison finer than its own rounding. OpenSky velocity is in m/s [23] while FlightAware groundspeed [24] and Flightradar24 speed [25] are in knots, so a speed join also needs a unit step. These are facts about documented fields, not defects, and the scale of any mismatch depends on the pair of feeds joined, which is why Table 1 is a per-field matrix and not a vendor ranking.

Limits of the evidence

The official vector set is small (12 rows, 92 compared values), and a pass does not generalise to other locations, dates beyond 2027.5, other heights or WMMHR. No survey of operator practice was found, and search-volume and trend data for this topic were unavailable, so the report makes no demand or adoption claim.

Unknown Labels, Escalation and Vendor Questions

Status labels for outputs

A conversion layer needs a small closed set of statuses so that unknown never turns into zero. A workable set is listed below. Each status should travel with the value into every downstream table, API and map tooltip. NOAA's own file prints NaN for an undefined grid variation [32] and JSON does not allow that token [36], so the interface should carry null together with a reason code. The Flightradar24 note that 0 can mean unknown [25] is a reminder that sentinel values need explicit mapping too.

  • DERIVED: a derivative was computed from a documented true input.
  • UNRESOLVED_REFERENCE: the north reference is unknown, so no conversion is attempted.
  • NOT_TRUE_INPUT: the input is not true-referenced, so the true-to-magnetic rule does not apply.
  • COORDINATE_OUT_OF_RANGE: latitude or longitude failed validation.
  • OUT_OF_VALIDITY: the date lies outside the stated model validity.
  • MODEL_WARNING: a blackout or caution flag was returned by the library.
  • PROVIDER_VALUE_RETAINED: only the provider value is kept, with no derivative.

Escalation to people and approved tools

Operational decisions stay in approved tools. A direction mismatch on a dashboard is a data-quality question, and the dashboard should not become a source for runway, crosswind, dispatch or performance judgments. If a mismatch cannot be resolved from the feed contract and the matrix, the path runs to the data owner, the feed provider and the operator's own procedures and manuals. The operator, not an article or a software vendor, decides which product is appropriate. Where a published magnetic value matters, the authoritative record is the published product, not a recomputation [29].

Questions to put to a provider

  • Reference: which north does each direction field use, per field and per product edition?
  • Meaning: is the field heading, track, bearing, course or wind-from, and from or to?
  • Conversion: if a field was converted, which model, epoch and height basis were used, and is the raw value also available?
  • Warnings: how are undefined, blackout-zone and out-of-validity results represented in the payload?
  • Units and rounding: degrees or radians, the rounding rule, and the representation of calm or variable?
  • Change notice: how is a change of model or reference announced, and with what lead time?
  • Rights: what does the licence allow for storing and redistributing raw and derived values?

Case Studies and Real-World Examples

A Small Ground Adapter for a Mixed-Reference Dashboard (Hypothetical Example)

Consider a hypothetical charter operator whose dashboard overlays a surveillance track, a METAR wind and a runway designator on one airport view. The example uses no real operator, feed or airport. The data engineer builds the matrix first and finds the METAR wind documented as true [1], the runway designator a magnetic azimuth [2], and the surveillance track documented as true by its vendor [25]. Two of three fields share a north and need a label. The designator needs a reference attribute, and it is rounded to the nearest 10 degrees (Source: skybrary.aero), so it can never be compared exactly with a recomputed runway bearing.

Nothing in the three fields requires a derived value, so the label change is the complete fix. A later request to show magnetic track would trigger the third outcome, with a model identifier, coefficient checksum and official vector results carried with every derived column. A bespoke integration is warranted only when the contract confirms a real gap, and existing vendor configuration options should be exhausted first.

Implications and Future Directions

The model lifecycle is predictable and the documentation explicit. WMM2025 ends in 2029, and a ground system that stores the model name, epoch and validity end as data, not as constants in code, can accept the next release by adding a record and re-running the official vectors.

Reference conventions in aviation products are also under discussion. A 2022 NAV CANADA briefing deck lays out a proposal in which ATIS and AWOS systems would no longer need updated magnetic variation to convert winds [38], and the ICAO working paper records that modern avionics compute with reference to true north and apply magnetic variation for display (Source: www.icao.int). These are proposals and descriptions, not announced migrations, and no global move to true north or regulatory deadline is asserted here. The matrix should remain a living document, versioned with the contracts it summarises.

The WMMHR path deserves its own test plan, not a flag change. Custom implementations may need modification, as noted above, and NOAA documents test values in the WMMHR coefficient package. A team that later moves from WMM to WMMHR should treat it as a new model identifier in the reproducibility record and compare differences at representative locations as a diagnostic, not as a pass or fail threshold.

For teams that conclude a small ground adapter is justified by a confirmed gap, note that LANDING.AERO, the publisher of this report, is a flight operations software company; this is a publisher disclosure and not a source for any claim above. For crew, dispatch or maintenance products, the established vendors in those categories are the right starting point.

Frequently Asked Questions (FAQs)

How is a true heading converted to a magnetic heading in data?

Use the declination for the position, height and date, and apply the sign convention explicitly. NOAA defines declination as positive east of true north [5], so magnetic equals true minus declination, normalised to 0 to 360. Treat it as a transformation of a known-meaning field and keep the provider's raw value unchanged.

What is the difference between magnetic variation and declination?

NCEI describes magnetic declination as sometimes called magnetic variation [5]; in this report the terms are interchangeable. Grid variation is a different angle, between grid north and magnetic north [4].

Are runway headings magnetic or true?

For the FAA, the runway number is derived from the magnetic azimuth of the centreline [2]. The Transport Canada AIM edition retrieved states that runway heading is given in true in the Northern Domestic Airspace [22]. A designator is rounded to the nearest 10 degrees and is not a measured bearing.

What changed with the World Magnetic Model for 2025?

NOAA released WMM2025 on 17 December 2024 with a high-resolution companion, WMMHR2025 [30], and the technical report gives validity to 31 December 2029 [4]. NOAA's announcement also states that the FAA uses the model to rename airport runways [39]. That describes a use of the model and is not a statement about any ground data feed.

Do all flight data feeds use WMM?

No evidence supports that claim. One documented example derives an airborne true heading with WMM2020 [26], other documents name no model, and a Mode S reference describes aircraft obtaining magnetic heading from a world magnetic model [12]. The model and epoch behind any field must come from the provider.

How should a WMM2025 implementation be validated?

Run it against NOAA's official test values, record the model identifier, coefficient checksum, library version and tolerances, and report per-quantity differences. Official values are given to rounded digits, so tolerances must reflect that rounding, and a pass confirms reproduction of the published vectors only [4].

Conclusion

Magnetic versus true north in flight operations data is a metadata problem before it is a conversion problem. The documented products reviewed use true north for observation winds, magnetic for several voice and designator products, and a mixture inside some surveillance records. A direction number becomes comparable only when its meaning, reference, source edition, time and location are recorded, and when the raw provider value is preserved beside any derivative.

Labelling is the first and often the only step, a supported vendor conversion is the second, and a narrowly scoped ground transformation is the last resort. That last step needs the model identifier, the epoch, the height basis, the coefficient checksum, the official vectors and a closed set of status labels. The test run reported here reproduced all 92 comparable values in NOAA's WMM2025 test file with one library, to the rounding of the published digits, and the probe showed that range and unit checks belong in the adapter. That result is a worked record, not a claim of operator accuracy, aircraft approval or navigation-data certification, and the competent operator or vendor decides what is appropriate for its systems.

External Sources (39)

About

Landing Aero

We Build Flight Operations Software - custom applications designed for aviation.

Disclaimer

This document is provided for informational purposes only. No representations or warranties are made regarding the accuracy, completeness, or reliability of its contents. Any use of this information is at your own risk. Landing Aero shall not be liable for any damages arising from the use of this document. This content was generated with assistance from artificial intelligence tools, which may contain errors or inaccuracies. Readers should verify critical information independently. All product names, trademarks, and registered trademarks mentioned are property of their respective owners and are used for identification purposes only. Use of these names does not imply endorsement. This document does not constitute professional or legal advice. For specific guidance related to your needs, please consult qualified professionals.