> ## Documentation Index
> Fetch the complete documentation index at: https://learn.nextedy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# FMEA Configuration Example

> A complete Failure Mode and Effects Analysis (FMEA) configuration covering both Design FMEA (DFMEA) with numeric Risk Priority Number (RPN) scoring and Process FMEA (PFMEA) with AIAG-VDA Action Priority (AP) scoring.

export const LastReviewed = ({date}) => {
  if (!date) return null;
  const formatted = new Date(`${date}T00:00:00Z`).toLocaleDateString("en-US", {
    year: "numeric",
    month: "long",
    day: "numeric",
    timeZone: "UTC"
  });
  return <p className="mt-10 text-sm text-gray-400 dark:text-zinc-500 not-prose">
      Last reviewed on {formatted}
    </p>;
};

Nextedy RISKSHEET is a generic tool that supports any risk management methodology, including FMEA, HARA, TARA, STRIDE, and CVSS. Nextedy provides solution templates for typical methodologies across industries; the example below shows how Risksheet can be configured for FMEA.

**Industry context:** FMEA is used across aerospace (ARP 4761), automotive (AIAG-VDA), and medical device (ISO 14971) industries. The DFMEA variant uses RPN (Risk Priority Number = Severity x Occurrence x Detection) for risk prioritization. The newer AIAG-VDA methodology replaces numeric RPN with logic-based Action Priority (H/M/L) for more meaningful risk ranking.

<Frame>
  <img src="https://mintcdn.com/none-17b4493f/yWl5nA2D0IzEnZC1/risksheet/diagrams/reference/examples/fmea-example/diagram-1.svg?fit=max&auto=format&n=yWl5nA2D0IzEnZC1&q=85&s=00b9da1b205190742317bc98292fdd17" alt="diagram" style={{ maxWidth: "720px", width: "100%" }} width="720" height="300" data-path="risksheet/diagrams/reference/examples/fmea-example/diagram-1.svg" />
</Frame>

## Levels Configuration

Three visual levels define the FMEA hierarchy. The system element (or characteristic) is the top-level grouping item, failure modes are analyzed per element, and causes are identified per failure mode. Each level entry must specify three properties: `name` (display name in the navigation/zoom menu), `controlColumn` (column ID used as the grouping key for cell merging), and `zoomColumn` (column ID used as the target for zoom/drill-down navigation).

```yaml theme={null}
levels:
  - name: System Element
    controlColumn: title
    zoomColumn: title
  - name: Failure Mode
    controlColumn: failureMode
    zoomColumn: failureMode
  - name: Cause
    controlColumn: cause
    zoomColumn: cause
```

## Column Definitions

Key columns with data type bindings. Severity, occurrence, and detection are enum fields scored 1-10. RPN columns use formulas for computed values. Each column maps to a Polarion work item field via the `bindings` property.

```yaml theme={null}
columns:
  - id: title
    bindings: title
    header: System Element
    width: 200
    headerCss: headElement
  - id: failureMode
    bindings: failureMode
    header: Failure Mode
    width: 200
    headerCss: headFailure
  - id: cause
    bindings: cause
    header: Cause
    width: 200
    headerCss: headFailure
  - id: effect
    bindings: effect
    header: Effect
    width: 200
    headerCss: headFailure
  - id: sev
    bindings: sev
    header: Sev
    type: enum:severity
    width: 60
    headerCss: headRisk
    cellRenderer: severity
  - id: occ
    bindings: occ
    header: Occ
    type: enum:occurrence
    width: 60
    headerCss: headRisk
  - id: det
    bindings: det
    header: Det
    type: enum:detection
    width: 60
    headerCss: headRisk
  - id: rpn
    bindings: rpn
    header: RPN
    formula: commonRpn
    width: 70
    headerCss: headRisk
  - id: mitigation
    bindings: mitigation
    header: Mitigation
    type: taskLink
    width: 200
    headerCss: headMitigation
  - id: occNew
    bindings: occNew
    header: Occ'
    type: enum:occurrence
    width: 60
    headerCss: headRevised
  - id: detNew
    bindings: detNew
    header: Det'
    type: enum:detection
    width: 60
    headerCss: headRevised
  - id: rpnNew
    bindings: rpnNew
    header: RPN'
    formula: commonRpnNew
    width: 70
    headerCss: headRevised
    cellRenderer: rpn
```

Severity, occurrence, and detection scales are defined as Polarion enumerations (Administration → Enumerations). A custom field on the work item type binds to the enum, and the column uses `type: enum:<enumId>` together with `bindings: <fieldId>`. The server loads enum values automatically — there is no separate top-level config section for ratings or enums.

## Formulas

