Countworthy

How we check our own arithmetic

Every calculator here states a number that somebody might act on. This page describes the four systems that stand behind those numbers, including the one we built specifically because the other three cannot catch the worst kind of mistake.

1. Every figure carries its source and the date we checked it

Not a bibliography at the bottom. Each real-world number — a tax bracket, a contribution ceiling, a platform fee, a benchmark — is traced to the primary source that publishes it, and the page records the date somebody last read that source. That date is at the foot of every calculator under “Formula last verified”, and it means what it says: a human opened the source on that day and confirmed the figure still matched.

We use the publisher, not a summary of the publisher. Canadian tax figures come from the Canada Revenue Agency’s own payroll formulas and the provincial tables, not from an article about them. Where a source could not be reached directly, the page says so rather than quietly citing something weaker. Every citation from every calculator’s audit trail is also gathered onto one page, grouped by domain: see every source we cite.

2. The math is re-derived independently before it ships

Writing a formula and checking a formula are the same act performed twice by the same mind, which is to say they are one act. So every calculator is re-derived from the published rules by someone who did not write it, working from the source rather than from the code, and the two results are compared to the cent.

This is where most defects are actually caught. The capital-gains calculator understated tax by up to $1,200 because the gain was being run through a payroll routine that granted it employment credits it should never have received. Nothing on the page looked wrong. It was found by someone rebuilding the calculation from scratch and getting a different answer.

3. The arithmetic is pinned by tests you could run yourself

Every calculator family has a golden test: a plain script that reproduces the page’s math and asserts the results against figures derived by hand from the cited sources. There are 55 suites holding roughly 6660 assertions across about 31,800 lines, and they run with nothing but Node — no framework, no fixtures, no dependencies at all.

They are ordinary files in the repository, not a claim on a marketing page. One of them asserts that the Canadian tax pages carry no private copy of the rate tables, because three pages once held their own duplicates and keeping them identical by hand was a defect waiting to happen. There is now one shared engine, and the test fails if a page grows its own.

4. The system that catches a number which stopped being true

Here is the uncomfortable thing about tests, and the reason this fourth system exists.

A test proves the page still computes the number we wrote down. It cannot prove that number is still correct. When the Canada Revenue Agency re-indexes a bracket in January, every test above stays green. The page keeps returning a confident answer. And the dated citation — the thing at the bottom that exists to earn your trust — quietly becomes the best available evidence that the page is out of date. The failure is invisible from the inside until somebody files a return on our number.

So each page also records when its sources can next change and why: the payroll formulas are published twice a year (effective 1 January and 1 July), the annual savings limit is announced each November, provincial sales-tax rates move with provincial budgets. When a page passes that date, the build fails. It will not deploy until a person has re-read the source and either corrected the page or confirmed nothing moved.

It is deliberately impossible to satisfy by bumping a date. Changing the date without re-reading the source is the one action that would turn all of this into decoration, and it is the only safeguard here that depends entirely on us being honest rather than on a machine.

How we verify, in your vocabulary

Source and date per figure. Every bracket, credit, contribution rate and threshold on a Canadian page cites the CRA page, Revenu Québec table or provincial site (ontario.ca and equivalents) it came from, and the date we last read it — a citation attached to the specific number, not a blanket disclaimer at the bottom.

Independent re-derivation. Before a page ships, a second person reproduces each figure by hand from the same sources and checks it against the calculator’s output, separately from whoever built the page. That pass has caught real defects — a Quebec QPIP split error on the self-employed page, found and corrected before release.

The test file. Every calculator ships with a plain Node test asserting its output against figures worked out by hand from the cited sources — no framework, no fixtures, runnable from the command line, the same file we run before every release. See Countworthy for Accountants.

How we verify, for mortgage brokers and agents

