Understanding how to calculate overtime pay is essential for both employees and employers to ensure fair compensation and legal compliance. In the United States, the Fair Labor Standards Act (FLSA) dictates that non-exempt employees must receive overtime pay for hours worked over 40 in a workweek.
The Standard Overtime Formula
The most common form of overtime is "time and a half." This means that for every hour worked beyond the standard 40-hour workweek, you earn your regular hourly rate multiplied by 1.5.
Determine Regular Pay: Multiply your regular hourly rate by the number of regular hours worked (usually up to 40).
Calculate Overtime Rate: Multiply your base hourly rate by the overtime multiplier (typically 1.5).
Calculate Overtime Earnings: Multiply the overtime rate by the number of overtime hours worked.
Add Double Time (If Applicable): Some contracts or state laws (like California) require "double time" (2.0x rate) for hours worked beyond 12 in a day or on the 7th consecutive day of work.
Sum the Totals: Add regular pay, overtime pay, and double time pay together.
Calculation Example
Imagine an employee named Alex who earns $20 per hour. Alex worked 50 hours this week.
Regular Pay: 40 hours × $20 = $800
Overtime Rate: $20 × 1.5 = $30 per hour
Overtime Pay: 10 hours × $30 = $300
Total Gross Pay: $800 + $300 = $1,100
Common Overtime Multipliers
Type
Multiplier
Typical Requirement
Time and a Half
1.5x
Over 40 hours per week
Double Time
2.0x
Holidays or excessive hours
function calculateOTPay() {
var hourlyRate = parseFloat(document.getElementById('hourlyRate').value);
var regHours = parseFloat(document.getElementById('regHours').value);
var otMultiplier = parseFloat(document.getElementById('otMultiplier').value);
var otHours = parseFloat(document.getElementById('otHours').value);
var dtHours = parseFloat(document.getElementById('dtHours').value);
// Default values if empty
if (isNaN(hourlyRate)) hourlyRate = 0;
if (isNaN(regHours)) regHours = 0;
if (isNaN(otMultiplier)) otMultiplier = 1.5;
if (isNaN(otHours)) otHours = 0;
if (isNaN(dtHours)) dtHours = 0;
// Calculations
var regPayTotal = regHours * hourlyRate;
var otPayRate = hourlyRate * otMultiplier;
var otPayTotal = otHours * otPayRate;
var dtPayTotal = dtHours * (hourlyRate * 2.0);
var grossTotal = regPayTotal + otPayTotal + dtPayTotal;
// Update Display
document.getElementById('resRegPay').innerText = '$' + regPayTotal.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('resOtPay').innerText = '$' + otPayTotal.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('resDtPay').innerText = '$' + dtPayTotal.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('resTotal').innerText = '$' + grossTotal.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
// Show Result Area
document.getElementById('ot-result-area').style.display = 'block';
}