Dollar Almanac

Methodology

Updated

These are deterministic calculators. You enter numbers, arithmetic happens, you get a result. There is no model, no estimate of your behaviour, and no judgement about your situation anywhere in them. What follows is where the figures come from and what the arithmetic does.

Every constant comes from a primary source

Tax brackets, standard deductions, withholding rates, contribution limits and Social Security figures are transcribed from the document that sets them: an IRS Revenue Procedure or Notice, a Publication, the Internal Revenue Code itself, or an official Social Security Administration release. Not from a summary, not from another site, and not from memory.

This is the rule the rest of the site is built around, because a wrong tax number in a finance calculator is the worst thing that can happen here. It is worse than an outage, because nothing about it looks broken.

A number that has not been checked cannot be used

Unverified figures are not left blank and they are not filled with a plausible guess. They hold a sentinel value that arithmetic cannot be performed on, so a calculator that reaches for one stops and names the field it was missing instead of returning an answer. A separate check refuses to build the site at all if a data file is marked as verified while any sentinel remains in it.

The practical effect is the one that matters: a page on this site can tell you it does not know something, but it cannot quietly tell you something wrong.

Money is never held as a decimal

Every amount is stored as a whole number of cents from the moment it enters a calculation until the moment it is displayed. Floating-point arithmetic on decimal currency accumulates small errors. The classic case is that 0.1 plus 0.2 does not equal 0.3, and across a long schedule those errors become visible. Rounding happens once, where a rate is applied, using the half-away-from-zero convention that payroll and lenders use.

Tax is calculated incrementally, not at an average rate

Where a calculator asks what a particular sum of money costs you in tax, it computes your total tax including that money and subtracts your total tax without it. That is the only framing that gets the answer right, because income stacks: an amount arriving on top of a salary is taxed at the top of the stack, not at some blended rate of its own. Taxing it in isolation understates it, and understates it most for the people the figure matters most to.

What is checked, and how

Each calculation engine is a self-contained function with no framework, no formatting and no network access in it, which is what makes it testable in isolation. Every engine carries at least three golden fixtures: cases whose expected answer comes from outside this codebase, most often a worked example published by the IRS or the SSA, or the cumulative-tax column that appears in the rate tables themselves. Where no external result exists to quote, a fixture derives the answer by hand and shows the derivation in full.

Test failures block the build. That includes a page whose worked example has drifted from the engine behind it. A worked example is written out by hand rather than generated, because an example assembled by the machinery it exists to demonstrate proves nothing to a reader checking it. So a separate test loads the published page, reads the figures printed in the example, and compares them against what the engine computes from the same inputs. The reconciliations are checked as whole statements rather than as loose numbers, which is the difference between every figure appearing somewhere and the arithmetic actually being right. If a bracket moves, that test fails before the page can go out carrying last year’s sums.

What these calculators do not model

Every result carries its own list, because the honest scope varies from one tool to another. The recurring exclusions are state and local income tax, credits, itemised deductions, the alternative minimum tax, and anything that depends on facts a calculator cannot see. Where something is out of scope, the result says so on the page rather than leaving you to infer it from a number that looks complete.

Nothing here is financial, tax or legal advice, and none of it is a substitute for a professional who can see your whole situation. These tools are built to make one specific mechanism legible, which is a genuinely useful thing and a much smaller thing than advice.

Tax years, and when figures change

Figures are stored one complete year at a time, never as an adjustment to the previous year, so that any single year can be checked against its own source documents without reference to any other. Each year records which documents it came from, the date they were read, and who checked them.

New figures are transcribed after the relevant authority publishes them, typically in the autumn for the following tax year. A calculator does not switch to a new year until that year’s figures have been verified, so the transition is a deliberate act rather than something that happens when a clock rolls over.

Corrections

If a figure here is wrong, it gets fixed as the immediate priority, and the fix is recorded rather than made silently. See our editorial policy for what that process is. If you have found one, tell us; a specific citation to the source you believe we have misread is the fastest possible route to a correction.

Primary sources this site computes from

References used to explain this page. Listing a publisher is not a claim that they endorse it.