Skip to content
0002 - Classification Engine: Flight Trust Levels

0002 - Classification Engine: Flight Trust Levels

Andi Lamprecht Andi Lamprecht ·· 11 min read· Draft

CONFIDENTIAL | DroneUp | April 2026

This document supersedes the classification rules in PRD 0001 Section G. PRD 0001 remains the authoritative source for all other MVP scope; this document provides the detailed classification model.

1. Purpose

Define the classification categories, resolution rules, and UI representation for aircraft trust levels in the live airspace view (Common Operating Picture).

The classification engine takes three independent data inputs – pilot identity, aircraft (UA) identity, and flight intent – and produces a single, deterministic trust level for each aircraft. The output is a color-coded indicator suitable for real-time display and downstream system consumption.

Scope

  • Exact classification rules and the data inputs that feed each level
  • A config-ready axis dictionary that maps directly to software implementation
  • UI representation: colors, overlay states, badges
  • Edge cases: partial data, degraded signals, conflicting inputs
  • How classification changes in real time as conditions evolve
  • Demo narrative arc for stakeholder presentations

Out of Scope

  • Scoring, probabilities, or analytical models – all outputs are rule-based and explainable
  • Real FAA DiSCVR integration (simulated for demo)
  • Cryptographic implementation details (see crypto identity spike)
  • Non-conformance detection internals (reuses existing collision service logic per Ihor)

2. Identity Axes

The classification engine evaluates three independent axes. Each axis has an ordered set of states from lowest to highest trust. These definitions are designed to be used directly as a configuration file.

2.1 Pilot Identity

OrdinalStateKeyDescription
0UnknownunknownNo pilot information available.
1DeclareddeclaredPilot identity claimed via Remote ID broadcast or FAA DiSCVR lookup. Not independently verified.
2VerifiedverifiedPilot authenticated through a strong identity provider (e.g., login.gov). Identity independently confirmed.

2.2 UA (Drone) Identity

OrdinalStateKeyDescription
0UnknownunknownNo aircraft information available. Raw telemetry only.
1Declared (Remote ID)declared_ridAircraft broadcasts standard Remote ID. Identity claimed but not independently verified.
2Software VerifiedsoftwareSoftware-anchored identity via certificate. Revocable, but no hardware binding.
3Hardware VerifiedhardwareHardware PKI on the aircraft. Strong non-repudiation – identity is bound to physical hardware.

2.3 Flight Intent

OrdinalStateKeyDescription
0AbsentabsentNo operational intent or flight authorization exists for this aircraft.
1Operational Intentoi_onlyAn operational intent has been submitted but no flight authorization has been granted.
2AuthorizedauthorizedFlight authorization granted by all required jurisdictions.
Future Consideration: oi_planned
A potential intermediate state between absent and oi_only: the pilot has filed a flight intent but has not adhered to the planned timing (e.g., took off before authorization window). This edge case is deferred from the initial model but can be inserted at ordinal 1 by shifting oi_only to ordinal 2 and authorized to ordinal 3 without changing the resolution algorithm.

2.4 Configuration Reference

The axis definitions above map directly to this YAML structure, intended as the source of truth for the classification engine implementation:

# classification-config.yaml
# Three independent identity axes with ordered states.
# Ordinals define the trust progression within each axis.

axes:
  pilot:
    unknown:       0
    declared:      1
    verified:      2

  ua:
    unknown:       0
    declared_rid:  1
    software:      2
    hardware:      3

  flight:
    absent:        0
    oi_only:       1
    authorized:    2

3. Trust Levels

Five trust levels, ordered from lowest to highest confidence. Each level defines the minimum axis requirements that must ALL be satisfied for an aircraft to qualify.

3.1 Level Definitions

Color: Red

The aircraft is detected via raw telemetry (e.g., counter-UAS sensor) but nothing is known about it. No pilot identity, no drone identity, no flight intent.

Minimum Requirements:

AxisMinimum State
Pilotunknown (0)
UAunknown (0)
Flightabsent (0)

This is the baseline – every aircraft starts here until data elevates it.

3.2 Level Thresholds (Configuration Reference)

# Extends classification-config.yaml
# Each level defines minimum ordinal requirements per axis.
# Resolution: iterate L5 -> L1; first level where ALL axes meet
# or exceed the minimum is the assigned trust level.

