← Back to Portfolio
Automation · Finance
Cash Reserve Automation
Replacing a manual, monthly Excel process with an automated reconciliation app
Overview
Replaces a Finance team's manual, monthly Excel-based Cash Reserve process — built and verified against two real source documents rather than an abstract spec: a Guru-exported SOP describing the actual Excel VLOOKUP formulas, and a genuine finished monthly Cash Reserve export of roughly 15,200 rows.
What the real data corrected
Comparing the build against Finance's actual output surfaced several assumptions that needed fixing:
- AR Aging is a customer-level summary (one row per customer across Current/30/60/90/90+ buckets), not invoice-level detail — matching how NetSuite actually exports it, not how the original spec assumed it.
- The Third-Party Collections rule matches on collections-list membership alone, exactly mirroring the real VLOOKUP logic rather than an assumed compound condition.
- Potential Loss reserves default to the full at-risk balance — confirmed by checking the ratio across every real row rather than assuming a round-number default.
Stack
Express/TypeScript/Prisma/PostgreSQL backend, React/TypeScript frontend, deployed on Render via a Blueprint (Postgres plus a Docker web service).