← All departuresFlt 05 / [ 2026 ]
Recon
Personal project · Bank reconciliation for Indian businesses
- Role
- Solo — product, design and engineering
- Year
- 2026
- Type
- Personal project
- Status
- Live
- Links
- Live app ↗GitHub ↗
01 / 08 · Reconciliation summary: ₹5,07,400 of ₹9,61,621 received is matched
Drop a bank statement and an invoice list, and Recon matches every payment to its invoice — TDS deductions, bank charges, split and combined payments included — then shows what's still unpaid and drafts the reminder. It runs entirely in the browser.
(01)Problem
Small businesses reconcile by hand in Excel every month: ₹2,12,400 arrives against a ₹2,36,000 invoice (10% TDS), 'BRIGHTLOOP DSGN' is Brightloop Design LLP, one transfer settles two invoices. Accounting tools want a bank integration and a subscription before they'll even try.
(02)Approach
- 01Explainable scoring, not a black box: amount (exact, TDS rate, bank charges), invoice number in the narration, fuzzy party name and payment timing — every signal shown on the match.
- 02Conservative automation: only confident pairs with no close rival match on their own; an amount with no name or reference is capped below the review line.
- 03The awkward cases are first-class — one payment for several invoices, one invoice paid in parts, payments net of TDS.
- 04It learns from review: confirmed payers become aliases, rejected pairs are never suggested again, and progress is saved on the device.
(03)What I built
- Readers for bank statements (CSV, Excel, PDF incl. password-protected) and invoice lists from Zoho Books, Tally, QuickBooks, Vyapar or any spreadsheet.
- A matcher with Jaro-Winkler and abbreviation-aware name similarity, TDS detection at 1/2/5/10%, subset search for grouped and split payments, and rival detection.
- A review queue with keyboard shortcuts, manual matching from either side with ranked candidates, and a 'what Recon learned' panel you can undo.
- Unpaid view with receivables/payables aging, reminder text and WhatsApp share, plus CSV exports of the reconciled statement and open invoices.
(04)Results
- sample matches made automatically; the 4 judgement calls go to review
- 9/13
- false auto-matches on the planted ambiguous payment
- 0
- automated tests: 31 engine and 66 browser
- 97
- screen sizes audited for overflow and overlaps
- 17
(05)Stack
- Next.js 16
- React 19
- TypeScript
- Tailwind CSS 4
- GSAP + Lenis
- pdf.js
- SheetJS
- Papa Parse
- Vitest
- Playwright
- Vercel
