Skip to content

It

It was meant to be a budgeting app that disambiguates big box store recepts.

Core trick

Claude vision reads receipts and abbreviated SKUs are resolved against a per-store dictionary that learns from each human correction.

Tags

Description

It was meant to be a budgeting app that disambiguates big box store recepts.
jeromeportega/clarity★ 00 forksTypeScriptCreated Jun 13, 2026 · last push Sep 19, 2026

README excerpt

# Clarity

Item-level truth for household spending.

Bank statements tell you *where* money went (`COSTCO WHSE #0420  $234.17`).
Clarity tells you *what you bought*: it ingests bank exports, Amazon order
history, and receipts from big-box stores; reads receipts with Claude vision;
disambiguates abbreviated SKUs (`KS EVOO 2L` → *Kirkland Signature Organic
Extra Virgin Olive Oil*) into real products; reconciles every source so each
dollar is counted exactly once; classifies spending at the item level; and
routes anything it isn't sure about to a human review queue. Corrections feed
back into a per-store SKU dictionary so the system gets better with use.

The UI centerpiece is the **review queue** — a few minutes of triage a week —
with a secondary **true-spend** view (item-level category breakdown, each item
linked to its evidence: receipt region, Amazon order row, or bank line).

## How it works

```
bank .xlsx/.csv ─┐
Amazon orders CSV ┼─▶ ingest ─▶ normalize ─┐
receipt photo/PDF ┘        │               ├─▶ reconcile ─▶ classify ─▶ review queue
                       vision ─▶ SKU resolve ┘   (every $ once)  (item-level)      │
                                                                              true spend
```

- **Ingest** — `SourceAdapter`s for bank exports (Excel or CSV, header
  auto-detection), Amazon `Retail.OrderHistory.csv` (per-shipment line items,
  PII columns dropped), and receipt images/PDFs. Idempotency keys make every
  import safe to re-run.
- **Rece

Team