Development Assurance Levels (systems-engineering-safety/arp4754a/development-assurance-levels)
Use when the task is ARP4754A development assurance assignment:
rating failure condition severity, mapping it to a development
assurance level A through E, assigning the FDAL to functions and the
IDAL to items, and checking that the item levels hold up when the
function level propagates down.
Domain quick reference
- A failure condition is rated by severity from its effect on the
aircraft and occupants, not from its failure rate. The five
categories (ARP4761A FHA framing) are Catastrophic, Hazardous,
Major, Minor, and No safety effect.
- The severity drives the development assurance level (DAL) of the
function that can cause the failure condition. Worked numbers,
verified by running scripts/test_development_assurance_levels.py:
| Severity |
DAL |
Level meaning (summary) |
| Catastrophic |
A |
failure condition can prevent continued safe flight and landing |
| Hazardous |
B |
large reduction in safety margins, serious or fatal injuries possible |
| Major |
C |
significant reduction in safety margins, physical distress possible |
| Minor |
D |
slight reduction in safety margins, passenger inconvenience |
| No safety effect |
E |
no effect on operational capability or safety |
- FDAL (function development assurance level) is assigned to each
function; the most severe failure condition the function can cause
sets its FDAL. IDAL (item development assurance level) is assigned
to each item that implements a function.
- DAL propagation rule (paraphrase of ARP4754A): the IDAL of an item
must not be lower than the FDAL of the function it implements unless
an approved justification supports the lower level.
- Independence alternative: for a function with a severe failure
condition, validated independence between redundant or dissimilar
items (no common cause, established per the ARP4761A common-cause
analysis) can justify a lower item IDAL than the function FDAL.
Independence is the classic alternative to raising the DAL of every
contributing item; the argument must be validated and approved.
- Relationship to ARP4761A: the FHA rates each failure condition
severity, and that severity feeds the DAL mapping here. FHA severity
rating and probability targets live in functional-hazard-assessment;
the PSSA/SSA closure of the safety objectives lives in
safety-assessment.
Worked anchors (all verified by the contract test):
- Failure condition "Loss of all pitch authority" for the Autopilot
function is rated Catastrophic, so the FDAL is A and the autopilot
items start at IDAL A; the propagation check passes.
- The same items at IDAL C would fail the propagation check for the
FDAL A function (C is lower than A) and raise ValueError.
- A function with a Hazardous failure condition (FDAL B) and items at
IDAL D: the reduction is not accepted without a validated
independence argument, and is accepted with one.
Workflow
- Collect the failure conditions per function from the FHA worksheet
(see functional-hazard-assessment) with the rated severity of each.
- Confirm each severity from the effect on the aircraft and
occupants; record the flight phase if the effect is phase dependent.
- Map each severity to its DAL with dal_from_severity, and assign the
FDAL to the function from its most severe failure condition.
- Assign the initial IDAL to the items implementing the function with
assurance_assignment: the starting point is IDAL equal to the FDAL.
- Check every (function, item) pair with validate_dal_propagation;
any item DAL below the function DAL must carry a justification.
- Evaluate the independence alternative for the severe failure
conditions: document the validated independence argument (per the
ARP4761A common-cause analysis) before accepting a lower item IDAL,
and confirm the bookkeeping with
independence_justifies_lower_item_dal.
- Record the FDAL/IDAL assignments and their justifications in the
development plan for the certification review.
Pitfalls
- Routing FHA severity rating here: rating failure conditions and
mapping their probability targets belongs to
functional-hazard-assessment; this leaf maps the rated severity to
the DAL, it does not re-run the FHA.
- Routing the safety assessment sequence here: safety-assessment runs
the FHA/PSSA/SSA process and selects the analysis set; this leaf
assigns the assurance levels that the plan then references.
- Routing requirements coverage here: requirements-allocation assigns
requirements to items and functions; DAL assignment decides the
assurance level of those elements, not their requirement ownership.
- Confusing FDAL with IDAL: the FDAL is per function, the IDAL is per
item, and they are assigned by different arguments that are reviewed
separately.
- Rating severity from the failure rate: a very rare failure can still
be catastrophic. Severity comes from the effect on the aircraft and
occupants, never from how often the failure is expected.
- Reversing the mapping direction: severity drives the DAL; the DAL
does not change the severity. The FHA rates severity first.
- Reading DAL E as "no process": DAL E still applies the normal
development and verification activities; it only removes the
additional assurance rigor of levels A through D.
- Accepting a lower IDAL without a validated independence argument:
independence must be established and validated (common-cause
analysis per ARP4761A); an unsubstantiated independence claim does
not reduce the item DAL.
- Checking propagation in the wrong direction: the item DAL must be at
or above the function DAL. A lower item DAL is the violation; a
higher item DAL is conservative, not an error.
- Dropping the most-severe-failure-condition rule: a function with
several failure conditions takes the FDAL of its most severe one.
Behavior contract (gate 3)
The severity-to-DAL mapping, the FDAL/IDAL assignment, the DAL
propagation check, and the independence alternative are exercised by
the gate 3 contract test: scripts/test_development_assurance_levels.py
against scripts/development_assurance_levels_logic.py (stdlib unittest,
offline). Run:
python3 scripts/test_development_assurance_levels.py
Compliance
- Standards referenced, not reproduced: ARP4754A / ARP4761A text is
proprietary (SAE); summary-only per standards-map.yaml. The severity
categories and the A through E mapping are common development
assurance methodology summarized here.
- Revision note: ARP4754B (2023) supersedes ARP4754A; this skill keys
to ARP4754A as the certification-baseline revision (FAA AC 20-174
cites A); see standards-map.yaml arp4754a.revision_decision.
- compliance: STANDARDS-REF, gated: false.
1---2name: development-assurance-levels3description: Use when you must assign development assurance levels per ARP4754A development assurance: rate the failure condition severity into catastrophic, hazardous, major, minor, and no safety effect, map the severity onto the DAL scale A through E, assign the FDAL to each function and the IDAL to each item, and check that no item DAL is lower than its function DAL. Independence between redundant items is evaluated as the alternative to raising the item DAL, and the ARP4761A FHA severity rating feeds the assignment. Trigger: development-assurance-levels, DAL, FDAL, IDAL, severity to DAL mapping, catastrophic failure condition, DAL propagation, independence alternative.4license: Apache-2.05---67# Development Assurance Levels (systems-engineering-safety/arp4754a/development-assurance-levels)89Use when the task is ARP4754A development assurance assignment:10rating failure condition severity, mapping it to a development11assurance level A through E, assigning the FDAL to functions and the12IDAL to items, and checking that the item levels hold up when the13function level propagates down.1415## Domain quick reference1617- A failure condition is rated by severity from its effect on the18 aircraft and occupants, not from its failure rate. The five19 categories (ARP4761A FHA framing) are Catastrophic, Hazardous,20 Major, Minor, and No safety effect.21- The severity drives the development assurance level (DAL) of the22 function that can cause the failure condition. Worked numbers,23 verified by running scripts/test_development_assurance_levels.py:2425| Severity | DAL | Level meaning (summary) |26|---|---|---|27| Catastrophic | A | failure condition can prevent continued safe flight and landing |28| Hazardous | B | large reduction in safety margins, serious or fatal injuries possible |29| Major | C | significant reduction in safety margins, physical distress possible |30| Minor | D | slight reduction in safety margins, passenger inconvenience |31| No safety effect | E | no effect on operational capability or safety |3233- FDAL (function development assurance level) is assigned to each34 function; the most severe failure condition the function can cause35 sets its FDAL. IDAL (item development assurance level) is assigned36 to each item that implements a function.37- DAL propagation rule (paraphrase of ARP4754A): the IDAL of an item38 must not be lower than the FDAL of the function it implements unless39 an approved justification supports the lower level.40- Independence alternative: for a function with a severe failure41 condition, validated independence between redundant or dissimilar42 items (no common cause, established per the ARP4761A common-cause43 analysis) can justify a lower item IDAL than the function FDAL.44 Independence is the classic alternative to raising the DAL of every45 contributing item; the argument must be validated and approved.46- Relationship to ARP4761A: the FHA rates each failure condition47 severity, and that severity feeds the DAL mapping here. FHA severity48 rating and probability targets live in functional-hazard-assessment;49 the PSSA/SSA closure of the safety objectives lives in50 safety-assessment.5152Worked anchors (all verified by the contract test):5354- Failure condition "Loss of all pitch authority" for the Autopilot55 function is rated Catastrophic, so the FDAL is A and the autopilot56 items start at IDAL A; the propagation check passes.57- The same items at IDAL C would fail the propagation check for the58 FDAL A function (C is lower than A) and raise ValueError.59- A function with a Hazardous failure condition (FDAL B) and items at60 IDAL D: the reduction is not accepted without a validated61 independence argument, and is accepted with one.6263## Workflow64651. Collect the failure conditions per function from the FHA worksheet66 (see functional-hazard-assessment) with the rated severity of each.672. Confirm each severity from the effect on the aircraft and68 occupants; record the flight phase if the effect is phase dependent.693. Map each severity to its DAL with dal_from_severity, and assign the70 FDAL to the function from its most severe failure condition.714. Assign the initial IDAL to the items implementing the function with72 assurance_assignment: the starting point is IDAL equal to the FDAL.735. Check every (function, item) pair with validate_dal_propagation;74 any item DAL below the function DAL must carry a justification.756. Evaluate the independence alternative for the severe failure76 conditions: document the validated independence argument (per the77 ARP4761A common-cause analysis) before accepting a lower item IDAL,78 and confirm the bookkeeping with79 independence_justifies_lower_item_dal.807. Record the FDAL/IDAL assignments and their justifications in the81 development plan for the certification review.8283## Pitfalls8485- Routing FHA severity rating here: rating failure conditions and86 mapping their probability targets belongs to87 functional-hazard-assessment; this leaf maps the rated severity to88 the DAL, it does not re-run the FHA.89- Routing the safety assessment sequence here: safety-assessment runs90 the FHA/PSSA/SSA process and selects the analysis set; this leaf91 assigns the assurance levels that the plan then references.92- Routing requirements coverage here: requirements-allocation assigns93 requirements to items and functions; DAL assignment decides the94 assurance level of those elements, not their requirement ownership.95- Confusing FDAL with IDAL: the FDAL is per function, the IDAL is per96 item, and they are assigned by different arguments that are reviewed97 separately.98- Rating severity from the failure rate: a very rare failure can still99 be catastrophic. Severity comes from the effect on the aircraft and100 occupants, never from how often the failure is expected.101- Reversing the mapping direction: severity drives the DAL; the DAL102 does not change the severity. The FHA rates severity first.103- Reading DAL E as "no process": DAL E still applies the normal104 development and verification activities; it only removes the105 additional assurance rigor of levels A through D.106- Accepting a lower IDAL without a validated independence argument:107 independence must be established and validated (common-cause108 analysis per ARP4761A); an unsubstantiated independence claim does109 not reduce the item DAL.110- Checking propagation in the wrong direction: the item DAL must be at111 or above the function DAL. A lower item DAL is the violation; a112 higher item DAL is conservative, not an error.113- Dropping the most-severe-failure-condition rule: a function with114 several failure conditions takes the FDAL of its most severe one.115116## Behavior contract (gate 3)117118The severity-to-DAL mapping, the FDAL/IDAL assignment, the DAL119propagation check, and the independence alternative are exercised by120the gate 3 contract test: scripts/test_development_assurance_levels.py121against scripts/development_assurance_levels_logic.py (stdlib unittest,122offline). Run:123124python3 scripts/test_development_assurance_levels.py125126## Compliance127128- Standards referenced, not reproduced: ARP4754A / ARP4761A text is129 proprietary (SAE); summary-only per standards-map.yaml. The severity130 categories and the A through E mapping are common development131 assurance methodology summarized here.132- Revision note: ARP4754B (2023) supersedes ARP4754A; this skill keys133 to ARP4754A as the certification-baseline revision (FAA AC 20-174134 cites A); see standards-map.yaml arp4754a.revision_decision.135- compliance: STANDARDS-REF, gated: false.