# CifpApproach

ARINC 424 Section 4.1 instrument approach procedure records defining all legs, fixes, and constraints for published approach procedures at airports

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

> Each row represents one leg (sequence step) of an approach procedure. Multiple rows with the same SID_STAR_APPROACH_IDENTIFIER and TRANSITION_IDENTIFIER form a complete procedure segment. CONTINUATION_RECORD_NO > 1 indicates continuation records with supplemental data rather than primary leg data.

## Example query

```graphql
{
  cifpApproaches(airportIdentifier: "KSFO", limit: 20) {
    airportIdentifier
    sidStarApproachIdentifier
    transitionIdentifier
    sequenceNumber
    fixIdentifier
  }
}
```

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

## Fields

| Field | Type | Description | Units | Enum |
|---|---|---|---|---|
| `recordType` | `CifpApproachRecordType` | Indicates whether the record is a standard record or a tailored record |  | `S`=Standard record; `T`=Tailored record |
| `customerAreaCode` | `CustomerAreaCode` | Geographic area code identifying the ICAO region or country grouping for the record |  | `CAN`=Canada; `LAM`=Latin America and Caribbean; `PAC`=Pacific (excluding Alaska/Hawaii specific); `SPA`=South Pacific Area; `USA`=United States |
| `sectionCode` | `String` | ARINC 424 section code identifying the record type; PF indicates Airport Approach Procedures (heliport or standard airport approach) |  |  |
| `airportIdentifier` | `String` | ICAO four-character identifier of the airport or heliport for which the approach procedure is defined |  |  |
| `icaoCode` | `CifpApproachIcaoCode` | ICAO region code associated with the airport identifier, used to resolve identifier uniqueness across regions |  | `K1`, `K2`, `K3`, … (19 values) |
| `sidStarApproachIdentifier` | `String` | The coded identifier for the approach procedure (e.g., ILS28, RNAV-A, VOR16R), up to 6 characters |  |  |
| `routeType` | `RouteType` | Identifies the type of approach procedure or segment represented by this record |  | `A`, `B`, `D`, … (14 values) |
| `transitionIdentifier` | `String` | Identifies the transition segment of the approach procedure; may be a fix name for an IAF transition, 'ALL' for common transitions, or blank/special codes for the final approach segment |  |  |
| `sequenceNumber` | `String` | Sequence number defining the order of leg records within a transition segment, incremented in steps of 10 |  |  |
| `fixIdentifier` | `String` | The identifier of the waypoint, navaid, airport, or runway fix that terminates or defines this approach leg |  |  |
| `icaoCode2` | `IcaoCode2` | ICAO region code associated with FIX_IDENTIFIER, used to resolve fix identifier uniqueness; corresponds to the subsection defined by SECTION_CODE_2 |  | `CY`, `K`, `K1`, … (23 values) |
| `sectionCode2` | `SectionCode2` | ARINC 424 section/subsection code indicating the data type of FIX_IDENTIFIER (what kind of database table the fix is found in) |  | `D`=VHF Navaid (VOR, DME, VORTAC, TACAN); `DB`=NDB Navaid; `EA`=Enroute Waypoint; `PC`=Terminal (Approach/SID/STAR) Waypoint; `PG`=Runway; `PN`=Terminal NDB Navaid |
| `continuationRecordNo` | `ContinuationRecordNo` | Indicates whether this is a primary record or a continuation record providing additional data for the same leg |  | `0`=Primary record (no continuation); `1`=First continuation record; `2`=Second continuation record |
| `waypointDescriptionCode` | `String` | Up to four character coded field describing the role and type of the fix/waypoint in the procedure. First character indicates waypoint type, second indicates fly-over/fly-by, third/fourth indicate special attributes |  | `E`, `E  A`, `E  B`, … (54 values) |
| `turnDirection` | `TurnDirection` | Specifies the direction of a turn associated with this leg when a turn is required |  | `L`=Left turn; `R`=Right turn |
| `rnp` | `String` | Required Navigation Performance value for this leg segment. Stored as integer representing tenths of nautical miles (e.g., 010 = 1.0 NM, 030 = 3.0 NM, 112 = 0.112 NM) | nautical miles (implied decimal: divide by 100) |  |
| `pathAndTermination` | `PathAndTermination` | ARINC 424 path terminator code defining how this leg is flown and what ends it |  | `AF`, `CA`, `CD`, … (19 values) |
| `turnDirectionValid` | `TurnDirectionValid` | Indicates whether the TURN_DIRECTION field is mandatory (required) for this leg or advisory only |  | `Y`=Turn direction is mandatory |
| `recommendedNavaid` | `String` | Identifier of the recommended navaid (VOR, DME, NDB, etc.) used for tuning to fly this leg; provides primary navigation reference |  |  |
| `icaoCode3` | `IcaoCode3` | ICAO region code associated with RECOMMENDED_NAVAID, used to resolve navaid identifier uniqueness |  | `CY`, `K1`, `K2`, … (14 values) |
| `arcRadius` | `String` | Radius of the arc for RF (Radius to Fix) or AF (Arc to Fix) leg types, measured in nautical miles | nautical miles |  |
| `theta` | `String` | Magnetic bearing from the recommended navaid to the fix (radial from navaid), expressed in tenths of degrees | degrees magnetic (tenths) |  |
| `rho` | `String` | Distance (DME) from the recommended navaid to the fix, expressed in tenths of nautical miles | nautical miles (tenths) |  |
| `magneticCourse` | `String` | Magnetic course (inbound or outbound) to be flown for this leg, expressed in tenths of degrees | degrees magnetic (tenths) |  |
| `routeHoldingDistanceOrTime` | `String` | For holding patterns: inbound leg length as distance or time. For procedure turns: distance from fix. Interpretation depends on context (distance in tenths of NM or time in tenths of minutes) | nautical miles or minutes (tenths) |  |
| `recommendedNavaid2` | `RecommendedNavaid2` | Section/subsection code indicating the type of the RECOMMENDED_NAVAID, used to look up the navaid in the appropriate database table |  | `D`=VHF Navaid (VOR, DME, VORTAC, TACAN); `DB`=NDB Navaid; `PI`=ILS/LOC (localizer); `PN`=Terminal NDB; `PT`=Terminal TACAN |
| `altitudeDescription` | `String` | Coded field describing how ALTITUDE and ALTITUDE_2 values should be interpreted as altitude constraints for this leg |  | `+`, `-`, `B`, … (9 values) |
| `atcIndicator` | `AtcIndicator` | Indicates that the altitude constraint is an ATC-imposed restriction rather than a procedure design constraint |  | `A`=ATC altitude restriction |
| `altitude` | `String` | Primary altitude constraint for this leg (interpretation defined by ALTITUDE_DESCRIPTION). May represent crossing altitude, minimum altitude, maximum altitude, or glide slope intercept altitude | feet MSL |  |
| `altitude2` | `String` | Secondary altitude constraint for this leg when ALTITUDE_DESCRIPTION indicates a dual-altitude constraint (e.g., B, G, H, I, J, V) | feet MSL |  |
| `transitionAltitude` | `String` | The transition altitude or transition level applicable at the airport for this procedure, above which flight levels are used | feet MSL |  |
| `speedLimit` | `String` | Speed constraint applicable at this fix/waypoint for the approach procedure | knots |  |
| `verticalAngle` | `String` | Vertical path angle for the approach leg, typically the final approach descent angle (e.g., -300 = -3.00 degrees). Expressed in hundredths of degrees | degrees (hundredths, negative = descent) |  |
| `centerFixOrTaaProcedureTurnIndicator` | `String` | For RF legs: the identifier of the center fix of the arc. For TAA records: the procedure turn indicator. For procedure turns: identifies the associated fix |  |  |
| `multipleCodeOrTaaSectorIdentifier` | `MultipleCodeOrTaaSectorIdentifier` | For procedures with multiple approach types sharing an identifier: a letter differentiating them. For TAA records: identifies the TAA sector (Initial Approach Fix sector) |  | `A`=First variant or TAA straight-in sector; `B`=Second variant or TAA left base sector |
| `icaoCode4` | `IcaoCode4` | ICAO region code associated with CENTER_FIX_OR_TAA_PROCEDURE_TURN_INDICATOR fix, used to resolve its identifier |  | `K`=Contiguous US (general); `N`=North Atlantic/Pacific; `P`=Pacific; `T`=Caribbean/Trust Territory |
| `sectionCode3` | `SectionCode3` | ARINC 424 section/subsection code indicating the database type for the CENTER_FIX_OR_TAA_PROCEDURE_TURN_INDICATOR fix |  | `D`=VHF Navaid; `DB`=NDB Navaid; `PA`=Airport reference point; `PC`=Terminal Waypoint; `PG`=Runway; `PN`=Terminal NDB |
| `gnssFmsIndication` | `GnssFmsIndication` | Indicates GNSS/FMS equipage requirements or qualifications for this approach procedure or leg |  | `0`=No GNSS/FMS indication; `3`=GNSS required; `A`=FMS approach (not RNAV); `B`=GNSS or FMS approach authorized; `P`=GNSS approach (GPS) |
| `speedLimitDescription` | `String` | Qualifier indicating whether the speed limit is a maximum or minimum constraint |  | `+`=At or above speed (minimum speed); `-`=At or below speed (maximum speed) |
| `apchRouteQualifier1` | `ApchRouteQualifier1` | First approach route qualifier providing additional classification of the approach type, precision capability, or special procedure characteristics |  | `A`, `D`, `F`, … (8 values) |
| `apchRouteQualifier2` | `ApchRouteQualifier2` | Second approach route qualifier providing additional detail about the approach, often indicating the approach category or special authorization |  | `C`=Circle-to-land; `H`=Helicopter approach; `S`=Straight-in approach |
| `fileRecordNo` | `String` | Sequential file record number assigned to this record within the CIFP data file, used for traceability and record identification |  |  |
| `cycleDate` | `String` | AIRAC cycle date when this record was last updated, in YYWW format (2-digit year followed by 2-digit AIRAC cycle week number) |  |  |