<AccordionGroup>
  <Accordion title="Initial RPN">
    Multiplies severity, occurrence, and detection to produce the initial Risk Priority Number (1-1000 scale).

    ```yaml theme={null}
    formulas:
      commonRpn: |
        function(info) {
          var s = info.item['sev'];
          var o = info.item['occ'];
          var d = info.item['det'];
          if (!s || !o || !d) return null;
          return parseInt(s) * parseInt(o) * parseInt(d);
        }
    ```
  </Accordion>

  <Accordion title="Revised RPN">
    Recalculates RPN after mitigation actions using the updated occurrence and detection values. Severity does not change after mitigation.

    ```yaml theme={null}
    formulas:
      commonRpnNew: |
        function(info) {
          var s = info.item['sev'];
          var o = info.item['occNew'];
          var d = info.item['detNew'];
          if (!s || !o || !d) return null;
          return parseInt(s) * parseInt(o) * parseInt(d);
        }
    ```
  </Accordion>

  <Accordion title="Action Priority (AIAG-VDA)">
    Logic-based risk prioritization replacing numeric RPN multiplication. Returns H (High), M (Medium), or L (Low) based on severity, occurrence, and detection thresholds. Used in Process FMEA configurations.

    ```yaml theme={null}
    formulas:
      commonAP: |
        function(info) {
          var s = info.item['sev'];
          var o = info.item['occ'];
          var d = info.item['det'];
          if (!s || !o || !d) return null;
          s = parseInt(s); o = parseInt(o); d = parseInt(d);
          if (s >= 9) return 'H';
          if (s >= 5 && o >= 4) return 'H';
          if (s >= 5 || o >= 4 || d >= 6) return 'M';
          return 'L';
        }
    ```

    | Priority       | Meaning                   | Criteria                                             |
    | -------------- | ------------------------- | ---------------------------------------------------- |
    | **H** (High)   | Immediate action required | Severity >= 9, or Severity >= 5 AND Occurrence >= 4  |
    | **M** (Medium) | Action recommended        | Severity >= 5, or Occurrence >= 4, or Detection >= 6 |
    | **L** (Low)    | Action optional           | All other combinations                               |
  </Accordion>
</AccordionGroup>

## Cell Decorators

