Logo Lanfrica

joelanarba/ledger

Domaine:

socioeconomicdigital infrastructure

Type de record:

software
Créateur:
joe
Hôte:
Financial operations agent for West African micro-merchants — turns MoMo SMS and paper sales notebooks into reconciled, bankable books. # Ledger Financial operations agent for small retail shops in Ghana. Turns Mobile Money (MoMo) SMS messages and photos of handwritten sales notebooks into clean, reconciled books. - **Deterministic Reconciliation**: 3-pass matcher pairs incoming MoMo payments with paper ledger sales without guessing. - **Provable Math**: The LLM never computes numbers. All financial figures come directly from Postgres SQL queries and are audited at runtime. - **Built for Real Workflows**: Integer pesewas arithmetic, E-Levy fee leakage tracking, exception investigation, and single-page PDF statements for bank loans. --- ## Why we built this If you walk into almost any provisions store or market stall in Accra or Kumasi, the shop runs on two things: 1. An **MTN Mobile Money SMS inbox** receiving customer payments all day. 2. A **paper counter notebook** recording cash sales, stock purchases, and credit (*"Ama took 2 bags of rice on credit"*). Most accounting software (QuickBooks, Wave, Xero) assumes bank accounts, desktop computers, and hours of manual double-entry. Micro-merchants don't have the time or the workflow for that. Generic AI chatbots don't work either because language models hallucinate math. Asking an LLM to add up weekly sales or calculate runway produces confident errors. **Ledger bridges the gap**: it ingests the SMS messages and notebook photos the merchant already creates, matches them deterministically, and uses an AI agent strictly for plain-language communication, exception investigation, and drafting payment reminders. --- ## System Architecture ```mermaid flowchart TD subgraph Ingestion["1. Dual Ingestion"] SMS[MoMo SMS Alerts MTN / Telecel / AT] -->|Regex Parsers| TxnMomo[MoMo Transactions] Photo[Notebook Photos Uploaded to S3] -->|2-Pass Vision Consensus| TxnLedger[Ledger Transactions] end subgraph Reconciliation["2. Deterministic Matching"] TxnMomo --> Matcher[3-Pass Matcher 1. Exact Match 2. 48h Window 3. Fuzzy Name] TxnLedger --> Matcher Match …

Languages

Licenses