JRV

Portfolio / CASE STUDY

Public personal calculator

My Espresso Investment.

A local-first calculator that compares home espresso costs with a coffee-shop baseline and projects when a machine pays for itself.

MY ROLE

Independent product design and front-end development

Why it exists

I bought an espresso machine and wanted to know whether it was paying off. A single savings number hides the guesses behind it, and prices change over time.

What I built

I built a static page with no build step. You enter the machine cost, a daily routine, a bean price and dose, and a shop price. The page shows payback, a projected savings curve, yearly totals, and a price journal.

Engineering decisions

01

Keep one calculation model

Dates, prices, savings, payoff, and yearly totals live in a single module, and the views read from it. Tests cover leap days, daylight-saving changes, zero savings, and reconciling yearly totals with lifetime net.

02

Separate observed prices from assumptions

A recorded price changes nothing until you apply it to the model with an effective date. Earlier prices stay in place, so past savings are not rewritten.

03

Stay local and honest about estimates

Settings and the journal stay in the browser, with JSON backup and CSV export. A fresh visit has no start date, so the page does not invent past cups. Shared results leave out dates and journal notes by default.

Capabilities in practice

  • Financial model design
  • Date and rounding edge cases
  • Local-first data and backups
  • Privacy-aware sharing

Status & scope

A personal calculator with no backend and no live price lookup. The bean price, dose, and coffee-shop price are editable estimates, not measured data. Savings come from the model, not tracked cups. It has had no formal accessibility audit, and data lives in one browser unless you export a backup. The repository is local only.

KEEP EXPLORING

FUB to Sierra CSV Converter