About the project
VARtura audits Brazilian electricity invoices and shows, line by line, where the utility overcharged.
The flow starts at the PDF upload: the invoice is read, the data extracted with LLM assistance and normalised into a common model. The analysis then runs against the rules that apply to that state, that utility and that account type — TE + TUSD tariff, flag surcharge, ICMS calculation base, public lighting levy and SCEE solar credit compensation. The output is a report with the estimated recoverable amount and the steps to dispute it.
I worked across all three sides of the product:
- Backend — Django REST Framework on PostgreSQL, served by Daphne (ASGI), with Celery + Redis for asynchronous invoice and analysis processing. Subscriptions and recurring billing through Mercado Pago. Object-level permissions with django-rules, multi-company support with collaborators, and a fully translated message catalogue (pt-BR/en) enforced by tests.
- Web — Nuxt 4 with hybrid rendering: public marketing pages are prerendered for SEO while the authenticated app runs as an SPA. Pinia for state, session auth with CSRF, and consumption/savings charts.
- Mobile — a Flutter app (iOS and Android) for end users, built with Riverpod, go_router navigation and a Dio interceptor chain handling JWT refresh, plan gating and API error translation.
The analysis pipeline uses LlamaIndex with OpenAI and Anthropic models. It started as a RAG over the applicable rules; after measuring cost and recall in production, retrieval was replaced by deterministic rule injection with prompt caching, in a single model call per report. Observability runs on Prometheus, Loki and Grafana, with Sentry for errors.
