Executive Summary · 60-second read
A complete, free, open-source consumer-finance product built solo on real BLS
CPI-U data (1913–2026). Four surfaces — Real Salary, Opportunity Mirror, Life of a Dollar, and a
full Methodology page — in vanilla HTML/CSS/JS with no build step, behind a deterministic inflation
engine that is unit-tested in Node. The discipline is the point: real data, labelled assumptions, no
tracking, not financial advice.
What’s real (and verifiable)
- BLS CPI-U annual series 1913–2025 + latest 2026-04 index (333.02), cross-validated against the monthly series
- Inflation identity
value_B = nominal × CPI(B) / CPI(A); cash-erosion computed from real CPI
- $60k in 2019 → $70k today = +16.7% nominal but −10.4% real — a pay cut wearing a raise’s clothes
- MIT-licensed, source-readable; engine is a pure module unit-tested in Node
What’s labelled, not claimed
- Asset returns (S&P 500 ~10%, gold ~7%, bonds ~5%, cash 0%) are documented long-run assumptions, not a backtest or a promise
- Depreciation and price-anchor figures are rough, sourced estimates (BLS, Census, Dept. of Ed, USPS, EIA, NADA)
- Every assumption is stated on the page and again in the methodology — nothing is presented as a guarantee
What it deliberately is NOT
- Not financial advice — and the footer says so
- Not a data-harvesting funnel — no accounts, no tracking, runs from static files
- Not an educational lecture — it gives a mirror and a nudge, not a course
- Not a fake backtest — opportunity returns are labelled assumptions, cash-erosion is exact CPI
The problem nobody prices in
The raise that is actually a pay cut
People reason in nominal dollars because that is the number they are handed — the offer
letter, the bank balance, the price tag. Inflation works in the gap between that number and what it buys, and
the gap is invisible until someone draws it. TrueWorth draws it. A salary of $60,000 in 2019 that became
$70,000 today looks like a 16.7% raise; measured against the same basket of goods it is a 10.4%
real-terms pay cut. Nobody is lying to that person — the structure just never shows them the
real number. The product’s entire job is to show it, calmly, with the data behind it one click away.
The product
Four surfaces, one honest engine
Real Salary
Enter a salary and the year it started; the tool returns the nominal change, the
real change, and a one-word verdict — real raise, treading water, or real pay cut — computed
from the CPI series, not a vibe.
Opportunity Mirror
Takes a past purchase and shows what the money could have become across asset
classes. $1,000 in 2015 reads as ~$2,853 in stocks — or, held as cash, now buys only what $712 did.
Returns are labelled long-run assumptions; the cash-erosion is exact CPI.
Life of a Dollar
A century of purchasing power: $1 in 1913 carries the buying power of $33.64 today.
Paired with a factual timeline of U.S. monetary history — the Fed’s founding, the gold pivot,
the 1970s shocks, 2022 — computed from real CPI, not invented prices.
Methodology
A full page naming every source and every assumption — the CPI series, the
return models, the price anchors and where they came from. The audit trail is part of the product, not an
afterthought.
Data integrity
Real data, or it does not ship
The CPI series was not pulled from memory; it was sourced from the BLS CPI-U record and
cross-validated against the monthly series before it was allowed into the engine — the deflation years
(1921, the early 1930s, 1949, 2009) line up with the historical record, which is how you know the numbers are
real. Where a true series did not exist — long-run asset returns — I refused to fake a backtest and
instead used clearly-labelled long-run assumptions, stated on the page and again in the methodology. This is
the same discipline behind the Finlogix
methodology note and the data-verification
record, pointed at a consumer product: a number a stranger reads on a free tool should be as defensible as
one in front of a regulator.
The voice
A mirror, not a lecture
Most personal-finance products either shame the user or bury them in a course. TrueWorth does
neither. The voice is motivational and plain — it names what happened (“your raise lied to
you”), shows the real number, and offers a small nudge rather than a syllabus. It is built to be glanced
at and shared, not studied. That restraint is a product decision: the moment a free public tool starts
lecturing or harvesting, people stop trusting it — and trust is the only thing a tool like this has.
Engineering
One person, the whole stack
TrueWorth is vanilla HTML, CSS, and JavaScript with no build step. The data ships as JS
globals so the tool runs straight from file:// with no server and no CORS; the inflation engine is
a pure, deterministic module that runs in the browser and in Node, so the maths is unit-tested rather than
trusted. The design system carries zero orphan classes across every page, the eight scripts all pass
node --check, and the whole thing is MIT-licensed and readable end to end. It is the same
full-stack ownership — data, engine, interface, copy, and legal — that lets one designer move like
a small team.
What this case study evidences · and what it doesn’t
For a hiring panel
What it evidences: that I ship complete, real consumer products solo — not just
institutional concepts — with the data integrity, product judgment, and full-stack execution to take an
idea from a CPI table to a polished, shareable tool with its own methodology and legal pages. It is the
consumer counterpart to the regulated-finance work: same honesty discipline, different audience.
What it deliberately does not claim: TrueWorth is self-initiated, not a client deployment with
a user base; its asset-return figures are labelled assumptions, not measured outcomes; and it is not financial
advice. Those limits are stated in the product itself — which is the point.