lambtron / amt-calculator

Quick and dirty Alternative Minimum Tax calculation focused on exercising incentive stock options.

Home Page:https://amt-calculator.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Estimated single tax seems incorrect?

opened this issue · comments

When calculating base tax (exercising 0 shares), things 'seem' sane enough as primary income earned increases - to a point. At $200,000 income, estimated tax is $75,147 (about 37%). 2016 tax bracket for a single earner puts that just into the 33% tax bracket though, so it's clearly over-estimating the ordinary income tax.

It's MUCH more egregious at $250,000 income, showing $143,047 of estimated tax - nearly 57%, so something seems off, as at $91,151 income, it's only 28K taxes, which seems 'spot on' ... but should be $18,558.

No idea what's wrong, or if it's understanding error, but it does matter, even in the 2016 (old) brackets.

The tax is not correctly computed. It counts the lower brackets multiple times. For example, if you bump up to 200,001 the tax is 125,547. This is >50% tax rate. It you want to keep the structure, you'll want to use:

		// Calculate it.
		orig = i
		tax += (inc) * num(keys[i]) / 100  // Assumes 100% of income taxed at max rate.
		--i
		while (i >= 0) {
			tax -= ord[keys[i + 1]] * (num(keys[orig] - num(keys[i]) / 100 //trims off the over-estimate
			i--;
		}

AMT is also not correct as it uses 0.25 for the phaseout. This is a small error that cause an error < 1000 for high income earners.

I think the AMT is correct after re-reading it. The multi-counting for standard is still an issue.