Raise percentage calculator
This raise percentage calculator turns two salary amounts into a clear, comparable pay change.
Run — free
Enter the salary before the change and the salary after it, using the same currency and pay period for both. The result shows the monetary difference and the percentage change relative to the old salary. It works for annual salaries, monthly pay, weekly wages, or any other consistent period, making it useful for reviewing an offer, checking a promotion, planning compensation budgets, or documenting a pay adjustment.
Enter salaries on a consistent basis
Start with the salary that applied before the change and the salary that will apply afterward. Both figures must describe the same pay period and use the same currency. For example, compare an annual salary with another annual salary, or a monthly salary with another monthly salary. Do not compare monthly take-home pay with annual gross pay, because the resulting percentage would describe the mismatch in units rather than a genuine raise. The old salary must be greater than zero because it is the baseline used as the denominator in the percentage formula. The new salary may be zero or greater. Decimal values are accepted, so the calculator can also work with hourly rates when both entries are hourly. Use contractual base salary figures if you want to isolate a base-pay raise. If bonuses, commissions, allowances, or equity are included in one figure but not the other, the percentage will not represent a like-for-like change. Decide what compensation components matter, build both salary figures using the same definition, and then enter them here.
Understand the percentage calculation
The calculator first subtracts the old salary from the new salary to find the salary difference. It then divides that difference by the old salary and multiplies the result by 100. Suppose the old salary is 50,000 and the new salary is 55,000. The difference is 5,000, and 5,000 divided by 50,000 equals 0.10, so the raise percentage is 10 percent. The old salary is always the reference point; reversing the two values changes both the sign and the denominator, so it does not produce an equivalent result. A new salary equal to the old salary returns a zero difference and a zero percentage. If the new salary is lower, the calculator returns a negative difference and a negative percentage, which identifies a pay decrease without hiding it behind an error. Salary amounts are rounded to two decimal places in the output, while the percentage is rounded to four decimal places so that smaller adjustments remain visible and reproducible.
Use the result in a compensation decision
Treat the percentage as one precise description of the salary change, not as a complete verdict on an offer. A 6 percent raise can have different real value depending on inflation, taxes, benefits, working hours, location, responsibilities, bonus eligibility, and the timing of the increase. Compare the returned salary difference with any changes in fixed costs or benefits, and consider whether the new role adds duties that should influence the target salary. Employers can use the same calculation to check that planned adjustments match a compensation policy or to compare proposed increases across employees on a consistent mathematical basis. Employees can use it to verify a letter, prepare for a negotiation, or distinguish a base-pay increase from a change in total compensation. The calculator does not estimate tax, purchasing power, market salary, or compound growth across several years. For multi-year analysis, calculate each step against its immediately preceding salary or compare the final salary directly with the original baseline, clearly labeling which interpretation you use.
What you can do with it
Verify a promotion offer
Compare the current and proposed salaries to confirm the exact monetary increase and percentage raise.
Prepare for salary negotiation
Convert a proposed salary figure into a percentage change that can be discussed against a target or market benchmark.
Review compensation budgets
Check individual planned salary adjustments with one consistent formula before approving a payroll change.
FAQ
What formula calculates the raise percentage?
Subtract the old salary from the new salary, divide the difference by the old salary, and multiply by 100.
Can I use monthly or hourly pay instead of annual salary?
Yes. Any pay period works as long as both amounts use the same period, currency, and compensation basis.
What happens if the new salary is lower?
The result is a negative salary difference and a negative percentage, clearly representing a pay decrease.
Does the result account for inflation or taxes?
No. It measures the nominal change between the two supplied salary amounts and does not estimate taxes, inflation, benefits, or purchasing power.
How much does the API calculation cost?
Each API request costs $0.002. The browser calculator can be used directly on this page.
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/finance/raise-percentage \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"old_salary":50000,"new_salary":55000}'const res = await fetch("https://api.kit.forhosting.com/finance/raise-percentage", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"old_salary": 50000,
"new_salary": 55000
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/finance/raise-percentage",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"old_salary": 50000,
"new_salary": 55000
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/finance/raise-percentage", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"old_salary":50000,"new_salary":55000}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"old_salary":50000,"new_salary":55000}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/finance/raise-percentage", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"old_salary": 50000,
"new_salary": 55000
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "finance.raise_percentage",
"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. |