Every instrument on this site runs entirely in your browser, uses a published formula, and must agree to the cent with a second, independently written implementation before it ships. This page lists the formulas, the rounding rules, the test cases each instrument must pass, and exactly what the website does with your data: nothing.
Ten instrumentsThirty published test casesLast reviewed
01 — This Website
What This Website Does, And Does Not Do.
No cookies. None are set, by us or by anyone else.
One stored key.bl-theme, holding light or dark, written only when you use the theme switch. The instruments store nothing at all.
No analytics, advertising or session recording. No third-party script, font or image is loaded; every file comes from thebrinklabs.com.
No network request carries your figures. Every calculation runs in your browser, and there is no endpoint that could receive what you type.
One campaign tag. Links to Google Play carry a campaign tag naming the page the link sits on. It identifies the page, not you.
Ordinary request logs. Cloudflare, our host, sees what any web server sees: the page requested, when, and the network details every browser sends. It never sees what you type into an instrument.
Enforced, not promised. The Content-Security-Policy lets the browser run only this site’s own script files and one hashed start-up snippet, and allows connections to no other origin.
Check it yourself: open your browser’s developer tools, choose the Network tab, and type into any instrument. No request appears.
02 — Verification
How An Instrument Is Verified.
Two implementations. Each instrument’s arithmetic is written once in the page’s JavaScript and again, independently, from the written specification in plain Python.
Parity to the cent. Both run the same published test cases and must agree to the cent, or to 0.01 years for durations.
Edge cases are cases. Zero, negative and empty inputs and twelve-digit values are in the set, not an afterthought.
A failing case blocks release. Nothing ships because it is close.
03 — Rounding
Rounding, Stated Once.
Where a schedule is built, money is held in whole cents, never in floating-point fractions of a cent.
Rounding is half-up to the cent: 0.005 becomes 0.01.
The final payment of a schedule absorbs any rounding residue, so the balance ends at exactly zero.
Durations are shown to two decimals in years, or rounded up to whole months where they count deposits.
Percentages are shown to one decimal.
04 — Formulas
Every Formula, With Its Test Cases.
Three published cases per instrument. The new instruments’ cases come from the reference implementation; the others are the figures each page boots on, recomputed from its shipped code.
Monthly = price normalised (yearly ÷ 12, quarterly ÷ 3, weekly × 4.333)
Cost per use = Monthly ÷ uses per month
Opportunity cost = each payment invested at the start of its month at rate r, the payment rising by g each year (annuity-due with escalation)
Uses per month are your honest estimate.
Price rises and investment return are rates you choose; neither is a forecast.
Taxes and exchange fees on foreign subscriptions are not modelled.
Published test cases for the Subscription Bleed Audit
Test case
Expected result
10 a month for 10 years, prices rising 5% a year, 0% return
1,509.35 paid, against 1,200 at a flat price
97 a month (1,164 a year) for 10 years, 4% yearly rises, 7% return
13,975 paid · 19,601 had the same money been invested
i = annual rate ÷ 12
Payment = P × i ÷ (1 − (1 + i)^−n); when i = 0: P ÷ n
Each month: interest = balance × i; principal = payment + extra − interest; balance −= principal
Fixed rate for the whole term; interest calculated monthly on the outstanding balance.
The rate entered is the nominal annual rate, not an APR that includes fees.
Extra payments go entirely to principal and shorten the term; the payment stays the same.
Published test cases for the Loan Amortization & EMI Calculator
Monthly interest = balance × APR ÷ 12
Pay every minimum; send all extra to the target debt (highest APR for avalanche, smallest balance for snowball)
When a debt clears, its minimum rolls into the next target
Interest is charged monthly at APR ÷ 12; card issuers usually charge daily, so real figures differ slightly.
Rates and minimums stay fixed.
No new borrowing during the plan.
Published test cases for the Debt Payoff Calculator
Test case
Expected result
Card 6,200 at 24.9% (minimum 155), store card 900 at 18.9% (30), car loan 8,600 at 6.9% (245); 200 extra a month
Avalanche 30 months, 2,758.47 interest · snowball 30 months, 2,850.89 interest (the page boots on this)
Rule of 72: t ≈ 72 ÷ r (r in per cent)
Exact, yearly compounding: t = ln 2 ÷ ln(1 + r ÷ 100)
Exact, monthly compounding: t = ln 2 ÷ (12 × ln(1 + r ÷ 1200))
Continuous compounding: t = 69.3 ÷ r
The rate is constant for the whole period.
No additions or withdrawals — pure compounding of one amount.
Growth rates are inputs you choose, not forecasts; nothing here is investment advice.
Published test cases for the Rule of 72 Calculator
Test case
Expected result
8%, compounded yearly
Rule 9.00 years · exact 9.01 · error −0.01 years (−0.1%) · closest rule: 72
24%, compounded monthly
Rule 3.00 years · exact 2.92 · error +0.08 years (+2.8%) · closest rule: 70
1%, compounded yearly
Rule 72.00 years · exact 69.66 · error +2.34 years (+3.4%) · closest rule: 70
Variable or promotional rates. Every rate is held constant for the whole period.
Each of these would need a data feed that goes stale, or a jurisdiction the page cannot know. An instrument that is quietly wrong for half its readers is worse than one that tells you what it leaves out.
06 — Corrections
Corrections.
Found an error? Email support@thebrinklabs.com with the instrument, the inputs and what you expected. Confirmed errors are fixed and logged here with the date.