How to Calculate Daily Rate for Semi-monthly Payroll

.payroll-calc-container { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; max-width: 800px; margin: 20px auto; padding: 25px; border: 1px solid #e1e4e8; border-radius: 12px; background-color: #ffffff; box-shadow: 0 4px 6px rgba(0,0,0,0.05); } .payroll-calc-container h2 { color: #1a1a1a; text-align: center; margin-bottom: 25px; font-size: 24px; } .input-group { margin-bottom: 20px; } .input-group label { display: block; font-weight: 600; margin-bottom: 8px; color: #333; } .input-group input { width: 100%; padding: 12px; border: 2px solid #ddd; border-radius: 6px; font-size: 16px; box-sizing: border-box; } .input-group input:focus { border-color: #0073aa; outline: none; } .calc-button { width: 100%; padding: 15px; background-color: #0073aa; color: white; border: none; border-radius: 6px; font-size: 18px; font-weight: bold; cursor: pointer; transition: background-color 0.2s; } .calc-button:hover { background-color: #005177; } .result-display { margin-top: 25px; padding: 20px; background-color: #f8f9fa; border-radius: 8px; 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; } .result-label { color: #555; font-weight: 500; } .result-value { font-weight: bold; color: #0073aa; font-size: 1.1em; } .payroll-content { margin-top: 40px; line-height: 1.6; color: #333; } .payroll-content h3 { color: #1a1a1a; margin-top: 25px; } .payroll-content table { width: 100%; border-collapse: collapse; margin: 20px 0; } .payroll-content th, .payroll-content td { border: 1px solid #ddd; padding: 12px; text-align: left; } .payroll-content th { background-color: #f4f4f4; }

Semi-Monthly Payroll Daily Rate Calculator

(Standard is 260: 52 weeks × 5 days)
Daily Rate:
Semi-Monthly Gross (per check):
Hourly Rate:
Monthly Gross:

Understanding Semi-Monthly Payroll Calculations

Semi-monthly payroll occurs twice per month, typically on the 1st and 15th or the 15th and the last day of the month. This results in exactly 24 pay periods per year. Calculating the daily rate for this schedule is crucial for prorating mid-period hires, terminations, or unpaid leave.

The Formula for Daily Rate

While semi-monthly employees receive a fixed salary per pay period, the "daily rate" is usually derived from the total annual compensation to ensure consistency across months with different numbers of days.

Step 1: Determine Annual Salary
Locate the gross annual salary before taxes and deductions.

Step 2: Determine Working Days
Standard business years usually contain 260 working days (52 weeks multiplied by 5 days). Some years may have 261 or 262 depending on leap years and weekends.

Step 3: The Calculation
Daily Rate = Gross Annual Salary / Total Working Days Per Year

Semi-Monthly vs. Bi-Weekly: What's the Difference?

Feature Semi-Monthly Bi-Weekly
Paychecks per Year 24 26
Payment Frequency Twice a month Every two weeks
Consistency Specific dates Specific day of week

Example Calculation

If an employee earns $52,000 per year and works a standard 260-day year:

  • Daily Rate: $52,000 / 260 = $200.00 per day
  • Semi-Monthly Gross: $52,000 / 24 = $2,166.67 per check
  • Hourly Rate (8hr day): $200 / 8 = $25.00 per hour

Why Prorating Matters

When an employee starts on the 10th of a month on a semi-monthly schedule, HR must calculate the exact number of working days remaining in that pay cycle. By multiplying the calculated daily rate by the days worked, you ensure a precise and legally compliant first paycheck.

function calculatePayroll() { var annualSalary = document.getElementById('annualSalary').value; var workingDays = document.getElementById('workingDays').value; var hoursPerDay = document.getElementById('hoursPerDay').value; if (annualSalary > 0 && workingDays > 0) { var annual = parseFloat(annualSalary); var days = parseFloat(workingDays); var hours = parseFloat(hoursPerDay); // Daily Rate var dailyRate = annual / days; // Semi-Monthly Gross (24 periods) var semiMonthly = annual / 24; // Hourly Rate var hourlyRate = dailyRate / hours; // Monthly Gross var monthly = annual / 12; // Display results document.getElementById('dailyRateDisplay').innerText = '$' + dailyRate.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); document.getElementById('semiMonthlyDisplay').innerText = '$' + semiMonthly.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); document.getElementById('hourlyRateDisplay').innerText = '$' + hourlyRate.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); document.getElementById('monthlyDisplay').innerText = '$' + monthly.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); document.getElementById('results').style.display = 'block'; } else { alert("Please enter a valid salary and number of working days."); } }

Leave a Comment