=SUMPRODUCT(
(bracket_min<income)*
(
((income<=bracket_max)*(income-bracket_min))
+
((income>bracket_max)*(bracket_max-bracket_min))
)
*bracket_rate
)
Where income is your income, bracket_min is the range of bracket minimums, bracket_max is the range of bracket maximums, and bracket_rate is the range of bracket tax rates.Demo on Google Sheets:
https://docs.google.com/spreadsheets/d/1z0vx8TJeWr-hbJ3q6E7r...
=(income-INDEX(bracket_min,match(income,bracket_min,1)))*
INDEX(bracket_tax,match(income,bracket_min,1))+
INDEX(bracket_base_tax,match(income,bracket_min,1))It's simpler, and Lotus 1-2-3 doesn't have MATCH! :-)
I think something like this would work...
(income-@VLOOKUP(income,table,1))*@VLOOKUP(income,table,3)+@VLOOKUP(income,table,5)In ten years, you have no idea what tax rates will be. But you can be pretty confident the Fed will have devalued money by 30%+.
Even if you just want to have tax brackets adjust to inflation - this function gets to be really complicated.
I still use a spreadsheet, but I'm always tempted to manage my financial planning with Haskell and org-mode heh
I suspect you could do it with SUMPRODUCT too if the tax table contains sufficient data (e.g. for each band a lump-sum + progressive rate may be necessary) but it may still be an array equation (ctrl-shift-enter when entered, with curly braces displayed around it). I’m not in front of a PC so I can’t try to confirm.