<AccordionGroup>
  <Accordion title="4-Tier Severity Decorator">
    Color-codes severity values from critical (red) through negligible (green). Applied to the severity column via `cellRenderer: severity`. The decorator function uses `$(info.cell).toggleClass()` because grid cells are reused — `toggleClass` ensures classes are properly added or removed as values change.

    ```yaml theme={null}
    cellDecorators:
      severity: |
        function(info) {
          var v = parseInt(info.value);
          $(info.cell).toggleClass('sevCritical',   v >= 4);
          $(info.cell).toggleClass('sevMajor',      v == 3);
          $(info.cell).toggleClass('sevMinor',      v == 2);
          $(info.cell).toggleClass('sevNegligible', v <= 1 && v > 0);
        }
    styles:
      .sevCritical:   '{background-color: #ffcdd2 !important; color: #c62828 !important;}'
      .sevMajor:      '{background-color: #ffe0b2 !important; color: #ef6c00 !important;}'
      .sevMinor:      '{background-color: #fff9c4 !important; color: #f57f17 !important;}'
      .sevNegligible: '{background-color: #c8e6c9 !important; color: #2e7d32 !important;}'
    ```

    | Severity           | Color  | Style           |
    | ------------------ | ------ | --------------- |
    | Critical (>= 4)    | Red    | `sevCritical`   |
    | Major (3)          | Orange | `sevMajor`      |
    | Minor (2)          | Yellow | `sevMinor`      |
    | Negligible (\<= 1) | Green  | `sevNegligible` |
  </Accordion>

  <Accordion title="3-Tier RPN Color Coding">
    Colors RPN cells based on risk thresholds. Thresholds are user-configurable per deployment — the values shown below are an example, not a product default. Applied via `cellRenderer: rpn` on the RPN columns.

    ```yaml theme={null}
    cellDecorators:
      rpn: |
        function(info) {
          var val = info.value;
          $(info.cell).toggleClass('rpn1', val > 0 && val <= 10);
          $(info.cell).toggleClass('rpn2', val > 10 && val <= 30);
          $(info.cell).toggleClass('rpn3', val > 30);
          if (val > 0) {
            var label = val <= 10 ? 'Low' : (val <= 30 ? 'Medium' : 'High');
            var color = val <= 10 ? '#4caf50' : (val <= 30 ? '#ff9800' : '#f44336');
            info.cell.innerHTML = val + '<br><span style="font-size:12px;color:'
                                + color + '">' + label + '</span>';
          }
        }
    styles:
      .rpn1: '{background-color: #eaf5e9 !important;}'
      .rpn2: '{background-color: #fff3e0 !important;}'
      .rpn3: '{background-color: #ffebee !important;}'
    ```

    | RPN Range | Label  | Color            |
    | --------- | ------ | ---------------- |
    | 1 -- 10   | Low    | Green (#4caf50)  |
    | 11 -- 30  | Medium | Orange (#ff9800) |
    | > 30      | High   | Red (#f44336)    |
  </Accordion>
</AccordionGroup>

## Workflow Views

Ten saved views guide analysts through the complete FMEA process from identification through verification. Each view defines a column visibility preset via `columnIds`. The `@all` token includes every column; a `-` prefix excludes a specific column from the `@all` set. The `defaultView` flag marks the view that loads on document open.

```yaml theme={null}
views:
  - name: Default
    defaultView: true
    columnIds:
      - "@all"
  - name: No Up/Down Risks
    columnIds:
      - "@all"
      - "-upstreamRisk"
      - "-downstreamRisk"
  - name: 1. Identify Failure Modes
    columnIds:
      - title
      - failureMode
      - cause
      - effect
  - name: 2. Initial Risk Ranking
    columnIds:
      - title
      - failureMode
      - sev
      - occ
      - det
      - rpn
  - name: 3. Link Downstream DFMEA
    columnIds:
      - title
      - failureMode
      - rpn
      - downstreamRisk
  - name: 4. Define Mitigations
    columnIds:
      - title
      - failureMode
      - rpn
      - mitigation
  - name: 5. Verify Controls
    columnIds:
      - title
      - failureMode
      - mitigation
      - occNew
      - detNew
  - name: 6. Final Risk Evaluation
    columnIds:
      - title
      - failureMode
      - rpn
      - rpnNew
      - mitigation
  - name: 7. Risk Summary
    columnIds:
      - title
      - failureMode
      - sev
      - rpn
      - rpnNew
  - name: Full View
    columnIds:
      - "@all"
```

## Cross-Document Links

The FMEA cascade uses `multiItemLink` columns to connect failure modes across System, Subsystem, and Component FMEA documents. This creates traceable risk chains from top-level system failures down to individual component failure modes. The `typeProperties.linkRole` identifies the Polarion link role and `typeProperties.linkTypes` lists the work item types that can be linked (comma-separated string, not an array). Setting `typeProperties.linkDirection: back` traverses links in reverse for back-link rendering.

```yaml theme={null}
columns:
  - id: upstreamRisk
    header: Upstream Risk
    bindings: upstreamRisk
    type: multiItemLink
    width: 200
    typeProperties:
      linkRole: causes
      linkTypes: failureMode
      linkDirection: back
  - id: downstreamRisk
    header: Downstream Risk
    bindings: downstreamRisk
    type: multiItemLink
    width: 200
    typeProperties:
      linkRole: causes
      linkTypes: failureMode
```

The cascade hierarchy links three FMEA levels:

```
System FMEA (customer requirements level)
  └── Subsystem FMEA (function level)  ← bidirectional upstream/downstream
        └── Component DFMEA (characteristic level)
```

All linked items are stored as standard Polarion work items — Risksheet visualizes and edits this data but does not maintain a separate data store. Cross-document traceability is fully auditable through Polarion's audit infrastructure.

## Key Patterns

* **Dual RPN assessment** -- pre-mitigation RPN (`S x O x D`) and post-mitigation RPN (`S x O' x D'`) on the same row, showing risk reduction at a glance. Severity stays constant because mitigation does not change failure impact.
* **Action Priority as RPN alternative** -- the AIAG-VDA logic-based AP formula provides more meaningful risk ranking than numeric multiplication. High severity always requires action regardless of occurrence/detection.
* **3-tier RPN color coding** -- inline labels (Low/Medium/High) appear below the numeric RPN value with color-matched text, making risk levels scannable without memorizing threshold values. Thresholds are user-configurable per deployment.
* **FMEA cascade via multiItemLink** -- upstream and downstream columns connect System, Subsystem, and Component FMEAs with `linkDirection: back` controlling traversal, enabling full failure chain traceability across documents.
* **10-step guided workflow** -- views walk analysts from identification through verification in a prescribed sequence, reducing errors by showing only relevant columns at each step. Views use `@all` with `-columnId` exclusions for compact definitions.
* **Levels create visual hierarchy** -- the 3 levels (System Element, Failure Mode, Cause) merge cells via `controlColumn`, while the underlying data model has only two entity types (risk items and task items). The visual hierarchy is independent of the work item structure.

## See Also

* [Configure FMEA Workflows](/risksheet/guides/risk-management/fmea-configuration) -- step-by-step FMEA setup guide
* [Formula Syntax](/risksheet/reference/formulas/formula-syntax) -- JavaScript formula writing guide
* [Formula Examples](/risksheet/reference/formulas/formula-examples) -- additional formula patterns
* [Levels Configuration](/risksheet/reference/levels-configuration) -- hierarchy merge behavior and level properties
* [Cell Decorators](/risksheet/reference/styling/cell-decorators) -- dynamic cell styling reference
* [TARA Example](/risksheet/reference/examples/tara-example) -- alternative risk analysis methodology using matrix verdicts

<LastReviewed date="2026-06-24" />
