{% extends "base.html" %} {% from "_recon_table.html" import render_table, drill_table, drill_table2 %} {% block title %}Reconciliation — RWA Calculator{% endblock %} {% block content %}
Run this calculator and reconcile its output against your legacy calculator, component by component (EAD, RWA, risk weight, PD, LGD, CCF, exposure class, …). Each row is bucketed as match / within-tolerance / break / missing, with our reason and input drivers attached so a break can be triaged to a data fix or an engine fix.
{% if error %}Each row links into the per-key explorer, pre-filtered to that segment.
{% if result.allocation_table.rows %}Each side's exposures are totalled by risk class (a split exposure's portions each counted in their own class). Offsetting deltas show where the two engines allocate an exposure to different classes.
{{ render_table(result.allocation_table) }} {% endif %}Our-side view — how our breaks distribute across methodology (STD / FIRB / AIRB / slotting / equity) within each exposure class. Click a method to drill the explorer to that class × method. (The legacy side carries no approach, so the asset-class allocation above stays un-split.)
{{ drill_table2(result.class_method_table, "method", result.explorer_url, "exposure_class", "our_exposure_class", "method", "method") }}Click a key to open its single-loan forensic and sign it off (accept / reject with a reason), or open the full per-key explorer ({{ "{:,}".format(result.total_rows) }} row(s)). Reviewed breaks drop off this worklist. Download the full per-key detail: CSV · Excel.
{% if result.signoff_progress and result.signoff_progress.total %}Sign-off progress: {{ "{:,}".format(result.signoff_progress.reviewed) }} of {{ "{:,}".format(result.signoff_progress.total) }} break(s) reviewed — {{ "{:,}".format(result.signoff_progress.open) }} still open ({{ "{:,}".format(result.signoff_progress.accepted) }} accepted, {{ "{:,}".format(result.signoff_progress.rejected) }} rejected{% if result.signoff_progress.changed %}, {{ "{:,}".format(result.signoff_progress.changed) }} changed since sign-off & back on the worklist{% endif %}).
{% endif %} {% if result.signoff_decision_count %} {% endif %} {% if result.biggest_breaks.rows %} {{ drill_table(result.biggest_breaks, "_recon_key", result.loan_url_base, "key") }} {% elif result.break_count %}