{
  "slug": "job-offer-compare",
  "title": "Job Offer Comparison Calculator",
  "heading": "Job Offer Comparison Calculator",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/job-offer-compare",
  "summary": "Total compensation of two offers, adjusted for cost of living.",
  "description": "Base salary is often less than 70% of the real package once equity, match, bonus, healthcare, and commute costs are counted — and cost of living can flip the ranking entirely.",
  "formula": "Total = Base + bonus + equity/year + match + benefits − commute, ÷ cost-of-living index.",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=job-offer-compare",
  "inputs": [
    {
      "id": "baseA",
      "label": "Offer A base",
      "kind": "number",
      "hint": null,
      "default": 140000,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "bonusA",
      "label": "Offer A bonus",
      "kind": "number",
      "hint": null,
      "default": 18000,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "equityA",
      "label": "Offer A annual equity",
      "kind": "number",
      "hint": null,
      "default": 25000,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "benefitsA",
      "label": "Offer A benefits + match value",
      "kind": "number",
      "hint": null,
      "default": 14000,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "colA",
      "label": "Offer A cost-of-living index (100 = US avg)",
      "kind": "number",
      "hint": null,
      "default": 145,
      "unit": null,
      "min": 50,
      "max": 250
    },
    {
      "id": "baseB",
      "label": "Offer B base",
      "kind": "number",
      "hint": null,
      "default": 122000,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "bonusB",
      "label": "Offer B bonus",
      "kind": "number",
      "hint": null,
      "default": 10000,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "equityB",
      "label": "Offer B annual equity",
      "kind": "number",
      "hint": null,
      "default": 6000,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "benefitsB",
      "label": "Offer B benefits + match value",
      "kind": "number",
      "hint": null,
      "default": 16000,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "colB",
      "label": "Offer B cost-of-living index",
      "kind": "number",
      "hint": null,
      "default": 98,
      "unit": null,
      "min": 50,
      "max": 250
    }
  ],
  "outputs": [
    {
      "id": "winner",
      "label": "Better offer after cost of living",
      "format": "raw",
      "hint": null,
      "primary": true
    },
    {
      "id": "diff",
      "label": "Adjusted advantage",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "adjA",
      "label": "Offer A adjusted value",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "adjB",
      "label": "Offer B adjusted value",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "a",
      "label": "Offer A raw total comp",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "b",
      "label": "Offer B raw total comp",
      "format": "currency",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Offer A base: 140000 $",
      "Offer A bonus: 18000 $",
      "Offer A annual equity: 25000 $",
      "Offer A benefits + match value: 14000 $",
      "Offer A cost-of-living index (100 = US avg): 145",
      "Offer B base: 122000 $",
      "Offer B bonus: 10000 $",
      "Offer B annual equity: 6000 $",
      "Offer B benefits + match value: 16000 $",
      "Offer B cost-of-living index: 98"
    ],
    "outputs": [
      "Better offer after cost of living: Offer B",
      "Adjusted advantage: $21,280.79",
      "Offer A adjusted value: $135,862.07",
      "Offer B adjusted value: $157,142.86",
      "Offer A raw total comp: $197,000.00",
      "Offer B raw total comp: $154,000.00"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter offer a base ($).",
      "Enter offer a bonus ($).",
      "Enter offer a annual equity ($).",
      "Enter offer a benefits + match value ($).",
      "Enter offer a cost-of-living index (100 = us avg).",
      "Enter offer b base ($).",
      "Enter offer b bonus ($).",
      "Enter offer b annual equity ($).",
      "Enter offer b benefits + match value ($).",
      "Enter offer b cost-of-living index.",
      "Read your better offer after cost of living 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": {
        "baseA": 84000,
        "bonusA": 11000,
        "equityA": 15000,
        "benefitsA": 8500,
        "colA": 87,
        "baseB": 73000,
        "bonusB": 6000,
        "equityB": 4000,
        "benefitsB": 9500,
        "colB": 59
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "baseA": 140000,
        "bonusA": 18000,
        "equityA": 25000,
        "benefitsA": 14000,
        "colA": 145,
        "baseB": 122000,
        "bonusB": 10000,
        "equityB": 6000,
        "benefitsB": 16000,
        "colB": 98
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "baseA": 224000,
        "bonusA": 29000,
        "equityA": 40000,
        "benefitsA": 22500,
        "colA": 232,
        "baseB": 195000,
        "bonusB": 16000,
        "equityB": 10000,
        "benefitsB": 25500,
        "colB": 157
      }
    }
  ],
  "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": "How does the job offer comparison calculator work?",
      "a": "Base salary is often less than 70% of the real package once equity, match, bonus, healthcare, and commute costs are counted — and cost of living can flip the ranking entirely. The underlying maths is: Total = Base + bonus + equity/year + match + benefits − commute, ÷ cost-of-living index."
    },
    {
      "q": "What do I need to enter?",
      "a": "10 values: offer a base, offer a bonus, offer a annual equity, offer a benefits + match value, offer a cost-of-living index (100 = us avg), offer b base, offer b bonus, offer b annual equity, offer b benefits + match value, and offer b cost-of-living index. Each field starts with a sensible default, so you can change one number at a time and watch the result move."
    },
    {
      "q": "What does the better offer after cost of living result mean?",
      "a": "It is returned as a plain value and updates live as you edit the inputs, so you can compare two or three versions of a scenario in a few seconds."
    },
    {
      "q": "Is this calculator free, and do I need an account?",
      "a": "Yes, it's free, and no account is required. Nothing you type is stored on our servers — the maths runs entirely in your browser."
    },
    {
      "q": "How accurate is the result?",
      "a": "It applies the standard formula exactly, so the arithmetic is precise. Results are estimates before tax, fees, and inflation unless an input explicitly covers them."
    },
    {
      "q": "Who is this tool for?",
      "a": "It's built for anyone comparing money scenarios before committing — budgeting a payment, sanity-checking a quote, or seeing what a change in rate or term actually costs."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/salary-negotiation",
    "https://www.revenuelab.fyi/toolbox/contractor-vs-employee",
    "https://www.revenuelab.fyi/toolbox/commute-cost"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Job Offer Comparison Calculator (https://www.revenuelab.fyi/toolbox/job-offer-compare)"
}