Prathamesh Prathamesh

Case Study

Calculators Hub: 27 money decisions answered in under a minute

Live PWA with 27 calculators for freelance pay, FIRE, housing and career moves. Each page shows real value after inflation, tax and time.

· · 4 min read
Calculators Hub: 27 money decisions answered in under a minute

Try it at calculators.yomite.in. It has 27 calculators. It is free. It needs no login and installs as a PWA.

I built it because most financial calculators print a number that breaks on contact with reality. They skip inflation. They ignore tax. They price your time at zero. I wanted tools that show the adjusted number first.

What it covers

The set clusters around decisions where people stall. It is not 27 versions of compound interest.

Work pay

  • Freelance Real Pay subtracts holidays, unbillable admin, overheads and benefits replacement, then compares 44ADA with slab tax.
  • True Hourly Wage subtracts commute, prep and taxes from the headline rate.
  • Salary Decoder turns CTC into monthly in-hand.
  • RSU Tax Drain shows what each vest pays after sell-to-cover.

Housing calls

  • Buy vs Rent compares ownership cost against renting plus investing EMI-minus-rent.
  • Home Owner Realist spreads maintenance into sinking funds across 20 years and puts big repairs on a timeline.

Freedom math

  • FIRE counts years to freedom with healthcare inflation and flags unsafe withdrawal rates.
  • SIP models annual step-up, then subtracts expense ratio, inflation and LTCG.
  • Invest vs Payoff compares net worth for surplus cash put into markets versus debt.

Career moves

  • Golden Handcuffs adds up unvested equity, benefits and clawbacks so quitting has a price.
  • Job Relocation puts comp, moving friction and commute side by side.
  • Degree ROI compares 20-year earnings for degree versus work now.

Leaks

  • SaaS Leak turns subscriptions into foregone compounding and labor hours.
  • Lifestyle Creep shows what spending the raise costs over 20 years.
  • Inflation Destroyer shows cash erosion as goods lost.

TDEE is the outlier. It sets calorie targets for cut or bulk with metric and imperial units. It stays because the pattern matches: inputs in, answer out, no account.

Product decisions

Each page answers one question. Inputs sit left. The verdict sits on top in ResultsAnalysis. Detail sits below. If the answer takes more than a minute, the page failed.

I apply the same three checks on every page:

  • Future values appear in present money.
  • Investment and freelance outputs appear net of tax.
  • Unpaid time gets a price.

Freelance math deducts holidays and admin. Active versus passive deducts your hours before it compares returns.

Inputs autosave to localStorage. I run no backend. I store nothing server side. That means no sync across devices. For tools people open twice a year, that trade was worth it.

Each major tool exports PDF with jspdf and multi-sheet Excel with xlsx. People run the numbers and forward them to a spouse or a CA. Export is the share path.

The hub uses live search and category filters for Finance, Career, Housing, Strategy, Freelance and the rest. The filters scroll with keyboard support. A Suggest card links to feedback for missing tools.

How it is built

It is a pnpm monorepo. The app lives in apps/calculators and shares code through packages/*. It uses React plus Vite, Tailwind, Recharts for charts and Framer Motion for transitions.

Logic outside the UI

Each calculator keeps a pure function in src/lib with a matching vitest file in src/tests. There are 29 suites for SIP step-ups, FIRE timelines, tax brackets, relocation and the rest. UI edits leave math alone. Math tests run without rendering.

One shell for all pages

CalculatorLayout, CalculatorHeader, MetricDisplay and form inputs come from @packages/styling in a neo-brutalist style. Shared helpers add SEO tags, persisted state, macro assumptions for inflation and market returns in @packages/macro-data, and A-versus-B verdicts with decideWinner in @packages/compare.

Shipping and access

GitHub Actions runs lint, then tests, then a sitemap step that parses routes in main.jsx, then vite build, then deploy to Cloudflare Pages. The build needs VITE_SITE_URL so staging URLs stay out of the production sitemap. The app uses Workbox for offline use and hash routing so it runs on static hosting with zero server cost.

Inputs carry labels. Results use aria-live="polite" so screen readers announce recalcs. Tabs reach all controls.

What I cut

Accounts stayed out. Usage dashboards stayed out. Newsletter capture stayed out. Each would add cost and privacy surface for a free tool.

Next I would add save-and-share links for couples who compare scenarios. I would make the India versus US tax mode explicit because Tax Bracket assumes US style standard versus itemized. I would prune the weakest tools by use instead of adding a 28th.

The first three calculators were slow. After the layout, verdict block, export helpers and test pattern existed, each new one took mostly the lib function and copy. The shared shell made the tenth unit cheaper than the first.

Prathamesh Pathak

Written by

Prathamesh Pathak

Product Manager building AI-native products. I write about PM craft, career growth, and shipping.