Rent, utilities, insurance, software, etc. (Excluding tech wages)
Total full-time mechanics/techs
Pre-tax hourly pay rate per tech
Actual hours billed vs. hours clocked (Industry avg: 70-80%)
Target profit percentage after all expenses
Total Annual Expenses:–
Total Billable Hours (Yearly):–
Break-Even Hourly Rate:–
Target Shop Labor Rate:–
Target Annual Revenue: –
How to Calculate Your Auto Repair Shop Labor Rate
Determining the correct labor rate is one of the most critical financial decisions for an auto repair shop owner. Guessing what your competitors charge or picking a round number often leads to financial struggle. This calculator uses a cost-plus pricing strategy to ensure every hour you bill covers your overhead, your technicians' wages, and your desired profit margin.
Understanding Key Variables
Annual Overhead Costs: These are your fixed costs that exist whether you fix cars or not. This includes rent or mortgage, utilities, shop insurance, software subscriptions, office supplies, advertising, and salaries for non-billable staff (like service writers or managers).
Billable Efficiency: This is the "Productivity Factor." If you pay a technician for 40 hours a week, they rarely bill 40 flat-rate hours. Time is lost to diagnostics, moving cars, cleaning spills, or waiting for parts. The industry average hovers between 70% and 80%. A shop with 3 technicians paid for 6,240 hours a year might only have ~4,700 hours available to sell to customers.
Technician Wages: This is the direct labor cost. It serves as the base upon which your overhead and profit are built.
The Math Behind the Rate
This tool calculates your shop rate using the following logic:
Calculate Total Capacity: We assume a standard work year of 2,080 hours per technician (40 hours/week × 52 weeks).
Determine Billable Inventory: We multiply the total capacity by your Billable Efficiency percentage to find out how many hours you actually have to sell.
Aggregate Costs: We sum your Annual Overhead and your Total Technician Wages (Direct Labor) to find the total money required just to keep the doors open.
Calculate Break-Even: Total Costs divided by Billable Inventory gives you the minimum hourly rate needed to make $0 profit.
Apply Profit Margin: Finally, we divide your total costs by (1 – Desired Margin %) to determine the revenue required to hit your profit goals, and divide that by your billable hours to give you the final Shop Rate.
By adjusting the efficiency and profit margin sliders, you can see how improving shop workflow can effectively lower the rate you need to charge—or increase the profit you make at your current rate.
function calculateShopRate() {
// 1. Get Input Values
var annualOverhead = parseFloat(document.getElementById('annualOverhead').value);
var numTechs = parseFloat(document.getElementById('numTechs').value);
var avgWage = parseFloat(document.getElementById('avgWage').value);
var efficiency = parseFloat(document.getElementById('efficiency').value);
var profitMargin = parseFloat(document.getElementById('profitMargin').value);
// 2. Validate Inputs
if (isNaN(annualOverhead) || isNaN(numTechs) || isNaN(avgWage) || isNaN(efficiency) || isNaN(profitMargin)) {
alert("Please fill in all fields with valid numbers.");
return;
}
if (numTechs <= 0 || efficiency <= 0) {
alert("Number of technicians and efficiency must be greater than zero.");
return;
}
// 3. Constants
var hoursPerYearPerTech = 2080; // 40 hours * 52 weeks
// 4. Calculations
// Total hours paid to techs (Inventory)
var totalPaidHours = numTechs * hoursPerYearPerTech;
// Total Labor Cost (Wages only, assuming overhead covers taxes/benefits or added to overhead input)
var totalLaborCost = totalPaidHours * avgWage;
// Total Annual Expenses (Labor + Overhead)
var totalAnnualExpenses = annualOverhead + totalLaborCost;
// Total Billable Hours (The hours actually sold)
var totalBillableHours = totalPaidHours * (efficiency / 100);
// Break-Even Rate (Cost / Billable Hours)
var breakEvenRate = totalAnnualExpenses / totalBillableHours;
// Target Revenue Logic: Revenue = Cost / (1 – Margin%)
// Example: If Cost is 100 and Margin is 20%, Revenue = 100 / 0.8 = 125. 25 is 20% of 125.
var targetRevenue = totalAnnualExpenses / (1 – (profitMargin / 100));
// Target Shop Rate
var targetShopRate = targetRevenue / totalBillableHours;
// 5. Update HTML Results
document.getElementById('totalExpenses').innerHTML = "$" + totalAnnualExpenses.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('billableHours').innerHTML = totalBillableHours.toLocaleString(undefined, {minimumFractionDigits: 0, maximumFractionDigits: 0}) + " hrs";
document.getElementById('breakEvenRate').innerHTML = "$" + breakEvenRate.toFixed(2) + " /hr";
document.getElementById('targetRate').innerHTML = "$" + targetShopRate.toFixed(2) + " /hr";
document.getElementById('targetRevenue').innerHTML = "$" + targetRevenue.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
// Show results container
document.getElementById('msrResults').style.display = "block";
}