Skip to content
Compliance & Traceability

What Is First Article Inspection (FAI)

First article inspection (FAI) verifies the first production unit meets all specifications. Learn how FAI works and how to track it with TofuPilot.

JJulien Buteau
beginner7 min readMarch 14, 2026

What Is FAI with TofuPilot

First article inspection (FAI) is a detailed verification of the first production unit to confirm that the manufacturing process can produce parts that meet all design specifications. It's required by aerospace (AS9102), automotive (PPAP), and medical device standards. This guide covers what FAI involves, when it's required, and how to track FAI results with TofuPilot.

What FAI Verifies

FAI checks every characteristic on the drawing and specification, not just the critical ones. It's a full accounting of:

What's CheckedExample
Dimensional characteristicsAll dimensions on the drawing
Material certificationsRaw material CoC, RoHS compliance
Process recordsSolder profile, torque records, adhesive cure
Functional test resultsAll measurements against specification
Visual and cosmeticSurface finish, marking, label placement
TraceabilitySerial numbers, lot codes, date codes

FAI is not sampling. It's a complete inspection of one unit (or a set of units) against every requirement.

When FAI Is Required

TriggerExample
New product introductionFirst production run of a new design
Design changeEngineering change order (ECO) affecting form, fit, or function
Process changeNew supplier, new tooling, new factory location
Extended production breakNo production for 2+ years (per AS9102)
Corrective actionAfter a nonconformance that affected product quality

FAI Documentation (AS9102)

AS9102 defines three standard FAI report forms:

FormContent
Form 1: Part Number AccountabilityPart number, name, revision, serial number, materials
Form 2: Product Accountability (Raw Material, Special Process, Functional Test)Material certs, process records, test data
Form 3: Characteristic AccountabilityEvery dimension and characteristic with actual measured value

Form 3 is the most labor-intensive. Every dimension on the drawing gets a balloon number, and the corresponding measured value goes in the FAI report.

Prerequisites

  • Python 3.10+
  • OpenHTF installed (pip install openhtf)
  • TofuPilot Python SDK installed (pip install tofupilot)

Step 1: Define FAI Test Phases

The functional test portion of FAI runs the same test procedure as production, but you record every measurement, not just pass/fail.

fai_test.py
import openhtf as htf
from openhtf.util import units


@htf.measures(
    htf.Measurement("output_voltage_V")
    .in_range(minimum=4.9, maximum=5.1)
    .with_units(units.VOLT),
    htf.Measurement("ripple_voltage_mV")
    .in_range(maximum=50)
    .with_units(units.MILLIVOLT),
    htf.Measurement("efficiency_percent")
    .in_range(minimum=90)
    .with_units(units.PERCENT),
    htf.Measurement("leakage_current_uA")
    .in_range(maximum=500)
    .with_units(units.MICROAMPERE),
)
def phase_fai_electrical(test):
    """FAI Form 2: All electrical characteristics."""
    test.measurements.output_voltage_V = 5.02
    test.measurements.ripple_voltage_mV = 18.3
    test.measurements.efficiency_percent = 93.7
    test.measurements.leakage_current_uA = 65.0


@htf.measures(
    htf.Measurement("firmware_version").equals("2.1.0"),
    htf.Measurement("boot_time_ms")
    .in_range(maximum=2000)
    .with_units(units.MILLISECOND),
    htf.Measurement("self_test").equals("PASS"),
)
def phase_fai_functional(test):
    """FAI Form 2: Functional characteristics."""
    test.measurements.firmware_version = "2.1.0"
    test.measurements.boot_time_ms = 1120
    test.measurements.self_test = "PASS"

Step 2: Log FAI Results to TofuPilot

The FAI test runs once on the first article. TofuPilot stores every measurement with its limit, unit, and result.

fai_test.py
from tofupilot.openhtf import TofuPilot

test = htf.Test(
    phase_fai_electrical,
    phase_fai_functional,
)

with TofuPilot(test):
    test.execute(test_start=lambda: input("Scan first article serial: "))

Step 3: Generate the FAI Report

TofuPilot stores the complete test record for the first article. Open the unit's test history to get:

  • All measurements with actual values against specification limits
  • Pass/fail status for each characteristic
  • Timestamps for audit trail
  • Test reports exportable for AS9102 Form 2 documentation

This data feeds directly into the FAI report. Instead of transcribing measurements from a bench multimeter into a spreadsheet, the test data is already structured and auditable.

FAI vs Production Test

AspectFAIProduction Test
ScopeEvery characteristic on the drawingCritical functional characteristics
SampleFirst unit (or first from each cavity/tool)Every unit
DocumentationFormal FAI report (AS9102 forms)Internal test records
FrequencyOnce per trigger eventEvery unit, every run
GoalProve the process can make a conforming partVerify each unit conforms

FAI proves the process is capable. Production test proves each unit is conforming. Both are necessary. TofuPilot tracks both using the same infrastructure.

More Guides

Put this guide into practice