{
  "slug": "hsa-contribution",
  "title": "HSA Contribution Calculator",
  "heading": "HSA Contribution & Tax Savings Calculator",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/hsa-contribution",
  "summary": "Max contribution, tax savings, and long-term growth.",
  "description": "An HSA is the only triple-tax-advantaged account: deductible going in, tax-free growth, tax-free withdrawals for medical costs. Paying current bills out of pocket and investing the balance maximizes it.",
  "formula": "Tax savings = Contribution × (marginal rate + FICA if payroll-deducted).",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=hsa-contribution",
  "inputs": [
    {
      "id": "coverage",
      "label": "Coverage type",
      "kind": "select",
      "hint": null,
      "default": "family",
      "options": [
        {
          "value": "self",
          "label": "Self-only"
        },
        {
          "value": "family",
          "label": "Family"
        }
      ]
    },
    {
      "id": "age55",
      "label": "Age 55 or older?",
      "kind": "select",
      "hint": null,
      "default": "no",
      "options": [
        {
          "value": "no",
          "label": "No"
        },
        {
          "value": "yes",
          "label": "Yes (+$1,000 catch-up)"
        }
      ]
    },
    {
      "id": "contribution",
      "label": "Your planned annual contribution",
      "kind": "number",
      "hint": null,
      "default": 6000,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "employer",
      "label": "Employer contribution",
      "kind": "number",
      "hint": null,
      "default": 750,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "taxRate",
      "label": "Marginal tax rate",
      "kind": "number",
      "hint": null,
      "default": 24,
      "unit": "%",
      "min": 0,
      "max": 50
    },
    {
      "id": "payroll",
      "label": "Contributed via payroll?",
      "kind": "select",
      "hint": null,
      "default": "yes",
      "options": [
        {
          "value": "yes",
          "label": "Yes (saves FICA too)"
        },
        {
          "value": "no",
          "label": "No"
        }
      ]
    },
    {
      "id": "years",
      "label": "Years invested",
      "kind": "number",
      "hint": null,
      "default": 20,
      "unit": null,
      "min": 0,
      "max": 45
    },
    {
      "id": "returnRate",
      "label": "Investment return",
      "kind": "number",
      "hint": null,
      "default": 7,
      "unit": "%",
      "min": 0,
      "max": 12
    }
  ],
  "outputs": [
    {
      "id": "limit",
      "label": "2026 contribution limit",
      "format": "currency",
      "hint": null,
      "primary": true
    },
    {
      "id": "taxSavings",
      "label": "Tax saved this year",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "room",
      "label": "Remaining contribution room",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "total",
      "label": "Total going in this year",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "fv",
      "label": "Balance after your investing horizon",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "contributed",
      "label": "Total contributed over that period",
      "format": "currency",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Coverage type: Family",
      "Age 55 or older?: No",
      "Your planned annual contribution: 6000 $",
      "Employer contribution: 750 $",
      "Marginal tax rate: 24 %",
      "Contributed via payroll?: Yes (saves FICA too)",
      "Years invested: 20",
      "Investment return: 7 %"
    ],
    "outputs": [
      "2026 contribution limit: $9,050.00",
      "Tax saved this year: $1,899.00",
      "Remaining contribution room: $2,300.00",
      "Total going in this year: $6,750.00",
      "Balance after your investing horizon: $276,719.57",
      "Total contributed over that period: $135,000.00"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter coverage type.",
      "Enter age 55 or older?.",
      "Enter your planned annual contribution ($).",
      "Enter employer contribution ($).",
      "Enter marginal tax rate (%).",
      "Enter contributed via payroll?.",
      "Enter years invested.",
      "Enter investment return (%).",
      "Read your 2026 contribution limit on the right — it updates as you type.",
      "Hit Share to keep the scenario or send it to someone."
    ]
  },
  "scenarios": [
    {
      "name": "Conservative",
      "description": "Lower-end numbers — what if things land soft?",
      "values": {
        "coverage": "family",
        "age55": "no",
        "contribution": 3500,
        "employer": 450,
        "taxRate": 14,
        "payroll": "yes",
        "years": 12,
        "returnRate": 4.2
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "coverage": "family",
        "age55": "no",
        "contribution": 6000,
        "employer": 750,
        "taxRate": 24,
        "payroll": "yes",
        "years": 20,
        "returnRate": 7
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "coverage": "family",
        "age55": "no",
        "contribution": 9500,
        "employer": 1200,
        "taxRate": 38,
        "payroll": "yes",
        "years": 32,
        "returnRate": 11.200000000000001
      }
    }
  ],
  "limitations": [
    "Results are estimates before tax, fees, and inflation unless an input explicitly covers them.",
    "Rates are treated as fixed for the whole period — variable-rate products will drift from this projection.",
    "This is educational maths, not financial advice. Check anything contractual with the lender or your accountant."
  ],
  "faq": [
    {
      "q": "How does the hsa contribution & tax savings calculator work?",
      "a": "An HSA is the only triple-tax-advantaged account: deductible going in, tax-free growth, tax-free withdrawals for medical costs. Paying current bills out of pocket and investing the balance maximizes it. The underlying maths is: Tax savings = Contribution × (marginal rate + FICA if payroll-deducted)."
    },
    {
      "q": "What do I need to enter?",
      "a": "8 values: coverage type, age 55 or older?, your planned annual contribution, employer contribution, marginal tax rate, contributed via payroll?, years invested, and investment return. Each field starts with a sensible default, so you can change one number at a time and watch the result move."
    },
    {
      "q": "What does the 2026 contribution limit result mean?",
      "a": "It is returned as a money amount in US dollars and updates live as you edit the inputs, so you can compare two or three versions of a scenario in a few seconds."
    },
    {
      "q": "Is this calculator free, and do I need an account?",
      "a": "Yes, it's free, and no account is required. Nothing you type is stored on our servers — the maths runs entirely in your browser."
    },
    {
      "q": "How accurate is the result?",
      "a": "It applies the standard formula exactly, so the arithmetic is precise. Results are estimates before tax, fees, and inflation unless an input explicitly covers them."
    },
    {
      "q": "Who is this tool for?",
      "a": "It's built for anyone comparing money scenarios before committing — budgeting a payment, sanity-checking a quote, or seeing what a change in rate or term actually costs."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/health-insurance-cost",
    "https://www.revenuelab.fyi/toolbox/savings-rate-fi"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — HSA Contribution Calculator (https://www.revenuelab.fyi/toolbox/hsa-contribution)"
}