Home · Tutorials

Tutorial

How to Reconcile Transfers Between Bank Accounts With AI

This tutorial demonstrates the workflow on the synthetic starter toolkit only. Every screenshot uses demo data.

Internal transfers are easy to miscount as income or spending. This workflow pairs an outflow on one account with an inflow on another, then keeps those legs out of income and expense totals.

“With AI” here means a bot that applies deterministic matching rules you can test. It does not invent a match from a vague description, and it does not write “Transfer” back into Tiller for you.

Download the starter workbook or the full toolkit zip to follow along.

The matching rules

These rules use the usual Tiller Transactions columns: Date, Description, Category, Amount (signed), Account, Account ID, and Transaction ID. A separate Transfers tab, if your workbook has one, is not required; reconciliation runs on the Transactions register.

The demo transfers

The synthetic Transactions tab includes:

Prompt tested on this data

Run on November 10, 2026 against the same starter toolkit:

Match outflows on one account to inflows on a different account when the absolute amounts agree within $0.01 and the posting dates are within 5 days. Mark a pair confirmed when the descriptions or a shared reference or check token corroborate the match; otherwise mark it probable if it is a unique candidate. List unmatched transfer withdrawals, unmatched transfer deposits, and anything that needs manual review because several counterparties share the same amount and window. Exclude internal transfers from income and expense totals. Do not write to the spreadsheet. Do not include account numbers.

Tested result (demo): 3 confirmed pairs, 1 probable pair, 1 unmatched withdrawal, 2 unmatched deposits, manual review on the ambiguous $100.00 split, 11 internal-transfer legs excluded from totals. Income excluding internal transfers: $6,414.25. Expense excluding internal transfers: $94.50.

Synthetic transfer flag table showing confirmed, probable, unmatched, and manual-review demo pairs
Synthetic transfer flags (demo data only).

Those counts are also asserted in the transfer reconciliation tests. The full 12-test suite (deposits + transfers) was re-run on November 10, 2026 at 11:13 AM America/Denver (MST) and passed 12 / 0 on synthetic fixtures only.

How to read the output

Using this with your own Tiller spreadsheet

If you later run this against a private export of your own workbook, keep that file and the report private. Do not publish pair examples that contain real descriptions, amounts, or account numbers. HowItCodes tutorials, screenshots, and test results use synthetic demo data only. The first pass on a large register is for tuning the window and the transfer-word list, not for publishing screenshots.

Return to the starter toolkit or the deposit-tracking tutorial.