Land transfer tax figures on this site cite the same provincial and municipal sources every calculator uses — see Countworthy for Accountants for the full list. The mortgage affordability calculator applies the federal qualifying-rate test: for an insured mortgage, the condition the Insurable Housing Loan Regulations and the Eligible Mortgage Loan Regulations put on the loan, which applies whichever lender makes it; for an uninsured mortgage, OSFI’s minimum qualifying rate, sourced to OSFI’s own Guideline B-20, which binds federally regulated lenders such as banks and federally regulated trust companies. Mortgage insurance thresholds and premium schedules come from CMHC and the federal government’s own mortgage rules pages, and provincial regulator sites (Ontario’s FSRA, Quebec’s AMF, British Columbia’s BCFSA and their counterparts elsewhere) are cited wherever a rule varies by province. For an uninsured mortgage the test’s scope is federally regulated lenders only: a provincially regulated lender follows its own regulator, and the page says so rather than implying one number covers every deal you place. Same second-person re-derivation, same runnable test file, same yearly re-verification as every other page here. See Countworthy for Mortgage Brokers.

How we verify, for credit unions and small fintechs

TFSA contribution room and RRSP refund figures cite the same CRA pages, and the same dated lines, that every calculator on this site carries — see Countworthy for Accountants for the full citation list. The GIC calculator’s growth — annual compounding, or simple interest paid annually or at maturity, run against the rate and term you enter — is checked the same way; where deposit insurance is shown alongside a growth projection, the coverage limit is sourced to CDIC for GICs issued by a bank or a federal credit union and to the relevant provincial deposit insurer for those issued by a provincially regulated credit union, cited and dated because coverage differs by institution type and by province. Each figure gets the same second-person re-derivation and the same runnable Node test file as every other calculator here — no framework, no fixtures, and nothing that depends on taking our word for it. What we do not claim matters as much as what we do: no SOC 2 report, no ISO 27001 certification, no penetration-test attestation. A two-person team does not have one, and this page says so rather than implying otherwise; what does exist, in full, is at our security and privacy practices. See Countworthy for Credit Unions.

How we verify, for financial planners and advisors

RRSP, TFSA, CPP and OAS figures on this site cite the same CRA and Service Canada pages every calculator uses — see Countworthy for Accountants for the full citation list. The retirement calculator’s RRIF prescribed factors, CPP start-age adjustments and OAS recovery-tax threshold each carry the specific page and date they came from, not a blanket disclaimer at the bottom. Before release, a second person independently re-derives a full multi-year projection by hand from those same sources, separate from whoever built the page — that pass on the retirement calculator caught two real defects: a RRIF minimum taken at the wrong age’s factor, and an OAS clawback that was being income-taxed as well as repaid, an error that would have overstated a $1.8 million RRSP’s lifetime tax by roughly $79,000. Both are now pinned by a plain Node test you can run yourself — no framework, no fixtures. See Countworthy for Advisors.

How we verify, for payroll and HR teams

Bonus withholding uses CRA’s own “bonus method” for federal tax everywhere and for provincial tax outside Quebec, and Revenu Québec’s rules for Quebec income tax, cited and dated on the bonus tax calculator like every other figure on this site. Vacation entitlement and overtime thresholds are not national: each is set separately by every province’s or territory’s own employment standards act, so the vacation pay and overtime calculators ask which jurisdiction applies before computing anything, and cite the specific act the figure came from rather than a single blanket source. Pro-rata salary and raise figures run on the same shared tax engine as every other Canadian calculator here — see Countworthy for Accountants for how that engine itself is sourced and checked. Same second-person re-derivation, same runnable Node test file per calculator (no framework, no fixtures), and the same yearly re-verification every January as every other page on this site. See Countworthy for Payroll and HR.

What you can check without taking our word for it

What this does not promise

These are calculators, not advice, and they model the ordinary case. Every page names what it leaves out — and those omissions are listed on the page itself, not buried here. Tax in particular has more special cases than any tool can carry: if your situation is unusual, the honest answer is that a professional who can see your whole picture will beat any calculator, including this one.

We also make mistakes. When we do, the fix and the corrected date go up the same day, and the source that was misread gets recorded. If you think a number here is wrong, please tell us at hello@countworthy.com — being told is worth more to us than being right, and a calculator nobody checks is just a guess with buttons.