Skip to main content

Report Structure

The report implements the full ISO 14971:2019 HARA documentation structure in a single Velocity template (~2,200 lines):
SectionTitleISO 14971 Clause
1Scope and Purpose of the AnalysisClause 4
2Risk Calculation MethodologyClause 5
3DefinitionsISO 14971:2019 terms
4Summary of Identified Hazards and HarmsClause 5
5Pre-Mitigation Risk Distribution MatrixClause 5
6Post-Mitigation Risk Distribution MatrixClause 7.1
7Final Risk Distribution MatrixClause 8.3
8Risk Acceptability SummaryClause 8
9Risk Control Measures OverviewClause 7
10Residual Risk EvaluationClause 8
11TraceabilityClause 9
12Compliance StatementClause 10

Three-Stage Risk Evaluation Pipeline

The report computes risk statistics at three stages, mapping directly to ISO 14971 clauses: diagram Risk level values by stage:
StagePossible Values
Pre-mitigation (preRisk)Acceptable, Investigation, Unacceptable
Post-mitigation (postRisk)Acceptable, Investigation, Unacceptable
Final risk (finalRisk)Acceptable, Unacceptable, Benefit-Risk Acceptable
The benefitAcceptable value is unique to the final risk stage. It implements ISO 14971 Clause 7.4, where residual risk is justified by clinical benefit even when post-mitigation risk remains in the Investigation or Unacceptable zone.

Risk Calculation Methodology (Section 2)

Two-Factor Probability Model

The report documents the P1 x P2 probability approach:
  • P1 (Hazard Probability): probability of the hazardous situation occurring (scale 1-5, from pOccurrence enum)
  • P2 (Harm Probability): probability that the hazardous situation leads to harm (scale 1-5, from p2Occurrence enum)
  • Combined Probability P: bucket(P1 x P2), mapped to 5 buckets
Probability bucket mapping (P1 x P2 product to bucket):
Product RangeBucketLabel
1-31Very Low
4-82Low
9-153Medium
16-204High
21-255Very High

5x5 Risk Acceptability Matrix

The report renders a static 5x5 matrix defining risk acceptability criteria:
P \ S1 Negligible2 Minor3 Serious4 Critical5 Catastrophic
5 Very HighInvestigationUnacceptableUnacceptableUnacceptableUnacceptable
4 HighAcceptableInvestigationUnacceptableUnacceptableUnacceptable
3 MediumAcceptableInvestigationInvestigationUnacceptableUnacceptable
2 LowAcceptableAcceptableInvestigationInvestigationUnacceptable
1 Very LowAcceptableAcceptableAcceptableInvestigationInvestigation
Risk acceptability thresholds are hardcoded in the Velocity template, not read from configuration. Changes to acceptability criteria require template modification.

Executive Summary (Section 4)

The executive summary displays dashboard-style cards showing risk counts and percentages at each stage:
  • Pre-mitigation: Acceptable / Investigation / Unacceptable counts
  • Post-mitigation: Acceptable / Investigation / Unacceptable counts
  • Final risk: Acceptable / Benefit-Risk Acceptable / Unacceptable counts
Additionally lists all identified hazard categories from the analysis.

Risk Distribution Matrices (Sections 5-7)

Three 5x5 color-coded matrices visualize risk distribution:
  1. Pre-mitigation (Section 5): Uses preHazardProbability and preHarmProbability fields
  2. Post-mitigation (Section 6): Uses postHazardProbability and postHarmProbability fields
  3. Final risk (Section 7): Includes benefit-risk analysis impact
Each matrix cell shows the count of risk records at that probability-severity intersection, color-coded:
  • Green: Acceptable
  • Orange: Investigation required
  • Red: Unacceptable
The post-mitigation matrix is completely hidden when no risk records have post-mitigation data, rather than showing an empty matrix.

Benefit-Risk Analysis (Section 7)

Section 7 includes three additional tables:
TableContent
Benefit-Risk ImpactCounts risks justified by benefit analysis (finalRisk = benefitAcceptable)
Benefit-Risk Decision MapDetails for each benefit-justified risk: ID, description, post-risk, additional controls possible, benefit documentation, result, final decision
Unacceptable Final RisksAction items for risks with finalRisk = unacceptable
Action item logic:
  • If additionalControlsPossible = yes: “Implement additional risk controls”
  • Otherwise: “Re-evaluate device design or benefit-risk justification”

Compliance Statement (Section 8)

The report concludes with an ISO 14971 compliance statement:
  • Success box (green): Displayed when no unacceptable final risks remain
  • Danger box (red): Displayed when unacceptable final risks exist, with regulatory action items
The compliance statement uses finalUnacceptableCount (not postUnacceptableCount). This means benefit-risk analysis can change a risk from non-compliant to compliant.

Data Sources

The report queries all work items of type:riskRecord in the project and resolves harm severity by traversing linked work items of type harm. Key fields consumed:
FieldPurpose
preHazardProbability / preHarmProbabilityPre-mitigation P1, P2
postHazardProbability / postHarmProbabilityPost-mitigation P1, P2
preRisk / postRisk / finalRiskRisk level at each stage
additionalControlsPossibleWhether further controls are feasible
benefitBenefit-risk justification text
riskBenefitResultBenefit-risk analysis outcome
hazardousSituationDescription of hazardous circumstance
severity (from linked harm)Harm severity (1-5)

Technical Details

PropertyValue
Page location.polarion/pages/spaces/_default/iso-14971-hara-report/page.xml
Template typeVelocity script (~2,200 lines)
Sidebar shortcutwiki/iso-14971-hara-report
CSS scope.hara-report-container
Print supportpage-break-inside:avoid on sections