The Tax Receipt
← Back to the receipt

Methodology

Everything here is checkable. If a number on your receipt looks wrong, this page should tell you exactly how it was produced and where to go verify it.

The three receipts

Payroll taxes are legally dedicated to trust funds. Blending them with income tax into one pot, as most “where do my taxes go” graphics do, produces the widespread falsehood that income tax pays for Social Security. So we build three separate receipts, and never mix them:

The Medicare subtlety most tools get wrong

Trust funds are not purely payroll-financed. Medicare Parts B and D are roughly three-quarters paid for out of general revenue. That really is income-tax money, and treating all of Medicare as payroll-funded understates what your income tax buys.

Rather than hardcode a ratio from a Trustees Report, we take it from the source data: the OMB account file names the general-revenue transfer explicitly as Payments to Health Care Trust Funds. In FY2025 that was $592.0 billion, and it appears on your income tax receipt. What remains ($404.7 billion) is the payroll-funded Part A, and appears on your Medicare tax receipt. The same treatment is applied to Payments to Social Security Trust Funds.

How the allocation works

The claim is proportional, not forensic: if your dollars were spent in the same proportion as all spending from this fund, here is the split. Nobody can trace an individual dollar (money is fungible), and any tool that says otherwise is overclaiming.

Line items are computed in integer cents using largest-remainder apportionment, so they sum exactlyto what you paid at every level of the hierarchy. There is no “totals may not add due to rounding” footnote here, because they always add.

Some lines are negative and shown as credits. Those are real: offsetting receipts like agency retirement contributions and oil and gas royalties genuinely reduce net spending.

The deficit

In FY2025 the federal government spent $7.01 trillion and collected $5.23 trillion: a gap of $1.78 trillion, or 25.3% of all spending.

A proportional receipt hides this completely, so we show it as its own line: your pro-rata share of the shortfall, computed as your payment times the fund's shortfall divided by its revenue. It is spending done in your name that nobody has paid for yet. Related: Interest on the national debt is one of the largest items on the income tax receipt, and it is the bill for borrowing done in earlier years.

Reconciliation

Treasury's Monthly Treasury Statement is the authoritative total. OMB's account-level file is what makes the drill-down possible. The two differ slightly, because OMB applies classification corrections after the MTS is published. For FY2025:

The build fails if that gap exceeds 1%, if any spending category is left unmapped, or if any level of the hierarchy stops summing to its parent.

State receipts

State data comes from the Census Bureau's Annual Survey of State Government Finances, which uses one uniform taxonomy across all 50 states, far more comparable than reading 50 different budget documents.

The federal pass-through trap. About a third of state spending is federal money: Medicaid match, highway funds, education grants. Allocating your state income tax across total state spending would credit federally-funded Medicaid to your state tax bill. So we allocate only across the portion your state paid for out of its own revenue.

Washington, D.C. is absent from that survey entirely, because Census classifies the District as a municipality, so it is surveyed as a city rather than a state. We build D.C. from the Census Individual Unit File instead, at the same fiscal year, rolling its item codes up into the same twelve published functions.

That mapping is not taken on trust. The same file also contains all fifty state governments, whose published figures we already have. So before using it for D.C., the build applies the mapping to those fifty and checks it reproduces the published answers. It does, for eleven of the twelve functions, within 0.5%. A mapping that cannot reproduce known answers has no business producing an unknown one.

Earlier years

The history page carries the same receipt for every fiscal year back to 2015, each built from that year's own Treasury and OMB figures by the same code, and reconciled to the same tolerance. Nothing is interpolated or carried across from a neighbouring year.

2015is the boundary because it is where Treasury's published data begins. OMB's account file reaches back to 1962, and it would be easy to render those years too — but there would be no authoritative total to check them against, and a receipt whose figures cannot be reconciled is the thing this project exists not to be.

The estimator only carries rate tables for 2025 and 2026, so earlier years ask for the figure off your return instead. Applying today's brackets to an older income would produce a number that matches nothing that was ever filed.

The preview of the year in progress

The main receipt only ever covers a fiscal year that has closed and been fully accounted for. The preview covers the year still running, and it is built differently, because for an open year the two halves of the data arrive years apart.

Treasury reports spending monthly, by budget function: 10 of FY2026's 12 months so far, $6.28 trillion out the door. That is actual money, and every category total on the preview is exactly that figure. What does not exist yet is the account-level detail underneath — OMB publishes a year's accounts in the budget released the following spring.

So the preview takes the composition from OMB's estimate for the same year — which accounts, in what proportion, and which trust fund each belongs to — and scales it to the actual. Open a category and its total is real; the split beneath it is a projection. Nothing is blended within a single level, and last year's actuals are never used to fill this year's gap: either would produce a number that is neither what Treasury reported nor what OMB projected.

The build refuses to produce a preview whose function totals don't sum to Treasury's reported total, whose scaled accounts don't tie back to it, or where a function's actual and estimate have opposite signs — scaling across a sign flip would turn every credit beneath it into spending. Preview lines are also the one thing on this site you cannot share as a badge: a badge is a standalone claim, and these figures are revised monthly.

Known limitations

Sources

How this site is funded

Donations, nothing else. There are no third-party ads, no sponsorships, no affiliate links, and no selling of user data, which the architecture makes impossible rather than merely promised: nothing you type is ever collected, so there is nothing to sell. If the receipt was useful, there's a chip-in link at the bottom of it. The footer links to the maker's other project; nobody pays for that placement.

Privacy

This is a static site. The spending data is compiled into the page itself, and every calculation runs in your browser. Nothing you type is transmitted, stored, or logged; there is no server to send it to. You can verify this by opening your browser's network inspector: after the page loads, entering your numbers produces no requests at all.

Sharing keeps that property. A shareable link stores your figures after the #in the URL. Browsers never send that part to a server (that's a rule of HTTP, not a promise we're making), so even a shared receipt is computed entirely on the recipient's device. It is scrambled rather than plainly readable, but that is encoding, not encryption: anyone holding the link can recover your numbers, which is the whole point of sending one.

The “Save as image” button draws the receipt on your device with the canvas API and hands you the file directly. The tempting alternative, a server that renders a personalised image, would mean uploading your tax figures to produce it, so the link-preview image you see when a link is unfurled is deliberately generic and identical for everyone.

← Back to the receipt