Hourly to Annual Pay: The Math and the Assumptions Behind It
Converting an hourly rate into an annual figure looks like multiplication, and that is exactly where the trouble starts. The multiplier is not a constant: it depends on how many hours you actually work in a year, whether
Converting an hourly rate into an annual figure looks like multiplication, and that is exactly where the trouble starts. The multiplier is not a constant: it depends on how many hours you actually work in a year, whether your rate covers unpaid time, whether overtime is paid at a multiplier, and whether bonuses, commission, or employer contributions sit inside or outside the number. Two people with the same stated hourly rate can differ by more than 20 percent in real annual pay, and the difference comes entirely from the assumptions embedded in the calculation. Making those assumptions explicit is the whole value of the exercise.
The formula
The base calculation is:
annual_base_salary = hourly_rate Γ hours_per_week Γ weeks_per_year
The standard full-time assumption in the United States is 40 hours per week across 52 weeks:
40 Γ 52 = 2080 hours per year
That is a gross number, before tax. It also assumes no unpaid vacation, no sick leave, and no holidays, which is where the next two variants come from.
If you take 2 weeks of unpaid vacation, the billable year shrinks:
hours_per_year = (weeks_per_year β unpaid_vacation_weeks) Γ hours_per_week
If you get 10 paid holidays off but are still paid for them, your paid hours rise:
hours_paid_per_year = hours_worked_per_week Γ 52 + paid_holiday_hours
A variant people sometimes use is 52 weeks Γ 40 hours = 2080 hours, and separately 365 days β 104 weekend days β 10 holidays = 251 working days Γ 8 hours = 2008 hours. Note that 2088 is the figure you get from 261 working days (365 β 104 weekend days) Γ 8 hours, treating paid holidays as worked hours; if you actually take those holidays off and they are not paid, 2008 is the more defensible number.
For a rate that varies by how much you work, split the hours into tiers and apply a multiplier to the excess:
overtime_hours = max(0, weekly_hours β 40)
annual_pay = rate Γ 40 Γ 52 + rate Γ overtime_multiplier Γ overtime_hours Γ 52
The overtime multiplier is usually 1.5 for hours over 40 in a week, and it is often not applied at all to hours worked over 40 hours in a single day unless the contract says so.
To compare a salary against an hourly quote, or to annualise a contract, divide the other way:
hourly_rate = annual_pay / hours_per_year
Worked example
A contractor quotes $65 per hour. They expect to bill 35 hours a week, for 48 working weeks in a year because of holidays and vacation.
hours_per_year = 35 Γ 48 = 1680 hours
annual = 65 Γ 1680 = $109,200
Note that this figure is before self-employment tax, benefits, insurance, and unpaid sales time. Those are real costs, and in practice a contractor billing 35 hours a week rarely bills more than about 25 without a sales or admin allowance.
Now a salaried employee at the same apparent hourly rate. The employee works 40 hours a week, 52 weeks, but takes 2 weeks unpaid vacation:
hours_paid = 40 Γ 50 = 2000 hours
annual = 65 Γ 2000 = $130,000
Same rate, same apparent skill, $20,800 apart β about 19 percent β purely because of hours assumptions.
Now add a bonus and overtime. The employee also works 5 hours of overtime every week for 48 weeks at time-and-a-half, and receives a $6,000 annual bonus:
base = 65 Γ 40 Γ 50 = $130,000
overtime = 65 Γ 1.5 Γ 5 Γ 48 = $23,400
total = $130,000 + $23,400 + $6,000 = $159,400
Compare that to the contractor: the salaried employee now earns $50,200 more while also receiving health insurance, employer-paid payroll taxes, and retirement contributions. Whether the extra figure is worth it depends on what benefits cost, not on the arithmetic.
One more direction: a $95,000 salary with 2 weeks unpaid vacation. The implied hourly rate is:
95,000 / (40 Γ 50) = $47.50 per hour
Not the $45.63 you get from dividing by 2080 β a difference of about 4 percent that matters in any comparison with an hourly quote.
Edge cases
- Weekly overtime vs daily overtime. In the United States, federal law requires overtime after 40 hours in a workweek, not after 8 hours in a day. A 6Γ5 schedule with 60 hours in one week and 0 in another averages 30 hours a week and triggers no overtime, even though 10-hour days are common.
- No fixed weekly schedule. Salaried staff on 4-10 schedules should compute pay from actual hours tracked over a year, not an assumed 2080.
- Variable or seasonal income. Commission, tips, and piece-rate work make an annual figure a forecast, not a fact. Average the last 12 months of actual deposits rather than multiplying an hourly rate.
- Part-year employment. Leaving mid-year scales the base figure by the fraction of weeks worked, but prorated bonus and commission need their own treatment.
- Benefits and employer contributions. Gross salary excludes health insurance, paid leave, retirement matches, and employer payroll taxes. Total compensation can exceed gross pay by 15 to 30 percent, which is the number to compare across employers.
- Unpaid leave and salary vs hourly status. Paid leave has a dollar value that hourly workers do not get; folding it into an hourly rate comparison without noting that is misleading.
- Shift premiums and differentials. Night, weekend, and on-call pay add a percentage to base. Some employers also add a fixed on-call stipend to base pay before overtime is calculated.
- Contractor vs employee. A contractor's gross billing is not take-home pay; self-employment tax, insurance, equipment, and unpaid admin time reduce it substantially.
- Exempt employees. "Salaried" does not guarantee overtime eligibility. In the United States, some salaried roles below a salary threshold with no other exemption are still overtime-eligible.
- Non-USD contracts. Local statutory minimums, mandatory leave, and employer contributions differ by country, so a rate converted to dollars may not be legally comparable across borders.
Common mistakes
- Using 2080 hours when the worker actually takes unpaid time off. It is the most common assumption and the most common error.
- Forgetting that 2088 assumes paid holidays are paid, and 2008 assumes they are unpaid. Mixing these conventions between two comparisons produces a fake difference of about 4 percent.
- Comparing gross salary to a contractor's gross billing. One side has payroll taxes, benefits, and unpaid time built in; the other does not.
- Multiplying overtime hours by 1.5 when they are not actually paid at 1.5. Salaried-exempt staff frequently receive no overtime pay at all.
- Treating an annual bonus as guaranteed. Sign-on payments and discretionary bonuses are not part of a repeatable annual figure; keep them separate when comparing offers.
- Converting an hourly rate to a salary without rounding the hours per year. A "round" 2080 hides real differences of hundreds of dollars a year.
- Ignoring benefits when a salary offer looks lower. Compare total compensation, not gross, when one offer includes insurance and retirement and the other does not.
- Using an average of last year's hours for a job that has since changed. A promotion, a restructured team, or a move to a four-day week invalidates last year's total.
- Annualising a monthly invoice without accounting for unpaid time between contracts. Two contracts a year at the same monthly rate is not a full year of income.
- Ignoring taxes. Every figure here is gross. Net pay depends on filing status, jurisdiction, and deductions, and is a separate calculation.
Try it
The salary calculator at https://www.miryori.org/tools/salary-calculator converts an hourly rate to annual, monthly, weekly, and daily figures under adjustable hour and week assumptions, and works the conversion back the other way.
YMYL note: the figures produced are gross estimates based on the hours, weeks, and multipliers you enter, and they are not tax, legal, or financial advice.
Originally published by Dev.to WebDev. Aggregated on AIWithGhost for educational purposes β full credit and traffic to the original publisher.