Skip to content
← Selected work

01 / Bachelor’s thesis / logistics

Invoice processing at JDE

My bachelor’s thesis: an invoice-auditing prototype and XML-to-Optimacros automation, developed and tested on real logistics documents.

My role
Research, development & model validation
Period
2025–2026
Status
Bachelor’s thesis · pilot evaluated
Recorded in my thesis validation app. XML/PDF extraction and rule-based checks run locally; the final model reply is a fixed demo response. The recording shows the workflow, not a new model evaluation or a speed benchmark.

Demo walkthrough

  1. 01

    Upload UPD, supplier invoice and CMR

  2. 02

    Extract text and compare container numbers

  3. 03

    Review discrepancies and export the report

The sample has a 2,000 RUB price difference and a container-number mismatch. The report lists both for human review.

Download demo report · Markdown ↓

Pipeline B · XML → Optimacros

The current browser port of the Python/Colab import tool described in the thesis. The synthetic invoice is parsed and the export is calculated locally; this demo uses no model or backend simulation. Internal Optimacros identifiers are replaced with demo identifiers.

Five invoice lines become three container rows. New costs of 46,200 RUB are added to 1,000 RUB already in the register: the exported total is 47,200 RUB.

The problem

I studied invoice processing during my logistics internship at JDE. The mapped workflow took about 157 staff-hours a month for 300 invoices. Fifteen large invoices accounted for 64% of that time. Documents arrived in different formats, and staff had to reconcile them across Diadoc, SAP and Optimacros.

What I built

  • Mapped the existing process, identified the causes of manual work and compared seven solution options against the department’s constraints.
  • Built Pipeline A: a Streamlit auditor that extracts XML/PDF content, compares invoices with supporting documents, and saves reports in SQLite. I wrote scripts to test model outputs against expected results on real document sets.
  • Built Pipeline B: deterministic XML parsing, service-to-column mapping and Excel import generation for Optimacros. The second demo shows its later browser version, ported from the Python/Colab tool.

What changed

7 correct + 3 partial

The thesis benchmark covered 10 invoice cases in 11 runs. Seven cases matched the expected result; three were safe partial results, with no unsafe approval observed in this sample. One large-invoice run exceeded the context window and succeeded after XML preprocessing. For verification and posting together, the thesis compares about 405 minutes of manual work with 9–14 minutes in the pilot. Posting alone fell from about 165 to 5–10 minutes.

Source & scopeSource: my 2026 SPbU bachelor’s thesis, “Improving Logistics Invoice Processing at Jacobs Douwe Egberts Rus LLC”, §3.2 and Appendix A. The audit benchmark used local google/gemma-4-E4B inference on a MacBook Air M5 with 16 GB memory. The demonstrations here are separate synthetic examples.

Scope and limitations

The 85–100 hours per month in the economic assessment is an estimate extrapolated from the large-invoice workload. The ten-case benchmark is a pilot result, not a general accuracy claim. The thesis identifies stronger Russian-language models, SAP integration and a fuller deterministic validation layer as further work.

Tools

  • Python
  • Streamlit
  • PyMuPDF
  • SQLite
  • XML
  • Optimacros