ForHosting KIT · Finance & money

Full-time equivalent calculator

400 hours worked against a 40-hour full-time week is 10 FTE. Enter the group's total hours and the full-time standard for the same period, and get the headcount your budget line asks for, without listing anyone. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Total hours
400
Full time hours
40
You get
Fte
10

Full-time equivalent, or FTE, converts a pile of worked hours into the number of full-time jobs those hours would fill. Finance, payroll, grant, and workforce-planning teams need that single headcount-like figure when part-time, seasonal, and full-time people share the same period and the budget is expressed in FTE, not badges. This full-time equivalent calculator takes two finite numbers — the total hours worked by all employees in a period, and the standard full-time hours for that same period — divides them, and returns the FTE count with the formula shown beside the result.

How total hours and a full-time standard become one FTE count

Full-time equivalent is the labor identity that turns mixed schedules into a single headcount-like total without listing every person. You start with the hours actually worked — or contracted — by everyone in the group during one period, then divide by the hours one full-time person would work in that same period. Four hundred hours against a forty-hour full-time week is ten FTE.

Two thousand eighty hours against a two-thousand-eighty-hour year is one FTE. One thousand six hundred sixty-four hours against that same annual standard is zero point eight FTE, the classic four-day or reduced-hours year. Zero total hours is a legitimate outcome and returns an FTE of zero rather than an error: nobody worked, so the equivalent headcount is zero.

What is not legitimate is a full-time standard of zero hours, because dividing by a zero-hour definition does not produce a full-time equivalent. Negative hours and a negative standard are rejected for the same reason. Both numbers must describe the same period and the same hour unit: do not mix weekly totals with an annual standard, and do not mix overtime-inclusive clocks with a contracted week unless that is the policy you mean to model.

You supply two finite numbers that already share one period; the calculator divides them and rounds the FTE half-up to six decimal places so goldens compare byte-for-byte across runtimes. This is the aggregate finance identity used in budgets, grants, and labor-cost models, not a per-person weekly breakdown and not a payroll engine.

Where a full-time equivalent calculator earns its keep

Controllers open a full-time equivalent calculator when a department reports a lump of hours from payroll and the budget line is still written in FTE, not in clock hours. Grant administrators convert effort hours on a sponsored project into the FTE the agency asked for on the face page, using the institution’s annual full-time standard rather than a weekly roster.

Shared-service and outsourcing desks quote coverage as FTE so a client who buys eight hundred hours in a month can see how many full-time seats that buy represents against a one-hundred-sixty-hour month. Workforce planners who already summed hours in a spreadsheet do not want to re-key every name; they want the two-number identity that matches the line they will put in the board pack. Failed validation does not consume balance.

If you instead need a named staff list with a per-person weekly breakdown, that is a different search and a different input contract; this calculator is the aggregate hours-over-standard identity finance teams already use on a single line.

Budget line from a payroll hour dump

Controllers take total hours from payroll and divide by the policy full-time standard so a mixed-hours department becomes one FTE figure on the budget line.

Grant effort converted to agency FTE

Sponsored-project desks convert effort hours on a grant into the FTE the agency requested, using the institution’s annual full-time hour standard.

Shared-service coverage quoted as seats

Outsourcing teams turn a block of billed hours into FTE seats against a monthly full-time standard so coverage quotes match the client’s headcount language.

Can total hours be zero?

Yes. Zero total hours against a positive full-time standard returns an FTE of zero, which is the honest result when nobody worked in the period.

How do I calculate FTE from total hours?

Divide the hours worked by everyone in the period by the hours one full-time person works in that same period. With 400 hours and a 40-hour week, the result is 10 FTE, rounded to six decimals.

Which full-time standard should I use?

Use the hours your budget or policy defines as one full-time job for the period you are measuring: a 40-hour week, a shorter contracted week, or an annual standard if your hours are yearly totals.

Can I compare weekly hours with an annual standard?

No. Both numbers must cover the same period and the same kind of hours. Mixing a weekly total with a yearly standard, or overtime clocks with a contracted week, gives a figure that means nothing.

What if the full-time standard is zero?

The calculation stops instead of returning a number, because dividing by a zero-hour definition of a full-time job has no meaning. A negative standard or negative hours are refused for the same reason.

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.

POSThttps://api.kit.forhosting.com/fin/full-time-equivalent

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.

curl -X POST https://api.kit.forhosting.com/fin/full-time-equivalent \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"total_hours":400,"full_time_hours":40}'
{
  "total_hours": 400,
  "full_time_hours": 40
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "fin.full_time_equivalent",
  "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.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

A full-time standard of zero hours is rejected with invalid_input and is not billed, because dividing by a zero-hour definition does not produce an FTE.

How total hours and a full-time standard become one FTE count

The identity this calculator uses is fte equals total_hours divided by full_time_hours. This endpoint does not walk a named staff roster, does not apply overtime multipliers, does not decide benefits eligibility, and does not annualise a stub period.

Input contract, response shape, and error behaviour

A negative full-time standard is also rejected, because a period definition cannot be less than zero. Zero total hours are allowed: a period with no worked hours against a positive standard produces an FTE of zero, which is the honest going-in result rather than a clamped count. Example: four hundred of total hours and forty of full-time hours yield an FTE of ten. POST a JSON body with two required finite numbers. total_hours is the hours worked by all employees in one period; aliases hours, hours_worked, and total_hours_worked map to the same field so a worksheet can keep its column names. full_time_hours is the standard hours one full-time person works in that same period — a forty-hour week, a thirty-five-hour week, a two-thousand-eighty-hour year, or whatever policy your budget uses; aliases standard_hours, fte_hours, and ft_hours are accepted. Each numeric field may arrive as a JSON number or a numeric string. Missing fields, empty strings, and non-finite values fail with invalid_input naming the field. Negative total_hours is rejected for the same reason. Those failures are not billed. On success the body echoes total_hours and full_time_hours, then reports fte as the rounded count, plus a formula string restating the identity. Pair the JSON with your own note for which hours you counted — regular time only, overtime included, paid leave included — because this endpoint divides the two numbers you send; it does not rebuild a timesheet, strip absences, or convert pay frequencies. Keep full_time_hours strictly positive, pin the rounded FTE in tests, and you get a reproducible full-time equivalent for teasers, LMS plugins, and edge workers without standing up a human-capital management database of your own.

How is full-time equivalent calculated from hours?

Send finite numbers total_hours (greater than or equal to zero) and full_time_hours (strictly greater than zero). The API returns fte = total_hours / full_time_hours, rounded half-up to six decimal places.

What happens if full-time hours is zero?

The task fails with invalid_input. Full-time equivalent is undefined when the full-time standard is zero, so the request is not billed.

Do the two numbers have to cover the same period?

Yes. Both total_hours and full_time_hours must describe the same period and the same hour unit — a week, a month, or a year — or the ratio will not mean FTE for that period.

What does the full-time equivalent calculator cost?

The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.

Read the full KIT documentation →