levels:
  - id: L1_unidentified
    name: Unidentified
    color: red
    min_pilot: 0        # unknown
    min_ua: 0            # unknown
    min_flight: 0        # absent

  - id: L2_declared
    name: Declared
    color: orange
    min_pilot: 1         # declared
    min_ua: 1            # declared_rid
    min_flight: 0        # absent

  - id: L3_correlated
    name: Correlated
    color: yellow
    min_pilot: 1         # declared
    min_ua: 1            # declared_rid
    min_flight: 1        # oi_only

  - id: L4_authorized
    name: Authorized
    color: green
    min_pilot: 2         # verified
    min_ua: 2            # software
    min_flight: 2        # authorized

  - id: L5_verified
    name: Verified
    color: purple
    min_pilot: 2         # verified
    min_ua: 3            # hardware
    min_flight: 2        # authorized

3.3 Resolution Algorithm

The trust level for an aircraft is determined by a single rule:

Iterate from L5 down to L1. The first level where the aircraft’s pilot, UA, and flight intent values ALL meet or exceed the level’s minimum requirements is the assigned trust level.

This algorithm is:

  • Deterministic – same inputs always produce the same output, no randomness or weighting
  • Self-consistent – monotonically increasing thresholds prevent contradictions
  • Complete – every possible axis combination resolves to exactly one level (L1 is the catch-all)
  • Extensible – new axis states or levels can be added by inserting ordinals and threshold rows

3.4 Combination Verification

Key combinations verified against the resolution algorithm:

PilotUAFlightResolves ToRationale
unknownunknownabsentL1 RedCanonical L1. Raw telemetry, nothing known.
unknowndeclared_ridabsentL1 RedRID detected but pilot unresolved. Pilot fails L2 threshold.
declaredunknownabsentL1 RedPilot declared but drone unknown. UA fails L2 threshold.
declareddeclared_ridabsentL2 OrangeCanonical L2. Both identities declared via RID/DiSCVR.
declareddeclared_ridoi_onlyL3 YellowCanonical L3. Operational intent matched.
declareddeclared_ridauthorizedL3 YellowAuthorized but pilot only declared – fails L4 pilot threshold.
verifiedsoftwareabsentL2 OrangeStrong IDs but no authorization. Known but not cleared.
verifiedhardwareoi_onlyL3 YellowMax identity but only OI – fails L4 flight threshold.
verifiedsoftwareauthorizedL4 GreenCanonical L4. Full authorization, software identity.
verifiedhardwareauthorizedL5 PurpleCanonical L5. Hardware PKI, strong non-repudiation.
declaredhardwareauthorizedL3 YellowHardware cert + authorized but pilot only declared. Fails L4.
verifieddeclared_ridauthorizedL3 YellowVerified pilot, authorized, but drone only RID. Fails L4 UA threshold.

4. Non-Conformance Overlay

Non-conformance is an independent, transient state – not a trust level. It represents an aircraft that has deviated from its filed intent or authorized parameters. Because deviations can be momentary (e.g., briefly clipping the edge of an authorized area due to wind), non-conformance is modeled as a recoverable overlay rather than a change to the trust level.

Design decision: Non-conformance was considered as an ordinal state within the flight intent axis (e.g., non_conformant at ordinal 1). This was rejected because non-conformance is transient and recoverable – the trust level must remain stable while conformance status fluctuates. Yo-yoing the trust level on every brief deviation would make the COP unusable.

4.1 Applicability

LevelNon-Conformance ApplicableReason
L1 UnidentifiedNoNo intent or authorization on record to deviate from.
L2 DeclaredNoNo intent or authorization on record to deviate from.
L3 CorrelatedYesOperational intent exists; deviation is detectable.
L4 AuthorizedYesFlight authorization defines bounds; deviation is detectable.
L5 VerifiedYesSame as L4 with stronger identity assurance.

4.2 Trigger Conditions

  • Aircraft position outside the authorized geographic area
  • Aircraft altitude outside the authorized altitude band
  • Aircraft operating outside the authorized time window
  • Flight authorization rescinded by a jurisdiction

4.3 State Transitions and Grace Period

Non-conformance follows a three-state lifecycle:

Conformant ──[deviation detected]──> Non-Conformant ──[back in bounds]──> Grace Period ──[grace expires]──> Conformant
                                          │                                     │
                                          │                              [deviation again]
                                          │                                     │
                                          <─────────────────────────────────────┘
TransitionTriggerBehavior
Conformant to Non-ConformantDeviation detected (position, altitude, or time)Immediate. Red overlay activates.
Non-Conformant to Grace PeriodAircraft returns within authorized parametersTimer starts. Red overlay remains but animation may soften (implementation detail).
Grace Period to ConformantGrace timer expires without further deviationOverlay removed. Trust level unchanged throughout.
Grace Period to Non-ConformantNew deviation detected before grace expiresTimer resets. Full red overlay resumes.