## Enum values

### `icaoCode` (`CifpApproachIcaoCode`)

| Code | Description |
|---|---|
| `K1` | Contiguous US (ARTCC areas 1) |
| `K2` | Contiguous US (ARTCC areas 2) |
| `K3` | Contiguous US (ARTCC areas 3) |
| `K4` | Contiguous US (ARTCC areas 4) |
| `K5` | Contiguous US (ARTCC areas 5) |
| `K6` | Contiguous US (ARTCC areas 6) |
| `K7` | Contiguous US (ARTCC areas 7) |
| `NS` | North Atlantic/Greenland/Iceland |
| `PA` | Alaska |
| `PF` | Pacific (Micronesia/Marshall Islands area) |
| `PG` | Guam and Mariana Islands |
| `PH` | Hawaii |
| `PK` | Marshall Islands |
| `PM` | Midway Island |
| `PO` | Pacific Ocean |
| `PP` | Pacific (general) |
| `PT` | Trust Territory of the Pacific |
| `TI` | US Virgin Islands |
| `TJ` | Puerto Rico |

### `routeType` (`RouteType`)

| Code | Description |
|---|---|
| `A` | Approach transition (initial and intermediate segments) |
| `B` | LOC Back Course approach |
| `D` | VOR/DME approach |
| `H` | RNP approach (AR) |
| `I` | ILS approach |
| `J` | GLS approach |
| `L` | LOC approach |
| `N` | NDB approach |
| `P` | GPS approach |
| `Q` | NDB/DME approach |
| `R` | RNAV approach |
| `S` | VOR approach using VOR/DME |
| `V` | VOR approach |
| `X` | LDA approach |

