{
  "slug": "tsp-growth-calculator",
  "title": "TSP Growth Calculator",
  "heading": "Thrift Savings Plan (TSP) Growth Calculator",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/tsp-growth-calculator",
  "summary": "Project your TSP balance growth including agency match.",
  "description": "The Thrift Savings Plan is the federal government's 401(k)-equivalent, and FERS employees get a meaningful government match on top of their own contributions: automatic 1% of salary regardless of whether you contribute, plus dollar-for-dollar match on the first 3% you contribute, plus 50 cents per dollar on the next 2%, for a maximum 5% agency contribution when you contribute at least 5% yourself. Skipping past that 5% threshold means leaving free money on the table. This calculator projects your TSP balance forward using your contribution rate, salary, expected annual growth, and years remaining, compounding both your contributions and the agency match. It also isolates how much of your ending balance came from the free agency money versus your own contributions and growth, since that comparison is often what motivates people to at least hit the full match.",
  "formula": "Agency match = 1% automatic + dollar-for-dollar up to 3% + $0.50/$1 on next 2%; balance compounds annually with contributions and growth rate.",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=tsp-growth-calculator",
  "inputs": [
    {
      "id": "salary",
      "label": "Annual salary",
      "kind": "number",
      "hint": null,
      "default": 85000,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "contribPct",
      "label": "Your contribution rate",
      "kind": "number",
      "hint": null,
      "default": 10,
      "unit": "%",
      "min": 0,
      "max": 100
    },
    {
      "id": "currentBalance",
      "label": "Current TSP balance",
      "kind": "number",
      "hint": null,
      "default": 40000,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "years",
      "label": "Years until retirement",
      "kind": "number",
      "hint": null,
      "default": 20,
      "unit": null,
      "min": 1,
      "max": 45
    },
    {
      "id": "growthRate",
      "label": "Expected annual return",
      "kind": "number",
      "hint": null,
      "default": 7,
      "unit": "%",
      "min": 0,
      "max": 15
    }
  ],
  "outputs": [
    {
      "id": "balance",
      "label": "Projected ending TSP balance",
      "format": "currency",
      "hint": null,
      "primary": true
    },
    {
      "id": "agencyContribAnnual",
      "label": "Annual agency contribution",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "totalAgency",
      "label": "Total agency contributions over the period",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "totalEmployee",
      "label": "Total your contributions over the period",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "matchPct",
      "label": "Effective agency match % of salary",
      "format": "percent",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Annual salary: 85000 $",
      "Your contribution rate: 10 %",
      "Current TSP balance: 40000 $",
      "Years until retirement: 20",
      "Expected annual return: 7 %"
    ],
    "outputs": [
      "Projected ending TSP balance: $677,480",
      "Annual agency contribution: $4,250",
      "Total agency contributions over the period: $85,000",
      "Total your contributions over the period: $170,000",
      "Effective agency match % of salary: 5.0%"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter annual salary ($).",
      "Enter your contribution rate (%).",
      "Enter current tsp balance ($).",
      "Enter years until retirement.",
      "Enter expected annual return (%).",
      "Read your projected ending tsp balance 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": {
        "salary": 51000,
        "contribPct": 6,
        "currentBalance": 24000,
        "years": 12,
        "growthRate": 4.2
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "salary": 85000,
        "contribPct": 10,
        "currentBalance": 40000,
        "years": 20,
        "growthRate": 7
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "salary": 136000,
        "contribPct": 16,
        "currentBalance": 64000,
        "years": 32,
        "growthRate": 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": "What's the minimum contribution to get the full match?",
      "a": "You need to contribute at least 5% of your salary to capture the full agency match: 1% automatic plus dollar-for-dollar on the first 3% plus 50 cents on the dollar for the next 2%, totaling 5% agency money on top of your own 5%. Contributing less than 5% means giving up part of that free match."
    },
    {
      "q": "Does the automatic 1% require me to contribute anything?",
      "a": "No, FERS employees receive the automatic 1% agency contribution regardless of whether they personally contribute at all, though you obviously miss the matching portion (worth up to another 4%) if you don't put in your own money."
    },
    {
      "q": "Should I split contributions between traditional and Roth TSP?",
      "a": "This depends on your expected tax bracket now versus retirement — traditional contributions reduce taxable income today while Roth contributions grow tax-free, and many people split between both to hedge against future tax rate uncertainty. The agency match, however, always goes into the traditional side regardless of your own election."
    },
    {
      "q": "How realistic is a 7% growth assumption?",
      "a": "It's roughly in line with long-run historical average annual returns for the TSP's C Fund (S&P 500 equivalent) after inflation is not subtracted, but any single-number projection ignores year-to-year volatility and sequence-of-returns risk near retirement, so treat this as a planning estimate, not a guarantee."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/fers-pension-estimate",
    "https://www.revenuelab.fyi/toolbox/military-bah-bas-takehome"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — TSP Growth Calculator (https://www.revenuelab.fyi/toolbox/tsp-growth-calculator)"
}