{% extends "base.html" %} {% block title %}Risk Engine{% endblock %} {% block page_title %}Risk Engine{% endblock %} {% block content %}

Overall Assessment: {{ summary.risk_level|upper }} Risk Profile

{{ summary.overall_advice }}

{{ "%.0f"|format(summary.overall_score) }}
Overall Risk Score
{{ summary.risk_level|title }}
{{ summary.critical_count }}
Critical Risks
{% if summary.critical_count > 0 %}
Requires action
{% endif %}
{{ summary.high_count }}
High Risks
{{ summary.total_risks }}
Total Assessed
{{ summary.medium_count }} medium ยท {{ summary.low_count }} low
Risk by Category
{{ summary.category_scores|length }} categories
{% for cat, data in summary.category_scores.items() %}
{{ category_labels.get(cat, cat)|replace('_', ' ')|title }}

{{ data.explanation }}

{{ "%.0f"|format(data.avg_score) }}
{{ data.risk_count }} risks assessed {% if data.critical_count > 0 %} {{ data.critical_count }} critical {% endif %} {% if data.high_count > 0 %} {{ data.high_count }} high {% endif %}

{{ data.advice }}

{% endfor %}
{% if summary.top_risks %}
Top Priority Risks
{% for risk in summary.top_risks %}
{{ risk.name }} {{ "%.0f"|format(risk.risk_score) }}

{{ risk.description }}

{{ "%.0f"|format(risk.probability * 100) }}% probability {{ "%.0f"|format(risk.impact * 100) }}% impact
{% endfor %}
{% endif %}
Risk Heatmap
Low Medium Critical
Bubble size = risk score. Position = probability (horizontal) vs impact (vertical). Top-right = most dangerous.
Risk Register
{{ risks|length }} entries
{% for risk in risks %} {% endfor %}
Risk Name Category Probability Impact Score Level
{{ risk.name }} {{ category_labels.get(risk.category, risk.category)|replace('_', ' ')|title }} {{ "%.0f"|format(risk.probability * 100) }}% {{ "%.0f"|format(risk.impact * 100) }}% {{ "%.0f"|format(risk.risk_score) }} {{ risk.risk_level|title }}
{% endblock %} {% block extra_js %} {% endblock %}