Client reporting pipeline (My TeamR)
A deterministic Python pipeline that replaced ~320h/year of manual owner reporting.

Illustration of the manual pile. Real client invoices are not published.
The brief
Owner reporting for a 16+ property short-term rental portfolio was a multi-week grind: PDF invoices, address mapping, owner splits, validation, and formatted reports. It was slow and error-prone, and it consumed time that should have gone to the operation itself.
Decision
No LLM in the shipped pipeline — on purpose. I tried n8n + an LLM API first. It failed on speed, API cost, and trust. One owner has ~200 invoices; long LLM chains drift and eventually invent. A report that's sometimes right is worse than a slow one. The tool is deterministic Python: extract → normalize → calculate → triage → report. It batches 1,000+ PDFs, assigns each to the right owner, and costs nothing once written. Decisions live in code you can check; a human queue catches flagged edges.
System
01
Ingest
PDF invoices and auxiliary mapping docs from the working folder
02
Classify & extract
Normalize invoice fields; map listing titles → addresses → owners
03
Calculate
Aggregations, chronological per-address views, owner splits
04
Validate
Validation report + review_needed queue for edge cases
05
Report
HTML/PDF owner reports operators can print and share
Solo-built Python pipeline, now the company default. Flow: PDF ingest → classify → extract → calculate → validate → PDF/HTML for non-technical operators. Mappings and a review queue keep humans where judgment still matters.
Client invoices, real addresses, and owner identities are not published here. Architecture and outcomes only — demo data would be redacted if shown.
Reflection
- A report that's sometimes right is worse than a slow one. Deterministic beats probabilistic for money-critical output.
- One owner has ~200 invoices; long LLM chains drift and eventually invent. That's why the tool is deterministic Python.
- Decisions live in code you can check; a human review queue catches flagged edges.
Tech stack
- Python
- PDF parsing
- Data validation
- HTML/PDF reporting
Results
- Replaced ~320h/year of dedicated manual work with a repeatable pipeline.
- Batches 1,000+ PDFs and assigns each invoice to the right owner automatically.
- Costs nothing once written — deterministic Python, no per-run API spend.
I need something built.