Meeting cost per minute calculator for teams
A meeting can feel inexpensive because no invoice appears while it runs, yet every additional minute consumes the working time of everyone in the room.
Run — free
This meeting cost per minute calculator turns attendee count and average hourly wage into one immediate burn rate. Use it to put a practical price beside extensions, recurring ceremonies, oversized invite lists, and decisions that could move to an asynchronous channel. Enter wages in any single currency and the result remains in that currency, making the calculation useful across teams, locations, and compensation models.
Turn shared time into a visible burn rate
Meeting time is usually discussed in minutes, while labor cost is usually planned by the hour. That mismatch makes a five-minute extension sound trivial even when a large group is waiting. The calculator closes the gap by multiplying the attendee count by the average hourly wage, then dividing the combined hourly cost by sixty. The result is the amount consumed during every minute that all attendees remain involved. For example, eight people at an average hourly wage of seventy-five create a combined hourly cost of six hundred and a per-minute cost of ten in the same currency. This is an estimate, not an accounting ledger, but its simplicity is valuable during an actual meeting. A facilitator can compare the burn rate with the value of continuing, parking a topic, reducing the invite list, or assigning a smaller group to finish the decision. Because the output also includes hourly and per-second context, teams can communicate the figure at the scale that best fits the choice without recalculating it elsewhere.
Choose an average wage that matches the decision
The quality of the estimate depends on what you mean by average hourly wage. For a quick internal conversation, a blended wage across the invited roles may be sufficient. For budgeting, use a fully loaded hourly labor cost that includes benefits, payroll taxes, and other employment overhead when those figures are available. Contractors can be represented with their billable hourly rates, provided every attendee is expressed in the same currency and on the same cost basis. Avoid mixing a base salary estimate for some people with a fully loaded rate for others, because the result will look precise while comparing inconsistent inputs. You do not need to expose anyone's individual compensation: calculate or select an approved team average before entering it. If the audience changes substantially, run a second scenario rather than stretching one average across unrelated groups. The calculator deliberately performs no currency conversion and attaches no currency symbol, so a result of twelve means twelve units of whatever currency you supplied. Record that currency beside the result when sharing it in a document or dashboard.
Use the number to improve time-boxing, not to police people
A per-minute cost is most useful as a design signal. Before a recurring meeting is added, multiply its burn rate by the planned duration and frequency to understand the rough commitment. During a live discussion, compare another ten minutes of group time with alternatives such as assigning two owners, requesting a written proposal, or scheduling a smaller follow-up. When reviewing calendars, test scenarios with fewer attendees to reveal the cost of optional participation and broad distribution lists. The metric should not be used to shame speakers, rush sensitive conversations, or imply that every valuable outcome must produce immediate revenue. Workshops, incident reviews, coaching, and relationship building can justify substantial shared time even when their benefit is hard to quantify. The useful question is whether the meeting format and audience are proportionate to the intended outcome. Pair the burn rate with a clear agenda, decision owner, and stopping rule. Over time, teams can compare planned and actual durations, but this calculator itself remains deterministic and narrow: it returns the current cost rate from the two values supplied, without storing meetings or judging their value.
What you can do with it
Price a time-box extension
Show the cost of another five or ten minutes before the group decides whether to continue discussing a topic.
Review recurring meetings
Compare burn rates for different attendee counts before renewing a weekly ceremony or changing its invite list.
Choose synchronous or asynchronous work
Put a labor-cost estimate beside the option of collecting written input or delegating a decision to a smaller group.
FAQ
What does the API request cost?
Each API request costs $0.002. The calculation itself uses the attendee and wage values you provide.
What formula does the calculator use?
It multiplies attendee count by average hourly wage, then divides the combined hourly cost by 60.
Which currency should I enter?
Use any one currency consistently. The output has no currency symbol and remains in the same currency as the wage input.
Should I use salary or fully loaded labor cost?
Use the basis that fits your decision, but apply it consistently. Fully loaded labor cost is often better for budgeting; a blended wage may be enough for quick time-boxing.
Does this calculate the total cost of a meeting?
No. It returns the burn rate per minute. Multiply that rate by a duration when you need a rough total.
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/meeting-cost-per-minute \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"attendee_count":8,"average_hourly_wage":75}'const res = await fetch("https://api.kit.forhosting.com/biz/meeting-cost-per-minute", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"attendee_count": 8,
"average_hourly_wage": 75
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/biz/meeting-cost-per-minute",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"attendee_count": 8,
"average_hourly_wage": 75
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/biz/meeting-cost-per-minute", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"attendee_count":8,"average_hourly_wage":75}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"attendee_count":8,"average_hourly_wage":75}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/biz/meeting-cost-per-minute", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"attendee_count": 8,
"average_hourly_wage": 75
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "biz.meeting_cost_per_minute",
"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. |