Automated bank-to-GL reconciliation with discrepancy detection, adjusting entry suggestions, and audit-ready output.
Bank Statement Data (any of):
GL / Book Data (any of):
Account Info:
text
Parse bank statement → normalize to: {date, description, amount, type}
Parse GL data → normalize to: {date, memo, debit, credit, account}
Convert debits/credits to signed amounts for matching
Matching priority (in order):
Match confidence levels:
text
Bank Statement Ending Balance: $XX,XXX.XX
+ Deposits in Transit (GL not on stmt): +$X,XXX.XX
- Outstanding Checks (GL not on stmt): -$X,XXX.XX
= Adjusted Bank Balance: $XX,XXX.XX
Book Balance per GL: $XX,XXX.XX
+ Add: Bank items not in books: +$XXX.XX
(interest income, credits)
- Less: Bank items not in books: -$XXX.XX
(NSF fees, service charges, errors)
= Adjusted Book Balance: $XX,XXX.XX
Difference: $0.00 ← Target
If difference ≠ $0, the agent performs:
Reconciliation Worksheet:
text
BANK RECONCILIATION
Entity: [Company Name]
Account: [Bank Name] – Checking (...1234)
Period: [Month Year]
Prepared by: [Agent] | Date: [Today]
BANK BALANCE RECONCILIATION
Statement Ending Balance: $50,000.00
Add: Deposits in Transit
03/28 ACH Deposit – Client A $5,200.00
Less: Outstanding Checks
Ck #1042 – Vendor B ($1,800.00)
Ck #1047 – Vendor C ($450.00)
Adjusted Bank Balance: $52,950.00
BOOK BALANCE RECONCILIATION
GL Ending Balance: $52,875.00
Add: Bank Interest Income $75.00
Less: NSF Fee – Check #891 $0.00
Adjusted Book Balance: $52,950.00
DIFFERENCE: $0.00 ✅
UNMATCHED ITEMS (require action):
[See detail tab]
For each unrecorded bank item, the agent generates:
Bank Service Charge:
text
DR Bank Charges Expense $XX.XX
CR Checking Account $XX.XX
Memo: Bank service charge per [Month] statement
Interest Income:
text
DR Checking Account $XX.XX
CR Interest Income $XX.XX
Memo: Bank interest per [Month] statement
NSF Check Returned:
text
DR Accounts Receivable $XX.XX
CR Checking Account $XX.XX
Memo: NSF – [Customer] check #[XXX] returned [date]
For entities with multiple bank accounts:
text
Reconcile [Checking – BoA ...1234] ✅
Reconcile [Savings – BoA ...5678] ✅
Reconcile [Payroll – Chase ...9012] 🔴 $234 discrepancy
→ Likely: ADP fee not recorded (check Jan statement)
Run as batch:
"Reconcile all three accounts for February. Bank CSVs are attached, QBO export is in the second file."
When GL data comes from QuickBooks Online:
PatternLikely CauseFixRound number difference ($100, $500)Missing transactionSearch GL/bank for that amountOff by 9 ($9, $90, $900)Transposition errorCheck digit order in data entrySmall difference (<$1)RoundingVerify import format (2 vs 3 decimal places)Recurring same amountDuplicate entryCheck for double-import of dataDifference = sum of itemsMultiple unrecordedReview bank items not in GLSame difference each monthSystematic errorCheck prior month carry-forward
Text Report (default): Formatted reconciliation worksheet + adjusting entry list
CSV Export: date, description, amount, match_status, match_confidence, action_required JSON: Full structured result for pipeline consumption
Excel Template: Pre-formatted reconciliation workbook with formulas (describe desired layout)
text
"Here's March bank statement [CSV] and QBO export. Reconcile and list any adjusting entries needed."
"I have a $1,247 difference in my Chase checking for February. Here are both files — find it."
"Run bank rec for all three accounts. Files attached. Flag anything over $500 that's unmatched."
"Bank statement shows $89,340 ending balance. Our books show $87,100. Statement and GL export attached."
"Reconcile this and give me the adjusting JEs I need to post in QBO."
Every reconciliation produces: