About the project
ATLAS NEX automates the one part of an accounting firm's monthly work that no invoicing system solves: reconciling what was billed against what actually hit the bank. AFIP/ARCA already gives you clean, structured e-invoice data — CUIT, amounts, VAT, CAE. What it can't tell you is which of the 1,790 lines in a bank statement corresponds to which of the 548 vouchers a client handed you as photos, informal receipts, and handwritten notes. That match — one payment split across three installments, one transfer settling two invoices, a processor fee eating 1.8% of the gross — is still done by hand, line by line, every month. ATLAS NEX resolves it end to end in 15 seconds, at 90.3% precision, and states in plain language why each match holds and where every discrepancy comes from.
The whole pipeline runs on-device through QVAC, because the documents involved carry names, CUITs, addresses and phone numbers belonging to a firm's clients and their vendors — sending that to a third-party API turns an hours problem into a custody problem. There is no API key, no outbound endpoint, and zero outgoing calls anywhere in the code; the SDK loads model weights from disk and runs in-process. The demo runs with wifi off.
Small local models read confidently even when they read wrong, so the design never lets the model make the final call. OCR reads each document three times with different seeds — when the runs agree, the reading is anchored; when they don't, the system flags uncertainty before a human ever has to. Ten deterministic rules (CUIT check-digit, VAT arithmetic, legal tax rates, CAE presence, duplicate detection) catch what doesn't need judgment at all — validated against 760 labeled cases, 680 of them synthetic errors, in 99ms with zero model calls: 94.7% detection, 6.3% false positives. When a rule fails, the model gets one shot to re-read the flagged region, and we measure whether it actually used that evidence or answered from memory. In the monthly analysis module, every number in the narrative is computed by code first; the model only writes the sentence around it.
On the CPU-only hardware this was built and demoed on (no GPU), a single invoice takes a few minutes to read — that's the real cost of the privacy trade-off: local inference instead of a cloud API call. It works correctly every time; it's just not instant on modest hardware. On a machine with a GPU, or with model batching, this drops sharply — the architecture doesn't change, only the wall-clock time.
Hacki