The HSA strategy everyone recommends — pay out of pocket, invest the account, reimburse yourself years later — fails quietly at one point: proof. Here's what each alternative actually gets you.
✗Receipts prove a bill existed — not that you paid it out of pocket, weren't reimbursed by insurance, didn't deduct it on Schedule A, and hadn't already withdrawn against it. Those are the four questions an examiner asks, and a shoebox answers none of them. It also fails your executor: at the account holder's death, a non-spouse beneficiary has one year to apply your expenses against the taxable balance — nobody reconstructs a decade of paper in a year of grief.
✗Better than nothing, but it's testimony, not evidence: no source documents attached, no payment linkage, no provenance, editable after the fact (which is precisely what an auditor assumes). And you're the matching engine — every EOB against every statement, by hand, forever.
✗It stores files; it doesn't know what your insurer adjudicated or what your card paid — the two halves of substantiation. It's also theirs: change custodians and the history doesn't follow. This ledger is custodian-neutral and everything exports byte-identical, forever, free.
✓The good ones do FIFO reimbursements, growth projections, and Form 8889 helpers — so we do all of that too. What none of them do: match EOBs to bank payments automatically (including in-progress payment plans), keep three levels of proof with per-year 1099-SA gap detection, attribute every expense to a household member with the death rules enforced, chain the history with tamper-evident hashes, read scans with free local OCR, or hand your advisor a consent-based portal. Feature lists are copyable; a five-year evidence chain anchored in time is not.
Receipt vaults store what you upload. Spreadsheets hold what you type. Budget apps sort what you spent. None of them pair a bill with the payment that settled it, and that pairing is the whole audit.
Claims arrive from your insurer through patient-authorized access. Payments arrive from your bank or a statement export. You enter nothing, and the two halves meet on their own.
Exact, composite, split, or payment plan in progress: every match names its reason in a sentence. When two claims could explain one charge, it leaves both open rather than guess.
Plans on the federal Patient Access API must publish claims with dates of service back to January 1, 2016. Connect once and a decade of bills you paid out of pocket becomes a balance you can take, tax-free, whenever you choose.
EOB proof of what you owed, payment proof that you paid it, and tax proof that no double benefit was taken, with the 1099-SA reconciled against the ledger. That last one is the question examiners actually ask.
Strict by default: an EOB and a payment record for every dollar. When a payment record cannot be found, accept the claim on the insurer's record and the tax-year attestation, and the packet says exactly that, in its own section.
Names on EOBs and payer feeds become household members on their own. Each expense stays attributed to a person, which is what the estate rules and the one-year window depend on.
Against the three things people use instead.
| Shoebox or spreadsheet | Receipt vault | Budgeting app | HSAMatch | |
|---|---|---|---|---|
| Pulls claims from your insurer | — | — | — | ✓ |
| Pairs each bill with the payment that settled it | by hand | — | — | ✓, and explains why |
| Reaches claims back to 2016 | whatever you kept | whatever you uploaded | — | ✓, where the plan publishes it |
| Handles payment plans, split tenders, bundled charges | — | — | — | ✓ |
| Reconciles the 1099-SA against reimbursements | — | — | — | ✓ |
| Attributes expenses to family members | if you remember | — | — | ✓, detected from EOBs |
| Medicare premiums and mileage after 65 | — | — | — | ✓ |
| Print-ready audit packet citing the statute | — | a folder of files | — | ✓ |
| Documents encrypted, history hash-chained | — | varies | — | ✓ |
| Everything exportable, on every plan | ✓ | varies | varies | ✓, never paywalled |
✓Documentation is the difference between taxed and untaxed money: a family documenting $3,000/yr for 20 years protects about $27,000 of tax; a retired couple's Medicare premiums are a ~$42,000 pipeline; three years of in-home care, ~$74,000 kept. Run your own numbers on the What it's worth page.
Free plan includes every export, forever. Not tax advice.