– AUTOMATED INVOICE RECOGNITION
Increasing success and business growth occasionally cause companies problems. For Gilmartins, a leading UK construction company, one of those problems was coping with the increasing amount of incoming invoices and matching them against projects and accounts. We were contacted by a UK-based intermediary (StillWater Rock) in order to write some specially-designed software to solve their problem – the sort of custom programming we specialise in.
A small Proof-Of-Concept system was written and demonstrated. This showed how we could take a scanned invoice and in simple terms ‘read’ it. We could locate key information on the invoice – logos, addresses, postcode, telephone numbers, tax registration numbers – and use that to identify the supplier.
We also located other data – invoice total, invoice date, invoice reference and purchase order reference. In this Proof-Of-Concept system the data was presented to the user for verification before being added to the accounts system for processing.
After the success of the Proof-Of-Concept system, Gilmartins through SWR requested further custom programming – scaling the system up to be used in production, linked in to their accounts system. Although we based it on methods used in the test system, several upgrades were added. The main difference is the ability to handle batch submissions.
In the test system invoices were submitted individually, and the process followed a direct path from beginning to end. One of the benefits of BrainVox custom programming this software was that when it came to writing the production system, we split the processing into several self-contained systems for two important reasons.
Firstly, each process is a self-contained step, independent of any of the other steps in the process. This allows them to complete tasks without waiting for any other process to happen in order. For example, if invoices are entered in the sequence 1, 2, 3, and 3 is identified before 1 and 2, we do not need to worry about them being out of sequence or wait for the complete batch to finish. The next step will be happy to process them in the order 3, 1, 2.
Secondly, this gives us built-in scalability. We can cope with increased loads at any time by starting more copies of the individual steps and allowing them to pick up the output from the previous steps in whatever order they want.