# CifpRunway

Runway records containing physical and navigational characteristics of individual runway ends at airports

**Source:** CIFP table `CIFP_RUNWAY` · version `239462ba9c35` · effective 2026-04-16

> Each record describes a single runway end (threshold). Runway pairs (e.g., RW03/RW21) are stored as separate records. Coordinates represent the landing threshold position. Section code PG indicates Airport Runway records per ARINC 424.

## Example query

```graphql
# Introspect the CifpRunway type in GraphiQL at https://api.nav.sortie.co/graphql
# Example shape (pair with a compatible root query field):
{
  # ...rootQuery... {
    recordType
    customerAreaCode
    sectionCode
    airportIcaoIdentifier
  # }
}
```

Run at https://api.nav.sortie.co/graphql (GraphiQL available in-browser).

## Fields

| Field | Type | Description | Units | Enum |
|---|---|---|---|---|
| `recordType` | `RecordType` | Indicates whether the record is a standard record or a tailored record |  | `S`=Standard record |
| `customerAreaCode` | `CustomerAreaCode` | Geographic area code identifying the region of the world where the airport is located |  | `CAN`=Canada; `LAM`=Latin America and Mexico; `PAC`=Pacific (US territories and associated Pacific areas); `SPA`=South Pacific Area; `USA`=Contiguous United States |
| `sectionCode` | `CifpRunwaySectionCode` | ARINC 424 section code identifying the record type; PG indicates Airport Runway records |  | `PG`=Airport Runway |
| `airportIcaoIdentifier` | `String` | ICAO location identifier for the airport to which this runway belongs |  |  |
| `icaoCode` | `IcaoCode` | ICAO region code indicating the geographic region of the airport, used in conjunction with the airport identifier |  | `CY`, `K1`, `K2`, … (23 values) |
| `runwayIdentifier` | `String` | Runway end identifier, typically formatted as RW followed by the magnetic heading rounded to the nearest 10 degrees divided by 10, with optional L/R/C suffix for parallel runways (e.g., RW03, RW21L) |  |  |
| `continuationRecordNo` | `String` | Continuation record number; 0 indicates the primary record, numbers 1 and above indicate continuation records with additional data for the same runway |  |  |
| `runwayLength` | `String` | Full length of the runway in feet, measured from threshold to threshold (end to end) | feet |  |
| `runwayMagneticBearing` | `String` | Magnetic bearing of the runway end expressed in tenths of degrees (e.g., 0303 = 030.3 degrees magnetic). Represents the direction an aircraft faces when landing on this runway end. | degrees magnetic (tenths) |  |
| `runwayLatitude` | `String` | Latitude of the landing threshold for this runway end, encoded as hemisphere indicator followed by degrees, minutes, and seconds (e.g., N59052000 = N 59° 05' 20.00") | degrees, minutes, seconds |  |
| `runwayLongitude` | `String` | Longitude of the landing threshold for this runway end, encoded as hemisphere indicator followed by degrees, minutes, and seconds (e.g., W156275000 = W 156° 27' 50.00") | degrees, minutes, seconds |  |
| `runwayGradient` | `String` | Gradient of the runway expressed as a percentage, positive values indicate upslope in the direction of landing, negative values indicate downslope. Null if not applicable or not published. | percent |  |
| `ellipsoidHeight` | `String` | Height of the landing threshold above the WGS-84 ellipsoid, used for GPS/GNSS-based approach computations. Null if not published. | feet |  |
| `landingThresholdElevation` | `String` | Elevation of the landing threshold above mean sea level (MSL), expressed as a 5-digit value in feet | feet MSL |  |
| `displacedThresholdDist` | `String` | Distance from the runway end to the displaced threshold in feet. A value of 0000 indicates no displaced threshold. | feet |  |
| `thresholdCrossingHeight` | `String` | Height in feet above the threshold elevation at which the aircraft on a normal glide path crosses the runway threshold (TCH). Used for approach design and obstacle clearance. | feet AGL |  |
| `runwayWidth` | `String` | Width of the runway in feet | feet |  |
| `tchValueIndicator` | `TchValueIndicator` | Indicates the source or type of the Threshold Crossing Height (TCH) value |  | `D`=Default TCH value used (no published TCH available); `I`=ILS-derived TCH value; `R`=RNAV-derived TCH value; `V`=VOR/DME or other navaid-derived TCH value |
| `localizerMlsGlsRefPathIdent` | `String` | Identifier of the primary Localizer, MLS, or GLS reference path associated with this runway end (e.g., ILS localizer identifier). Null if no such navaid is associated. |  |  |
| `localizerMlsGlsCategoryClass` | `IlsCategory` | Category or class of the primary Localizer, MLS, or GLS facility associated with this runway end, indicating instrument approach capability |  | `0`=No category or class assigned; `1`=Category I ILS; `2`=Category II ILS; `3`=Category III ILS; `A`=Class A (MLS or GLS); `L`=Localizer only (no glide slope) |
| `stopway` | `String` | Length of the stopway (overrun area) beyond the runway end in feet. Null if no stopway exists. | feet |  |
| `localizerMlsGlsRefPathIdent2` | `String` | Identifier of a secondary Localizer, MLS, or GLS reference path associated with this runway end, used when a runway end has more than one instrument approach navaid. Null if not applicable. |  |  |
| `localizerMlsGlsCategoryClass2` | `LocalizerMlsGlsCategoryClass2` | Category or class of the secondary Localizer, MLS, or GLS facility associated with this runway end |  | `2`=Category II ILS; `3`=Category III ILS; `A`=Class A (MLS or GLS) |
| `runwayDescription` | `String` | Free-text description or notes associated with the runway record. Often null. |  |  |
| `fileRecordNo` | `String` | Sequential file record number assigned to this record within the CIFP data file, used for internal referencing and quality control |  |  |
| `cycleDate` | `String` | AIRAC cycle date indicating when this record was last updated, formatted as YYMM (e.g., 2504 = year 2025, cycle 04) |  |  |

## Enum values

### `icaoCode` (`IcaoCode`)

| Code | Description |
|---|---|
| `CY` | Canada |
| `K1` | Contiguous US (FAA region 1) |
| `K2` | Contiguous US (FAA region 2) |
| `K3` | Contiguous US (FAA region 3) |
| `K4` | Contiguous US (FAA region 4) |
| `K5` | Contiguous US (FAA region 5) |
| `K6` | Contiguous US (FAA region 6) |
| `K7` | Contiguous US (FAA region 7) |
| `NS` | Pacific (US minor outlying islands) |
| `PA` | Alaska |
| `PF` | Alaska (FAA Flight Service region) |
| `PG` | Guam and Mariana Islands |
| `PH` | Hawaii |
| `PK` | Marshall Islands |
| `PM` | Midway Islands |
| `PO` | US Pacific Island territories |
| `PP` | Pacific (general) |
| `PT` | Trust Territory of the Pacific |
| `PW` | Wake Island |
| `TI` | US Virgin Islands |
| `TJ` | Puerto Rico |
| `PC` | PC |
| `PS` | PS |

## Column provenance

Every field maps 1:1 to a column in the `CIFP_RUNWAY` table of `nasr.db`. Original FAA column names:

| GraphQL field | SQLite column |
|---|---|
| `recordType` | `RECORD_TYPE` |
| `customerAreaCode` | `CUSTOMER_AREA_CODE` |
| `sectionCode` | `SECTION_CODE` |
| `airportIcaoIdentifier` | `AIRPORT_ICAO_IDENTIFIER` |
| `icaoCode` | `ICAO_CODE` |
| `runwayIdentifier` | `RUNWAY_IDENTIFIER` |
| `continuationRecordNo` | `CONTINUATION_RECORD_NO` |
| `runwayLength` | `RUNWAY_LENGTH` |
| `runwayMagneticBearing` | `RUNWAY_MAGNETIC_BEARING` |
| `runwayLatitude` | `RUNWAY_LATITUDE` |
| `runwayLongitude` | `RUNWAY_LONGITUDE` |
| `runwayGradient` | `RUNWAY_GRADIENT` |
| `ellipsoidHeight` | `ELLIPSOID_HEIGHT` |
| `landingThresholdElevation` | `LANDING_THRESHOLD_ELEVATION` |
| `displacedThresholdDist` | `DISPLACED_THRESHOLD_DIST` |
| `thresholdCrossingHeight` | `THRESHOLD_CROSSING_HEIGHT` |
| `runwayWidth` | `RUNWAY_WIDTH` |
| `tchValueIndicator` | `TCH_VALUE_INDICATOR` |
| `localizerMlsGlsRefPathIdent` | `LOCALIZER_MLS_GLS_REF_PATH_IDENT` |
| `localizerMlsGlsCategoryClass` | `LOCALIZER_MLS_GLS_CATEGORY_CLASS` |
| `stopway` | `STOPWAY` |
| `localizerMlsGlsRefPathIdent2` | `LOCALIZER_MLS_GLS_REF_PATH_IDENT_2` |
| `localizerMlsGlsCategoryClass2` | `LOCALIZER_MLS_GLS_CATEGORY_CLASS_2` |
| `runwayDescription` | `RUNWAY_DESCRIPTION` |
| `fileRecordNo` | `FILE_RECORD_NO` |
| `cycleDate` | `CYCLE_DATE` |
