How to Calculate Overtime with Two Pay Rates

Blended Overtime Rate Calculator .cal-container { max-width: 800px; margin: 0 auto; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; color: #333; line-height: 1.6; } .cal-box { background-color: #f8f9fa; border: 1px solid #e9ecef; border-radius: 8px; padding: 30px; box-shadow: 0 4px 6px rgba(0,0,0,0.05); margin-bottom: 40px; } .cal-title { text-align: center; margin-bottom: 25px; color: #2c3e50; font-size: 24px; font-weight: 700; } .cal-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; } @media (max-width: 600px) { .cal-grid { grid-template-columns: 1fr; } } .input-group { margin-bottom: 15px; } .input-group label { display: block; margin-bottom: 8px; font-weight: 600; font-size: 14px; color: #555; } .input-group input { width: 100%; padding: 12px; border: 1px solid #ccc; border-radius: 4px; font-size: 16px; box-sizing: border-box; } .cal-btn { width: 100%; background-color: #0073aa; color: white; border: none; padding: 15px; font-size: 18px; font-weight: bold; border-radius: 4px; cursor: pointer; transition: background-color 0.3s; margin-top: 10px; } .cal-btn:hover { background-color: #005177; } .cal-result { margin-top: 25px; background-color: #fff; border: 1px solid #ddd; border-radius: 4px; padding: 20px; display: none; } .result-row { display: flex; justify-content: space-between; padding: 10px 0; border-bottom: 1px solid #eee; } .result-row:last-child { border-bottom: none; font-weight: bold; color: #0073aa; font-size: 1.1em; } .result-label { color: #666; } .article-content h2 { color: #2c3e50; margin-top: 30px; font-size: 22px; } .article-content p { margin-bottom: 15px; } .article-content ul { margin-bottom: 20px; padding-left: 20px; } .article-content li { margin-bottom: 10px; } .example-box { background-color: #eef7fb; border-left: 4px solid #0073aa; padding: 15px; margin: 20px 0; }

Blended Overtime Rate Calculator

Total Hours Worked: 0.00
Total Straight Pay: $0.00
Weighted Average Rate: $0.00 /hr
Overtime Hours: 0.00
Overtime Premium (0.5x): $0.00
Total Gross Pay: $0.00

How to Calculate Overtime with Two Pay Rates

When an employee works two or more different jobs at different hourly rates for the same employer within a single workweek, calculating overtime pay becomes more complex than the standard "time and a half" calculation. Under the Fair Labor Standards Act (FLSA), you cannot simply choose one rate or the other to base the overtime premium on.

Instead, you must calculate the Weighted Average Rate (also known as the Regular Rate of Pay) to determine the correct overtime compensation. This ensures the employee is fairly compensated based on the total earnings across all roles.

The Weighted Average Formula

To accurately calculate the total gross pay for an employee with multiple pay rates, follow these specific steps:

  • Step 1: Calculate Total Straight-Time Pay. Multiply the hours worked in each job by its specific hourly rate and sum the results.
  • Step 2: Calculate Total Hours. Add the hours from all jobs together.
  • Step 3: Determine the Weighted Average Rate. Divide the Total Straight-Time Pay by the Total Hours.
  • Step 4: Calculate Overtime Premium. Identify how many hours exceed 40. Multiply these overtime hours by 0.5 times the Weighted Average Rate (because the straight-time portion was already paid in Step 1).
  • Step 5: Total Pay. Add the Overtime Premium to the Total Straight-Time Pay.

Calculation Example

Scenario: Jane works 30 hours as a Graphic Designer at $25/hour and 15 hours as an Administrative Assistant at $18/hour.

  • Straight Pay (Job 1): 30 hours × $25 = $750
  • Straight Pay (Job 2): 15 hours × $18 = $270
  • Total Straight Pay: $750 + $270 = $1,020
  • Total Hours: 30 + 15 = 45 hours
  • Weighted Average Rate: $1,020 ÷ 45 = $22.67/hour
  • Overtime Hours: 45 – 40 = 5 hours
  • OT Premium: 5 hours × ($22.67 × 0.5) = $56.68
  • Total Pay: $1,020 + $56.68 = $1,076.68

Why Not Just Use the Higher Rate?

Employers often ask if they can simply pay overtime based on the rate of the job performed during the overtime hours or just use the highest rate to be safe. While using the highest rate is generally permissible because it benefits the employee, it increases labor costs unnecessarily. Conversely, calculating overtime based solely on the lower rate is a violation of federal labor laws and can lead to wage and hour lawsuits.

The "Blended Rate" or "Weighted Average" method is the standard, compliant method for accurate payroll processing when dual rates are involved.

Important Considerations

  • Weekly Basis: These calculations must be performed on a workweek basis. You cannot average hours over two weeks.
  • Non-Discretionary Bonuses: If the employee receives commissions or non-discretionary bonuses, these must also be included in the total straight-time pay before calculating the regular rate.
  • State Laws: While the FLSA sets the federal standard, some states (like California) may have specific daily overtime rules that add further layers to this calculation.
function calculateDualRateOvertime() { // 1. Get Input Values var h1 = parseFloat(document.getElementById("hours1").value); var r1 = parseFloat(document.getElementById("rate1").value); var h2 = parseFloat(document.getElementById("hours2").value); var r2 = parseFloat(document.getElementById("rate2").value); // 2. Validation if (isNaN(h1)) h1 = 0; if (isNaN(r1)) r1 = 0; if (isNaN(h2)) h2 = 0; if (isNaN(r2)) r2 = 0; if ((h1 + h2) === 0) { alert("Please enter hours worked."); return; } // 3. Core Calculations // Total Straight-Time earnings (Base pay for all hours) var straightPay1 = h1 * r1; var straightPay2 = h2 * r2; var totalStraightPay = straightPay1 + straightPay2; // Total Hours var totalHours = h1 + h2; // Weighted Average Rate (Regular Rate) // Avoid division by zero var weightedRate = 0; if (totalHours > 0) { weightedRate = totalStraightPay / totalHours; } // Overtime Calculations var otThreshold = 40; var otHours = 0; var otPremiumTotal = 0; if (totalHours > otThreshold) { otHours = totalHours – otThreshold; // The "half" in "time and a half" // The straight time for these OT hours is already inside totalStraightPay var otPremiumRate = weightedRate * 0.5; otPremiumTotal = otHours * otPremiumRate; } // Final Pay var totalPay = totalStraightPay + otPremiumTotal; // 4. Update Display document.getElementById("displayTotalHours").innerText = totalHours.toFixed(2); document.getElementById("displayStraightPay").innerText = "$" + totalStraightPay.toFixed(2); document.getElementById("displayWeightedRate").innerText = "$" + weightedRate.toFixed(2) + " /hr"; document.getElementById("displayOTHours").innerText = otHours.toFixed(2); document.getElementById("displayOTPremium").innerText = "$" + otPremiumTotal.toFixed(2); document.getElementById("displayTotalPay").innerText = "$" + totalPay.toFixed(2); // Show results document.getElementById("resultsArea").style.display = "block"; }

Leave a Comment