{
  "slug": "raise-vs-promotion-value",
  "title": "Raise vs Promotion Value Calculator",
  "heading": "Raise vs Promotion Value Calculator",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/raise-vs-promotion-value",
  "summary": "Compare a flat raise against a promotion with extra hours and responsibility.",
  "description": "A promotion looks strictly better than a raise until you price the hours that come with it. This calculator compares three things on equal footing: your current package, a straight raise at the same workload, and a promotion with a larger increase plus additional weekly hours and any change to bonus or equity. It reports each option's true hourly rate and the annual after-tax gain, so the comparison is not just 'which number is bigger' but 'which pays better per hour of life spent'. It also shows the compounding effect, since future raises are usually a percentage of the new base.",
  "formula": "For each option: after-tax pay = (base + bonus) × (1 − tax rate). True hourly = after-tax pay ÷ (weekly hours × weeks). Five-year value applies the annual growth rate to each base.",
  "dateModified": "2026-08-25",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=raise-vs-promotion-value",
  "inputs": [
    {
      "id": "currentBase",
      "label": "Current base salary",
      "kind": "number",
      "hint": null,
      "default": 92000,
      "unit": "$/yr",
      "min": 1000,
      "max": null
    },
    {
      "id": "currentHours",
      "label": "Current weekly hours",
      "kind": "number",
      "hint": null,
      "default": 42,
      "unit": "hrs",
      "min": 1,
      "max": null
    },
    {
      "id": "raisePct",
      "label": "Straight raise offered",
      "kind": "number",
      "hint": null,
      "default": 6,
      "unit": "%",
      "min": 0,
      "max": null
    },
    {
      "id": "promoPct",
      "label": "Promotion increase",
      "kind": "number",
      "hint": null,
      "default": 14,
      "unit": "%",
      "min": 0,
      "max": null
    },
    {
      "id": "promoExtraHours",
      "label": "Extra weekly hours with the promotion",
      "kind": "number",
      "hint": null,
      "default": 7,
      "unit": "hrs",
      "min": 0,
      "max": null
    },
    {
      "id": "promoBonus",
      "label": "Additional annual bonus with promotion",
      "kind": "number",
      "hint": null,
      "default": 6000,
      "unit": "$/yr",
      "min": 0,
      "max": null
    },
    {
      "id": "taxRate",
      "label": "Effective tax rate",
      "kind": "number",
      "hint": null,
      "default": 26,
      "unit": "%",
      "min": 0,
      "max": 60
    },
    {
      "id": "weeks",
      "label": "Working weeks per year",
      "kind": "number",
      "hint": null,
      "default": 48,
      "unit": "weeks",
      "min": 1,
      "max": 52
    },
    {
      "id": "growth",
      "label": "Expected annual raise thereafter",
      "kind": "number",
      "hint": null,
      "default": 3,
      "unit": "%",
      "min": 0,
      "max": null
    }
  ],
  "outputs": [
    {
      "id": "hourlyGap",
      "label": "Promotion's hourly advantage",
      "format": "currency",
      "hint": null,
      "primary": true
    },
    {
      "id": "promoHourly",
      "label": "True hourly — promotion",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "raiseHourly",
      "label": "True hourly — straight raise",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "promoAnnual",
      "label": "After-tax pay — promotion",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "raiseAnnual",
      "label": "After-tax pay — raise",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "fiveYearGap",
      "label": "Five-year after-tax difference",
      "format": "currency",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Current base salary: 92000 $/yr",
      "Current weekly hours: 42 hrs",
      "Straight raise offered: 6 %",
      "Promotion increase: 14 %",
      "Extra weekly hours with the promotion: 7 hrs",
      "Additional annual bonus with promotion: 6000 $/yr",
      "Effective tax rate: 26 %",
      "Working weeks per year: 48 weeks",
      "Expected annual raise thereafter: 3 %"
    ],
    "outputs": [
      "Promotion's hourly advantage: -$0.91",
      "True hourly — promotion: $34.89",
      "True hourly — straight raise: $35.80",
      "After-tax pay — promotion: $82,051.20",
      "After-tax pay — raise: $72,164.80",
      "Five-year after-tax difference: $51,115.68"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter current base salary ($/yr).",
      "Enter current weekly hours (hrs).",
      "Enter straight raise offered (%).",
      "Enter promotion increase (%).",
      "Enter extra weekly hours with the promotion (hrs).",
      "Enter additional annual bonus with promotion ($/yr).",
      "Enter effective tax rate (%).",
      "Enter working weeks per year (weeks).",
      "Enter expected annual raise thereafter (%).",
      "Read your promotion's hourly advantage 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": {
        "currentBase": 55000,
        "currentHours": 25,
        "raisePct": 3.5999999999999996,
        "promoPct": 8.4,
        "promoExtraHours": 4,
        "promoBonus": 3500,
        "taxRate": 16,
        "weeks": 29,
        "growth": 1.7999999999999998
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "currentBase": 92000,
        "currentHours": 42,
        "raisePct": 6,
        "promoPct": 14,
        "promoExtraHours": 7,
        "promoBonus": 6000,
        "taxRate": 26,
        "weeks": 48,
        "growth": 3
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "currentBase": 147000,
        "currentHours": 67,
        "raisePct": 9.600000000000001,
        "promoPct": 22.400000000000002,
        "promoExtraHours": 11,
        "promoBonus": 9500,
        "taxRate": 42,
        "weeks": 52,
        "growth": 4.800000000000001
      }
    }
  ],
  "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": "The promotion pays more but the hourly is lower — is it still worth taking?",
      "a": "Often yes, because titles and scope compound into future offers in a way that hours worked this year do not. But go in knowing you took a pay cut per hour, and set a date to revisit the workload once you are established in the role."
    },
    {
      "q": "Should I count equity in the comparison?",
      "a": "Only at a value you would accept in cash today. Private-company equity has no reliable price and a real chance of being worth nothing; public RSUs on a known vesting schedule are closer to deferred salary and can be added to the bonus input."
    },
    {
      "q": "How much does the five-year figure really matter?",
      "a": "A great deal, because raises are usually a percentage of base, so a higher base compounds. The five-year gap here is frequently several times the first-year difference — which is why negotiating base beats negotiating a one-off bonus."
    },
    {
      "q": "What if the extra hours are temporary?",
      "a": "Then model them as temporary: run the promotion once with the extra hours and once without, and treat the truth as somewhere between. Be sceptical, though — 'just through the transition' has a way of becoming the new baseline."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/hourly-to-salary-true",
    "https://www.revenuelab.fyi/toolbox/consulting-day-rate",
    "https://www.revenuelab.fyi/toolbox/commute-cost-annual"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Raise vs Promotion Value Calculator (https://www.revenuelab.fyi/toolbox/raise-vs-promotion-value)"
}