Arlem

Case studies / Kura Matcha SAS

Simplifying logistics andsales management for a tea wholesaler.

Kura Matcha imports specialty matcha and sells it to cafés and shops in Buenos Aires. Purchases are in dollars, most sales are collected in pesos, some in dollars, often in parts, and the exchange rate moves between the sale and the payment. A shared spreadsheet had stopped being able to say how the business was doing.

ClientKura Matcha SAS
IndustrySpecialty tea import and wholesale
ScopeRelational database · AI-assisted data entry
StatusIn daily use, operated by Arlem

The situation

The founders wanted something very simple to operate: what each account receives and spends, stock by variety, exchange differences, and the fact that not every sale is invoiced and not every collection is in one currency. The spreadsheet mixed FX gains with margin, lost track of partial payments, and could not produce a delivery note without copying rows into a document.

What we built

  1. A plain relational database, designed from how they operate. No platform, no dashboard tool: tables for operations, accounts, movements, customers, stock and documents, with the rules in the schema. Small enough for two founders to understand, strict enough to keep the numbers honest.
  2. Operations apart from money movements. Sales, purchases, expenses and samples are valued in USD. Collections, payments, exchanges and transfers live in accounts, and each of the twelve accounts (cash and banks, per founder) carries its own currency.
  3. Mixed and partial collections. A sale can be collected in pesos at a stated rate, in dollars, in several lines over time, or later. Customer running accounts apply payments first-in, first-out.
  4. Exchange differences kept apart from profit. Peso balances are revalued at today's rate and the difference is shown next to cash, never mixed into margin. A "real balance" entry reconciles cash counts.
  5. Documents. Numbered delivery notes with or without prices, printable from any sale, and VAT invoices booked in the month of the invoice date.
  6. Login, backups and an automatic, idempotent migration from the previous model. On migration day the cash position reconciled to the cent.
  7. AI-assisted data entry. A Telegram assistant takes a sale, a purchase or a payment written in plain language, turns it into the right rows, shows a preview, and writes only after confirmation. It also answers "who owes what" and "how many days of stock".

How it runs today

The founders open one screen for cash, one for customers, one for stock. Pending items (an unpaid delivery, a purchase still owed) are listed in plain sentences. Profit is profit; the exchange rate is a separate line.

BeforeAfter
One spreadsheet for everythingLedger with operations, twelve accounts, stock and documents
FX gains blended into marginExchange differences shown apart from profit
Partial payments tracked by memoryFIFO customer running accounts with debt alerts
Delivery notes assembled by handNumbered, printable, generated from the sale
Rows typed into the sheetAI-assisted entry from plain language, previewed and confirmed
Questions answered by opening the fileTelegram assistant with live answers

Stack: Python, SQLite as the book (right-sized for a two-founder company), Telegram Bot API, Claude, Caddy and pm2 on Hetzner.