1. Scope
Converts BOTH ways — hourly rate to annual salary, and annual salary to an effective hourly rate net of paid days off. It nets PTO/holiday/sick days out of the effective-hourly denominator and can add a benefits value. It does not model bonuses, equity, or taxes.
2. Inputs and outputs
Inputs
- hourly_rate number (currency/hr)
- annual_salary number (currency)
Used for the salary-to-effective-hourly direction.
- hours_per_week number default: 40
- weeks_per_year number default: 52
Full weeks; paid days off are separate inputs, not baked into this.
- paid_time_off_days / paid_holidays_days / paid_sick_days number default: 0
Reduce the effective-hourly denominator only.
- overtime_hours_per_week number default: 0
- overtime_multiplier number default: 1.5
- annual_benefits_value number (currency) default: 0
Outputs
- annualFromHourly
hourly_rate × hours_per_week × weeks_per_year + overtime.
- annualFromHourlyWithBenefits
annualFromHourly + annual_benefits_value.
- effectiveHourlyFromSalary
annual_salary / (base hours − paid hours off).
- paidDaysTotal / paidHoursTotal / overtimeAnnualGross
Paid days and hours, and gross overtime pay.
Engine source: src/lib/hourly-to-salary-converter/engine.ts
3. Formula / scoring logic
base_hours = hours_per_week * weeks_per_year
overtime_annual = hourly_rate * ot_hours * ot_multiplier * weeks_per_year
annual_from_hourly = hourly_rate * base_hours + overtime_annual
paid_hours = (pto_days + holiday_days + sick_days) * 8
effective_hourly = annual_salary / (base_hours - paid_hours) 4. Assumptions
- weeks_per_year is full weeks (up to 52); paid time off is entered as separate day counts, not by shrinking the weeks.
- Paid days off lower only the effective-hourly denominator (8 hours per paid day).
- Overtime follows FLSA 1.5× the regular rate by default; salaried-exempt roles receive no OT.
5. Data sources
6. Known limitations
- Does not compute post-tax take-home; for that, see the Salary / Paycheck Calculator.
- Global use requires adjusting weeks-worked and overtime rules for jurisdiction.
7. Reproducibility
Input
hourly_rate = $50, annual_salary = $96,000, hours_per_week = 40, weeks_per_year = 52, paid_time_off_days = 15, paid_holidays_days = 10, annual_benefits_value = $12,000.
Expected output
annualFromHourly = $104,000, annualFromHourlyWithBenefits = $116,000, paidDaysTotal = 25, effectiveHourlyFromSalary = $51.06 (= 96,000 / 1,880 worked hours).
8. Change log
- 2026-04-24 methodology page first published.
Worked example
Run live against the same engine this site ships
(/engines/hourly-to-salary-converter.js).
The inputs and outputs below are recomputed on every build and
independently re-verified in CI — they are never hand-authored.
Input
- tool
- hourly_to_salary
- hourly_rate
- 32
- annual_salary
- 72000
- hours_per_week
- 40
- weeks_per_year
- 52
- paid_time_off_days
- 15
- paid_holidays_days
- 10
- paid_sick_days
- 5
- overtime_hours_per_week
- 0
- overtime_multiplier
- 1.5
- annual_benefits_value
- 6000
Output
- annualFromHourly
- 66560
- annualFromHourlyWithBenefits
- 72560
- effectiveHourlyFromSalary
- 39.13
- effectiveHourlyFromSalaryWithBenefits
- 42.39
- paidDaysTotal
- 30
- paidHoursTotal
- 240
- overtimeAnnualGross
- 0
- assumptionsEcho.hourlyRate
- 32
- assumptionsEcho.annualSalary
- 72000
- assumptionsEcho.hoursPerWeek
- 40
- assumptionsEcho.weeksPerYear
- 52
- assumptionsEcho.paidTimeOffDays
- 15
- assumptionsEcho.paidHolidaysDays
- 10
- assumptionsEcho.paidSickDays
- 5
- assumptionsEcho.overtimeHoursPerWeek
- 0
- assumptionsEcho.overtimeMultiplier
- 1.5
- assumptionsEcho.annualBenefitsValue
- 6000
Frequently asked questions
- What does the Hourly to Salary Converter calculate?
- Converts BOTH ways — hourly rate to annual salary, and annual salary to an effective hourly rate net of paid days off. It nets PTO/holiday/sick days out of the effective-hourly denominator and can add a benefits value. It does not model bonuses, equity, or taxes.
- What inputs does the Hourly to Salary Converter need?
- It takes 8 inputs: hourly_rate, annual_salary, hours_per_week (default 40), weeks_per_year (default 52), paid_time_off_days / paid_holidays_days / paid_sick_days (default 0), overtime_hours_per_week (default 0), overtime_multiplier (default 1.5), annual_benefits_value (default 0). Outputs returned: annualFromHourly, annualFromHourlyWithBenefits, effectiveHourlyFromSalary, paidDaysTotal / paidHoursTotal / overtimeAnnualGross.
- What formula does the Hourly to Salary Converter use?
- The exact computation is: base_hours = hours_per_week * weeks_per_year; overtime_annual = hourly_rate * ot_hours * ot_multiplier * weeks_per_year; annual_from_hourly = hourly_rate * base_hours + overtime_annual; paid_hours = (pto_days + holiday_days + sick_days) * 8; effective_hourly = annual_salary / (base_hours - paid_hours)
- Can I verify the Hourly to Salary Converter with a worked example?
- Yes. With hourly_rate = $50, annual_salary = $96,000, hours_per_week = 40, weeks_per_year = 52, paid_time_off_days = 15, paid_holidays_days = 10, annual_benefits_value = $12,000. the tool returns annualFromHourly = $104,000, annualFromHourlyWithBenefits = $116,000, paidDaysTotal = 25, effectiveHourlyFromSalary = $51.06 (= 96,000 / 1,880 worked hours).
- Where does the Hourly to Salary Converter get its benchmark data?
- Reference data is sourced from: US Department of Labor — Fair Labor Standards Act overtime rules (as of 2024); US BLS Occupational Employment and Wage Statistics (OEWS) (as of 2024).
- What can the Hourly to Salary Converter not tell me?
- Known limitations: Does not compute post-tax take-home; for that, see the Salary / Paycheck Calculator. Global use requires adjusting weeks-worked and overtime rules for jurisdiction.