FAA Registration Models
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 / identifierMFR(Optional[str]) — manufacturerMODEL(Optional[str]) — modelTYPE_ACFT(Optional[str], aliasTYPE-ACFT) — aircraft type codeTYPE_ENG(Optional[str], aliasTYPE-ENG) — engine type codeAC_CAT(Optional[str], aliasAC-CAT) — aircraft categoryBUILD_CERT_IND(Optional[str], aliasBUILD-CERT-IND) — build/cert indicatorNO_ENG(Optional[str]) — number of enginesNO_SEATS(Optional[str]) — number of seatsAC_WEIGHT(Optional[str]) — weight classSPEED(Optional[str]) — speed classTC_DATA_SHEET(Optional[str], aliasTC-DATA-SHEET) — type certificate data sheetTC_DATA_HOLDER(Optional[str], aliasTC-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 / identifierMFR(Optional[str]) — manufacturerMODEL(Optional[str]) — modelTYPE(Optional[str]) — engine type classificationHORSEPOWER(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, defaultFAA),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_NUMBERis required (Field(...)) and documented as the tail number identifier.faa_to_epoch()defensively validates FAA date format (YYYYMMDD) and returnsNoneon parse failure.- Embedded models tolerate unknown upstream fields via
extra="ignore"(at the embedded model level).