{% extends 'base.html' %} {% block title %}Reconcile Statement - {{ bank_account.name }}{% endblock %} {% block page_pretitle %}
Bank Accounts / {{ bank_account.name }} / Statement / Reconcile
{% endblock %} {% block page_title %} Reconcile {{ statement.statement_period_start|date:"F Y" }} Statement {% endblock %} {% block page_actions %} Back to Statement {% endblock %} {% block content %}

How to Reconcile

Match each bank statement line with a corresponding system transaction:

  • Suggested Matches: Review AI-suggested matches based on date, amount, and description
  • Manual Matching: Search and select the correct transaction if suggestions don't match
  • Create Transaction: If no match exists, create a new transaction from the statement line
  • Confidence Score: Higher percentages indicate better matches
{% if line_matches %}

Unreconciled Statement Lines

{{ line_matches|length }} lines to reconcile
{% for item in line_matches %}

Line #{{ item.line.line_number }}: {{ item.line.description|truncatewords:10 }}

{{ item.line.date|date:"d M Y" }} | {% if item.line.debit %} Debit: RM {{ item.line.debit|floatformat:2 }} {% else %} Credit: RM {{ item.line.credit|floatformat:2 }} {% endif %}
{% if item.matches %}
Suggested Matches:
{% for match in item.matches %}
{{ match.reference_no }} - {{ match.description|truncatewords:15 }}
{{ match.date|date:"d M Y" }} | {{ match.get_transaction_type_display }} | RM {{ match.amount|floatformat:2 }} {% if match.contact %} | {{ match.contact.name }} {% endif %}
{% endfor %}
{% else %}
No matching transactions found for this line.
{% endif %}
{% endfor %}
{% else %}

All Lines Reconciled!

All statement lines have been successfully matched with system transactions.

{% endif %}

Reconciliation Tips

Date Matching

System searches for transactions within ±3 days of the statement line date to account for processing delays.

Amount Matching

Amounts must match exactly. Check for fees, charges, or rounding differences if no match is found.

Description Matching

Fuzzy matching is used for descriptions. Similar wording (e.g., "Petronas" vs "PETRONAS FUEL") will still match.

{% endblock %} {% block extra_js %} {% endblock %}