Skip to content

Instantly share code, notes, and snippets.

@danielcompton
Created September 27, 2013 04:53
Show Gist options
  • Save danielcompton/6724333 to your computer and use it in GitHub Desktop.
Save danielcompton/6724333 to your computer and use it in GitHub Desktop.
Excel formula for calculating NZ tax paid on annual income.
=IF(B2<=14000,SUM(B2*10.5%),IF(B2<=48000,SUM(B2-14000)*17.5%+1470,IF(B2<=70000,SUM(B2-48000)*30%+7420,IF(B2>=70001,SUM(B2-70000)*33%+14020))))
@jasontomasi
Copy link

Thank you, CMac89 :)

@inspiredearth
Copy link

inspiredearth commented Oct 10, 2022

Thanks for sharing this, and for the updates in the comments.

Here's another way of going about calculating annual income tax on a known income amount (A1) ...

=SUMPRODUCT(--(A1>={1;14000;48000;70000;180000}),(A1-{0;14001;48001;70001;180001}),{0.105;0.07;0.125;0.03;0.06})

In this case, A1 is the income total.

@jasontomasi
Copy link

Thank you <3 This is even better.

@Gopher-nz
Copy link

I love this formula. But what this does not have future proofing from my point of view like the previous suggestions which include tax percentages in a table. I guess my comment comes from me not understanding the sumproduct formula and what would I change if the tax percentages changed - currently I do not have a clue.

Looking at
=SUMPRODUCT(--(F35>={1;14000;48000;70000;180000}),(F35-{0;14001;48001;70001;180001}),{0.105;0.07;0.125;0.03;0.06})

I suspect it is the third array which covers the tax percentages, but I cannot see how these are calculated. Any ideas?

@inspiredearth
Copy link

inspiredearth commented Mar 5, 2023

I love this formula. But what this does not have future proofing from my point of view like the previous suggestions which include tax percentages in a table. I guess my comment comes from me not understanding the sumproduct formula and what would I change if the tax percentages changed - currently I do not have a clue.

Looking at =SUMPRODUCT(--(F35>={1;14000;48000;70000;180000}),(F35-{0;14001;48001;70001;180001}),{0.105;0.07;0.125;0.03;0.06})

I suspect it is the third array which covers the tax percentages, but I cannot see how these are calculated. Any ideas?

The third array contains the tax rates for the first income bracket and the incremental tax rates for each subsequent bracket.
The first tax rate in the third array is the tax rate for the first income bracket, which is 10.5%.

The second tax rate is the incremental tax rate for the second bracket, which is 7% (i.e., the difference between the tax rate for the second income bracket, which is 17.5%, and the tax rate for the first bracket, which is 10.5%).

The third tax rate is the incremental tax rate for the third bracket, which is 12.5% (i.e., the difference between the tax rate for the third income bracket, which is 30%, and the tax rate for the second bracket, which is 17.5%).

The fourth tax rate is the incremental tax rate for the fourth bracket, which is 3% (i.e., the difference between the tax rate for the fourth income bracket, which is 33%, and the tax rate for the third bracket, which is 30%).

The fifth tax rate is the incremental tax rate for the fifth income bracket, which is 6% (i.e., the difference between the tax rate for the fifth bracket, which is 39%, and the tax rate for the fourth bracket, which is 33%).

Knowing this, you should be able to adjust them accordingly, should the need arise.

@Gopher-nz
Copy link

Awesome! You are awesome. And I feel stupid - LOL - for not seeing the pattern. Thank you and have a great day.

@Dialga
Copy link

Dialga commented May 25, 2023

A modified version of @inspiredearth's formula:
This includes ACC levy of 1.53% and 3% Kiwisaver.
=(($A1-SUMPRODUCT(--($A1>={1;14000;48000;70000;180000}),($A1-{0;14001;48001;70001;180001}),{0.105;0.07;0.125;0.03;0.06}))-($A1*(0.0153+0.03))

@Turbo-Jet
Copy link

Turbo-Jet commented Mar 21, 2024

Hi all,
Just created a Google Sheet to help calculate the tax, also the ability to include deductions for Kiwisaver and ACC levy. You can add your custom values to the boxes in green.

https://docs.google.com/spreadsheets/d/1hPtxMEZgM4t4Z2_cyE-G05yDzwvaSKH_f3U48-s9B0o/edit?usp=sharing

image

@LightspeedNZ
Copy link

Hi guys, thanks for this.

I found that the correct formula to calculate the edge case of exactly $14,000 etc needs to be as follows;

=SUMPRODUCT(--(A1>={0;14000;48000;70000;180000}),(A1-{0;14000;48000;70000;180000}),{0.105;0.07;0.125;0.03;0.06})

@spmp
Copy link

spmp commented Aug 28, 2024

Thanks @LightspeedNZ, I've got an update for FY25 which tests out pretty well against IRD website based on:

From To Rate
0 $14,000.00 10.50%
$14,001.00 $15,600.00 12.82%
$15,601.00 $48,000.00 17.50%
$48,001.00 $53,500.00 21.64%
$53,501.00 $70,000.00 30.00%
$70,001.00 $78,100.00 30.99%
$78,101.00 $180,000.00 33.00%
$180,001 and over 39.00%
=SUMPRODUCT(--(A1>={0;14000;15600;48000;53500;70000;78100;180000}),(A1-{0;14000;15600;48000;53500;70000;78100;180000}),{0.105;0.0232;0.0468;0.0414;0.0836;0.0099;0.0201;0.06})

From 1st April 2025 with the following tax rates:

From To Rate
0 $15,600.00 10.50%
$15,601.00 $53,500.00 17.50%
$53,501.00 $78,100.00 30.00%
$78,101.00 $180,000.00 33.00%
$180,001 and over 39.00%

Gives the following formula (untested):

=SUMPRODUCT(--(A1>={0;15600;53500;78100;180000}),(A1-{0;15600;53500;78100;180000}),{0.105;0.07;0.125;0.03;0.06})

@danielsian
Copy link

danielsian commented Aug 28, 2024

Here's a slightly simpler version to prevent the problem mentioned by @LightspeedNZ:

=SUMPRODUCT((A1>{1;14000;48000;70000;180000})*(A1-{0;14000;48000;70000;180000}),{0.105;0.07;0.125;0.03;0.06})

Lambda limits you to one cell reference, which is a time saver:
=LAMBDA(x,SUMPRODUCT((x>{1;14000;48000;70000;180000})*(x-{0;14000;48000;70000;180000}),{0.105;0.07;0.125;0.03;0.06}))(A1)

@spmp
Copy link

spmp commented Nov 4, 2024

Just to add that most PAYE calculators online are incorrectly using the formula for 1st April 2025 already. If you are calculating PAYE or total tax you may need to include the ACC Earners Levy of $2,276.53 pa.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment