A non-transitory machine-readable storage medium including instructions that, when executed by a machine, cause the machine to perform operations comprising:
- identifying features for reconciling transactions, in a bank statement of a first entity, by two machine-learning programs that comprise a community predictor and a user predictor, the features comprising a description of the transaction, a name of a second entity associated with the transaction, and an account in an accounting system;
- training, by one or more processors, the community predictor with training data, the training data comprising values of the features for previously reconciled transactions of a plurality of businesses that match transactions in bank statements to corresponding accounts in the accounting system, the community predictor being for determining reconciliation suggestions based on the previously reconciled transactions for the plurality of businesses;
- training, by the one or more processors, the user predictor with training data comprising values of the features for previously reconciled transactions of the first entity, the user predictor being for determining reconciliation suggestions based on the previously reconciled transactions of the first entity;
- receiving a first transaction in the bank statement, the first transaction relating to a user and including a description, a date, and an amount;
- inputting the first transaction to the community predictor and the user predictor;
- determining, by the community predictor, one or more first suggestions for reconciling the first transaction and a first confidence level corresponding to each of the one or more first suggestions;
- determining, by the user predictor, one or more second suggestions for reconciling the first transaction and a second confidence level corresponding to each of the one or more second suggestions;
- determining a best suggestion corresponding to a highest confidence level of the first confidence levels and second confidence levels of the one or more first suggestions and second suggestions;
- responsive to the highest confidence level of the best suggestion not exceeding a predetermined first threshold, causing:
- presentation in a user interface one or more suggestions from the one or more first suggestions and second suggestions, each suggestion comprising the name of the second entity in the first transaction and an account in the accounting system associated with the first transaction;
- receiving through the user interface, a user designation reconciliation suggestion from the one or more suggestions for manually reconciling the first transaction;
- reconciling the first transaction with the user designation reconciliation suggestion;
- and
- re-training, by the one or more processors, the user predictor with training data comprising the first transaction and the user designated reconciliation suggestion;
- and
- responsive to the confidence level of the best suggestion exceeding the predetermined first threshold, automatically reconciling the first transaction with the determined best suggestion.