RenewalLens turns a screenshot of any subscription, trial, or checkout into an evidence-backed billing breakdown: what you pay today, the full charge timeline, and the real first-year cost — including the trap where "$10/month" actually means "$120 billed annually".
The architecture rule that makes it trustworthy: AI never does math. Claude Haiku extracts only the billing facts literally visible on screen, each with a verbatim quote as evidence. A pure TypeScript engine computes every dollar with integer arithmetic — no floats, no guesses. Missing terms stay visibly missing instead of being invented, and hostile model output can never produce a made-up number (125 deterministic tests enforce it).
Production-hardened on Railway: strict Zod validation at every boundary, per-IP rate limiting, health checks with safe metrics, CSP, and screenshots that are processed transiently — never stored.
Next.js 16 · React 19 · TypeScript strict · Anthropic API (structured outputs) · Zod · Sharp · Vitest · Railway