### `icaoCode2` (`IcaoCode2`)

| Code | Description |
|---|---|
| `CY` | Canada |
| `K` | Contiguous US (general) |
| `K1` | Contiguous US (ARTCC areas 1) |
| `K2` | Contiguous US (ARTCC areas 2) |
| `K3` | Contiguous US (ARTCC areas 3) |
| `K4` | Contiguous US (ARTCC areas 4) |
| `K5` | Contiguous US (ARTCC areas 5) |
| `K6` | Contiguous US (ARTCC areas 6) |
| `K7` | Contiguous US (ARTCC areas 7) |
| `MM` | Mexico |
| `NS` | North Atlantic/Greenland/Iceland |
| `NZ` | New Zealand |
| `P` | Pacific (general) |
| `PA` | Alaska |
| `PF` | Pacific (Micronesia/Marshall Islands area) |
| `PG` | Guam and Mariana Islands |
| `PH` | Hawaii |
| `PK` | Marshall Islands |
| `PM` | Midway Island |
| `PP` | Pacific (general) |
| `PT` | Trust Territory of the Pacific |
| `TI` | US Virgin Islands |
| `TJ` | Puerto Rico |

### `waypointDescriptionCode` (`String`)

| Code | Description |
|---|---|
| `E` | Essential waypoint (enroute type) |
| `E  A` | Essential waypoint, airport as fix |
| `E  B` | Essential waypoint, fly-over |
| `E  D` | Essential waypoint, DME waypoint |
| `E  F` | Essential waypoint, first leg of missed approach |
| `E  I` | Essential waypoint, IAF |
| `E  M` | Essential waypoint, missed approach point |
| `E M` | Essential waypoint, missed approach point (alt format) |
| `E R` | Essential waypoint, non-essential (radar) |
| `E RF` | Essential waypoint, RF leg arc center |
| `E S` | Essential waypoint, stepdown fix |
| `EB` | Essential fly-over waypoint |
| `EB B` | Essential fly-over waypoint, fly-over |
| `EBM` | Essential fly-over waypoint, missed approach |
| `EE` | End of SID/STAR/approach transition waypoint |
| `EE A` | End waypoint, airport as fix |
| `EE B` | End waypoint, fly-over |
| `EY` | Essential waypoint (terminal type) |
| `EY A` | Essential terminal waypoint, airport as fix |
| `EY F` | Essential terminal waypoint, first leg missed approach |
| `EY M` | Essential terminal waypoint, missed approach point |
| `EYM` | Essential terminal waypoint, missed approach point (alt format) |
| `EYS` | Essential terminal waypoint, stepdown fix |
| `G` | Runway as waypoint |
| `G  M` | Runway waypoint, missed approach point |
| `G M` | Runway waypoint, missed approach point (alt format) |
| `GY M` | Runway terminal waypoint, missed approach point |
| `M` | Missed approach waypoint |
| `N` | NDB navaid as waypoint |
| `N  A` | NDB navaid as waypoint, airport |
| `N  F` | NDB navaid as waypoint, first leg missed approach |
| `N  I` | NDB navaid as waypoint, IAF |
| `N M` | NDB navaid as waypoint, missed approach point |
| `NE` | NDB navaid as essential waypoint |
| `NE A` | NDB navaid as essential waypoint, airport |
| `NY` | NDB navaid as terminal essential waypoint |
| `NY M` | NDB navaid as terminal essential waypoint, missed approach |
| `NYM` | NDB navaid as terminal essential waypoint, missed approach (alt format) |
| `V` | VHF navaid as waypoint |
| `V  A` | VHF navaid as waypoint, airport |
| `V  B` | VHF navaid as waypoint, fly-over |
| `V  D` | VHF navaid as waypoint, DME |
| `V  F` | VHF navaid as waypoint, first leg missed approach |
| `V  I` | VHF navaid as waypoint, IAF |
| `V M` | VHF navaid as waypoint, missed approach point |
| `VB` | VHF navaid fly-over waypoint |
| `VE` | VHF navaid as essential waypoint |
| `VE A` | VHF navaid as essential waypoint, airport |
| `VE B` | VHF navaid as essential waypoint, fly-over |
| `VEM` | VHF navaid as essential waypoint, missed approach |
| `VY` | VHF navaid as terminal essential waypoint |
| `VY M` | VHF navaid as terminal essential waypoint, missed approach |
| `VYM` | VHF navaid as terminal essential waypoint, missed approach (alt format) |
| `Y M` | Terminal waypoint, missed approach point |

