Rise of the Machines: How Robots Captured Bookkeeping

    Push-button wars are in full swing, robots continue to advance, machines are trained many times faster than people, but Andrey, the owner of a Moscow coffee shop, is becoming more and more happy ... On this Friday holiday, we decided to share with you the story of Button, which created 42 last year a robot to save accountants from routine work, and is now engaged in the development of artificial accounting intelligence.



    Button - back office for entrepreneurs. We carry out bookkeeping, solve legal issues and take away the routine.

    In 2016, the Button developers created many robots, 42 in total. These are our assistants, they take on the routine of an accountant: one recognizes documents, the second sorts them, the third conducts a bank statement. Each robot has a name: Raskukozhko, Sort, Explorer, there is even a Panicher robot. We tell you why we need assistants with artificial intelligence and how they work.

    Technical Intro


    Our customers communicate with us through a web application or in a mobile application on an iPhone or Android. The web application is developed on the .NET platform. At first there was Java, but now it is almost gone. Recently migrated apps to Azure .

    Accountants keep records of thousands of client bases in the 1C system. To store the databases we use the technology of the 1sFresh cloud system, and numerous robots live wherever where - part in Azure, part on our servers.

    So we are sure that all documents, customer databases and other data are safe.

    The developer of the Button tells. Why switched from Java to .NET :

    1. Our application at that moment is the legacy that we received after 5 years of development. It was created without the use of any engineering practices. The structure of the code and the lack of testing created huge difficulties in writing new features. To make even a slight change, we spent a lot of time and energy. In addition, the application was designed in such a way that any tests had to be very long and inconvenient to write. Unit testing did not exist. There were only integration tests that used a live base. As a result, all tests passed for hours.

    2. Due to the fact that there was one Enterprise in the application and it drove another Enterprise, our application took a very long time to deploy and assemble. A long time is up to 40 minutes. It took a lot of time to assemble and deploy the application after the slightest change or just to look at how some feature looks on the form in the layout. Build hobbies appeared. :)

    3. It became obvious that we should write new features in a separate application on the side. Our competencies in .NET at that moment became much more - our team changed. The team unanimously recognized that C # was much nicer than Java. In addition, .NET has technologies such as Linq that allow you to deal not with a real database, but with its full InMemory implementation.

    4. Most of our application works with 1C. And we do this in a very controversial way through the COM API, COM - it works only in the Windows environment and .NET has native support for COM. That is, we still had a lot of .NET code, and the team saw that this code was nicer.

    As it was before the robots


    1C can prepare any reports, but for this you need to constantly maintain the current state of the accounting base. Someone must enter the primary documents into the system, import and conduct a bank statement, create and conduct accounting documents. And also to fix errors that occurred during operation. These are important tasks, but they take a lot of time.

    For example, in order to process a bank statement, for each payment you need to determine what type of transaction it relates to: payment to the supplier, return to the buyer, cash withdrawal, loan to the counterparty, and so on. The accountant, knowing the features of the client, will accurately determine the type of operation and correctly conduct the payment in 1C.

    But every payment processed by an accountant means that with the growth of the client base, you will have to increase the staff of accountants. We felt that we would not have a future with such an approach.

    We decided to develop machine learning and create artificial accounting intelligence in order to automate bookkeeping with its help. The system will perform 90% of all accounting operations by itself, and only 10% will require human participation.

    As it is now


    Andrey is the owner of a small coffee shop in Moscow. Every day he buys food from suppliers, feeds Muscovites excellent pastries and treats coffee.

    Accounting is maintained in iiko , and accounting is entrusted to Button . He carefully collects primary documents and brings them to our Moscow office once a week. We work with the primary: we scan, sort and send to contractors. Documents are available to the client in the cloud, the originals are stored in fireproof cabinets, and scans immediately go to the document conveyor.

    First of all, we scan Andrew’s primary and get a pdf with all the documents in one file. To separate the documents, the Raskukozhka robot enters the work. He turns pdfku in 150 jeeps.

    Then, the Sorter robot looks at each scan and understands which of the documents is the act, which is the UPD, and which is the waybill. He carefully sorts them and puts them in the right folder.



    Scans are different. If the document is upside down or lying on its side, the Sorter turns them over so that it is convenient for a person to read.

    Inside the Sorter, there are two convolutional neural networks — one for rotation and one for classifying documents. To train the networks, it took 40 thousand hand-scanned scans.

    Then all the text in the document is recognized by another robot. It defines the name of the client, counterparty, date, number and the entire invoice part. For recognition, we use a solution from our partners, who, in turn, use ABBYY software.

    And only after that the scan gets to the accountant:



    The accountant checks and clicks the “Save” button.

    Further, the robot Explorer is included in the work, it saves each document in 1C and holds it.

    After that, the accountant checks all receipts and write-offs from the company’s current account. To do this, you need a statement from the client’s bank account. Previously, we had to request it from all customers.

    Now everything is easier. In order to receive an extract without a client, we integrated with Alpha, Tochka and Tinkoff Bank. Clients do not need to go to the Internet bank, download the statement and send it to the accountant. And in 1C there is always up-to-date information on payments. An extract from these banks is also displayed in client applications. The remaining banks are still serviced manually.

    But just copying the payment from the bank to 1C is not enough. Each payment must be carried out correctly - and this is also done by a special robot. For training, several hundred thousand manual payments were used.

    But first, we had to agree with all the accountants of the company in order to carry out the statement in the same way. It turned out that there is creativity in accounting. :)

    As a result, we got an accuracy of 97% - this is comparable to the accuracy of a person.
    When everything is done and verified, the accountant Irina sends Andrey a ready report and a preliminary tax amount. Andrey is happy, knows the preliminary tax amount in advance and can adjust it. How - the accountant will tell.



    What does all this mean?


    Using machine learning algorithms allows us to increase our customer base while not hiring new employees.

    For Button accountants, the workflow is simplified and allows for a short time to verify the correctness of the operations performed and to correct something, if necessary. The algorithm is self-learning, each accountant fix improves the process and improves the algorithm.

    Not so long ago, the Ministry of Finance predicted the replacement of accountants with artificial intelligence and the gradual disappearance of the accounting profession. Do not worry, we won’t be left without accountants, but the selection will obviously be the best. They will control the robots.

    We think this is not bad - why do we need 5 million accountants for a population of 145 million? For comparison, in the United States with a population of 300 million, there are slightly more than a million accountants.

    We believe that in the near future due to artificial intelligence the quality of accounting and tax accounting will grow significantly.

    Thank you for the article by Maxim Akhmadinurov movemind .

    Also popular now: