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.
Demo walkthrough
- 01
Upload UPD, supplier invoice and CMR
- 02
Extract text and compare container numbers
- 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
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