One annualised number per offer
Base, target bonus, 401(k) match, equity divided by the vest period, signing divided by the vest period. Everything on the same footing.
ResumeAI’s free job offer comparison calculator puts up to three offers on the same annual footing — base, target bonus, 401(k) match, plus equity and signing spread over the vest period — models the vesting cliff, refresher grants and match vesting year by year, and then adjusts for a cost-of-living index, commute cost and remote days. It uses only the numbers you enter and looks up no salary or cost-of-living data of its own. It runs entirely in your browser with no account.
Fill in what each offer actually says. Everything stays on this device, and nothing is estimated for you.
Nine capabilities, including the things it deliberately will not do.
Base, target bonus, 401(k) match, equity divided by the vest period, signing divided by the vest period. Everything on the same footing.
A ranked table with the leader highlighted and the gap to best in dollars, so you can see whether the difference is decisive or noise.
The index defaults to 100, meaning no adjustment. You supply your own from a public source; the tool ships no index and no salary data at all.
A stacked bar per offer showing base against bonus, match, equity and signing — so an offer leaning on unvested equity is obvious at a glance.
A row per vest year showing base, bonus, match, equity and the signing bonus landing whole in year one — with the cliff, refresher grants and 401(k) match vesting applied.
The sensitivity view finds the smallest change to a single one of the leader's inputs that would put the runner-up ahead, and says plainly when there is no such change.
Name and keep more than one comparison in this browser, switch between them, and print the ranked, vesting and sensitivity tables together as a PDF.
Paid time off is priced at your own daily rate and shown, but never added to the total — it is already inside a salary. Relocation is shown but never annualised. Remote days only reduce the commute you entered.
No account, no upload, no network request. Your figures persist in this browser's localStorage so they survive a refresh.
Three steps, and one honest caveat.
Base, target bonus percentage, signing bonus, total equity grant and its vest period, and the 401(k) match. Only what is written down.
Leave it at 100 for no adjustment, or enter an index from a public source. Use the same source for every offer so the comparison holds.
The table shows the dollar gap to the leader. A gap inside a few thousand a year is noise; a gap of tens of thousands is a real signal.
The whole calculation, written out. Nothing is estimated for you and nothing is looked up.
| Input | How it is treated | Counted in the total? |
|---|---|---|
| Base salary | Counted in full in every year of the vest period. Also the rate PTO and the 401(k) match are priced against. | Yes |
| Signing bonus | Divided by the vest period in the ranked comparison; the year-by-year table shows it landing whole in year one, because that is when it arrives. | Yes |
| Target bonus % | Applied to base salary and counted in every year. | Yes |
| Equity grant (total) | Vested across the vest period, cliff-aware, then levelled to a per-year figure for the ranking. | Yes |
| Vest years | The period equity and the signing bonus are spread over, and the number of rows in the year-by-year table. | Yes |
| Cliff (months) | Nothing vests before it. On an annual model a cliff of twelve months or less leaves the year-one total unchanged — only a longer cliff moves value out of year one. | Yes |
| Refresher grant / yr | An additional grant delivered in each year from the start year you set. Nothing here invents a refresher for you. | Yes |
| Refresher starts in year | The first year the refresher above is delivered. | Yes |
| Your share-price growth assumption % | Compounds each year's vested equity. It defaults to 0, which means the shares are worth what they are worth today. Anything above 0 is your forecast, not ours. | Yes |
| 401(k) match % | Applied to base salary and added each year, subject to match vesting below. | Yes |
| Match vest years | Graded vesting over the running match balance. 0 means the match is yours immediately; a schedule no longer than the equity vest changes when it lands, not the horizon total. | Yes |
| PTO days | Priced at your own daily rate and shown — but deliberately never added to total compensation, because paid days off are already inside a salary. It does raise the effective daily rate, which is the honest way time off changes a comparison. | Shown, not added |
| Work days per year | Your own figure, editable, defaulting to 260. It is the divisor for the daily rate and the effective daily rate. | Shown, not added |
| Remote days / week | Reduces the commute cost by that share of the week — a commute you do not make costs nothing. It is not priced as a benefit in any other way. | Yes, via commute |
| Commute cost / month | Multiplied by 12, reduced by the remote share above, then subtracted from the cost-of-living-adjusted figure. | Yes |
| Relocation (one-off) | Shown in the table; never annualised, because it happens once. | Shown, not added |
| Your cost-of-living index | Divides annualised comp as a percentage of a baseline of 100. It defaults to 100, meaning no adjustment. The tool ships no index — you supply one. | Yes |
Put both on the same annual footing before you compare anything. Add base salary, the target bonus as a percentage of base, the 401(k) match as a percentage of base, and then divide the total equity grant and the signing bonus by the vest period so a four-year grant is not counted as year-one money. That gives a comparable annualised figure. Only then adjust for where you would live and what the commute costs. The calculator on this page does that arithmetic for up to three offers at once.
Divide the grant by its vest period to get an annual figure, and enter the value at grant rather than a hoped-for future value. For public-company RSUs that number is reasonably solid. For private-company options it is a guess dressed as a number — the strike price, the preference stack, and whether a liquidity event ever happens all sit between the grant and any cash. This calculator takes whatever value you enter and never estimates one for you, precisely because nobody can honestly estimate it from the outside.
Include it, but spread it over the same vest period you use for equity rather than adding it whole to year one. A signing bonus is a one-off, and treating it as recurring salary is how a lower-paying offer wins on paper. Also check the clawback: many are repayable in full if you leave inside twelve or twenty-four months, which makes them closer to a loan than to compensation.
A cost-of-living index expresses how expensive one place is relative to a baseline, usually set at 100. An index of 130 means roughly 30% more expensive than the baseline, so the same salary buys less. This calculator ships no index of its own — it defaults to 100, meaning no adjustment, and you enter your own. Numbeo publishes a widely used crowd-sourced index, the OECD publishes comparative price levels between countries, and most national statistics offices publish regional equivalents. Pick one source and use it for every offer so the comparison stays internally consistent.
No. Every part of the calculator is free and unlocked: all seventeen inputs, up to three offers, the ranked table, the year-by-year vesting table, the sensitivity view, saved scenario sets and Print or Save as PDF. Nothing here is behind a signup wall. The only two things a free ResumeAI account adds anywhere in these tools are AI rewriting of your own writing and uploading an existing PDF or DOCX resume, and neither of those is part of comparing offers.
No. It is arithmetic on the seventeen numbers you type, and the page publishes a table showing how each one is treated. It carries no salary benchmarks, no cost-of-living index, no tax model and no equity multiplier — the cost-of-living field defaults to 100, meaning no adjustment, and the share-price growth field defaults to 0, meaning the shares are worth what they are worth today. It is not a score, not a model, and not a prediction of which offer is better for you.
Less than most people expect. The year-by-year table is an annual model, so a twelve-month cliff on a four-year grant still delivers a quarter of the grant by the end of year one — the rows look identical to a grant with no cliff at all. Only a cliff longer than twelve months actually moves value out of year one. The same is true of 401(k) match vesting: unless the match schedule runs longer than the equity vest, it changes when the money lands, not the total across the horizon.
Only in this browser's localStorage on this device, under the key cvai:tools:offers:v2. If you used an earlier version of this page, the older cvai:tools:offers:v1 key is read once, copied into the new one, and then deliberately left in place as a backup rather than deleted. Nothing is uploaded, there is no account, and the page makes no network request while you use the calculator — you can confirm that in your browser's devtools. Clearing site data or switching devices erases the figures.
No, and the calculator is explicit about where it stops. Paid time off is priced at your own daily rate and shown, but never added to total compensation — a salaried person's paid days off are already inside their base salary, so adding them would double-count and quietly favour whichever offer has the better holiday policy. What PTO does change is the effective daily rate: the same cash spread over fewer worked days. Remote days only reduce the commute cost you entered, and a one-off relocation payment is shown but never annualised. Beyond that, a gap of a few thousand a year is usually noise next to the work itself, the people you would report to, and whether the role moves you toward what you want next.
Nothing in this calculator. Every input, the ranked table, the year-by-year vesting table, the sensitivity view, saved scenario sets and Print / Save as PDF are free, with no signup and no upload. There are exactly two things a free ResumeAI account adds anywhere in these tools, and they are the same two on every page:
Both are marked as needing an account before you click them, never after. No card, and nothing you typed here is sent anywhere.
Authored by the ResumeAI team — the engineers and recruiters behind the platform. The calculator contains no salary tables, no cost-of-living data and no tax model; it is arithmetic on the figures you type, and you can confirm in your browser’s devtools that it makes no network request. Last reviewed .
Thirteen sections, three templates, print to PDF
A six-stage board with search, sort and a quiet-card flag
Score your resume against any job description
See your resume and a job description in vector space
Up to six paragraphs, three tones, three lengths
Compose XYZ bullets and see exactly which rules they miss