AircraftOps
Search
Posts

FAA Registration Models

Entities → Registry

Domain models representing FAA aircraft registration records and their associated enrichment payloads, including aircraft reference metadata, engine reference data, and normalized registrant attributes. These models define the canonical schema used by ingestion pipelines to transform raw FAA registry datasets into structured DynamoDB entities and search-ready registry documents, supporting enrichment, normalization, and cross-dataset linking workflows across the platform.


AircraftModelRef

Purpose

Embedded aircraft reference payload used to enrich an FAA registration record with aircraft make/model and categorical attributes from ACFTREF-like datasets. Designed to accept raw FAA/registry keys while preserving a clean Python attribute interface.

Fields
  • CODE (str) — aircraft model code / identifier
  • MFR (Optional[str]) — manufacturer
  • MODEL (Optional[str]) — model
  • TYPE_ACFT (Optional[str], alias TYPE-ACFT) — aircraft type code
  • TYPE_ENG (Optional[str], alias TYPE-ENG) — engine type code
  • AC_CAT (Optional[str], alias AC-CAT) — aircraft category
  • BUILD_CERT_IND (Optional[str], alias BUILD-CERT-IND) — build/cert indicator
  • NO_ENG (Optional[str]) — number of engines
  • NO_SEATS (Optional[str]) — number of seats
  • AC_WEIGHT (Optional[str]) — weight class
  • SPEED (Optional[str]) — speed class
  • TC_DATA_SHEET (Optional[str], alias TC-DATA-SHEET) — type certificate data sheet
  • TC_DATA_HOLDER (Optional[str], alias TC-DATA-HOLDER) — type certificate holder
Validation rules
  • populate_by_name = True — supports population by field name or alias (e.g. TYPE-ACFT).
  • extra = "ignore" — unknown fields are discarded to tolerate evolving upstream schemas.

EngineRefModel

Purpose

Embedded engine reference payload used to enrich an FAA registration record with engine manufacturer/model and basic performance descriptors. Intended to be tolerant of partial data and external keying conventions.

Fields
  • CODE (str) — engine model code / identifier
  • MFR (Optional[str]) — manufacturer
  • MODEL (Optional[str]) — model
  • TYPE (Optional[str]) — engine type classification
  • HORSEPOWER (Optional[str]) — horsepower (if applicable)
  • THRUST (Optional[str]) — thrust (if applicable)
Validation rules
  • populate_by_name = True — consistent instantiation behavior across raw/normalized keys.
  • extra = "ignore" — unknown fields are discarded to tolerate upstream changes.

FAARegistrationModel

Purpose

Primary enriched FAA registry entity. Combines core FAA registration identifiers, registrant metadata, status and classification fields, and embedded ACFTREF/ENGINE references. Persists as a DynamoDB item and supports projection into normalized registry shape and Typesense search documents.

Fields
  • Core identifiers: N_NUMBER (str), source (str, default FAA), UNIQUE_ID (Optional[str])
  • Raw FAA identifiers: SERIAL_NUMBER, MFR_MDL_CODE, ENG_MFR_MDL (Optional[str]), YEAR_MFR (Optional[int])
  • Enriched objects: MODEL (Optional[AircraftModelRef]), ENGINE (Optional[EngineRefModel])
  • Registrant info: TYPE_REGISTRANT (Optional[RegistrantTypeEnum]), NAME, STREET, STREET2, CITY, STATE, ZIP_CODE, COUNTY, COUNTRY, REGION
  • Status + classification: STATUS_CODE (Optional[StatusCodeEnum]), CERTIFICATION (Optional[str]), AIRWORTHINESS_CLASS (Optional[AirworthinessClassEnum]), TYPE_AIRCRAFT (Optional[AircraftTypeEnum]), TYPE_ENGINE (Optional[EngineTypeEnum])
  • Transponder: MODE_S_CODE, MODE_S_CODE_HEX (Optional[str])
  • Ownership: FRACT_OWNER (Optional[str])
  • FAA dates (YYYYMMDD): LAST_ACTION_DATE, CERT_ISSUE_DATE, AIR_WORTH_DATE, EXPIRATION_DATE (Optional[int])
Validation rules
  • N_NUMBER is required (Field(...)) and documented as the tail number identifier.
  • faa_to_epoch() defensively validates FAA date format (YYYYMMDD) and returns None on parse failure.
  • Embedded models tolerate unknown upstream fields via extra="ignore" (at the embedded model level).