Utility Tracker
A self-hosted automation that watches my Gmail inbox for utility bills, parses each providers preferred format (PDF, JSON, or CSV), normalizes everything into PostgreSQL, and surfaces monthly cost and usage trends on a single dashboard.

Overview
Tracking household utility costs by hand was the kind of chore that quietly grew into hours per month: seven different providers, four different formats, and no single source of truth. I built Utility Tracker to absorb that work entirely. It connects to Gmail via OAuth, classifies inbound bill notifications by sender, parses each providers format (Southern California Edison PDFs with NEM/TOU data, SoCalGas JSON, MNWD water tier-usage CSVs, Cox new-charge emails, CR&R PDF invoices, Sunrun monthly kWh exports, fixed HOA dues), and stores everything in a normalized schema. A Recharts dashboard surfaces monthly totals, YTD trends, NEM bank tracking, and water-tier usage. A monthly cron does the ongoing collection so the dataset stays current with zero manual work.
Provider Coverage
Each utility company sends bills in a different way; the tracker absorbs all of them into one schema:
Pipeline & Dashboard
A small Next.js app does the ingestion, normalization, and visualization:
Technical Architecture
Deliberately tiny stack (no auth library, no UI library, no analytics). The whole point is the pipeline:
Why It Matters
Hours Saved Monthly
Replaced the manual "open every utility website, copy down the number, paste into a spreadsheet" loop with zero touch
Real Visibility
NEM bank, water-tier usage, and YTD spend are visible at a glance instead of buried in seven different portals
Format-Agnostic Parsing
Same dataset whether the bill arrived as a PDF attachment, a JSON payload, or a "your bill is ready" email
Private by Default
Self-hosted and single-tenant. No third party gets a copy of household financial data.
Key Learnings
More Projects
Need something like this for your business?
I build custom software that solves real business problems — from quote systems to customer portals.


