A common practice amongst accountants and bookkeepers to to check the data in accounting systems back to bank statements to ensure there are no missing or duplicated transactions.
This usually involves comparing a running balance in the accounting system to the bank statement balance - since any differences will leave a breadcrumb to missing/duplicate transactions.
This article explains Coconut's approach to this.
About running balances in Coconut
We don't store a running balance in our system. The balance that we display to the user is the 'real-time' balance provided by the bank. This usually is the 'cleared' balance (ie excludes any 'pending' card transactions.
Coconut only receives transactions that are 'cleared' by the bank and so the transactions that are synced to Coconut should be reflective of the balance that you and the client sees.
Most high street bank feeds do not provide a 'time' on transactions, only a 'date', and as such Coconut can't put the transactions in the same order as they appear on the bank statement. This means when you calculate the running balance, it will likely only match at the end of each day once that day's transactions are all accounted for on both side.
1. How to get a running balance from Coconut
You can calculate a running balance following these steps:
Head to the 'Bank Feeds' tab for a client
Click on the Account that you want to check
Click on 'Actions' and 'Export to CSV'
In a spreadsheet add a running balance column
Use the balance that you see in Coconut as the starting balance
Calculate the running balance
This running balance can then be compared to your bank statements to identify if there are any duplicate or missing transactions.
2. How Coconut prevents missing transactions
The way we have designed our bank feeds means that when connections break temporarily, they always grab the data since the date of the previous sync.
We also constantly performed a 14 day resync check, checked 4 times a day per account. In our experience, transactions typically can change after they've cleared (which they shouldn't, but they can!) for about 7 days. So this means we are keeping our systems in sync.
3. How Coconut prevents duplicate transactions
We have developed a proprietary deduplication system that reviews transaction amounts, dates, and other meta data that the banks send us, to identify duplicate transactions. When these occur, we promote the new transaction (as the new one is usually the more correct version) and migrate any attachments, notes and categorisation from the old transaction to the new one.
We try to make our bank feeds as reliable as possible. If you identify a problem with duplicate or missing transactions, please let us know so we can investigate it.