Attendee hourly cost calculator
The attendee hourly cost calculator turns an annual salary into a practical cost per meeting hour.
Run — free
It first divides salary by the paid hours in a working year, then optionally applies an overhead multiplier for benefits, employer taxes, insurance, equipment, or other employment costs. The result separates base hourly cost from overhead and shows the fully loaded total. Use one consistent currency throughout; the calculator performs no exchange-rate conversion. It is designed for meeting estimates, staffing comparisons, and internal planning rather than payroll or tax compliance.
Choose the annual hours that match the estimate
Start with the attendee's gross annual salary, average weekly hours, and the number of paid working weeks represented by that salary. The default schedule is forty hours for fifty-two weeks, or 2,080 annual hours, but the correct denominator depends on the question you are answering. For a salaried employee whose paid leave remains part of compensation, fifty-two weeks is often appropriate because the salary covers the entire year. For a contractor or seasonal role, use the weeks actually represented by the annualized amount. Part-time schedules should use their real weekly hours rather than a full-time convention. The calculator divides annual salary by weekly hours multiplied by weeks per year, producing the base hourly cost. This is a planning rate, not necessarily an employee's payroll wage, because payroll systems may handle leave, overtime, bonuses, and statutory rules differently. Keep every monetary value in the same currency. Since there is no currency field and no exchange-rate lookup, a salary entered in dollars produces dollar-denominated results, while a salary entered in euros produces euro-denominated results.
Apply overhead without hiding the base cost
The overhead multiplier converts salary-only cost into a fully loaded employer cost. A multiplier of 1 means no added overhead, 1.25 adds twenty-five percent, and 1.4 adds forty percent. Choose a multiplier based on costs relevant to your decision, which might include employer payroll taxes, health or pension benefits, insurance, office space, equipment, software, recruiting, or administrative support. Avoid treating a generic benchmark as universally correct: benefit structures, employment law, and internal allocation practices vary by organization and location. The output keeps the base hourly cost, overhead cost per hour, and loaded hourly cost separate, so reviewers can see exactly what the assumption changes. It also reports the equivalent overhead percentage and annual loaded cost. That transparency is useful when different departments use different burden rates or when a finance team wants to replace an early estimate with an approved multiplier. The multiplier must be at least 1 because this capability models costs added to salary. If you need to model utilization or billable efficiency, calculate that separately instead of disguising it as a lower overhead multiplier.
Use the hourly figure in meeting and staffing decisions
Once you have a loaded hourly cost, multiply it by the time that this attendee spends on an activity. For a one-hour meeting, the figure is the estimated employer cost for that person's attendance. For a thirty-minute meeting, use one half of the hourly result. To estimate a group meeting, calculate each attendee with the salary and overhead assumptions appropriate to that person, then add the time-adjusted costs. This approach is more accurate than multiplying a headcount by one blended wage when seniority, schedules, or burden rates differ. The number is best used as a decision aid: compare the attendance cost with the value of the decision, shorten recurring meetings, identify when an asynchronous update is sufficient, or budget staff time for a project. It should not be presented as a precise invoice, employee valuation, or legal payroll calculation. Salary may omit bonuses and equity, while an overhead multiplier is an allocation assumption rather than a measured marginal expense. Record the inputs beside any reported total so another person can reproduce the estimate and understand why it differs from a payroll or accounting figure.
What you can do with it
Estimate a meeting's people cost
Calculate each attendee's loaded hourly cost, adjust for meeting duration, and sum the estimates before scheduling a large recurring session.
Compare staffing scenarios
Use consistent salary, schedule, and overhead assumptions to compare the estimated hourly employer cost of different roles or team mixes.
Budget internal project time
Convert annual compensation assumptions into hourly planning costs for workshops, reviews, training, and other staff-intensive activities.
FAQ
What does the calculation cost?
It is free to run in the browser on this page, or $0.002 per API request.
What does fully loaded hourly cost mean?
It is the salary-based hourly cost plus the overhead represented by your multiplier, such as benefits and employer taxes.
How do I represent 30 percent overhead?
Enter an overhead multiplier of 1.3. The base salary is 100 percent and the additional 0.3 represents 30 percent overhead.
Should paid vacation reduce weeks per year?
Usually not when annual salary pays the employee during vacation. Use the denominator that matches your organization's planning method and document the assumption.
Does the calculator convert currencies?
No. Every monetary result uses the same currency unit as annual_salary, so do any exchange-rate conversion before or after this calculation.
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/biz/attendee-hourly-cost \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"annual_salary":78000}'const res = await fetch("https://api.kit.forhosting.com/biz/attendee-hourly-cost", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"annual_salary": 78000
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/biz/attendee-hourly-cost",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"annual_salary": 78000
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/biz/attendee-hourly-cost", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"annual_salary":78000}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"annual_salary":78000}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/biz/attendee-hourly-cost", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"annual_salary": 78000
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "biz.attendee_hourly_cost",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |