Python / Microsoft Services / DocuWare / SQLite

Financial Reconciliation Automation

A business-risk automation project that reconciled invoices across email, finance records, and DocuWare so the finance team could catch discrepancies inside a predictable reporting window.

Invoice reconciliation workflow connecting finance records, emailed invoices, DocuWare, Python logic, SQLite state, and finance reports

Overview

The finance department was dealing with invoice discrepancies that were hard to trace manually because the same business process touched several separate systems. Invoices could appear in Microsoft email, finance exports from a property-management system, and the DocuWare archive. By tax-season reporting, those gaps represented seven-figure operational exposure and required a more reliable way to identify what had been received, processed, archived, or left for manual investigation.

I built a Python workflow that gathered invoice evidence from the available sources, recorded reconciliation state, used conditional logic to decide what needed to be downloaded or uploaded, and produced a twice-daily report for the finance team. The system made an expensive, high-risk review process more systematic without exposing private invoice details in the public version of this portfolio.

Key Features

Architecture

Finance records, emailed invoices, DocuWare watermark scanning, Python reconciliation logic, SQLite state, and twice-daily reporting architecture

The workflow gathered finance records, collected invoices from email, scanned DocuWare from the last known watermark, reconciled the results through Python, recorded run state in SQLite, and sent the finance team a scheduled report with separate CSV attachments for exceptions.

Business Impact

This project is a strong example of business-impact engineering: the value was not just connecting APIs or writing scripts, but reducing uncertainty around an expensive finance process. The workflow created a repeatable control point for invoice tracking, gave the finance team a consistent twice-daily view, and made exceptions easier to investigate before they compounded into larger reporting problems.

What I Learned

This work reinforced that operations automation is not just scripting. The useful part is turning fragile manual knowledge into a process that can be rerun, audited, explained, and handed off. It also strengthened my experience designing automation around business risk, scheduled reporting, data quality, and exception handling while keeping implementation details and sensitive records private.