Lab

The LabWhat we build, and the rule we build to The DoctrineFour commitments, stated as constraints Engineering StandardHow the work is held to account MethodologyEvery formula and test case, published What We ShipEverything currently in the world Contactsupport@thebrinklabs.com

Instruments

I · Plan

Zero-Based BudgetGive every unit of income a job before you spend it. 50/30/20 BudgetNeeds, wants and savings — against what you really spend. True Hourly WageWhat an hour of your life actually pays, after the job takes its cut.

II · Protect

Subscription AuditWhat renting your life costs per use, per year, per decade. Emergency FundSavings divided by the month you cannot avoid. Savings GoalOne monthly figure for every known future cost.

III · Borrow

Loan & EMIThe monthly payment, the interest and every month of the schedule. Debt PayoffAvalanche or snowball, priced to the month and the cent.

IV · Grow

Rule of 72How long until money, debt or prices double. Net WorthEverything you own against everything you owe — and where it is heading. All 10 instrumentsThe index, by chapter

MyneWallet

OverviewThe app, and what it refuses to do How It WorksEnvelopes, capture, analysis What It CostsFree tier and the one-time unlock QuestionsFourteen answers, no marketing Privacy PolicyFourteen sections, plainly written Get it on Google PlayAndroid · the only official listing

Methodology

Methodology Checkable, Not Trustworthy.

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.

Instrument 01 · Plan

Zero-Based Budget Calculator

To Assign = Income − Σ Assigned Category balance = Assigned − Spent (a negative balance must be covered from another category or from To Assign)
  • Income is take-home pay that has actually arrived, not salary before tax.
  • One month at a time; next month starts from next month's income.
  • Savings and extra debt payments are categories like any other.
Published test cases for the Zero-Based Budget Calculator
Test caseExpected result
Take-home 5,000 on the 50/30/20 presetNeeds 2,500 · wants 1,500 · extras 1,000 · To Assign 0.00 across 10 envelopes
Take-home 3,333.33 on the same presetAssigned exactly 3,333.33: the remainder lands on the last envelope, so To Assign is 0.00 to the cent
Take-home 4,200 on the Balanced 60/20/20 presetNeeds 2,520 · wants 840 · extras 840
Instrument 02 · Plan

50/30/20 Budget Calculator

Target_b = Income × p_b ÷ 100, with p_needs + p_wants + p_savings = 100 Share_b = Actual_b ÷ Income × 100 Gap_b = Actual_b − Target_b Unallocated = Income − Σ Actual_b
  • Income is after tax. Pre-tax retirement contributions are already outside take-home pay.
  • Minimum debt payments are needs; anything above the minimum belongs in the 20%.
  • Needs are costs you would still pay after losing your job; wants are everything you could pause.
Published test cases for the 50/30/20 Budget Calculator
Test caseExpected result
Income 4,000 at 50/30/20; actual 2,300 / 1,100 / 600Targets 2,000 / 1,200 / 800 · shares 57.5% / 27.5% / 15.0% · gaps +300 / −100 / −200 · unallocated 0
Income 5,250 at 60/20/20; no actual figuresTargets 3,150 / 1,050 / 1,050
Income 4,000 at 50/30/25Refused: the ratios total 105%, so no targets are shown
Instrument 03 · Plan

True Hourly Wage Calculator

True rate = (Take-home pay − Work-only costs) ÷ (Paid hours + Commute hours + Unpaid hours) Price in hours = Price ÷ True rate
  • All figures cover the same period (a week or a month).
  • Only costs that exist because you work are subtracted.
  • Salary converts at 2,080 paid hours a year (40 × 52) unless you enter your real hours.
Published test cases for the True Hourly Wage Calculator
Test caseExpected result
Take-home 3,600 a month; 40 paid hours, 4 unpaid and 5 commuting a week; 340 a month of work-only costsStated 20.77 an hour · true 15.35 an hour · 26% lower (the page boots on this)
The same, pricing a 19.99 monthly charge1.3 hours of work every month
Take-home 3,000 a month; 40 paid hours a week; no unpaid hours or costsStated and true both 17.31 an hour · gap 0%
Instrument 04 · Protect

