Understanding how your paycheck is calculated when you work extra hours is essential for budgeting and ensuring you are being paid fairly. Most employers follow the standard "time and a half" rule for any hours worked beyond the typical 40-hour workweek.
The Overtime Calculation Formula
To calculate your total gross pay manually, you can use the following three-step process:
Regular Pay: Hourly Rate × Regular Hours (up to 40).
Your Total Gross Pay is the sum of your Regular Pay and your Overtime Pay.
Realistic Example
Let's say you earn $20.00 per hour and worked 45 hours this week. Your overtime multiplier is 1.5.
Regular Pay: $20.00 × 40 hours = $800.00
Overtime Rate: $20.00 × 1.5 = $30.00 per hour
Overtime Hours: 45 – 40 = 5 hours
Overtime Pay: $30.00 × 5 hours = $150.00
Total Gross Pay: $800.00 + $150.00 = $950.00
What is the Fair Labor Standards Act (FLSA)?
In the United States, the FLSA establishes minimum wage and overtime pay standards. For "non-exempt" employees, the law requires that any work performed over 40 hours in a workweek must be paid at a rate not less than one and one-half times the regular rate of pay. Some states or specific union contracts may have even stricter rules, such as "double time" (2.0x) for working holidays or more than 12 hours in a single day.
Common Overtime Multipliers
While 1.5x is the standard, different scenarios may use different multipliers:
1.5x (Time and a Half): The standard for hours over 40 in a week.
2.0x (Double Time): Often applied to Sunday shifts, public holidays, or excessive consecutive work days in certain industries.
1.0x (Straight Time): In some specific contract types (like certain independent contractor agreements), overtime might be paid at the base rate, though this is rare for standard hourly employees.
function calculateOvertime() {
var baseRate = parseFloat(document.getElementById("baseRate").value);
var regHours = parseFloat(document.getElementById("regHours").value);
var otMultiplier = parseFloat(document.getElementById("otMultiplier").value);
var otHours = parseFloat(document.getElementById("otHours").value);
if (isNaN(baseRate) || isNaN(regHours)) {
alert("Please enter at least the Hourly Rate and Regular Hours.");
return;
}
if (isNaN(otHours)) otHours = 0;
if (isNaN(otMultiplier)) otMultiplier = 1.5;
var regularPay = baseRate * regHours;
var overtimeRate = baseRate * otMultiplier;
var overtimePay = overtimeRate * otHours;
var totalPay = regularPay + overtimePay;
document.getElementById("resRegPay").innerText = "$" + regularPay.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById("resOtRate").innerText = "$" + overtimeRate.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById("resOtPay").innerText = "$" + overtimePay.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById("resTotalPay").innerText = "$" + totalPay.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById("otResults").style.display = "block";
}