{
  "slug": "social-security-earnings-test",
  "title": "Social Security Earnings Test Calculator",
  "heading": "Social Security Earnings Test Withholding Calculator",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/social-security-earnings-test",
  "summary": "See how much Social Security withholds if you claim early and keep working.",
  "description": "If you claim Social Security before your full retirement age (FRA) and keep working, the earnings test can temporarily withhold part of your benefit. In the years before you reach FRA, SSA withholds $1 for every $2 you earn above a lower annual limit (around $22,320 in 2024). In the calendar year you reach FRA, a more generous rule applies: $1 withheld for every $3 earned above a higher limit (around $59,520), counting only earnings before the month you turn FRA. Once you reach FRA the test disappears entirely regardless of how much you earn. Critically, withheld benefits are not lost forever — SSA recalculates your benefit at FRA to credit back the months withheld, effectively raising your ongoing payment. This calculator estimates the annual withholding based on which stage you're in, so you can decide whether working while claiming early makes financial sense before your full retirement age.",
  "formula": "Under FRA: withhold $1 per $2 over limit. Year reaching FRA: withhold $1 per $3 over the higher limit (earnings before FRA month only).",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=social-security-earnings-test",
  "inputs": [
    {
      "id": "stage",
      "label": "Your situation",
      "kind": "select",
      "hint": null,
      "default": "underFRA",
      "options": [
        {
          "value": "underFRA",
          "label": "Under full retirement age all year"
        },
        {
          "value": "yearOfFRA",
          "label": "Reaching FRA this year"
        }
      ]
    },
    {
      "id": "earnings",
      "label": "Expected annual earnings (pre-FRA-month if applicable)",
      "kind": "number",
      "hint": null,
      "default": 40000,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "monthlyBenefit",
      "label": "Monthly benefit amount",
      "kind": "number",
      "hint": null,
      "default": 1800,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "limitUnder",
      "label": "Annual limit (under FRA)",
      "kind": "number",
      "hint": null,
      "default": 22320,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "limitFRAYear",
      "label": "Annual limit (year of FRA)",
      "kind": "number",
      "hint": null,
      "default": 59520,
      "unit": "$",
      "min": 0,
      "max": null
    }
  ],
  "outputs": [
    {
      "id": "withheldCapped",
      "label": "Estimated annual benefit withheld",
      "format": "currency",
      "hint": null,
      "primary": true
    },
    {
      "id": "netAnnual",
      "label": "Net benefit received this year",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "monthsWithheld",
      "label": "Equivalent months of benefit withheld",
      "format": "decimal",
      "hint": null,
      "primary": false
    },
    {
      "id": "excess",
      "label": "Earnings above the limit",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "annualBenefit",
      "label": "Full annual benefit before withholding",
      "format": "currency",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Your situation: Under full retirement age all year",
      "Expected annual earnings (pre-FRA-month if applicable): 40000 $",
      "Monthly benefit amount: 1800 $",
      "Annual limit (under FRA): 22320 $",
      "Annual limit (year of FRA): 59520 $"
    ],
    "outputs": [
      "Estimated annual benefit withheld: $8,840",
      "Net benefit received this year: $12,760",
      "Equivalent months of benefit withheld: 4.9",
      "Earnings above the limit: $17,680",
      "Full annual benefit before withholding: $21,600"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter your situation.",
      "Enter expected annual earnings (pre-fra-month if applicable) ($).",
      "Enter monthly benefit amount ($).",
      "Enter annual limit (under fra) ($).",
      "Enter annual limit (year of fra) ($).",
      "Read your estimated annual benefit withheld 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": {
        "stage": "underFRA",
        "earnings": 24000,
        "monthlyBenefit": 1075,
        "limitUnder": 13390,
        "limitFRAYear": 35710
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "stage": "underFRA",
        "earnings": 40000,
        "monthlyBenefit": 1800,
        "limitUnder": 22320,
        "limitFRAYear": 59520
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "stage": "underFRA",
        "earnings": 64000,
        "monthlyBenefit": 2875,
        "limitUnder": 35710,
        "limitFRAYear": 95230
      }
    }
  ],
  "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": "Do I lose withheld benefits permanently?",
      "a": "No. SSA tracks the months your benefit was fully or partially withheld and recalculates your monthly payment at full retirement age as if you'd claimed later for those months. Over a normal life expectancy, most people who worked through the earnings test see their reduced early-claiming penalty partly reversed, effectively getting the money back through a higher ongoing check."
    },
    {
      "q": "What counts as earnings for this test?",
      "a": "Wages from employment and net self-employment income count. Pensions, investment income, annuities, interest, dividends, capital gains, and other government benefits do not count toward the earnings test, even though they're taxable income for other purposes."
    },
    {
      "q": "Should I just wait to claim if I'm still working full time?",
      "a": "If your earnings will substantially exceed the limit, many people are better off delaying benefits until closer to or at full retirement age, both to avoid the withholding hassle and to lock in delayed retirement credits worth about 8% per year past FRA up to age 70."
    },
    {
      "q": "Does the earnings test apply after full retirement age?",
      "a": "No, once you reach FRA you can earn any amount with zero reduction to your Social Security benefit. This is a one-time threshold, not an ongoing means test, which is a common point of confusion."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/ssdi-vs-ssi-comparison",
    "https://www.revenuelab.fyi/toolbox/spousal-benefit-estimate"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Social Security Earnings Test Calculator (https://www.revenuelab.fyi/toolbox/social-security-earnings-test)"
}