{# Extended Security Architecture Review dashboard: coverage, exceptions, CCM domain conformance, risk disposition, unreviewed/stale projects, recurring root causes, gate decisions, and standards deviation. See web/architecture_dashboard.py for what's real vs. approximated. #} Program dashboard
{{ dash.coverage_pct }}% Coverage — {{ dash.coverage_reviewed }} / {{ dash.coverage_in_scope }} in-scope systems
{{ dash.exceptions_past_expiry }} Exceptions past expiry
{{ dash.open_findings_past_due }} Open findings past due (>{{ past_due_sla_days }}d)
{{ dash.unverified_mitigations }} Unverified mitigations
{{ dash.cycle_time_p90_days if dash.cycle_time_p90_days is not none else "—" }} Cycle time p90 (days)

CCM domain conformance

Hatched = not assessed by review (process-assured or not applicable), not a failing score.

{% for row in dash.ccm_rows %}
{{ row.name }}
{% if row.hatched %}
{% else %}
{% endif %}
{{ row.code }} — {% if row.hatched %}not assessed{% else %}{{ row.score }}%{% endif %}
{% endfor %}

Risk disposition

{% if dash.disposition_total %}
{% for key in ["remediated", "mitigated", "accepted", "open", "past_due"] %} {% set count = dash.disposition[key] %} {% if count %}
{% endif %} {% endfor %}
{% else %}
{% endif %}
Remediated ({{ dash.disposition.remediated }}) Mitigated ({{ dash.disposition.mitigated }}) Accepted ({{ dash.disposition.accepted }}) Open ({{ dash.disposition.open }}) Past due ({{ dash.disposition.past_due }})

Exception aging

{{ dash.exception_aging.past_expiry }} Past expiry
{{ dash.exception_aging.due_0_30 }}Due ≤30d
{{ dash.exception_aging.due_31_60 }}Due ≤60d
{{ dash.exception_aging.due_61_90 }}Due ≤90d

Unreviewed & stale

{% if dash.stale_projects %}
{% for p in dash.stale_projects %} {% endfor %}
ProjectStateLast reviewed
{{ p.project_display_name }} {% if p.state == "never_reviewed" %}Never reviewed {% elif p.state == "boundary_changed" %}Trust boundary changed {% else %}Stale ({{ p.days_since_review }}d){% endif %} {{ (p.last_reviewed_at | fmt_time) if p.last_reviewed_at else "Never" }}
{% else %}
Nothing unreviewed or stale — every in-scope project has a recent review.
{% endif %}

Top recurring root causes

{% if dash.root_causes %}
{% for cause, count in dash.root_causes %}
{{ cause }}
{{ count }}
{% endfor %}
{% else %}
No findings yet to aggregate.
{% endif %}

Gate decision mix

{{ dash.gate_mix.approve + dash.gate_mix.conditions + dash.gate_mix.reject }}
Approve ({{ dash.gate_mix.approve }}) With conditions ({{ dash.gate_mix.conditions }}) Reject ({{ dash.gate_mix.reject }})

Most-deviated standards

{% if dash.top_standards %} {% for standard, count in dash.top_standards %}
{{ standard }}
{{ count }}
{% endfor %} {% else %}

No standard-specific findings cited yet.

{% endif %}

Uncovered CCM domains

{{ dash.uncovered_ccm_domains | length }} / 17 {% if dash.uncovered_ccm_domains %} {% else %}

Every domain has been assessed by at least one review.

{% endif %}