### `pathAndTermination` (`PathAndTermination`)

| Code | Description |
|---|---|
| `AF` | Arc to Fix (DME arc to a fix) |
| `CA` | Course to Altitude |
| `CD` | Course to DME Distance |
| `CF` | Course to Fix |
| `CI` | Course to Next Leg Intercept |
| `DF` | Direct to Fix |
| `FA` | Fix to Altitude |
| `FC` | Fix to a Distance on Course |
| `HF` | Hold at Fix with one circuit terminating at the fix |
| `HM` | Hold at Fix with manual termination |
| `IF` | Initial Fix (start of segment) |
| `PI` | Procedure Turn (45/180 or 80/260) |
| `RF` | Radius to Fix (constant radius arc) |
| `TF` | Track to Fix |
| `VA` | Heading to Altitude |
| `VD` | Heading to DME Distance |
| `VI` | Heading to Next Leg Intercept |
| `VM` | Heading to Manual Termination |
| `VR` | Heading to Radial Intercept |

### `icaoCode3` (`IcaoCode3`)

| Code | Description |
|---|---|
| `CY` | Canada |
| `K1` | Contiguous US (ARTCC areas 1) |
| `K2` | Contiguous US (ARTCC areas 2) |
| `K3` | Contiguous US (ARTCC areas 3) |
| `K4` | Contiguous US (ARTCC areas 4) |
| `K5` | Contiguous US (ARTCC areas 5) |
| `K6` | Contiguous US (ARTCC areas 6) |
| `K7` | Contiguous US (ARTCC areas 7) |
| `NS` | North Atlantic/Greenland/Iceland |
| `PA` | Alaska |
| `PG` | Guam and Mariana Islands |
| `PH` | Hawaii |
| `PT` | Trust Territory of the Pacific |
| `TJ` | Puerto Rico |

