body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
line-height: 1.6;
color: #333;
max-width: 1200px;
margin: 0 auto;
padding: 20px;
}
.calculator-container {
background-color: #f9f9f9;
border: 1px solid #e0e0e0;
border-radius: 8px;
padding: 30px;
max-width: 800px;
margin: 20px auto;
box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}
.calc-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 20px;
}
@media (max-width: 600px) {
.calc-grid {
grid-template-columns: 1fr;
}
}
.input-group {
margin-bottom: 15px;
}
.input-group label {
display: block;
margin-bottom: 5px;
font-weight: 600;
color: #2c3e50;
}
.input-group input {
width: 100%;
padding: 10px;
border: 1px solid #ccc;
border-radius: 4px;
font-size: 16px;
box-sizing: border-box;
}
.input-group .help-text {
font-size: 0.85em;
color: #666;
margin-top: 4px;
}
.section-title {
grid-column: 1 / -1;
font-size: 1.2em;
font-weight: bold;
color: #2c3e50;
border-bottom: 2px solid #ddd;
padding-bottom: 10px;
margin-top: 10px;
margin-bottom: 10px;
}
button.calc-btn {
grid-column: 1 / -1;
background-color: #2ecc71;
color: white;
border: none;
padding: 15px;
font-size: 18px;
font-weight: bold;
border-radius: 4px;
cursor: pointer;
transition: background-color 0.3s;
margin-top: 20px;
}
button.calc-btn:hover {
background-color: #27ae60;
}
.results-area {
grid-column: 1 / -1;
background-color: #fff;
border: 1px solid #ddd;
border-radius: 4px;
padding: 20px;
margin-top: 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;
}
.result-label {
font-weight: 500;
color: #555;
}
.result-value {
font-weight: bold;
color: #2c3e50;
}
.main-result {
font-size: 1.5em;
color: #2ecc71;
text-align: center;
padding: 15px;
background-color: #f0fdf4;
border-radius: 4px;
margin-bottom: 20px;
border: 1px solid #bbf7d0;
}
.article-content {
margin-top: 50px;
padding-top: 20px;
border-top: 1px solid #eee;
}
.article-content h2 {
color: #2c3e50;
margin-top: 30px;
}
.article-content p {
margin-bottom: 15px;
}
.article-content ul {
margin-bottom: 20px;
padding-left: 20px;
}
.article-content li {
margin-bottom: 8px;
}
How to Calculate Your Small Business Hourly Rate
Determining the correct hourly rate is one of the most critical challenges for freelancers, consultants, and small service-based businesses. If you set your rate too low, you may find yourself working exhausting hours without making a sustainable living. If you set it too high without justification, you may lose potential clients.
This Small Business Hourly Rate Calculator uses a "bottom-up" approach. Instead of guessing a market rate, it starts with your financial needs and works backward to tell you exactly what you must charge to meet those goals.
The Formula Behind the Calculation
To understand your rate, you must distinguish between "working hours" and "billable hours," and account for the profit margin required to grow your business.
1. Calculate Total Costs
First, combine your personal financial needs with your business expenses.
Total Base Costs = Desired Annual Salary + Annual Overhead Expenses
Overhead includes costs that exist whether you have a client or not, such as:
- Office rent or co-working space fees
- Software subscriptions (Adobe, Zoom, Accounting tools)
- Professional insurance and licenses
- Marketing and website hosting
- Self-employment taxes (often estimated in the desired salary or overhead)
2. Factor in Profit Margin
A business that only covers its costs is stagnant. To buy new equipment, handle emergencies, or scale, you need profit. Our calculator adjusts your revenue goal so that after expenses are paid, you retain a specific profit percentage.
Revenue Goal = Total Base Costs / (1 - (Profit Margin % / 100))
3. Determine Billable Capacity
This is where most new business owners fail. You cannot bill 40 hours a week, 52 weeks a year. You need time for:
- Vacation and Sick Time: Everyone gets sick and deserves a break.
- Admin and Sales (The Efficiency Factor): You spend time answering emails, sending invoices, and finding new clients. This is "non-billable" time. A standard efficiency rate for freelancers is 60% to 75%.
Total Billable Hours = (52 - Weeks Off) × (Hours Per Week × Efficiency %)
4. The Final Hourly Rate
Finally, divide your revenue goal by the number of hours you can actually sell.
Hourly Rate = Revenue Goal / Total Billable Hours
Why is my rate higher than my employee salary?
It is common for the calculated hourly rate to be 2x or 3x higher than what you might earn as a W-2 employee doing the same work. As an employee, your employer covers the overhead, pays for your downtime, provides equipment, and handles taxes. As a business owner, you must price these costs into every billable hour.
Tips for Using This Calculator
- Be Honest About Expenses: Underestimating overhead is a quick way to lower your profit. Include a buffer for unexpected costs.
- Don't Overestimate Efficiency: It is rare to be 90% or 100% billable unless you have a long-term, full-time contract. Stick to 70-75% to be safe.
- Check Market Rates: Once you have your calculated minimum rate, compare it to the market. If your calculated rate is much higher, you may need to reduce expenses or increase efficiency. If it is lower, you have room to charge more and increase profit.
function calculateHourlyRate() {
// 1. Get Input Values
var salary = parseFloat(document.getElementById('sb_salary').value);
var expenses = parseFloat(document.getElementById('sb_expenses').value);
var profitMargin = parseFloat(document.getElementById('sb_profit').value);
var hoursPerWeek = parseFloat(document.getElementById('sb_hours_week').value);
var weeksOff = parseFloat(document.getElementById('sb_weeks_off').value);
var efficiency = parseFloat(document.getElementById('sb_efficiency').value);
// 2. Validation
if (isNaN(salary)) salary = 0;
if (isNaN(expenses)) expenses = 0;
if (isNaN(profitMargin)) profitMargin = 0;
if (isNaN(hoursPerWeek)) hoursPerWeek = 40;
if (isNaN(weeksOff)) weeksOff = 0;
if (isNaN(efficiency)) efficiency = 75;
// Ensure efficiency and margin aren't breaking math
if (efficiency = 100) profitMargin = 99; // Prevent divide by zero
// 3. Logic
// A. Calculate Total Base Costs
var totalBaseCosts = salary + expenses;
// B. Calculate Revenue Goal based on Profit Margin
// Formula: Revenue = Costs / (1 – Margin%)
// Example: Costs 80k, Margin 20%. Revenue = 80k / 0.8 = 100k. (20k profit is 20% of 100k)
var marginDecimal = profitMargin / 100;
var revenueGoal = totalBaseCosts / (1 – marginDecimal);
// C. Calculate Time
var weeksWorked = 52 – weeksOff;
var totalWorkHours = weeksWorked * hoursPerWeek;
var billableHours = totalWorkHours * (efficiency / 100);
// D. Calculate Rate
var hourlyRate = 0;
if (billableHours > 0) {
hourlyRate = revenueGoal / billableHours;
}
// 4. Update UI
document.getElementById('rs_rate_display').innerText = '$' + hourlyRate.toLocaleString('en-US', {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('rs_revenue_goal').innerText = '$' + revenueGoal.toLocaleString('en-US', {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('rs_total_costs').innerText = '$' + totalBaseCosts.toLocaleString('en-US', {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('rs_billable_hours').innerText = Math.round(billableHours).toLocaleString();
document.getElementById('rs_work_weeks').innerText = weeksWorked;
// Show results
document.getElementById('results_area').style.display = 'block';
}