Invoice to Contract Reconciliation optimization using
Vision, NLP and RAG

The Challenge

An organization requested a solution to process physical copies of invoice documents containing diverse content and structures. The objective is to extract text from these invoices and identify various elements, such as names or tags for entities, amounts, and other details related to the transaction. Additionally, it is necessary to validate the invoice information against the structured data obtained from the information and certain information extracted from contract documents during the extraction process.

Hypothesis

  • A comprehensive solution is required to cluster documents into distinct categories based on their type, structure, and content. The system must extract text from invoice documents while retaining essential structural information and identifying transaction details, which will be registered as structured data.
  • Additionally, the solution should extract pricing and other financial information from contract documents.
  • An algorithm will be developed to validate the invoices based on predefined acceptance criteria provided by stakeholders.

Execution

  • A custom deep learning-based OCR solution was developed specifically for this document type.
  • Additionally, a language model-driven NLP solution was created to identify entities within the invoice data.
  • An algorithm was implemented to validate the content of the invoice data according to user specifications.
  • Furthermore, a pipeline for semi-automated data annotation was developed to support the active learning process.

Outcomes

  • An enhanced semi-automated system for invoice validation was developed, significantly reducing the need for human intervention while increasing accuracy.
  • This scalable and customizable solution can be extended to handle other types of documents that may contain unstructured information.

Project Highlights

  • 90% accuracy in extraction of data from invoices.
  • 90% accuracy in identification of price mismatches.