{
  "slug": "hourly-to-salary-true",
  "title": "True Hourly Wage Calculator",
  "heading": "True Hourly Wage Calculator",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/hourly-to-salary-true",
  "summary": "Your real pay per hour after commute, unpaid overtime, and job-related costs.",
  "description": "The salary on your offer letter is divided by an idealised 40-hour week. Your actual life includes the commute, the unpaid hour after everyone leaves, the work clothes, the parking, the lunches you buy because there is no time to make one. This calculator computes the true hourly wage by adding committed hours that are not on the payroll and subtracting the costs the job creates, then divides net pay by real hours. It is the number to use when comparing two offers with different commutes, or when weighing a raise that comes with longer hours.",
  "formula": "Real hours = (worked + overtime + commute + prep) × weeks. Net job pay = salary × (1 − tax rate) − job-related costs. True hourly = net job pay ÷ real hours.",
  "dateModified": "2026-08-25",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=hourly-to-salary-true",
  "inputs": [
    {
      "id": "salary",
      "label": "Gross annual salary",
      "kind": "number",
      "hint": null,
      "default": 78000,
      "unit": "$/yr",
      "min": 1000,
      "max": null
    },
    {
      "id": "taxRate",
      "label": "Effective tax + payroll rate",
      "kind": "number",
      "hint": null,
      "default": 24,
      "unit": "%",
      "min": 0,
      "max": 60
    },
    {
      "id": "contracted",
      "label": "Contracted hours per week",
      "kind": "number",
      "hint": null,
      "default": 40,
      "unit": "hrs",
      "min": 1,
      "max": null
    },
    {
      "id": "overtime",
      "label": "Unpaid extra hours per week",
      "kind": "number",
      "hint": null,
      "default": 5,
      "unit": "hrs",
      "min": 0,
      "max": null
    },
    {
      "id": "commuteMins",
      "label": "Round-trip commute per day",
      "kind": "number",
      "hint": null,
      "default": 60,
      "unit": "minutes",
      "min": 0,
      "max": null
    },
    {
      "id": "daysOnsite",
      "label": "Onsite days per week",
      "kind": "number",
      "hint": null,
      "default": 3,
      "unit": "days",
      "min": 0,
      "max": 7
    },
    {
      "id": "prepMins",
      "label": "Daily prep time attributable to work",
      "kind": "number",
      "hint": null,
      "default": 20,
      "unit": "minutes",
      "min": 0,
      "max": null
    },
    {
      "id": "weeks",
      "label": "Working weeks per year",
      "kind": "number",
      "hint": null,
      "default": 48,
      "unit": "weeks",
      "min": 1,
      "max": 52
    },
    {
      "id": "jobCosts",
      "label": "Annual job-related costs",
      "kind": "number",
      "hint": "Fuel, transit, parking, clothing, bought lunches",
      "default": 4200,
      "unit": "$/yr",
      "min": 0,
      "max": null
    }
  ],
  "outputs": [
    {
      "id": "trueHourly",
      "label": "True hourly wage",
      "format": "currency",
      "hint": null,
      "primary": true
    },
    {
      "id": "nominal",
      "label": "Nominal hourly on paper",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "weeklyReal",
      "label": "Real hours committed per week",
      "format": "number",
      "hint": null,
      "primary": false
    },
    {
      "id": "realHours",
      "label": "Real hours per year",
      "format": "number",
      "hint": null,
      "primary": false
    },
    {
      "id": "hiddenHours",
      "label": "Unpaid hours per year",
      "format": "number",
      "hint": null,
      "primary": false
    },
    {
      "id": "net",
      "label": "Net pay after tax and job costs",
      "format": "currency",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Gross annual salary: 78000 $/yr",
      "Effective tax + payroll rate: 24 %",
      "Contracted hours per week: 40 hrs",
      "Unpaid extra hours per week: 5 hrs",
      "Round-trip commute per day: 60 minutes",
      "Onsite days per week: 3 days",
      "Daily prep time attributable to work: 20 minutes",
      "Working weeks per year: 48 weeks",
      "Annual job-related costs: 4200 $/yr"
    ],
    "outputs": [
      "True hourly wage: $23.10",
      "Nominal hourly on paper: $40.63",
      "Real hours committed per week: 49.67",
      "Real hours per year: 2,384",
      "Unpaid hours per year: 464",
      "Net pay after tax and job costs: $55,080.00"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter gross annual salary ($/yr).",
      "Enter effective tax + payroll rate (%).",
      "Enter contracted hours per week (hrs).",
      "Enter unpaid extra hours per week (hrs).",
      "Enter round-trip commute per day (minutes).",
      "Enter onsite days per week (days).",
      "Enter daily prep time attributable to work (minutes).",
      "Enter working weeks per year (weeks).",
      "Enter annual job-related costs ($/yr) — Fuel, transit, parking, clothing, bought lunches.",
      "Read your true hourly wage 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": {
        "salary": 47000,
        "taxRate": 14,
        "contracted": 24,
        "overtime": 3,
        "commuteMins": 35,
        "daysOnsite": 2,
        "prepMins": 10,
        "weeks": 29,
        "jobCosts": 2500
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "salary": 78000,
        "taxRate": 24,
        "contracted": 40,
        "overtime": 5,
        "commuteMins": 60,
        "daysOnsite": 3,
        "prepMins": 20,
        "weeks": 48,
        "jobCosts": 4200
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "salary": 125000,
        "taxRate": 38,
        "contracted": 64,
        "overtime": 8,
        "commuteMins": 95,
        "daysOnsite": 5,
        "prepMins": 30,
        "weeks": 52,
        "jobCosts": 6700
      }
    }
  ],
  "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": "Should commuting really count as work time?",
      "a": "It is time the job takes that you cannot spend otherwise, so for decision-making purposes yes. If you genuinely use the commute for something you value — reading, a walk you would take anyway — discount it, but be honest about how often that is true."
    },
    {
      "q": "How does this help compare two offers?",
      "a": "Run it twice. A remote role paying 8% less frequently wins on true hourly once a daily commute and its costs disappear, and the gap widens further if the office role expects longer hours. The comparison is only fair when both sides count the same categories."
    },
    {
      "q": "What effective tax rate should I enter?",
      "a": "Your total tax and payroll deductions divided by gross pay from a recent payslip, not your marginal bracket. Marginal rates overstate the burden on the whole salary and will understate your true hourly."
    },
    {
      "q": "Should I include childcare costs?",
      "a": "Include the portion that exists only because you work — that is a genuine cost of the job and often the largest one. Care you would use regardless is not attributable and would distort the comparison."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/consulting-day-rate",
    "https://www.revenuelab.fyi/toolbox/commute-cost-annual",
    "https://www.revenuelab.fyi/toolbox/raise-vs-promotion-value"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — True Hourly Wage Calculator (https://www.revenuelab.fyi/toolbox/hourly-to-salary-true)"
}