You're paying your engineer $120K a year.
But here's the thing—that's not what they actually cost you. EMARS found that a $25/hour employee actually costs $35 to 38/hour when you factor everything in. That's a 40% jump, and it's not unusual. Payroll taxes, benefits, insurance, overhead all add up fast. Your $120K engineer? You're really spending closer to $170K.
If you're building budgets or pricing services using base salary alone, you’re underestimating true costs by 30–40%.
That's where fully burdened labor rate comes in. It’s the real hourly cost of an employee when you include salary and every other expense tied to employing them. For startups, it's the difference between guessing and knowing your true burn rate. It’s what turns headcount planning into strategy, and pricing decisions into profit.
This guide breaks down what’s included in a fully burdened labor rate, how to calculate it accurately, and how to embed it in your model so it scales automatically.
Understanding fully burdened labor rate
Fully burdened labor rate is your actual hourly cost to keep someone on payroll. It includes every cost—mandatory and voluntary—attached to that person. It’s their pay, plus everything extra you spend to keep them working.
Most finance teams focus on base salary. That’s what’s in the offer letter.
But real costs go further. You cover payroll taxes. You subsidize health insurance. You might match 401(k)s or pay for certification. You pay for software, hardware, HR systems, and office space. Every hire brings recurring overhead.
These expenses hit your bank account monthly. If you skip them when forecasting or pricing, your math won’t tell the truth.
Definition and key components
A fully burdened labor rate has three layers:
- Direct compensation: Base salary or hourly wage.
- Employer on-costs: All the extras that come with each employee. This covers:
- Payroll taxes: Social Security, Medicare, unemployment, workers’ comp, state-specific contributions.
- Benefits: Health, vision, disability, PTO, life insurance, 401(k) match, and perks.
- Overhead allocation: Shared expenses that keep the company running—rent, IT, admin, HR, software licenses, utilities. Allocate a share of these to every employee.
These layers vary by role, department, and location. A senior engineer in San Francisco costs far more per hour than a remote contractor in Austin.
Formulas for calculating your fully burdened labor rate
The base formula is simple:
Fully burdened hourly rate = (Annual salary + Annual on-costs + Annual overhead allocation) / Annual productive hours
You can calculate this a few different ways depending on how detailed you want to get.
Method 1: Simple percentage markup
Start with salary → add costs → divide by productive hours.
Example:
- Salary: $100K
- Benefits and payroll taxes: 25%
- Overhead allocation: 15%.
- Productive hours per year: 1,840.
Fully burdened labor rate = ($100,000 + $25,000 + $15,000) / 1,840 = $76.09 per hour.
This is quick, but assumes overhead scales salary, which isn’t always true.
Method 2: Pooled overhead allocation
- Total annual overhead ÷ total headcount = overhead per employee.
- Add that to salary + on-costs.
Example:
- Company overhead $500,000/year, 10 employees. Each gets $50,000 overhead allocation.
- Salary $100K. On-costs $25K. Total is $175,000 per year.
Fully burdened labor rate = $175,000 / 1,840 = $95.11 per hour.
This spreads overhead evenly, even if some jobs use more resources.
Method 3: department or role-based allocation
Assign overhead based on department or role—engineering gets more for cloud tools; sales may get less.
This method is the most accurate, but needs tracking over time.
The hour divisor matters too. Many use 2,080 hours (40 hours × 52 weeks) as standard, but after PTO and holidays, real productive hours are closer to 1,600-1,800. Using 2,080 can underestimate the true hourly cost.
Why startups need to get this right
Your fully burdened labor rate drives everything: pricing, headcount, budgets, and forecasts.
It defines your burn rate, shapes hiring decisions, and sharpens your CAC and COGS calculations. Labor is 60–80% of total costs, so even a small error ripples across your entire model.
Labor is your largest expense and your biggest modeling lever. If you're using a collaborative modeling platform or running what-if scenarios, you need accurate labor costs from day one. So get them right first.
Application: gross margin, unit economics, and project costing
Your gross margin is only as good as your inputs. If you're running a service business or SaaS company, labor drives your COGS. And if you're only looking at base salaries, your margins look fantastic — until they don't.
Here's what could happen: You sell consulting at $200/hr. Your consultant's salary is $75/hr. That's a 62.5% margin. Looks great, right? But when you factor in taxes, benefits, and overhead, the real cost is $110/hr. Your actual margin? 45%. That's a massive gap, especially when you're scaling or talking to investors.
Project costing gets hit too. When you're bidding on work, estimating projects, or planning a new feature, you need to multiply hours by the fully burdened rate—not the base rate. Underpricing labor erodes your margin before you even start.
Tying into CAC, burn rate, and operations
Your Customer Acquisition Cost includes every dollar it takes to close a deal. That includes fully burdened labor for your sales team — not just their salaries. If you're only counting salaries plus marketing spend, you're underestimating by 30-40%.
Your burn rate is cash going out the door. Labor typically accounts for 60-80% of that. When you forecast using salary numbers alone, you'll burn through cash faster than your model shows.
This matters for operational planning too. When you're deciding between hiring and automation, or setting a department budget, use the full loaded cost. That's what gives you reliable data to work with.
Common pitfalls to avoid
Labor rate errors come from bad data and skipped steps. A wrong rate can inflate gross profit by 10–15%.
- Only tracking salary: Most teams just use salary. That’s only 60–75% of the total cost. If you’re modeling on salary, every forecast is off.
- Forgetting taxes and benefits: Employer taxes are required and easy to miss. That’s 7.65% (Social Security and Medicare)—plus state unemployment and workers’ comp. Benefits typically add another 15–30%.
- Using the wrong hourly divisor: If you divide by 2,080 but employees have PTO, you’re overstating their capacity. Track real working hours or use a utilization rate (usually 75–85%).
- Not updating rates after cost changes: Insurance and taxes shift. Rent rises. Refresh your models at least once a year so they stay real.
- Mixing fully and partially burdened rates: Be consistent. Use the same method for all departments and projects so you can actually compare costs.
- Ignoring employee and department differences: Executives with high salaries and benefits cost more per hour than juniors. Engineers with lots of tools bring extra overhead. Use blended rates only if your team looks the same across the board.
Modeling fully burdened labor rate in Runway
You can build this in spreadsheets, but that's tough to maintain. Every new hire, every edit or benefit change means tweaking cells. That can get unwieldy fast.
Runway automates the work. Connect your HR system, set up formulas, and your rates update live. Here's how to get there:
Step 1: Prepare your employees HRIS database
Connect your HRIS (Rippling, Gusto, BambooHR) or use Runway's own database. For each employee, capture:
- Base salary per year
- Start and end dates
- FTE (1.0 for full-time, 0.5 for part-time)
- Department, role, location
- Benefits % and payroll tax %
- Hours per workday (usually 8)
- Utilization % (usually 75-85%)
Fill these in from your HRIS or manually. Remember, HRIS columns are "fields", not standard drivers—formulas apply at the column level across all employees. You can also create or connect dimensions like Department, Role, or Location to aggregate costs and rates later.
Step 2: Assign rates
If benefit or tax rates differ by location or department, set up a lookup table. Create a small "Comp Cost Rates" database driven by Location (or another dimension), then add Benefits % and Payroll Tax % columns.
In your Employees database, add a Lookup column to fetch these rates based on each employee's Location. Update once and all employees in that group get the new rate.
Step 3: Calculate monthly salary
Add a "Monthly salary (full)" field with this formula:
Monthly salary (full) = Base salary / 12
This is your raw, unadjusted monthly number.
Step 4: Prorate for mid-month starts and exits
If someone starts or leaves mid-month, pay only for days worked. Use date functions like IF(), dateDiff(), daysInMonth(), and endOfMonth() to calculate the fraction of the month worked in a "Prorated monthly salary" field.
The Prorated salaries guide walks through the logic—return NULL before an employee's start date or after their termination date, then calculate days worked divided by total days in the month.
Step 5: Add employer on-costs
Create an "Employer on-cost %" field:
Employer on-cost % = Benefits % + Payroll tax %
Then calculate:
Loaded comp (no overhead) = Prorated salary × (1 + Employer on-cost %)
This is a simple formula in the column that applies uniformly across all rows in your HRIS database.
Step 6: Set your overhead allocation
Option A — Flat per employee: Use a fixed dollar value per employee, or segment by department if allocations differ.
Option B — Pool by headcount: Divide your total monthly overhead by active headcount. Create an "Overhead Pool" driver (rent, IT, office ops, etc.) and an "Active Headcount" driver using count() filtered to employees active in the month (Start Date ≤ This Month and Termination Date ≥ This Month). The Headcount planning guide shows how to use count with date filters.
Overhead per employee per month = ifError(Overhead Pool / Active Headcount, 0)
Step 7: Calculate fully burdened monthly cost
In your Employees database, add a "Fully burdened monthly cost" field:
Fully burdened monthly cost = Loaded comp (no overhead) + Overhead per employee per month
Use a database reference to your overhead per employee driver. Runway will auto-wrap in sum() if you're referencing a multi-row or segmented source.
Step 8: Tally productive hours per employee per month
Use netWorkDays() to exclude weekends and holidays, then multiply by hours per day, FTE, and utilization:
Working days = netWorkDays(thisMonth(), dateAdd(thisMonth(), 1, 'm'), '0000011', 'YYYY-MM-DD,...')Total hours = Working days × Hours per workday × FTEProductive hours = Total hours × Utilization %
These can all be fields in your Employees database.
Step 9: Calculate the hourly rate
Add a "Fully burdened hourly rate" field:
Fully burdened hourly rate = ifError(Fully burdened monthly cost / Productive hours, NULL)
The ifError() wrapper skips months with zero productive hours (like before someone's start date).
Step 10: Roll up by team, role, or location
Create segmented drivers that reference your Employees fields and aggregate with avg() or sum()/count(). Filter by the target dimension (like Department) to get blended rates by group.
Example:
Departmental average fully burdened rate = avg(Employees.Fully Burdened Hourly Rate filtered to Department = This Segment.Department)
You can create and manage dimensions to support these rollups.
Step 11: Separate actuals vs. forecast
Want to use real payroll data for closed months? Set up different formulas for actuals and forecasts—historical months pull from actuals, future months use your forecast logic. Actuals formulas apply up to your last close; forecast formulas apply after. If you don't set an actuals formula, it inherits the forecast formula.
Step 12: Quality checks and guardrails
- Use the HRIS "start date gate" to return NULL before an employee's start date and after their termination date
- Verify active headcount with
count()to confirm allocations match expectations - Wrap multi-row references in
sum()oravg()and filter as needed
Once this is running, your labor rates update as you grow. Use these rates across scenario planning, project costing, and department budgets without manual rebuilds.
Frequently Asked Questions
How often should I update my fully burdened labor rate?
Review and update it annually. But if you change benefits providers, adjust salaries, open new offices, or add significant headcount, update it right away. Keeping it current means your forecasts and pricing stay accurate.
Should I use the same burden rate across all departments?
Not necessarily. Different teams incur different costs. Engineering typically carries higher software and cloud expenses. Sales teams often have higher travel or commission costs. Department-specific rates give you more accurate project costing and better planning.
What's a typical range for employer on-costs (taxes + benefits)?
Most companies see 20 to 40% added on top of base salary. The actual number varies by location, benefit richness, and company policies. High-benefit environments and high-cost cities push the rate toward the upper end.
What tool can I use to calculate my fully burdened labor rate without managing complex spreadsheet formulas?
Runway integrates with your HR and finance systems and automatically calculates fully burdened labor rates, updates them as costs change, and applies them across models and headcount plans.
Simplify your fully burdened labor rate calculation
Fully burdened labor rate isn’t just a metric. It’s your foundation for hiring, pricing, and planning with precision.
When you model labor costs correctly, your decisions shift from reactive to confident. You stop estimating. You start understanding.
Spreadsheets work at first, but automation works for scale. Runway keeps your labor rates live, your assumptions current, and your forecasts grounded in reality.
Ready to move past spreadsheets? Get started with Runway and model your fully burdened labor rates accurately—automatically.