The grace period prevents visual flickering when an aircraft is near the boundary of its authorized area. The trust level never changes during any of these transitions – it remains at whatever the threshold algorithm assigned.

4.4 Visual Treatment

  • The underlying trust level color remains visible (operators need to know who is non-conformant – a green aircraft out of bounds is a very different situation than a red one)
  • A pulsing/flashing animation is applied to the aircraft indicator
  • A red border or ring surrounds the color dot
  • The aircraft detail panel displays the conformance state explicitly
  • During the grace period, the overlay persists but may use a reduced animation (e.g., solid red border without pulsing) to indicate “recently non-conformant, recovering”

4.5 Configuration Reference

# Non-conformance is independent of trust level.
# Only applicable when flight intent >= oi_only.
non_conformance:
  applicable_min_flight: 1          # oi_only or higher
  grace_period_seconds: 10          # configurable; time before clearing overlay
  visual_active: pulsing_red_border
  visual_grace: solid_red_border    # reduced animation during grace period
  detail_label: "Non-Conformant"

5. Edge Cases and Future Considerations

5.1 Partial Data / In-Transit States

ScenarioHandling
RID detected, pilot lookup in progressRemains L1 (Red) until pilot identity resolves. The L1-to-L2 transition is the key demo moment.
Authorization granted, drone not yet airborneTrust level is pre-computed but not displayed until telemetry appears on the COP.
Multiple conflicting RID signals for same positionTreat as L1 until correlation engine disambiguates. Flag for operator review.

5.2 Signal Degradation

ScenarioHandling
RID signal lost mid-flightTrust level degrades: remove declared_rid from UA, re-evaluate. If this drops below current level thresholds, level decreases.
Telemetry gap (no position updates)Aircraft shown at last known position with a “stale” indicator. Trust level unchanged but staleness flagged.
Authorization expires during flightFlight intent reverts from authorized to absent. Trust level re-evaluated. Non-conformance may apply if aircraft continues operating.

5.3 Future Extensions

  • oi_planned state: A filed intent where timing has not been adhered to. Can be inserted at flight ordinal 1 without restructuring.
  • External match correlation: A future axis or state that captures matches from external systems (LAANC/DroneZone) not processed through the platform.
  • Multi-source identity: Cases where identity is confirmed by multiple independent sources, potentially warranting a confidence modifier.

6. UI Representation

6.1 Color Reference

LevelNameBadgeHex (Suggested)Meaning
L1UnidentifiedUnidentified#E53E3ENo information available. Highest concern.
L2DeclaredDeclared#ED8936Identities claimed, not verified.
L3CorrelatedCorrelated#ECC94BFlight intent matched. Identities still declared.
L4AuthorizedAuthorized#48BB78Fully authorized. Verified pilot, software identity.
L5VerifiedVerified#9F7AEAHighest trust. Hardware PKI, strong non-repudiation.
Non-ConformantNon-Conformant#E53E3EOverlay on L3/L4/L5. Deviation from intent or authorization.

6.2 Map Indicator

Each aircraft on the COP map is rendered as a colored dot or icon:

  • Dot color corresponds to trust level
  • Non-conformant aircraft: pulsing animation with red border ring
  • On hover or click: trust level name, conformance state, and the three axis values are shown in the aircraft detail panel

7. Demo Presentation and Comparison

For the demo script, presentation narrative, talk-track guidance, and current-state-vs-ATOMx comparison, see PRD 0003 - Demo Script: Partner.

8. Relationship to PRD 0001

This document provides the detailed classification model for the MVP demonstration system defined in PRD 0001.

What this document supersedes:

  • PRD 0001 Section G (Classification Engine) – replaced by the threshold-based model in Section 3 above
  • PRD 0001 color coding reference – replaced by Section 6 above

What remains in PRD 0001:

  • All other system components (Operator Submission, Authorization Management, Field Awareness View, Simulation Engine, External Awareness)
  • Demo flow (high-level) – see PRD 0003 for the detailed presentation script
  • Non-functional requirements and success criteria

Key Changes from PRD 0001

AspectPRD 0001This Document
Number of levels4 (Unknown, Limited Info, Known, Verified)5 (Unidentified, Declared, Correlated, Authorized, Verified)
ColorsGray, Yellow, Blue, GreenRed, Orange, Yellow, Green, Purple
Classification basisAuthorization + external match + identity typeThree independent axes with threshold-based resolution
Model typeImplicit rulesExplicit config-ready YAML with resolution algorithm
ExtensibilityAd hocOrdinal-based; new states and levels can be inserted
Last updated on