The "Regular Rate of Pay" is a critical concept defined by the Fair Labor Standards Act (FLSA) used to calculate overtime compensation. It is not simply an employee's hourly wage. It is an hourly rate calculated by dividing the total pay for employment in any workweek (subject to certain exclusions) by the total number of hours actually worked.
Why the Base Rate Isn't Enough
Many employers mistakenly calculate overtime as simply 1.5 times the base hourly wage. However, if an employee receives additional compensation—such as non-discretionary bonuses, commissions, or shift differentials—these amounts must be added to the base earnings to determine the true Regular Rate. Overtime must be calculated based on this higher, weighted average rate.
How It Is Calculated
The formula follows these steps:
Calculate Total Earnings: Sum the base hourly earnings (for all hours worked) plus all includable compensation (bonuses, commissions, shift diffs).
Determine Regular Rate: Divide the Total Earnings by the Total Hours Worked in the workweek.
Calculate Overtime Premium: The employee has already been paid the "straight time" portion for all hours in step 1. The overtime premium is calculated as 0.5 × Regular Rate × Overtime Hours.
Total Pay: Add the Total Earnings (Step 1) to the Overtime Premium (Step 3).
What to Include vs. Exclude
Included in Regular Rate:
Hourly wages and salaries.
Non-discretionary bonuses (promised for accuracy, attendance, production).
Commissions.
Shift differentials and hazardous duty pay.
Cost-of-living adjustments.
Excluded from Regular Rate:
Discretionary bonuses (where the fact and amount of payment are at the employer's sole discretion).
Gifts.
Payments for time not worked (vacation, sick leave, holidays).
Reimbursement for business expenses.
function calculateFLSARate() {
// 1. Get input values
var baseRateStr = document.getElementById("flsa_base_rate").value;
var hoursStr = document.getElementById("flsa_hours").value;
var bonusStr = document.getElementById("flsa_bonus").value;
var commissionStr = document.getElementById("flsa_commission").value;
var otherStr = document.getElementById("flsa_other").value;
// 2. Parse values (handle empty inputs as 0)
var baseRate = parseFloat(baseRateStr) || 0;
var hours = parseFloat(hoursStr) || 0;
var bonus = parseFloat(bonusStr) || 0;
var commission = parseFloat(commissionStr) || 0;
var other = parseFloat(otherStr) || 0;
// 3. Validation: Prevent division by zero or negative inputs
if (hours 40) {
otHours = hours – 40;
}
// The "Premium" is the extra 0.5, because the 1.0 was already covered in totalStraightTime
var otPremiumRate = regularRate * 0.5;
var otPremiumPay = otPremiumRate * otHours;
// 8. Calculate Total Gross Pay
var totalGrossPay = totalStraightTime + otPremiumPay;
// 9. Update Display
document.getElementById("res_straight_time").innerHTML = "$" + totalStraightTime.toFixed(2);
document.getElementById("res_regular_rate").innerHTML = "$" + regularRate.toFixed(2) + " / hr";
document.getElementById("res_ot_hours").innerHTML = otHours.toFixed(2);
document.getElementById("res_ot_rate").innerHTML = "$" + otPremiumRate.toFixed(2) + " / hr";
document.getElementById("res_ot_pay").innerHTML = "$" + otPremiumPay.toFixed(2);
document.getElementById("res_total_gross").innerHTML = "$" + totalGrossPay.toFixed(2);
// Show results container
document.getElementById("flsa_results").style.display = "block";
}