Overview
The Risk Control Plan Risksheet provides a structured approach to risk mitigation by organizing analysis into hierarchical levels, supporting progressive workflow views that guide users through risk identification, control definition, verification planning, and acceptance decisions. The configuration implements dual probability calculations for medical device contexts and unified characteristic classification for manufacturing contexts.
Risk Control Plan Hierarchy Patterns
MEDICAL DEVICE (ISO 14971):
Use Step (L1)
├─ Hazard (L2)
│ ├─ Hazardous Situation (L3)
│ │ └─ Harm (L4) → Risk Value → Risk Controls → Requirements → Verification
MANUFACTURING (AIAG):
Process Step (L1)
├─ Characteristic (L2)
│ └─ Control Method (L3) → Equipment → Sample Frequency → Reaction Plan
This risksheet template supports two independent configurations in your project. Choose one based on your industry context: ISO 14971 for medical devices, AIAG for automotive manufacturing. Each maintains separate column groups and workflow views.
Configuration Schema
| Name | Type | Default | Description |
|---|
id | string | control-plan-risk or control-plan-manufacturing | Unique configuration identifier |
name | string | Risk Control Plan (Medical) / Risk Control Plan (Manufacturing) | Display name in Risksheet picker |
description | string | ISO 14971 risk control workflow / AIAG production control workflow | Configuration purpose |
version | string | 1.0 | Configuration version for tracking updates |
module_type | string | risksheet | Always risksheet for this configuration type |
Hierarchy Definition (Medical Device - ISO 14971)
| Name | Type | Default | Description |
|---|
hierarchyDefinition.levels | array | 4 levels | Defines the four-level ISO 14971 hierarchy |
levels[0].name | string | useStep | Level 1: Use Step work item type |
levels[0].displayName | string | Use Step | Human-readable name for row headers |
levels[1].name | string | hazard | Level 2: Hazard work item type |
levels[1].displayName | string | Hazard | Hazard title display |
levels[2].name | string | hazardousSituation | Level 3: Hazardous Situation description |
levels[2].displayName | string | Hazardous Situation | Specific scenario where hazard manifests |
levels[3].name | string | harm | Level 4: Potential harm/injury |
levels[3].displayName | string | Harm | Consequence of hazardous situation |
Hierarchy Definition (Manufacturing - AIAG)
| Name | Type | Default | Description |
|---|
hierarchyDefinition.levels | array | 3 levels | Defines three-level AIAG manufacturing hierarchy |
levels[0].name | string | processStep | Level 1: Process Step work item type |
levels[0].displayName | string | Process Step | Manufacturing operation/stage |
levels[1].name | string | characteristic | Level 2: Product or Process Characteristic |
levels[1].displayName | string | Characteristic | Quality attribute to control |
levels[2].name | string | controlMethod | Level 3: Inspection/control method |
levels[2].displayName | string | Control Method | Detection or prevention technique |
Column Groups and Organization
Medical Device Risk Control Plan (ISO 14971)
Identification Section (Blue)
| Column ID | Name | Type | Default | Formula/Logic |
|---|
useStepId | Use Step ID | work_item | — | Links to useStep work item |
useStepTitle | Use Step | work_item_attribute | — | Displays useStep.title |
hazardId | Hazard ID | work_item | — | Links to hazard work item |
hazardTitle | Hazard | work_item_attribute | — | Displays hazard.title |
situationDescription | Hazardous Situation | text | — | Free-form description of scenario |
harmDescription | Harm | text | — | Injury or damage consequence |
Risk Assessment Section (Pre-Control)
| Column ID | Name | Type | Default | Formula/Logic |
|---|
severityBefore | Severity | enum | — | Values: S0 (Negligible), S1, S2, S3 (Critical) |
p1Before | P1: Situation Occurrence | enum | — | Probability hazardous situation occurs: 1-5 |
p2Before | P2: Harm Occurrence | enum | — | Probability harm given situation: 1-5 |
riskProbabilityBefore | Risk Probability (Pre) | formula | — | riskProbabilityBefore(p1Before, p2Before) computes P1 × P2 |
riskValuePre | Initial Risk | formula | — | riskValueBefore(severityBefore, riskProbabilityBefore) uses risk matrix |
riskClassPre | Initial Risk Class | decorator | — | Color-coded: Green (1=acceptable), Yellow (2=ALARP), Orange (3=reduce), Red (4=unacceptable) |
Risk Control Mitigation Section (Orange)
| Column ID | Name | Type | Default | Formula/Logic |
|---|
controlId | RC ID | work_item | — | Links to riskControl (task) work item |
controlTitle | Risk Control | work_item_attribute | — | Displays control task title |
controlType | Type | enum | — | Values: inherent-safety-design, protective-measure, informative-measure, external-control |
controlDescription | Control Description | text | — | How control mitigates the risk |
verificationMethod | Verification Method | enum | — | How effectiveness is verified: test, analysis, inspection, demonstration |
Residual Risk Assessment (Post-Control)
| Column ID | Name | Type | Default | Formula/Logic |
|---|
severityAfter | Severity | enum | — | Typically unchanged unless control is architectural |
p1After | P1: Residual Occurrence | enum | — | Probability after control implementation |
p2After | P2: Residual Harm Occurrence | enum | — | Probability harm given residual situation |
riskProbabilityAfter | Risk Probability (Post) | formula | — | riskProbabilityAfter(p1After, p2After) computes P1 × P2 |
riskValuePost | Residual Risk | formula | — | riskValueAfter(severityAfter, riskProbabilityAfter) |
riskClassPost | Residual Risk Class | decorator | — | Color-coded risk classification after control |
Acceptance Section (Purple)
| Column ID | Name | Type | Default | Formula/Logic |
|---|
acceptanceDecision | Risk Accepted? | enum | — | Values: yes, no, conditional |
additionalControlsPossible | Additional Controls? | enum | — | Values: yes, no (informs acceptance logic) |
benefitRiskJustification | Benefit-Risk Justification | text | — | ISO 14971 required: explains why residual risk acceptable |
finalRisk | Final Risk Level | formula | — | riskValueFinal(riskValuePost, acceptanceDecision) |
Traceability Section (Green)
| Column ID | Name | Type | Default | Formula/Logic |
|---|
linkedRequirements | Requirements | multi_item_link | — | Back-linked sysReq/desReq from riskControl tasks; renders with Velocity template filtering |
linkedTests | Verification Tests | multi_item_link | — | Nested: from Requirements → testCase items; three-hop traceability |
fmeaReference | Related FMEA | multi_item_link | — | Back-linked failureMode items via analyzedIn role for methodology integration |
Manufacturing Control Plan (AIAG)
Process Definition Section (Blue)
| Column ID | Name | Type | Default | Formula/Logic |
|---|
processStepId | Process Step ID | work_item | — | Links to processStep work item |
processStepTitle | Process Step | work_item_attribute | — | Manufacturing operation (e.g., “Sensor Housing Assembly”) |
equipmentId | Equipment | work_item | — | Links to systemElement filtered by equipment type via queryFactory |
equipmentName | Equipment Name | work_item_attribute | — | Displays equipment title and capacity |
Equipment picker uses queryFactory to filter systemElement items by equipment category. Requires pre-established equipmentType or equipment links in Polarion. If list appears empty, verify systemElement items have correct type classification.
Characteristics Section (Purple)
| Column ID | Name | Type | Default | Formula/Logic |
|---|
characteristicId | Characteristic ID | work_item | — | Links to characteristic work item (product or process) |
characteristicType | Type | enum | — | Values: product-characteristic, process-characteristic |
characteristicName | Characteristic | work_item_attribute | — | Displays characteristic title and dimension |
classification | Classification | formula | — | Merges classifications: product SC/CC takes precedence if both exist |
classDecorator | Class Badge | decorator | — | SC (orange #ff8c00), CC (red #c62828) or blank |
classBackground | Row Highlight | decorator | — | Light orange for SC rows, light red for CC rows |
targetValue | Target Value | formula | — | Merged from product/process characteristic; uses specFormula precedence |
tolerance | Tolerance | formula | — | Merged from product/process characteristic; shows ±range or min/max |
Control Methods Section (Green)
| Column ID | Name | Type | Default | Formula/Logic |
|---|
controlMethodId | Control Method | text | — | Control technique description (e.g., “SPC via X-bar/R chart”) |
measurementMethod | Measurement Method | enum | — | Values: visual-inspection, gage, automated-test, destructive-test |
sampleSize | Sample Size | integer | — | Number of parts per production run (e.g., 5) |
sampleFrequency | Frequency | enum | — | Values: per-part, per-shift, daily, weekly, per-lot |
upperSpecLimit | USL | decimal | — | Upper specification limit for characteristic |
lowerSpecLimit | LSL | decimal | — | Lower specification limit for characteristic |
Reaction Plan Section (Orange)
| Column ID | Name | Type | Default | Formula/Logic |
|---|
outOfControlAction | Out-of-Control Action | text | — | What to do if measurement exceeds limits (e.g., “Stop line, sort parts, notify supervisor”) |
reactionResponsible | Responsible | enum | — | Role or team (e.g., “Quality Engineer”, “Line Supervisor”) |
docReference | Documentation | text | — | Reference to SOP or work instruction |
Progressive Workflow Views
Medical Device Risk Control Plan Views
View 1: Identify Risks
Columns shown: UseStepId, Hazard, HazardousSituation, Harm, Severity
Purpose: Initial hazard identification phase (3 columns)
User activity: Capture all potential hazards and consequences
View 2: Initial Risk Assessment
Columns shown: UseStepId, Hazard, SeverityBefore, P1Before, P2Before, RiskProbabilityBefore, RiskValuePre
Purpose: Compute pre-control risk levels (8 columns)
User activity: Assign severity and probability ratings; view calculated initial risk matrix value
View 3: Risk Controls Definition
Columns shown: ControlId, ControlTitle, ControlType, ControlDescription, VerificationMethod
Purpose: Define mitigation strategies and acceptance criteria (5 columns)
User activity: Create risk control tasks with verification approach
View 4: Residual Risk Evaluation
Columns shown: SeverityAfter, P1After, P2After, RiskProbabilityAfter, RiskValuePost, AcceptanceDecision, BenefitRiskJustification
Purpose: Evaluate effectiveness and acceptability (10 columns)
User activity: Apply residual ratings; document acceptance rationale
View 5: Full Analysis (All Columns)
Purpose: Complete workflow view for review and sign-off
User activity: Comprehensive audit across all phases
Manufacturing Control Plan Views
View 1: Process Definition
Columns shown: ProcessStepId, EquipmentId, CharacteristicName, Classification
Purpose: Link process steps to characteristics (4 columns)
View 2: Control Setup
Columns shown: CharacteristicName, TargetValue, Tolerance, MeasurementMethod, SampleSize, SampleFrequency
Purpose: Define control parameters (6 columns)
View 3: Complete Plan
Columns shown: All columns
Purpose: Full manufacturing control plan for PPAP submission
// Pre-control probability (initial assessment)
function riskProbabilityBefore(p1, p2) {
// P1: probability hazardous situation occurs (1-5)
// P2: probability harm occurs given situation (1-5)
// Result: combined probability scale 1-25
return parseInt(p1) * parseInt(p2);
}
// Post-control probability (residual assessment)
function riskProbabilityAfter(p1After, p2After) {
return parseInt(p1After) * parseInt(p2After);
}
// Pre-control risk value using ISO 14971 risk matrix
function riskValueBefore(severity, probability) {
// Severity: S0 (1) → S3 (4)
// Probability: 1-25 (from P1×P2 product)
// Returns risk level: 1=acceptable, 2=ALARP, 3=reduce, 4=unacceptable
const sev = getSeverityScore(severity);
const probScore = Math.min(5, Math.ceil(probability / 5));
return getRiskMatrixValue(sev, probScore);
}
// Accepts residual probability and severity
function riskValueAfter(severity, probability) {
return riskValueBefore(severity, probability);
}
// Final risk decision incorporating acceptance logic
function riskValueFinal(residualRisk, acceptanceDecision) {
if (acceptanceDecision === 'yes') return 1; // accepted
if (acceptanceDecision === 'conditional') return 2; // conditional acceptance (ALARP)
return residualRisk; // return residual risk if not accepted
}
// Merge product and process characteristic classifications
function getMergedClassification(productClass, processClass) {
// Product characteristic SC/CC takes precedence if both exist
// Returns SC or CC or empty string
if (productClass && (productClass === 'SC' || productClass === 'CC')) {
return productClass;
}
return processClass || '';
}
// Target value precedence (product first, process second)
function getMergedTargetValue(productTarget, processTarget) {
return productTarget !== undefined ? productTarget : processTarget;
}
// Tolerance value merge
function getMergedTolerance(productTol, processTol) {
return productTol !== undefined ? productTol : processTol;
}
Cell Decorators and Visual Styling
Risk Class Color Coding (Medical Device)
| Risk Class | Color | Hex | Interpretation |
|---|
| 1 (Green) | Green | #4caf50 | Risk acceptable; no action required |
| 2 (Yellow) | Yellow | #ffc107 | ALARP (As Low As Reasonably Practicable); monitor; may need controls |
| 3 (Orange) | Orange | #ff9800 | Unacceptable; risk reduction required |
| 4 (Red) | Red | #f44336 | Unacceptable; design must be changed |
function riskStyle(riskValue) {
const classes = {
'1': 'rpn1', // green background
'2': 'rpn2', // yellow background
'3': 'rpn3', // orange background
'4': 'rpn4' // red background
};
return classes[riskValue] || 'rpn1';
}
SC/CC Characteristic Badges (Manufacturing)
// Special Characteristic badge rendering
function renderSCBadge(classification) {
if (classification === 'SC') {
return '<span style="background:#ff8c00; color:white; padding:4px 8px; border-radius:3px;">SC</span>';
}
if (classification === 'CC') {
return '<span style="background:#c62828; color:white; padding:4px 8px; border-radius:3px;">CC</span>';
}
return '';
}
// Row background highlighting
function getRowClass(classification) {
if (classification === 'SC') return 'row-sc'; // light orange #ffe0b2
if (classification === 'CC') return 'row-cc'; // light red #ffcdd2
return '';
}
function rowHeaderAPNew(residualRisk) {
// Apply residual risk color to entire row header
// Enables global risk visibility without scrolling
return riskStyle(residualRisk); // reuses risk matrix coloring
}
Dynamic Filtering (QueryFactory)
Equipment Assignment Filtering
Equipment picker auto-filters systemElement items based on type classification:
{
"queryFactory": {
"query": {
"type": "systemElement",
"filters": [
{
"field": "elementType",
"operator": "equals",
"value": "equipment"
}
]
}
}
}
Requirement: systemElement work items must have elementType custom field set to “equipment” or linked via equipment link role for picker to populate.
Characteristic Assignment Filtering
Characteristics are filtered by equipment selection via context:
{
"contextAware": true,
"filterBy": {
"field": "linkedEquipment",
"sourceColumn": "equipmentId"
}
}
Requirement: characteristic work items must have established links to equipment systemElement items.
| Type | Role in Configuration | Link Role |
|---|
| useStep | ISO 14971 Level 1 | parent |
| hazard | ISO 14971 Level 2 | parent_of |
| riskControl (task) | Mitigation element | mitigates |
| sysReq / desReq | Requirements linked from risk control | refined_by |
| testCase | Verification linked from requirements | verified_by |
| processStep | AIAG Level 1 | parent |
| characteristic | AIAG Level 2 | characteristic_of |
| systemElement | Equipment reference | equipment |
| failureMode | Cross-methodology FMEA reference | analyzedIn |
Cross-References
Configuration Files
Location: .polarion/nextedy/sheet-configurations/
File naming:
- Medical device:
risk-control-plan-iso14971.yaml
- Manufacturing:
risk-control-plan-manufacturing.yaml
Both configurations share the same risksheet.json template but with different hierarchyDefinition and column group configurations.