Future salary calculator
A 50,000 salary with a 3% raise every year reaches 57,963.70 after 5 years, an increase of 7,963.70. Enter today's pay, the yearly raise and the horizon to see the compounded figure before you sign or plan. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Salary
- 50,000
- Raise
- 3
- Years
- 5
- Growth factor
- 1.15927407
- Future salary
- 57,963.7
- Increase
- 7,963.7
A future salary projection answers a planning question that sits between a raise letter and a five-year budget: if this year's pay compounds at a stated annual raise, what will the same role pay after a given number of years? Recruiters, candidates, managers, and household planners all type that query as future salary calculator rather than as a generic compound-growth solver. This tool takes the current salary, an annual raise percentage, and a horizon in years, multiplies the salary by one plus the raise over one hundred raised to the year count, and returns the projected salary together with the absolute increase.
What a future salary projection is and how the figure appears
A future salary is the pay you would earn after a sequence of identical annual raises, not a forecast of promotions, inflation, or job changes. If this year's salary is salary and the annual raise as a percent is raise, then next year's pay is salary times one plus raise divided by one hundred. After years such steps that multiplier has been applied that many times, which is exactly (1 + raise/100) raised to years, and the projected salary is the current salary times that factor.
When the raise is zero the factor is one and the salary is unchanged. When the number of years is zero the same identity returns the original salary, which is the honest answer for a horizon that has not started. A negative raise models a constant pay cut: the quantity shrinks each year, and the projected salary lands below the current figure as long as the raise stays above negative one hundred percent so that the factor stays positive.
What you can do with it
Offer letters and raise negotiations
Turn a current salary, a stated annual raise, and a horizon into the projected paycheck and the absolute increase for candidates, managers, and compensation explainers.
Household multi-year budgets
Project take-home planning figures five or ten years out from today's pay and a planned merit increase without opening a spreadsheet for each scenario.
Classroom compounding checks
Let students submit salary, raise, and years and verify the compounded future salary, including the hard fail when the year count is negative.
FAQ
How is a future salary calculated from a raise and a number of years?
Multiply the current salary by (1 + raise/100) raised to the number of years.
What happens if the number of years is negative?
A negative horizon is not accepted; enter zero or more years for the salary projection. Failed validation is not billed.
Is the annual raise a percent or a decimal fraction?
Enter raise as percent points per year, not as a decimal fraction — three means three percent per year, not 0.03. The engine divides by one hundred before raising the factor.
Can the raise be negative, and what does zero years return?
A negative raise models a constant pay cut and shrinks the projected salary, as long as the raise is greater than −100% so that 1 + raise/100 stays positive. Zero years returns the current salary unchanged.
Does the projection include promotions or inflation?
No. It assumes the same raise every single year, nothing else. Promotions, job changes and inflation are not modelled, so if your raises will vary, project each stretch separately and chain the results.
Related tools
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/fin/future-salary \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"salary":50000,"raise":3,"years":5}'const res = await fetch("https://api.kit.forhosting.com/fin/future-salary", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"salary": 50000,
"raise": 3,
"years": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/fin/future-salary",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"salary": 50000,
"raise": 3,
"years": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/fin/future-salary", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"salary":50000,"raise":3,"years":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"salary":50000,"raise":3,"years":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/fin/future-salary", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"salary": 50000,
"raise": 3,
"years": 5
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "fin.future_salary",
"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. |
Technical notes
When the year count is negative the task fails with invalid_input instead of inventing a reverse-time paycheck.
What a future salary projection is and how the figure appears
A worked example: fifty thousand growing at three percent per year for five years has growth_factor 1.15927407 and future_salary 57963.70 after half-up rounding to two decimal places, so the absolute increase is 7963.70.
Input contract, response shape, and error behaviour
A negative salary is rejected for the same reason a paycheck cannot be a negative number. Pair the result with your own promotion ladder if you need changing percentages; start here when the product question is a transparent, three-input projected salary for a page, a worksheet, or a batch of offer scenarios that already share one raise and one horizon. POST a JSON body with three required finite numbers: salary (the current annual pay that will compound, zero or greater; aliases current_salary, current, amount, pay), raise (the fixed annual raise as a percent such as three for three percent per year; aliases annual_raise, raise_percent, rate, percent), and years (the projection horizon, greater than or equal to zero and at most one hundred; aliases n, horizon, periods). Each field may arrive as a JSON number or as a numeric string. Missing fields, empty strings, booleans, and non-finite values fail with invalid_input naming the field and are not billed. If raise is less than or equal to negative one hundred percent, one plus r is not positive and the power is not a useful real factor, so that case is invalid_input as well. On success the body echoes salary, raise and years; reports growth_factor rounded half-up to eight decimals; returns future_salary and increase rounded half-up to two decimal places as currency; and includes a short formula string restating the identity future_salary equals salary times (1 + raise/100) to the power years.
Where a future salary calculator earns its keep
Household budgets that stretch a current paycheck across five or ten years can pin the increase field next to rent and savings goals. Educators teaching the difference between a one-year raise and a compounded multi-year path can seed classroom examples that show fifty thousand at three percent for five years versus the linear alternative, and can demonstrate the hard fail when someone types a negative year count. Failed validation does not consume balance. Candidates comparing two offers that differ in starting pay and raise policy can post the same three numbers twice and quote a stable future_salary with a two-decimal currency contract. Because the implementation is tier A parse, every successful call costs the published $0.002 base price with no model tokens and no outbound network. Keep the raise above negative one hundred percent, keep years at zero or more, pin the rounded future_salary in tests, and you get reproducible salary projections for widgets, CMS embeds, and edge workers without standing up a spreadsheet service of your own.
Technical questions
What does the future salary calculator cost?
The browser tool is free. API requests use prepaid balance at $0.002 per successful call; invalid input is not billed.