Case study · 2026 · formerly CogniVault
Vardão Central
The system Vardão Máquinas, an authorized Husqvarna dealer in Limeira, Brazil, uses every day at the counter, in sales, finance and inventory. I started with a parts catalog for the counter, and today it is taking over the work of the store’s old ERP.
See the live system (login required) Contact me
The problem
At the counter the customer is standing in front of the clerk. To answer "which part is it and how much", the clerk opened a PDF catalog, found the position in the drawing, checked the price in a spreadsheet, looked for the shelf and wrote the quote by hand. A wrong code becomes a return.
Away from the counter, sales, finance and customers lived in an old ERP, separate from everything else. Knowing how much the store sold this month or which customer had gone quiet meant gathering information from different places.
What I built
Counter
Search by code, part, model or PNC; the official exploded view with a clickable position; list price and shelf; quotes by PDF and WhatsApp. Keyboard first: the clerk works in a hurry.
Sales
A CRM with a deal board and quick filters, customer ranking, cross-selling, reactivation of quiet customers and the machine price table.
Finance
Sales, purchases and expenses, income statement, cash flow, working capital, ABC analysis and closing the till.
Inventory
Items to order, shortages, shelves and special orders for customers, with the deposit they already paid.
Home by role
Each person opens the system on the home screen for their role, with what matters for their day, and the main button changes with the role: "Lançar venda" (record a sale) or "Novo orçamento" (new quote).
The ERP migration, checked to the cent
The store could not lose a single number in the switch. The rule was simple: the same results as the old ERP, or better.
- Automatic proof. I wrote a test that runs the old ERP’s own functions and Vardão Central’s on the same data and compares the results: 75 scenarios, 1,107 comparisons, no difference above 1 cent.
- What was hidden. The comparison showed the ERP still used an old sales table, with its own rules from a cut-off date. Without the proof, that legacy data would have been missing from the income statement and the reports.
- Safe import. The importer runs as a dry run first, requires the expected totals before writing, checks to the cent after writing and can be undone.
- Better than the original. Where the ERP rounded badly, Vardão Central counts installments in whole cents, and the remainder of a split goes to the first installment.
Rules the product never breaks
Never guess a code
A typed code returns only the exact code and the manufacturer’s official replacement. The AI only picks from a closed list of parts for the machine.
The customer never gets the code
PDFs, WhatsApp messages and printouts leave without the part code, so the customer cannot price it at another dealer with our number.
Data changes are explicit
Importing prices, inventory or sales shows a report before writing and keeps an undo.
Numbers are numbers
Installments in whole cents and dates in the store’s time zone, locked by tests.
Screens



Screenshots taken in a simulated store with demo data. No real store data appears here.
Decisions and what I learned
The green test that lied
A job that deletes quotes older than 1 year had a passing test. In production it never ran: the line that started it sat inside the queue’s retry block. I found it by looking at the database. Now there is a test just for that wiring, proven by undoing the fix and watching the test fail.
"Today" ended yesterday
The server runs in UTC and the store in UTC-3: the "until today" filter cut off before the store’s midnight and the owner could not see the day’s own quotes. Every day calculation now uses the store’s time zone, locked by a test.
Refusing beats being wrong
The PDF catalog reader prefers to refuse a doubtful file, saying why, rather than save a wrong code that would spoil the whole search.
The server next to the database
The database is in São Paulo and the API server was in the United States: every query went there and back, about 210 ms each time. I prepared the everyday screens to be served by a function in São Paulo, next to the database, and left only the heavy work, like PDFs and imports, on the main server. One variable switches it back.
Compare with the old system, not with my memory
In the migration I did not trust the rules I thought the ERP had. I ran the ERP itself as the reference, and that is what found what was hidden.
Quality in numbers
Counted in the project files on 2026-10-30.