ForHosting KIT · Finance & money

Hours pay calculator

Enter 48 hours at 20 an hour with time-and-a-half after 40, and you get 800 in regular pay, 240 in overtime and 1,040 gross. You give the total hours; the overtime split is done for you. 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
20
Hours worked
48
Overtime multiplier
1.5
You get
Overtime threshold
40
Regular hours
40
Overtime hours
8
Ot hourly rate
30

Figuring gross pay from a timesheet should not require a spreadsheet template or a napkin full of rate times hours arithmetic. This hours pay calculator takes the three everyday payroll inputs people already have after a shift or a workweek—the total hours worked, the base hourly rate, and the overtime multiplier that applies to extra hours above a cutoff—and returns regular pay, overtime pay, and gross pay, all rounded cleanly to two decimal places. Extra hours are computed for you: hours up to the overtime threshold are paid at the base rate, and hours beyond that threshold are paid at the rate times the multiplier. The threshold defaults to forty so a standard weekly timesheet works without extra fields; send a different cutoff when you pay daily overtime after eight hours or follow a local weekly rule.

How extra hours, overtime pay, and gross pay are computed

The core formulas are the ones people already use by hand on a timesheet, except the extra-hour split is done for you. Regular hours equal the smaller of hours worked and the overtime threshold. Overtime hours equal the larger of hours worked minus the threshold and zero.

Regular pay equals hourly rate times regular hours. Overtime pay equals hourly rate times overtime multiplier times overtime hours. Gross pay is the sum of those two lines.

Intermediate products use ordinary floating-point arithmetic, then every money field is rounded half-up to two decimal places so results look like currency on a payslip rather than long binary fractions. Example: a rate of twenty, forty-eight hours worked, a multiplier of one point five, and the default forty-hour threshold yields forty regular hours, eight overtime hours, eight hundred in regular pay, two hundred forty in overtime pay, an effective overtime rate of thirty, and a gross of one thousand forty after rounding.

If hours stay at or below the threshold, overtime hours and overtime pay are zero and gross pay is simply rate times hours. Equal math for every jurisdiction is intentional product scope: statutory tables, seventh-day rules, and tax withholding would be different search intents and different contracts.

Everyday uses and sensible limits

Call the free in-browser hours pay calculator for weekly estimates, side-gig invoices, classroom payroll exercises, and quick manager checks without installing another app. Keep rates and hours within ordinary commercial ranges; extreme values are rejected so isolate math stays bounded. The product promise is gross pay from total hours worked, a base hourly rate, and an explicit multiplier for extra hours above a cutoff—not automatic legal classification of overtime, multi-rate shift differentials, or local statutory overtime tables.

Those belong in specialized tools with different SEO intent, such as a jurisdiction-named overtime page or a calculator that already asks you to split regular and overtime hours yourself. Failed validation, including a negative hourly rate, is not billed.

Weekly paycheck from total hours

Workers and managers enter hours worked, the base hourly rate, and the company overtime multiplier to see regular, overtime, and gross pay before deductions.

What happens if the hourly rate is negative?

Negative wages are not a valid gross-pay input and are not charged.

How are extra hours determined?

The threshold defaults to 40. You do not pre-split regular versus overtime hours.

Is the hours pay calculator free?

The browser tool runs free on your device.

Can I change the 40-hour overtime cutoff?

Yes. The cutoff is 40 hours unless you set another one, so you can use 8 for daily overtime or follow a local weekly rule. Hours up to the cutoff are paid at the base rate.

Does it apply legal overtime rules or deduct tax?

No. The same arithmetic applies everywhere: it does not decide which hours legally count as overtime, does not apply seventh-day rules or shift differentials, and does not withhold tax. The result is gross pay.

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/hours-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/hours-pay \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"hourly_rate":20,"hours_worked":48,"overtime_multiplier":1.5}'
{
  "hourly_rate": 20,
  "hours_worked": 48,
  "overtime_multiplier": 1.5
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "fin.hours_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.

A negative hourly rate is rejected with a clear invalid_input error, because a negative wage does not describe a valid gross-pay calculation.

Inputs: hours worked, hourly rate, overtime multiplier, and optional threshold

Negative hour counts, negative multipliers, and negative thresholds are also rejected so accidental sign flips fail loudly instead of inventing absurd negatives on a payslip. All validation happens before any money math, so bad requests never produce half-filled pay rows. You send total hours, not a pre-split of regular versus overtime: the calculator performs that split from the threshold you chose or the default of forty. Send a JSON body with three required fields and one optional cutoff. Hours worked is the total time on the clock for the pay window as a non-negative finite number or numeric string; aliases hours, hrs, total_hours, and weekly_hours are accepted when your client already names the field differently. Hourly rate is the base wage per hour as a non-negative finite number or numeric string; aliases rate, wage, hourly, and pay_rate map to the same value so form builders can keep familiar labels. Overtime multiplier is the premium expressed as a multiple of the base rate—for example one point five means time-and-a-half and two means double time—not a percentage of the wage; aliases multiplier, ot_multiplier, ot_rate, and premium map to the same field. Overtime threshold is optional and defaults to forty hours, the common weekly straight-time ceiling; aliases threshold, ot_threshold, regular_limit, and cutoff let you name a daily eight-hour rule or a local weekly cap without changing the rest of the contract. Negative hourly rates fail validation with invalid_input because they do not describe a normal paycheck. Extremely large rates, hour totals, multipliers, or thresholds are capped so Worker isolate math stays bounded. Missing any required field fails with invalid_input naming the missing key.

How extra hours, overtime pay, and gross pay are computed

The response also returns ot_hourly_rate as hourly rate times the multiplier so user interfaces can show the effective overtime wage next to the base rate. The response echoes the normalized hourly rate, hours worked, overtime threshold, and overtime multiplier, then returns regular hours, overtime hours, ot_hourly_rate, regular_pay, overtime_pay, and gross_pay, plus currency_decimals equal to two and method equal to hours_pay_gross for stable client branching. Identical inputs always produce identical JSON because the path is pure arithmetic with no network, no random seed, and no wall clock.

API usage, pricing, workflows, and practical limits

Use the prepaid API when an HR bot, freelancing dashboard, staffing portal, or timesheet helper needs a stable KIT contract at $0.002 per successful item; validation failures never consume balance after the engine rejects the request. Pair this endpoint with tax or deduction tools only if you already know net-pay rules separately—this capability does not withhold taxes, apply benefits, or convert currencies. Authors shipping SDKs can map regular_pay, overtime_pay, and gross_pay directly into payslip interfaces and estimate messages. When you cite the API price in product copy, use the catalog placeholder $0.002 so published pages stay aligned with the live price floor.

Daily overtime for shift work

Set overtime_threshold to eight and the same multiplier to price a long shift: hours above eight are extra hours at the premium rate.

HR bots and contractor invoices

Bots and mini-apps call a stable prepaid endpoint instead of reimplementing hours-to-gross math and negative-rate guards in every language.

How do I calculate pay from hours worked?

Send JSON with hours_worked, hourly_rate, and overtime_multiplier (for example 1.5). Extra hours above overtime_threshold (default 40) are paid at the premium. The response includes regular_pay, overtime_pay, and gross_pay rounded to two decimals.

Is overtime_multiplier a percentage or a multiple of the wage?

It is a multiple of the base hourly rate. Use 1.5 for time-and-a-half and 2 for double time, not 150 or 50 percent.

Read the full KIT documentation →