### `altitudeDescription` (`String`)

| Code | Description |
|---|---|
| `+` | At or above altitude (ALTITUDE field) |
| `-` | At or below altitude (ALTITUDE field) |
| `B` | Between altitudes (at or above ALTITUDE_2 and at or below ALTITUDE) |
| `G` | Glide slope altitude at ALTITUDE, at or above ALTITUDE_2 (for ILS/GLS) |
| `H` | Glide slope altitude at ALTITUDE_2, at or above ALTITUDE |
| `I` | ILS glide slope intercept altitude at ALTITUDE, at or above ALTITUDE_2 |
| `J` | ILS glide slope intercept altitude at ALTITUDE_2, at or above ALTITUDE |
| `V` | Step-down fix altitude at ALTITUDE, at or above ALTITUDE_2 |
| `X` | At altitude (mandatory crossing altitude) |

### `apchRouteQualifier1` (`ApchRouteQualifier1`)

| Code | Description |
|---|---|
| `A` | Autopilot approach (Category I ILS) |
| `D` | DME required |
| `F` | FMS required |
| `J` | GNSS/GPS required |
| `L` | LNAV only |
| `N` | Non-precision approach |
| `P` | PBN/RNAV approach |
| `W` | Weather/visibility minima alternate |

## Column provenance

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

| GraphQL field | SQLite column |
|---|---|
| `recordType` | `RECORD_TYPE` |
| `customerAreaCode` | `CUSTOMER_AREA_CODE` |
| `sectionCode` | `SECTION_CODE` |
| `airportIdentifier` | `AIRPORT_IDENTIFIER` |
| `icaoCode` | `ICAO_CODE` |
| `sidStarApproachIdentifier` | `SID_STAR_APPROACH_IDENTIFIER` |
| `routeType` | `ROUTE_TYPE` |
| `transitionIdentifier` | `TRANSITION_IDENTIFIER` |
| `sequenceNumber` | `SEQUENCE_NUMBER` |
| `fixIdentifier` | `FIX_IDENTIFIER` |
| `icaoCode2` | `ICAO_CODE_2` |
| `sectionCode2` | `SECTION_CODE_2` |
| `continuationRecordNo` | `CONTINUATION_RECORD_NO` |
| `waypointDescriptionCode` | `WAYPOINT_DESCRIPTION_CODE` |
| `turnDirection` | `TURN_DIRECTION` |
| `rnp` | `RNP` |
| `pathAndTermination` | `PATH_AND_TERMINATION` |
| `turnDirectionValid` | `TURN_DIRECTION_VALID` |
| `recommendedNavaid` | `RECOMMENDED_NAVAID` |
| `icaoCode3` | `ICAO_CODE_3` |
| `arcRadius` | `ARC_RADIUS` |
| `theta` | `THETA` |
| `rho` | `RHO` |
| `magneticCourse` | `MAGNETIC_COURSE` |
| `routeHoldingDistanceOrTime` | `ROUTE_HOLDING_DISTANCE_OR_TIME` |
| `recommendedNavaid2` | `RECOMMENDED_NAVAID_2` |
| `altitudeDescription` | `ALTITUDE_DESCRIPTION` |
| `atcIndicator` | `ATC_INDICATOR` |
| `altitude` | `ALTITUDE` |
| `altitude2` | `ALTITUDE_2` |
| `transitionAltitude` | `TRANSITION_ALTITUDE` |
| `speedLimit` | `SPEED_LIMIT` |
| `verticalAngle` | `VERTICAL_ANGLE` |
| `centerFixOrTaaProcedureTurnIndicator` | `CENTER_FIX_OR_TAA_PROCEDURE_TURN_INDICATOR` |
| `multipleCodeOrTaaSectorIdentifier` | `MULTIPLE_CODE_OR_TAA_SECTOR_IDENTIFIER` |
| `icaoCode4` | `ICAO_CODE_4` |
| `sectionCode3` | `SECTION_CODE_3` |
| `gnssFmsIndication` | `GNSS_FMS_INDICATION` |
| `speedLimitDescription` | `SPEED_LIMIT_DESCRIPTION` |
| `apchRouteQualifier1` | `APCH_ROUTE_QUALIFIER_1` |
| `apchRouteQualifier2` | `APCH_ROUTE_QUALIFIER_2` |
| `fileRecordNo` | `FILE_RECORD_NO` |
| `cycleDate` | `CYCLE_DATE` |
