{
  "slug": "student-loan-payoff-vs-invest",
  "title": "Student Loan Payoff vs Invest Calculator",
  "heading": "Pay Off Student Loans or Invest?",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/student-loan-payoff-vs-invest",
  "summary": "Compare guaranteed interest saved against expected investment returns on the same dollars.",
  "description": "With spare cash and a student loan, the choice is between a guaranteed return equal to the loan rate and an uncertain return from investing. This calculator projects both paths over your chosen horizon: extra payments shorten the loan and eliminate interest, while investing accumulates at your expected return net of tax. It reports the net worth difference at the end of the horizon. The honest framing is that the loan payoff is risk-free and the investment return is not, so a modest edge for investing is not a decisive edge — but a large gap, especially with an employer retirement match in play, usually is.",
  "formula": "Payoff path: apply extra to the loan, then invest the freed payment for the remaining months. Invest path: pay the loan on schedule and invest the extra monthly. Compare (investments − remaining loan balance) at the horizon.",
  "dateModified": "2026-08-25",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=student-loan-payoff-vs-invest",
  "inputs": [
    {
      "id": "balance",
      "label": "Loan balance",
      "kind": "number",
      "hint": null,
      "default": 42000,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "rate",
      "label": "Loan interest rate",
      "kind": "number",
      "hint": null,
      "default": 6.5,
      "unit": "%",
      "min": 0,
      "max": null
    },
    {
      "id": "payment",
      "label": "Scheduled monthly payment",
      "kind": "number",
      "hint": null,
      "default": 480,
      "unit": "$/mo",
      "min": 1,
      "max": null
    },
    {
      "id": "extra",
      "label": "Spare cash per month",
      "kind": "number",
      "hint": null,
      "default": 400,
      "unit": "$/mo",
      "min": 0,
      "max": null
    },
    {
      "id": "returnPct",
      "label": "Expected investment return",
      "kind": "number",
      "hint": null,
      "default": 7,
      "unit": "%",
      "min": 0,
      "max": null
    },
    {
      "id": "taxDrag",
      "label": "Tax drag on returns",
      "kind": "number",
      "hint": null,
      "default": 15,
      "unit": "%",
      "min": 0,
      "max": 50
    },
    {
      "id": "horizon",
      "label": "Comparison horizon",
      "kind": "number",
      "hint": null,
      "default": 15,
      "unit": "years",
      "min": 1,
      "max": null
    }
  ],
  "outputs": [
    {
      "id": "advantage",
      "label": "Investing advantage at the horizon",
      "format": "currency",
      "hint": null,
      "primary": true
    },
    {
      "id": "payoffNet",
      "label": "Net worth — payoff first",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "investNet",
      "label": "Net worth — invest first",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "interestSaved",
      "label": "Interest saved by paying off early",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "payoffInterest",
      "label": "Total interest — payoff path",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "investInterest",
      "label": "Total interest — invest path",
      "format": "currency",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Loan balance: 42000 $",
      "Loan interest rate: 6.5 %",
      "Scheduled monthly payment: 480 $/mo",
      "Spare cash per month: 400 $/mo",
      "Expected investment return: 7 %",
      "Tax drag on returns: 15 %",
      "Comparison horizon: 15 years"
    ],
    "outputs": [
      "Investing advantage at the horizon: -$317.71",
      "Net worth — payoff first: $150,243.22",
      "Net worth — invest first: $149,925.51",
      "Interest saved by paying off early: $8,352.39",
      "Total interest — payoff path: $6,726.04",
      "Total interest — invest path: $15,078.43"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter loan balance ($).",
      "Enter loan interest rate (%).",
      "Enter scheduled monthly payment ($/mo).",
      "Enter spare cash per month ($/mo).",
      "Enter expected investment return (%).",
      "Enter tax drag on returns (%).",
      "Enter comparison horizon (years).",
      "Read your investing advantage at the horizon 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": {
        "balance": 25000,
        "rate": 6.5,
        "payment": 290,
        "extra": 250,
        "returnPct": 4.2,
        "taxDrag": 9,
        "horizon": 9
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "balance": 42000,
        "rate": 6.5,
        "payment": 480,
        "extra": 400,
        "returnPct": 7,
        "taxDrag": 15,
        "horizon": 15
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "balance": 67000,
        "rate": 6.5,
        "payment": 770,
        "extra": 650,
        "returnPct": 11.200000000000001,
        "taxDrag": 24,
        "horizon": 24
      }
    }
  ],
  "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": "A negative advantage means what?",
      "a": "That paying the loan down first leaves you better off at the horizon under these assumptions — which happens whenever the loan rate exceeds your after-tax expected return. Since the payoff return is guaranteed and the investment return is not, a negative number is a strong signal."
    },
    {
      "q": "Does an employer match change the answer?",
      "a": "Enormously. A dollar-for-dollar match is an immediate 100% return that no loan rate can beat, so contribute at least up to the match before considering extra loan payments. This calculator does not model the match — treat it as a separate, first-priority allocation."
    },
    {
      "q": "What about federal loan forgiveness programmes?",
      "a": "If you are pursuing forgiveness on an income-driven plan, extra payments can be actively counterproductive because they reduce a balance that may be cancelled. This model assumes a standard repayment with no forgiveness."
    },
    {
      "q": "How should I treat variable-rate loans?",
      "a": "Model the rate you expect on average over the horizon, then re-run with a higher rate to see the downside. Variable-rate debt shifts risk to you, which strengthens the case for paying it down rather than betting the spread."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/extra-payment-impact",
    "https://www.revenuelab.fyi/toolbox/debt-avalanche-vs-snowball",
    "https://www.revenuelab.fyi/toolbox/savings-goal-date"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Student Loan Payoff vs Invest Calculator (https://www.revenuelab.fyi/toolbox/student-loan-payoff-vs-invest)"
}