Bank Statement Reconciliation

Reconciliation is the process of comparing your bank statement against the transactions you have recorded in Coincert, verifying that every entry matches and that your balances agree. Coincert provides a five-step reconciliation wizard that automates most of the work while giving you full control over every match.

Reconciliation Wizard showing the import statement step

The Reconciliation Wizard guides you through importing and matching your bank statement.

Why Reconcile?

Even with automatic bank syncing (via OAuth or FinanceKit), discrepancies can occur — timing differences with checks, pending transactions, bank fees you did not record, or data entry errors. Reconciliation catches these problems before they compound.

For manually-managed accounts, reconciliation is the primary way to verify that your records match reality.

Accessing the Reconciliation Wizard

  1. Open an account from the Dashboard or Accounts list.
  2. In the Account Register, tap the Reconcile button in the toolbar.
  3. The Reconciliation Wizard opens as a sheet. You cannot dismiss it accidentally — interactive dismiss is disabled until reconciliation is complete.

Step 1: Import Statement

The first step is to import a bank statement file. Tap Select Statement File to open the file picker.

Supported Formats

FormatExtensionDescription
CSV.csvComma-separated values. Most banks and apps can export this format.
OFX.ofxOpen Financial Exchange. A standardized format used by financial institutions.
QFX.qfxQuicken Financial Exchange. Essentially the same as OFX with minor Quicken-specific additions.
PDF.pdfBank statement PDFs. Coincert extracts transactions using text extraction or OCR.

CSV Import

When you select a CSV file, Coincert auto-detects the date, payee, amount, and memo columns from the header row. The parser recognizes common header names like “Date”, “Posted”, “Description”, “Payee”, “Merchant”, “Amount”, “Debit”, “Credit”, “Memo”, and “Note”.

Because CSV files do not include balance information, you are prompted to enter the opening balance, closing balance, and statement period dates manually from your paper or PDF statement.

A preview of the first five parsed transactions is shown so you can verify the data looks correct before continuing.

OFX / QFX Import

OFX and QFX files have a standardized structure (STMTTRN blocks), so column mapping is automatic. If the file includes a ledger balance, it is extracted and used for the closing balance. You go directly to the transaction preview without any manual mapping.

PDF Import

PDF statements are the most complex format to parse. Coincert uses a multi-pass pipeline:

  1. Text Extraction — For digitally-generated PDFs (the majority of bank statements), embedded text is extracted directly. This is nearly instant.

  2. OCR Fallback — For scanned or image-only PDFs, Coincert renders each page and runs Apple’s Vision framework (VNRecognizeTextRequest) with .accurate recognition level. Before OCR, a CoreImage document enhancer filter preprocesses the image to improve recognition quality.

  3. Metadata Extraction — The first two pages are scanned for statement period dates and closing dates. Multiple date range patterns are recognized (e.g., “01/15/2026 - 02/15/2026”, “Jan 15, 2026 through Feb 15, 2026”, “Statement Closing Date: 02/15/2026”).

  4. Section Filtering — The parser identifies transaction-section headers (“Transaction Detail”, “Account Activity”, “Purchases”, “Payments and Credits”, etc.) and filters out non-transaction sections (“Account Summary”, “Interest Charge Calculation”, “Reward Activity”, etc.) to reduce false positives.

  5. Multi-Account Detection — If the PDF contains multiple accounts (common with combined household statements), each account section is parsed separately. You are shown an account picker to choose which account to reconcile.

  6. Transaction Parsing — Lines within transaction sections are parsed for dates, payees, and amounts. The parser handles various date formats including year-less dates (common on credit card statements from Citi and Amex), two-digit years, and month-name formats.

  7. Multi-Line Consolidation — Transaction descriptions that span multiple lines are merged into a single entry.

  8. Deduplication — Summary tables that repeat transaction data are detected and removed.

After parsing, a PDF Preview sheet appears where you can review and edit every extracted transaction — correcting dates, payee names, or amounts — before confirming. You can also delete incorrectly parsed entries by swiping left.

Multi-Account Statements

When a statement file contains multiple accounts, a picker appears after parsing:

Statement Balances

After parsing, the import step shows a summary of the parsed data:

For CSV files, you must enter the opening and closing balances manually because CSV exports do not include balance information.

Step 2: Auto-Matching

After import, Coincert automatically matches statement transactions against your existing unreconciled ledger entries. The matching engine uses several signals:

How Matching Works

  1. Amount Matching — The primary signal. Statement and ledger amounts must be equal (or equal after sign normalization — see below).

  2. Date Proximity — Transactions are compared within a window of the statement period plus a five-day buffer on each end, accounting for posting delays.

  3. Payee Similarity — Coincert uses Jaro-Winkler fuzzy string matching (via the BankDuplicateDetector) to compare statement payee names against ledger payee names. Bank payees often differ from what you entered (e.g., “AMZN*MKTP US” vs “Amazon”).

  4. Learned Rules — The reconciliation learning engine remembers your previous match decisions. If you previously confirmed that “AMZN*MKTP US” matches “Amazon”, future reconciliations automatically boost the confidence score for that pairing.

  5. Sign Normalization — Some banks export debits as positive numbers in CSV files (opposite of Coincert’s convention). The engine detects this by comparing the average sign of statement amounts against ledger amounts and automatically inverts statement signs when a mismatch is detected.

Confidence Scoring

Each potential match receives a confidence score from 0% to 100%:

Learned rules add a 10% confidence boost (capped at 100%) when the payee pairing has been previously confirmed.

Match Types

Step 3: Review Matches

The Review Matches screen shows the results of auto-matching organized into three sections:

Review Matches screen with matched, review, and unmatched sections

Review auto-matched transactions and resolve ambiguous matches.

Summary Banner

At the top, three color-coded badges show counts:

Auto-Matched Section

Each match shows the statement payee on the left and the ledger payee on the right, connected by an arrow. Below each pair:

To reject an auto-match, swipe left on the row and tap “Reject”. The rejected transaction moves to the unmatched list for manual resolution in the next step.

Needs Review Section

Ambiguous matches (multiple high-confidence candidates for a single statement transaction) are shown here. For each:

Continuing

Tap Continue to proceed. Unmatched transactions are handled in the next step.

Step 4: Unmatched and Outstanding Items

This step is split into two screens that handle items appearing on only one side of the reconciliation.

Unmatched Statement Transactions

These are statement transactions that had no automatic match. For each, choose a resolution:

ResolutionDescription
Add to LedgerCreates a new transaction in your Coincert account. The account balance is updated.
Bank FeeCreates a new transaction labeled “Bank Fee” with a memo noting the original payee.
InterestCreates a new transaction labeled “Interest” with a memo noting the original payee.
AdjustmentMarks the statement entry as an adjustment. No ledger transaction is created.
Manual MatchOpens a searchable list of unreconciled ledger transactions so you can manually pair the statement entry with the correct one.
Unmatched transactions with resolution options

Choose how to resolve each unmatched statement transaction.

Outstanding Ledger Items

These are transactions in your Coincert ledger that did not appear on the bank statement. They are usually timing differences. For each, choose a classification:

ClassificationDescription
Outstanding CheckA check you wrote that has not cleared the bank yet. Subtracts from the adjusted bank balance.
Deposit in TransitA deposit you made that has not posted yet. Adds to the adjusted bank balance.
IgnoreNo adjustment. The item is left unresolved.

A summary at the bottom shows the total outstanding checks and deposits in transit.

Step 5: Balance Reconciliation Summary

The final step compares your adjusted balances to determine whether the reconciliation balances to zero.

Reconciliation Summary showing balanced result

When adjusted balances match, reconciliation can be completed.

Bank Statement Section

Ledger Section

Difference

The difference between the adjusted bank balance and the adjusted ledger balance is displayed prominently:

Session Summary

A detailed breakdown of the reconciliation session:

Completing Reconciliation

When you tap Complete Reconciliation:

  1. All accepted matches are saved as TransactionMatch records.
  2. Matched ledger transactions are marked as reconciled (isReconciled = true).
  3. Unmatched resolutions are applied — new transactions are created for “Add to Ledger”, “Bank Fee”, and “Interest” items, with the account balance updated accordingly.
  4. Match learning data is recorded so future reconciliations benefit from your corrections.
  5. The reconciliation session is marked as complete with a timestamp.

A completion screen confirms the number of transactions reconciled and the completion timestamp.

Smart Learning

Coincert learns from your reconciliation decisions to improve future auto-matching:

Over time, the auto-matching accuracy improves as the system learns your bank’s payee naming patterns.

Duplicate Detection

Statement transactions are deduplicated during PDF parsing using a combination of date, payee, and amount. Summary tables in bank statements (which often repeat the same data in a different format) are detected and filtered out.

For CSV and OFX/QFX imports, duplicate detection against existing ledger transactions uses the same BankDuplicateDetector engine used for regular transaction imports. Potential duplicates are flagged during the auto-matching phase rather than silently imported.

Reconciliation History

Each reconciliation creates a ReconciliationSession record that stores:

Sessions sync via iCloud across your devices. You can view past reconciliation sessions in the account detail.

Platform Differences

Reconciliation is available on iOS, iPadOS, and macOS. It is not available on watchOS.

FeatureiOS / iPadOSmacOS
File pickerSystem document pickerFinder open panel
PDF Preview editingDecimal pad keyboard for amountsStandard text field
Swipe actionsSwipe left to reject matchesRight-click context menu
Statement file accessFiles app, iCloud Drive, email attachmentsFinder, iCloud Drive