A bonus check almost always looks smaller than the number your boss quoted. That is not a mistake. It is withholding, and the math is simple enough to put in a function.

I added a bonus estimator to SalaryPayTools, a small site of free US pay calculators. Here is what it models and why.

The three pieces of a bonus check

For a separately paid cash bonus (US W-2, 2026), the estimate has three parts:

  1. Federal income tax withholding. Many employers use the optional flat percentage method for supplemental wages: 22% up to $1 million in the calendar year, 37% on the part above that.
  2. Social Security. 6.2% up to the 2026 taxable maximum of $184,500.
  3. Medicare. 1.45% on all covered wages, plus an extra 0.9% on wages above $200,000.

State and local withholding vary too much to guess, so the calculator takes an optional percentage from you instead of picking one from your location.

Worked example

A $10,000 bonus, $60,000 already earned this year, no state withholding:

Gross Federal 22% FICA 7.65% You receive
$1,000 $220 $76.50 $703.50
$5,000 $1,100 $382.50 $3,517.50
$10,000 $2,200 $765 $7,035
$20,000 $4,400 $1,530 $14,070

So a $10,000 bonus lands around $7,035, or 70.35%.

The core logic

const FEDERAL_RATE = 0.22; const FEDERAL_HIGH_RATE = 0.37; // above $1M supplemental wages const SS_RATE = 0.062; const SS_CAP = 184_500; const MEDICARE_RATE = 0.0145; export function bonusAfterTax( bonus: number, priorSupplemental = 0, ssWagesYtd = 0, statePct = 0 ) { const lowPart = Math.max(0, Math.min(bonus, 1_000_000 - priorSupplemental)); const highPart = bonus - lowPart; const federal = lowPart * FEDERAL_RATE + highPart * FEDERAL_HIGH_RATE; const ssBase = Math.max(0, Math.min(bonus, SS_CAP - ssWagesYtd)); const ss = ssBase * SS_RATE; const medicare = bonus * MEDICARE_RATE; const state = bonus * (statePct / 100); return bonus - federal - ss - medicare - state; } 

(A simplified sketch of the idea, not the site's exact code. The additional 0.9% Medicare is left out here.)

The thing people get wrong

The "22% bonus tax" is a withholding procedure, not a special tax bracket. At filing time your bonus is taxed like the rest of your income, so you can be over-withheld or under-withheld. Some payroll systems also use the aggregate method, which this model does not cover.

Try it

You can play with the numbers here: Tax and Bonus Calculator. It is an estimate, not tax advice.