ForHosting KIT · Finance & money

Consulting fees calculator

Ten hours at 150 an hour plus a 500 retainer comes to a 2,000 consulting fee, 1,500 of it billed time. Enter your rate, the hours and any retainer to get the single number that goes at the bottom of an engagement letter. 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
Hourly rate
150
Hours worked
10
Retainer
500
You get
Hourly subtotal
1,500
Total fee
2,000

Independent consultants, boutique firms, and in-house project offices all need a single number they can put on an engagement letter: the total fee for a block of billed time plus any fixed retainer. This calculator accepts a non-negative hourly rate, the hours already worked or planned, and an optional retainer, then returns the total consulting fee as a deterministic sum.

What the consulting fee identity covers, and what it leaves out

Consulting fees are almost always a hybrid: a billable-hour component that scales with time, plus a fixed retainer that does not. Searchers who type consulting fees calculator want that hybrid as one number they can paste into a proposal, a statement of work, or an invoice, without opening a spreadsheet that silently changes the decimal separator. Hours may be fractional because professional services bill in tenths and quarters; seven and a quarter hours at one hundred eighty-five is a legal input, not something to round up in secret.

Zero hours describe a retainer-only kickoff: the total is then exactly the retainer, which is how many boutique firms take a project on. Zero hourly rate describes complimentary time on a retained account and still produces a finite total. Negative hours cannot describe either a past timesheet or a planned block of work, so they fail instead of printing a credit a form might treat as cash already paid.

The calculator does not withhold income tax, does not apply sales tax, does not convert currencies, and does not amortize a retainer across a calendar: those belong in the engagement letter. Money fields round to two decimals so they match invoices.

Where a consulting fees calculator earns its keep

Proposal generators and practice-management tools rank for consulting fees calculator because a client thinks in the number at the bottom of the letter, not in a rate card. Staffing desks and independent contractors live on timesheets; multiplying the rate by hours and adding the monthly retainer gives the same invoice total without forcing a bookkeeper to remember whether the retainer was already included in a cell formula.

Educators teaching engagement economics can seed classroom examples that fail loudly on negative hours instead of silently printing a minus sign a student might treat as a refund. Failed validation does not consume balance. Keep the rate, the hours, and the retainer non-negative, pin the rounded money fields in tests, and you get a reproducible consulting fee for widgets, course modules, and edge workers without standing up a billing engine of your own.

Engagement letter total

Turn an agreed hourly rate, the hours in the statement of work, and a kickoff retainer into the single payable figure that belongs at the bottom of the letter.

Timesheet plus retainer invoice

Convert recorded hours at the contract rate into an hourly subtotal, then add the period retainer so the invoice matches the timesheet without a spreadsheet cell.

Retainer-only kickoff

Price a start-of-work retainer with zero hours billed yet, so the total fee equals the retainer until time starts to accrue.

Is the retainer required?

No. retainer is optional and defaults to zero, so a pure hourly engagement still produces a total. When you do send a retainer, it must be a finite non-negative amount in the same currency as the hourly rate.

Can I bill fractional hours?

The hourly subtotal is rate times those hours, then rounded to two decimals with the retainer.

Does the total include taxes?

No. It does not withhold income tax or add sales tax, and it does not convert currencies. Those belong in the engagement letter or invoice, on top of the fee this calculator returns.

Can I quote a retainer-only engagement?

Yes. Enter zero hours and the total is exactly the retainer, which is how many boutique firms open a project before any time has been billed.

Why is the hourly subtotal shown separately?

So you and the client can see whether the billed hours or the fixed retainer dominate the fee before anyone signs. In the example, 1,500 of the 2,000 total comes from time.

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/consulting-fees

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/consulting-fees \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"hourly_rate":150,"hours_worked":10}'
{
  "hourly_rate": 150,
  "hours_worked": 10
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "fin.consulting_fees",
  "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.

max_abs_value1000000000000000
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.

The identity is simple and auditable: total_fee equals hourly_rate times hours_worked plus retainer. Zero hours are allowed when the engagement is retainer-only; negative hours cannot describe work that happened, so they fail with invalid_input instead of printing a credit that a proposal might treat as cash.

What the consulting fee identity covers, and what it leaves out

The identity this tool uses is the one those documents already imply: total_fee equals hourly_rate times hours_worked plus retainer. hourly_subtotal is the time component on its own, so a reviewer can see whether the retainer or the hours dominate before they sign.

Input contract, response shape, and error behaviour

POST a JSON body that supplies hourly_rate and hours_worked. hourly_rate is the agreed billable rate in a single currency unit, a finite number that is not negative, with aliases rate, hourly, bill_rate, consulting_rate, and hourly_fee. hours_worked is the hours already recorded or the hours the statement of work plans to cover, a finite number that is not negative, with aliases hours, hrs, billed_hours, and time_worked. Fractional hours are accepted so a timesheet in tenths does not have to be padded to a whole hour. retainer is optional: a finite non-negative amount due regardless of hours, defaulting to zero when omitted, with aliases fixed_retainer, retainer_fee, fixed_fee, and retainer_amount. Each numeric field may arrive as a JSON number or as a numeric string. Missing hourly_rate, missing hours_worked, empty strings, non-finite values, a negative hourly rate, a negative retainer, or a magnitude above the declared limit fail with invalid_input naming the field and are not billed. Negative hours_worked is the error this landing exists to catch: the message contains hours_worked and must not be negative so a form can highlight that control instead of showing a global alert. On success the body echoes the three inputs after rounding, hourly_subtotal as rate times hours, total_fee as the payable amount, and a formula string restating the identity. Example: hourly_rate of one hundred fifty, hours_worked of ten, and retainer of five hundred yields hourly_subtotal one thousand five hundred and total_fee two thousand. Example: hourly_rate of seventy-five point five with eight point five hours and no retainer yields six hundred forty-one dollars and seventy-five cents. Pair the total with your own tax table if the invoice needs net of withholdings; this endpoint computes the consulting fee only.

Where a consulting fees calculator earns its keep

Household and small-business budget apps can store the returned total_fee as a scheduled outflow, then let the user layer tax and expenses on top rather than reverse-engineering a blended figure. Legal and marketing boutiques can call the same pure module from the browser for a free preview and from the API when they persist a scenario, guaranteeing that the number a visitor saw on a landing page is the number stored after they save.

How is the total consulting fee calculated?

Multiply the non-negative hourly_rate by hours_worked to get hourly_subtotal, then add the optional retainer (zero when omitted). The API returns that sum as total_fee, rounded to two decimals, plus the inputs and the formula string.

Why does the calculator reject negative hours worked?

Negative hours cannot describe a timesheet or a planned block of work. hours_worked below zero fails with invalid_input and is not billed, instead of returning a negative fee that a form might display as a credit already paid.

What does the consulting fees calculator cost?

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

Read the full KIT documentation →