Subscription Bleed Audit

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 caseExpected result
10 a month for 10 years, prices rising 5% a year, 0% return1,509.35 paid, against 1,200 at a flat price
97 a month (1,164 a year) for 10 years, 4% yearly rises, 7% return13,975 paid · 19,601 had the same money been invested
14.99 a month, used weekly (4.333 times a month)3.46 per use
Instrument 05 · Protect

Emergency Fund Calculator

Runway (months) = Savings ÷ Essential monthly costs Target_k = k × Essential monthly costs Months to target = (Target − Savings) ÷ Monthly contribution
  • Only essential costs count — what you would still pay after losing your income.
  • Savings means money you can reach within days without penalty.
  • No interest is added; the runway is deliberately conservative.
Published test cases for the Emergency Fund Calculator
Test caseExpected result
Savings 4,200; essentials 2,150 a monthRunway 1.95 months (shown rounded as 2) · 8,700 short of six months (the page boots on this)
The same, adding 350 a monthSix months of essentials (12,900) reached in 25 months
Savings 9,000; essentials 3,000; adding 500 a monthRunway 3.0 months · six months (18,000) reached in 18 months
Instrument 06 · Protect

Savings Goal Calculator

i = (1 + APY)^(1/12) − 1 (monthly rate from APY) Monthly = (Target − Saved × (1 + i)^n) × i ÷ ((1 + i)^n − 1); when i = 0: (Target − Saved) ÷ n Months, given a monthly amount P: n = ln((Target × i + P) ÷ (Saved × i + P)) ÷ ln(1 + i), rounded up; when i = 0: (Target − Saved) ÷ P, rounded up
  • Deposits are made at the end of each month.
  • Interest compounds monthly at the rate implied by the APY you enter.
  • Tax on interest is not modelled.
Published test cases for the Savings Goal Calculator
Test caseExpected result
Target 3,000; saved 600; 12 months; 0% APY200.00 a month
Target 3,000; saved 600; 12 months; 4% APY194.46 a month
Target 800; saved 200; 0 monthsDue now, with a shortfall of 600
Instrument 07 · Borrow

Loan Amortization & EMI Calculator

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
Test caseExpected result
20,000 at 7% for 60 months396.02 a month · 60 payments · 3,761.48 interest · 23,761.48 paid
The same with 100 extra a month396.02 a month · 47 payments · 2,867.74 interest · 22,867.74 paid
10,000 at 0% for 24 months416.67 a month · 24 payments · 0.00 interest · 10,000.00 paid (the last payment is 416.59)
Instrument 08 · Borrow

Debt Payoff 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 caseExpected 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 monthAvalanche 30 months, 2,758.47 interest · snowball 30 months, 2,850.89 interest (the page boots on this)
The same debts with no extra paymentAvalanche 52 months, 6,553.26 interest
One card: 1,000 at 24% APR, minimum 50, no extraClear in 26 months, 289.88 interest
Instrument 09 · Grow

Rule of 72 Calculator

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 caseExpected result
8%, compounded yearlyRule 9.00 years · exact 9.01 · error −0.01 years (−0.1%) · closest rule: 72
24%, compounded monthlyRule 3.00 years · exact 2.92 · error +0.08 years (+2.8%) · closest rule: 70
1%, compounded yearlyRule 72.00 years · exact 69.66 · error +2.34 years (+3.4%) · closest rule: 70
Instrument 10 · Grow

Net Worth Calculator

Net worth = Σ Assets − Σ Liabilities Liquid net worth = cash and instant-access savings − short-term debt Debt-to-asset ratio = Σ Liabilities ÷ Σ Assets Trajectory, monthly: NW ← NW + max(NW, 0) × i + S, i = (1 + g)^(1/12) − 1
  • Assets at resale value today; debts at the outstanding balance.
  • Growth applies to a positive position only, at one blended rate — a deliberate simplification stated on the page.
  • The monthly amount is what you add to net worth: savings plus debt principal repaid.
Published test cases for the Net Worth Calculator
Test caseExpected result
Start 53,000; +500 a month; 5% growth; 10 years163,513.00
Start −20,000; +800 a month; 5% growth; 5 years30,029.10
Start 0; +0 a month; 5% growth; 10 years0.00

05 — Limits

What We Do Not Model.

  • Tax — on income, on interest, or on gains.
  • Fees beyond the ones you enter yourself.
  • Jurisdiction rules — minimum-payment formulas, deposit protection limits, local lending law.
  • 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.

No corrections yet.

Last reviewed .