{
  "slug": "gov-benefits-cliff-checker",
  "title": "Benefits Cliff Checker",
  "heading": "Public Benefits Cliff Checker",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/gov-benefits-cliff-checker",
  "summary": "See if a raise could cost you more in lost benefits than you gain in pay.",
  "description": "A benefits cliff happens when a modest increase in earnings pushes a household above an eligibility threshold and causes a much larger loss of benefits than the raise itself — Medicaid, SNAP, childcare subsidies, and housing assistance all have thresholds that can create this effect, sometimes making an extra $1 of income cost a family thousands in lost aid. This calculator compares your net financial position before and after a raise by combining wage change with estimated benefit loss across whichever programs you flag as active, so you can see if a promotion or additional hours nets you more money overall or actually leaves you worse off — critical information before turning down or negotiating around a raise near a benefit threshold.",
  "formula": "Net change = (new income − old income) − (benefits lost due to crossing thresholds).",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=gov-benefits-cliff-checker",
  "inputs": [
    {
      "id": "oldIncome",
      "label": "Current annual income",
      "kind": "number",
      "hint": null,
      "default": 32000,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "newIncome",
      "label": "Income after raise/promotion",
      "kind": "number",
      "hint": null,
      "default": 38000,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "medicaidLoss",
      "label": "Annual Medicaid value lost if ineligible",
      "kind": "number",
      "hint": null,
      "default": 0,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "snapLoss",
      "label": "Annual SNAP benefit lost",
      "kind": "number",
      "hint": null,
      "default": 0,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "childcareLoss",
      "label": "Annual childcare subsidy lost",
      "kind": "number",
      "hint": null,
      "default": 0,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "housingLoss",
      "label": "Annual housing assistance lost",
      "kind": "number",
      "hint": null,
      "default": 0,
      "unit": "$",
      "min": 0,
      "max": null
    }
  ],
  "outputs": [
    {
      "id": "netChange",
      "label": "Net financial change from the raise",
      "format": "currency",
      "hint": null,
      "primary": true
    },
    {
      "id": "totalLoss",
      "label": "Total estimated benefits lost",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "raiseAmount",
      "label": "Gross raise amount",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "breakEvenRaise",
      "label": "Raise needed just to break even",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "isCliff",
      "label": "Cliff effect present (1 = yes)",
      "format": "number",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Current annual income: 32000 $",
      "Income after raise/promotion: 38000 $",
      "Annual Medicaid value lost if ineligible: 0 $",
      "Annual SNAP benefit lost: 0 $",
      "Annual childcare subsidy lost: 0 $",
      "Annual housing assistance lost: 0 $"
    ],
    "outputs": [
      "Net financial change from the raise: $6,000",
      "Total estimated benefits lost: $0",
      "Gross raise amount: $6,000",
      "Raise needed just to break even: $0",
      "Cliff effect present (1 = yes): 0"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter current annual income ($).",
      "Enter income after raise/promotion ($).",
      "Enter annual medicaid value lost if ineligible ($).",
      "Enter annual snap benefit lost ($).",
      "Enter annual childcare subsidy lost ($).",
      "Enter annual housing assistance lost ($).",
      "Read your net financial change from the raise 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": {
        "oldIncome": 19000,
        "newIncome": 23000,
        "medicaidLoss": 0,
        "snapLoss": 0,
        "childcareLoss": 0,
        "housingLoss": 0
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "oldIncome": 32000,
        "newIncome": 38000,
        "medicaidLoss": 0,
        "snapLoss": 0,
        "childcareLoss": 0,
        "housingLoss": 0
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "oldIncome": 51000,
        "newIncome": 61000,
        "medicaidLoss": 0,
        "snapLoss": 0,
        "childcareLoss": 0,
        "housingLoss": 0
      }
    }
  ],
  "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": "Why does a raise sometimes make me worse off?",
      "a": "Because eligibility for many benefit programs is based on hard income thresholds rather than a gradual phase-out, crossing the line can end a benefit worth thousands per year (like Medicaid coverage or a childcare subsidy) for the sake of a raise worth only a few hundred or thousand dollars, producing a net loss even though your paycheck went up."
    },
    {
      "q": "Which benefits typically create the steepest cliffs?",
      "a": "Medicaid (especially in non-expansion states with low thresholds), childcare subsidies, and public housing assistance tend to have the sharpest cliffs because they're worth so much and often phase out abruptly rather than gradually. SNAP and ACA subsidies today phase out more gradually, reducing (but not eliminating) cliff effects."
    },
    {
      "q": "Can I negotiate around a benefits cliff?",
      "a": "Some options include asking for the raise structured as a one-time bonus instead of a permanent salary increase (which may not count the same way for annual eligibility redeterminations), timing a raise near your benefit recertification date, or negotiating non-wage benefits like additional PTO or employer-paid insurance that don't count as income for benefit programs."
    },
    {
      "q": "Is there a permanent fix to benefits cliffs?",
      "a": "Some states and local pilot programs have redesigned specific benefits to phase out gradually instead of ending abruptly, but no comprehensive federal fix exists across all programs simultaneously. Understanding the cliffs and planning income timing remains the practical tool available to most households today."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/snap-allotment-estimate",
    "https://www.revenuelab.fyi/toolbox/fpl-percentage-calculator",
    "https://www.revenuelab.fyi/toolbox/aca-subsidy-cliff-estimate"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Benefits Cliff Checker (https://www.revenuelab.fyi/toolbox/gov-benefits-cliff-checker)"
}