ForHosting KIT · Finance & money

Annual pay calculator

An hourly rate is hard to compare until it is multiplied out: 25 an hour for 40 hours a week over 52 weeks is 52,000 in gross yearly pay. Put two offers side by side on the same scale. 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 wage
25
Hours per week
40
Weeks per year
52
You get
Annual pay
52,000
Weekly pay
1,000

The annual pay calculator turns an hourly wage into the number that actually matters when you compare jobs, negotiate a contract or plan a budget: your gross yearly earnings. You provide the hourly rate, the hours you work each week and the weeks you work each year, and it returns the total pay for the year along with the weekly figure, with no sign-up, no spreadsheet and no rounding surprises.

From an hourly rate to a yearly number

Hourly wages are hard to compare because nobody lives week to week in the same way. One job offers thirty dollars an hour for forty hours a week all year; another offers thirty-five but only guarantees thirty hours and shuts down for two weeks every summer.

Which one pays more over a year is not obvious until you multiply it out, and that is exactly what this annual pay calculator does in a single deterministic step: it multiplies your hourly wage by your hours per week to get gross weekly pay, then multiplies that by the weeks you actually work in a year to get gross annual pay. The result is a pre-tax, pre-deduction figure — the top-line number every negotiation, loan application and household budget starts from.

Because the formula is fixed and there is no estimation involved, the same inputs always produce the same output, which makes it safe to embed in automated checks, offer-comparison spreadsheets and payroll validation pipelines where a guessed number would be worse than no number at all.

Getting the inputs right

The three inputs look simple, but each one carries a judgment call that changes the answer. The hourly wage is usually straightforward — your contracted rate before any overtime premium. Hours per week should reflect what you genuinely work on a typical week, not the theoretical maximum: if your schedule averages thirty-two hours, using forty inflates the yearly figure by a quarter.

Weeks per year is where most people go wrong. A full calendar year has fifty-two weeks, but if you take two weeks of unpaid leave, the honest figure is fifty; seasonal workers might use forty or fewer. Zero is accepted for any field and simply yields zero pay, which is useful when modelling a sabbatical or a gap between contracts.

Where teams actually use it

Individually, people reach for this calculation when an offer lands and they need to compare it against a salaried position quoted per year — converting the hourly rate to annual pay puts both offers on the same scale. Recruiters and HR teams use it in the opposite direction, sanity-checking that a posted hourly rate meets a promised yearly range before an ad goes live. Developers wire it into onboarding flows, benefits estimators and gig-economy dashboards where projected yearly earnings must be shown next to the hourly figure.

It also appears in freelance quoting tools, where translating a day rate into a yearly equivalent helps set sustainable prices. There is no account to create for the free version and no rate to negotiate for the paid one.

Compare an hourly offer with a salaried one

Convert the hourly offer to gross annual pay so both offers sit on the same yearly scale before you negotiate.

Project earnings on a variable schedule

Model realistic hours per week and weeks per year — including unpaid leave or seasonal shutdowns — to see the honest yearly total.

Is the result before or after tax?

Before. The figure is gross pay: hourly wage times hours per week times weeks per year, with no taxes, deductions or overtime premiums applied.

What happens if I pass a negative number?

A negative wage, hours or weeks value has no real-world meaning and usually indicates a sign error upstream.

Can I pass zero weeks to model unpaid time off?

Yes. Zero is a valid value for any field and simply produces zero pay, which is useful for modelling sabbaticals or gaps between contracts.

How many weeks per year should I use?

Fifty-two for a full year of paid work, fewer if you take unpaid leave — for example fifty for two weeks off. Use the number that reflects the weeks you actually work.

Is my data stored?

No. The inputs are used for the multiplication and discarded; only the computed result is returned.

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/annual-pay

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/annual-pay \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"hourly_wage":25,"hours_per_week":40,"weeks_per_year":52}'
{
  "hourly_wage": 25,
  "hours_per_week": 40,
  "weeks_per_year": 52
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "fin.annual_pay",
  "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.

It runs free in your browser on this page, and the exact same computation is available as an API call for $0.002 per request when you need to automate it inside payroll checks, offer comparisons or financial planning tools.

Getting the inputs right

Negative values, on the other hand, are rejected with an invalid_input error, because a negative wage or a negative week count has no real-world meaning and almost always signals a sign error upstream in the calling code that should be fixed rather than silently multiplied through.

Where teams actually use it

The API charges $0.002 per request and runs on our global edge with nothing stored afterwards; the identical code runs free in your browser on this page, so you can validate a figure by hand and only pay when you automate it at volume.

Validate payroll figures automatically

Call the API in a pipeline to recompute expected annual pay from contracted rates and flag discrepancies before payday.

What does it cost?

$0.002 per request via the API. It is also completely free to run in your browser on this page.

Read the full KIT documentation →