.bor-calculator-container {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
max-width: 800px;
margin: 20px auto;
padding: 20px;
background: #f9f9f9;
border: 1px solid #ddd;
border-radius: 8px;
}
.bor-header {
text-align: center;
margin-bottom: 25px;
}
.bor-input-group {
display: flex;
flex-wrap: wrap;
gap: 15px;
margin-bottom: 20px;
padding: 15px;
background: #fff;
border-radius: 5px;
border: 1px solid #eee;
}
.bor-input-wrapper {
flex: 1;
min-width: 200px;
}
.bor-input-wrapper label {
display: block;
margin-bottom: 5px;
font-weight: 600;
font-size: 14px;
color: #333;
}
.bor-input-wrapper input {
width: 100%;
padding: 10px;
border: 1px solid #ccc;
border-radius: 4px;
font-size: 16px;
}
.bor-section-title {
font-size: 16px;
font-weight: bold;
margin-bottom: 10px;
color: #2c3e50;
border-bottom: 2px solid #3498db;
padding-bottom: 5px;
display: inline-block;
}
.bor-btn {
display: block;
width: 100%;
padding: 15px;
background-color: #2980b9;
color: white;
border: none;
border-radius: 5px;
font-size: 18px;
cursor: pointer;
transition: background 0.3s;
margin-top: 20px;
}
.bor-btn:hover {
background-color: #1a669b;
}
.bor-results {
margin-top: 25px;
padding: 20px;
background: #eef7fb;
border-radius: 5px;
display: none;
}
.bor-result-row {
display: flex;
justify-content: space-between;
margin-bottom: 10px;
padding-bottom: 10px;
border-bottom: 1px solid #dcebf3;
}
.bor-result-row:last-child {
border-bottom: none;
margin-bottom: 0;
padding-bottom: 0;
}
.bor-result-label {
font-weight: 500;
color: #555;
}
.bor-result-value {
font-weight: bold;
color: #2c3e50;
}
.bor-highlight {
font-size: 1.2em;
color: #27ae60;
}
.bor-article {
max-width: 800px;
margin: 40px auto;
line-height: 1.6;
color: #333;
}
.bor-article h2 {
color: #2c3e50;
margin-top: 30px;
}
.bor-article p {
margin-bottom: 15px;
}
.bor-article ul {
margin-bottom: 15px;
padding-left: 20px;
}
.bor-article li {
margin-bottom: 8px;
}
function calculateBlendedOvertime() {
// Get Inputs
var h1 = parseFloat(document.getElementById('hours1').value) || 0;
var r1 = parseFloat(document.getElementById('rate1').value) || 0;
var h2 = parseFloat(document.getElementById('hours2').value) || 0;
var r2 = parseFloat(document.getElementById('rate2').value) || 0;
var bonus = parseFloat(document.getElementById('weeklyBonus').value) || 0;
// 1. Calculate Total Straight-Time Earnings
// (Hours1 * Rate1) + (Hours2 * Rate2) + Bonus
var earnings1 = h1 * r1;
var earnings2 = h2 * r2;
var totalStraightEarnings = earnings1 + earnings2 + bonus;
// 2. Calculate Total Hours
var totalHours = h1 + h2;
if (totalHours === 0) {
alert("Please enter hours worked.");
return;
}
// 3. Calculate Weighted Average (Blended) Rate
// Total Straight Earnings / Total Hours
var blendedRate = totalStraightEarnings / totalHours;
// 4. Determine Overtime Hours
var otHours = 0;
if (totalHours > 40) {
otHours = totalHours – 40;
}
// 5. Calculate Overtime Premium
// Under FLSA for blended rates, the straight time is already covered in step 1.
// We only owe the "half-time" premium on the OT hours based on the blended rate.
var otPremiumRate = blendedRate * 0.5;
var totalOtPremiumDue = otHours * otPremiumRate;
// 6. Total Pay
var totalPay = totalStraightEarnings + totalOtPremiumDue;
// Display Results
document.getElementById('resTotalHours').innerText = totalHours.toFixed(2);
document.getElementById('resStraight earnings').innerText = "$" + totalStraightEarnings.toFixed(2);
document.getElementById('resBlendedRate').innerText = "$" + blendedRate.toFixed(2) + " / hr";
document.getElementById('resOtHours').innerText = otHours.toFixed(2);
document.getElementById('resOtPremiumRate').innerText = "$" + otPremiumRate.toFixed(2) + " / hr";
document.getElementById('resOtDue').innerText = "$" + totalOtPremiumDue.toFixed(2);
document.getElementById('resTotalPay').innerText = "$" + totalPay.toFixed(2);
// Show result container
document.getElementById('borResult').style.display = "block";
}
How to Calculate Blended Overtime Rate
When an employee works two or more different jobs at different hourly rates within a single workweek, calculating overtime becomes more complex than simply multiplying their usual rate by 1.5. Under the Fair Labor Standards Act (FLSA), employers must calculate a Weighted Average Regular Rate of Pay, often referred to as the blended overtime rate.
This calculator helps payroll administrators and business owners accurately determine the correct gross pay to ensure compliance with federal labor laws.
What is Blended Overtime?
Blended overtime occurs when:
- An employee has multiple roles (e.g., a Server at $15/hr and a Shift Lead at $22/hr).
- The total hours worked across all roles exceed 40 hours in a single workweek.
- Additional non-discretionary bonuses or commissions are earned, which must be included in the regular rate calculation.
In this scenario, you cannot simply pay overtime based on the rate of the job performed during the overtime hours. Instead, you must blend the rates to find the "Regular Rate."
The Blended Rate Formula
The calculation follows a specific sequence of steps:
- Calculate Total Straight-Time Earnings: Multiply the hours worked in each role by that role's specific hourly rate. Add any non-discretionary bonuses or commissions.
- Calculate Total Hours Worked: Sum all hours from all roles.
- Determine the Regular (Blended) Rate: Divide Total Straight-Time Earnings by Total Hours Worked.
- Calculate Overtime Premium: The "time" portion (1.0) of "time and a half" is already included in the straight-time earnings calculated in step 1. Therefore, you only need to calculate the "half" (0.5). Multiply the Blended Rate by 0.5.
- Calculate Total Overtime Due: Multiply the number of overtime hours (hours over 40) by the Overtime Premium.
- Final Pay: Add Total Straight-Time Earnings to Total Overtime Due.
Example Calculation
Let's look at a realistic scenario:
- Job A: 30 hours at $20.00/hr ($600)
- Job B: 20 hours at $15.00/hr ($300)
- Total Hours: 50 hours (10 hours of overtime)
Step 1: Total Straight Earnings
$600 + $300 = $900
Step 2: Calculate Blended Rate
$900 / 50 hours = $18.00 per hour (Regular Rate)
Step 3: Calculate Overtime Premium
$18.00 x 0.5 = $9.00 per hour
Step 4: Calculate Total Pay
Straight Time ($900) + Overtime Premium (10 hours x $9.00) = $900 + $90 = $990.00
Why Not Just Use the Higher Rate?
While some employers might choose to pay overtime based on the highest rate performed to be safe, calculating the blended rate is the standard requirement for FLSA compliance. Paying based on the rate in effect when the overtime occurred (without agreement) or simply averaging the rates without weighting them by hours worked can lead to underpayment lawsuits.
Including Bonuses
Non-discretionary bonuses (bonuses promised for meeting specific criteria, like attendance or production) must be included in the total straight-time earnings before dividing by total hours. This increases the regular rate, and consequently, increases the overtime rate.