Why it matters

Unexpected utility catch-up bills can be financially stressful. According to consumer group Which?, the UK Energy Ombudsman received 3,218 back-billing disputes in 2024 (about 3% of all complaints). While advice articles and template letters exist online (such as from Citizens Advice and Which?), calculating exact day-by-day pro-rata split amounts by hand across regulatory lookback cut-off dates can be difficult when someone receives a large bill.

Who it's for

BillRight is made for everyday consumers, tenants, and small business owners who receive historical energy catch-up bills and want a clear, code-calculated check against regulatory rules in the UK, Australia, California, and Texas.

Core Principle: "Money math is done by code, not by AI"

LLMs can make mistakes with dates and numbers. In utility billing disputes, inaccurate figures cause confusion. BillRight uses a simple separation:

  • Code does the math: Calendar day counting and daily pro-rata apportionments are calculated by deterministic JavaScript code. AI does not do the arithmetic.
  • AI reads the documents: Google Gemini Vision reads statement dates and amounts, with a visible "Read by AI, please verify" badge so the user can inspect and edit every field.
  • Official References: Relevant rules (such as Ofgem SLC 21BA, NERR Rule 30, and PG&E Rule 17.1) are referenced alongside sources retrieved via Tavily. For Texas retail electric providers, limits under §25.480(e) must be verified with the PUCT.

What it does

  1. Document Reading: Reads dates and line items from bills or meter photos, allowing full manual editing.
  2. Rule Check: Checks periods against regional limits (UK 12 months, Australia 9 months, California 3 months, Texas 6 months).
  3. Timeline: Displays an SVG timeline showing permitted and disputable periods and the barrier cut-off date.
  4. Apportionment Table: Itemizes days and pro-rata amounts calculated by code.
  5. Draft Dispute Packet: Produces a draft dispute letter and a draft PDF packet for the user to review before contacting their supplier.
  6. Suggested Next Steps: Outlines a suggested timeline (sending notice, waiting 14 days for a reply, and contacting an independent ombudsman after 8 weeks).

How it was built

I built BillRight as an electrical engineering student using the Devpost Learn Skill Pack (1-start to 6-ship):

  • Backend: Node.js, Express.
  • Frontend: HTML5, vanilla CSS with light/dark theme toggle, SVG timeline.
  • AI & Tools: Google Gemini Vision for document reading, deterministic code for math, Tavily for source retrieval, and PDFKit for draft PDF generation.
  • Planning Docs: scope.md, prd.md, spec.md, and checklist.md are in the /devpost folder of the repo.

Challenges

Handling date arithmetic, leap years, and regional exceptions like Victoria (which has its own code and is blocked with a clear notice). Another challenge was managing Gemini free-tier rate limits during testing, so I added fallback models and built-in letter templates.

What I learned

The Devpost Skill Pack taught me the importance of planning before writing code. Most importantly, I learned how to separate responsibilities: using AI for unstructured text and vision, and relying on pure code for math.

Future Work

  • Dual fuel splitting (gas vs electric).
  • Supplier API inboxes.
  • Multi-language dispute notices.
  • Ombudsman case tracking.

Built With

Share this project:

Updates

Submission history