Ohio Prevailing Wage Calculator

ANALife Services AuthorityNational Calculator Authority›Ohio Prevailing Wage Calculator

.calc-container { max-width: 640px; margin: 2rem 0; padding: 1.5rem; background: #fff; border: 1px solid #ddd; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,0.06); font-family: system-ui, -apple-system, sans-serif; } .calc-container h3 { font-family: Georgia, serif; font-size: 1.15rem; color: #1a1a1a; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-row { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.75rem; flex-wrap: wrap; } .calc-row label { min-width: 160px; font-size: 0.9rem; color: #333; font-weight: 500; } .calc-row input[type="number"], .calc-row select { flex: 1; min-width: 120px; max-width: 200px; padding: 0.5rem 0.6rem; border: 1px solid #ccc; border-radius: 4px; font-size: 0.9rem; font-family: system-ui, sans-serif; color: #1a1a1a; background: #fafaf8; } .calc-row input:focus, .calc-row select:focus { outline: none; border-color: var(--ac, #3d5a80); box-shadow: 0 0 0 2px rgba(26,74,138,0.12); } .calc-row .unit { font-size: 0.82rem; color: #888; min-width: 30px; } .calc-btn { display: inline-block; margin-top: 0.5rem; padding: 0.55rem 1.5rem; background: var(--ac, #3d5a80); color: #fff; border: none; border-radius: 4px; font-size: 0.9rem; font-weight: 600; cursor: pointer; font-family: system-ui, sans-serif; } .calc-btn:hover { opacity: 0.9; } .calc-result { margin-top: 1.25rem; padding: 1rem 1.25rem; background: #f0f6fc; border-left: 3px solid var(--ac, #3d5a80); border-radius: 0 6px 6px 0; display: none; } .calc-result.visible { display: block; } .calc-result-label { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; color: #666; margin-bottom: 0.25rem; } .calc-result-value { font-size: 1.6rem; font-weight: 700; color: var(--ac, #3d5a80); } .calc-result-detail { font-size: 0.85rem; color: #555; margin-top: 0.5rem; line-height: 1.5; } .calc-note { margin-top: 1rem; font-size: 0.8rem; color: #888; font-style: italic; } .calc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin-top: 0.75rem; } .calc-grid-item { padding: 0.6rem 0.8rem; background: #f8f9fa; border-radius: 4px; border: 1px solid #eee; } .calc-grid-item .label { font-size: 0.75rem; color: #888; text-transform: uppercase; letter-spacing: 0.04em; } .calc-grid-item .value { font-size: 1.1rem; font-weight: 600; color: #1a1a1a; } @media (max-width: 720px) { .calc-row { flex-direction: column; align-items: flex-start; gap: 0.3rem; } .calc-row label { min-width: auto; } .calc-row input[type="number"], .calc-row select { max-width: 100%; width: 100%; } .calc-grid { grid-template-columns: 1fr; } } .calc-chart { margin: 1rem 0; text-align: center; } .calc-chart svg { max-width: 100%; height: auto; } .calc-chart-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem 1.2rem; margin-top: 0.6rem; font-size: 0.8rem; color: #555; } .calc-chart-legend span { display: inline-flex; align-items: center; gap: 0.3rem; } .calc-chart-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; font-style: normal; } .calc-related { max-width: 640px; margin: 2rem 0 1rem; padding: 1.25rem 1.5rem; background: #f8f9fa; border: 1px solid #e8e8e8; border-radius: 8px; } .calc-related h3 { font-family: Georgia, serif; font-size: 1rem; color: #1a1a1a; margin: 0 0 0.75rem; padding-bottom: 0.4rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-related-list { list-style: none; padding: 0; margin: 0 0 0.75rem; display: grid; grid-template-columns: 1fr 1fr; gap: 0.4rem 1.5rem; } .calc-related-list li a { font-size: 0.88rem; color: var(--ac, #3d5a80); text-decoration: none; } .calc-related-list li a:hover { text-decoration: underline; } .calc-browse-all { margin: 0.5rem 0 0; font-size: 0.9rem; font-weight: 600; } .calc-browse-all a { color: var(--ac, #3d5a80); text-decoration: none; } .calc-browse-all a:hover { text-decoration: underline; } @media (max-width: 720px) { .calc-related-list { grid-template-columns: 1fr; } }

Ohio Prevailing Wage Calculator

Calculate total prevailing wage costs for Ohio public improvement projects per Ohio Revised Code §4115. Enter the base wage rate, fringe benefits, hours worked, and overtime hours to determine gross wages owed.

Base Hourly Wage Rate ($)

The prevailing wage rate for the applicable trade/classification in the county.

Fringe Benefits Rate ($ per hour)

Health insurance, pension, vacation, and other bona fide fringe benefits per hour.

Regular Hours Worked (per week)

Standard hours worked at straight-time rate (typically up to 40 hours/week).

Overtime Hours Worked (per week)

Hours worked beyond 40 per week. Ohio prevailing wage overtime = 1.5× base wage rate.

Number of Workers

Total number of workers in this trade classification.

Number of Weeks on Project

Total project duration in weeks for this trade.

Calculate Prevailing Wage

function ohiCalc() { var errors = [];

var baseWage = parseFloat(document.getElementById('ohi-base-wage').value); var fringeBenefits = parseFloat(document.getElementById('ohi-fringe-benefits').value); var regularHours = parseFloat(document.getElementById('ohi-regular-hours').value); var overtimeHours = parseFloat(document.getElementById('ohi-overtime-hours').value); var numWorkers = parseFloat(document.getElementById('ohi-num-workers').value); var numWeeks = parseFloat(document.getElementById('ohi-num-weeks').value);

// Validation if (isNaN(baseWage) || baseWage 168) errors.push("Regular hours cannot exceed 168 per week."); if (isNaN(overtimeHours) || overtimeHours 0) { resultDiv.style.display = 'block'; resultDiv.innerHTML = 'Please fix the following:' + errors.map(function(e){ return ''; }).join('') + ''; return; }

// ── Core Ohio Prevailing Wage Formulas (ORC §4115) ────────────────────────── // Overtime multiplier: 1.5× base wage only (fringe benefits paid at straight time on all hours) var overtimeRate = baseWage * 1.5;

// Per-worker weekly wages var weeklyRegularWage = baseWage * regularHours; var weeklyOvertimeWage = overtimeRate * overtimeHours; var totalHoursPerWeek = regularHours + overtimeHours;

// Fringe benefits paid on ALL hours (regular + overtime) at straight-time rate var weeklyFringe = fringeBenefits * totalHoursPerWeek;

// Total weekly compensation per worker var weeklyTotalPerWorker = weeklyRegularWage + weeklyOvertimeWage + weeklyFringe;

// Project totals var projectTotalPerWorker = weeklyTotalPerWorker * numWeeks; var projectGrandTotal = projectTotalPerWorker * numWorkers;

// Effective total hourly rate (base + OT premium weighted + fringe) var totalHoursProject = totalHoursPerWeek * numWeeks * numWorkers; var effectiveHourlyRate = (projectGrandTotal / totalHoursProject);

// Straight-time equivalent (all hours at base + fringe, no OT) var straightTimeTotal = (baseWage + fringeBenefits) * totalHoursProject; var overtimePremiumTotal = projectGrandTotal - straightTimeTotal;

// ── Format helpers ─────────────────────────────────────────────────────────── function fmt(n) { return '$' + n.toFixed(2).replace(/\B(?=(\d{3})+(?!\d))/g, ','); } function fmtH(n) { return n.toFixed(1).replace(/\B(?=(\d{3})+(?!\d))/g, ',') + ' hrs'; }

resultDiv.style.display = 'block'; resultDiv.innerHTML = '### Ohio Prevailing Wage Results ' +

'#### Per-Worker Weekly Breakdown ' + '' + 'Regular Wages (' + regularHours.toFixed(1) + ' hrs × ' + fmt(baseWage) + ')' + fmt(weeklyRegularWage) + '' + 'Overtime Wages (' + overtimeHours.toFixed(1) + ' hrs × ' + fmt(overtimeRate) + ')' + fmt(weeklyOvertimeWage) + '' + 'Fringe Benefits (' + totalHoursPerWeek.toFixed(1) + ' hrs × ' + fmt(fringeBenefits) + ')' + fmt(weeklyFringe) + '' + 'Weekly Total per Worker' + fmt(weeklyTotalPerWorker) + '' + '' +

'#### Project Summary (' + numWorkers + ' worker' + (numWorkers > 1 ? 's' : '') + ' × ' + numWeeks + ' week' + (numWeeks > 1 ? 's' : '') + ') ' + '' + 'Total Hours (all workers)' + fmtH(totalHoursProject) + '' + 'Straight-Time Wage + Fringe Cost' + fmt(straightTimeTotal) + '' + 'Overtime Premium Cost' + fmt(overtimePremiumTotal) + '' + 'Total per Worker (full project)' + fmt(projectTotalPerWorker) + '' + 'Grand Total Prevailing Wage Cost' + fmt(projectGrandTotal) + '' + 'Effective All-In Hourly Rate' + fmt(effectiveHourlyRate) + '' + ''; }

#### Formulas Used

Overtime Rate = Base Wage × 1.5

Weekly Regular Wages = Base Wage × Regular Hours

Weekly Overtime Wages = (Base Wage × 1.5) × Overtime Hours

Weekly Fringe Benefits = Fringe Rate × (Regular Hours + Overtime Hours)

Note: Fringe benefits are paid at the straight-time rate on all hours worked, including overtime hours.

Weekly Total per Worker = Regular Wages + Overtime Wages + Fringe Benefits

Project Grand Total = Weekly Total per Worker × Number of Weeks × Number of Workers

Effective Hourly Rate = Grand Total ÷ Total Hours Worked (all workers)

#### Assumptions & References

More Calculators

References


The law belongs to the people. Georgia v. Public.Resource.Org, 590 U.S. (2020)