Skip to main content
PPh21 Calculation
StaffAny avatar
Written by StaffAny
Updated over 3 weeks ago

Contents of this article are applicable to the following users

Tier: NA

Product: PayrollAny

Platform: Web

Access Level: Owner

This guide will cover the following:


PPh21 Calculations

Monthly Effective Tax Rate (TER Bulanan)

The Monthly Effective Tax Rate (TER) is a simplified method for calculating PPh21 (Income Tax Article 21) for certain taxpayers. TER rates are applicable to:

  • Permanent and Contract Employee
    from January to November of the tax year (except resigned month)

  • Freelancer

The total monthly gross income is calculated from the salary, overtime, etc., and the BPJS components, if any.

Total Monthly Gross Income = Sum of taxable gross income + BPJS paid by Employer* - BPJS paid by Employee**

*) BPJS paid by Employer includes: BPJS Kesehatan, JKK, JKM

**) BPJS paid by Employee includes: Iuran Pensiun (IP), Jaminan Pensiun (JP), JHT/THT

TER Rates for Category A

Category A applies to individual taxpayers with the following statuses:

  1. Unmarried with no dependents (TK/0)

  2. Unmarried with one dependent (TK/1)

  3. Married with no dependents (K/0)

Below is a detailed breakdown of the TER rates for Category A taxpayers:

Monthly Gross Income (IDR)

Tax Rate (%)

Up to Rp5,400,000

0%

Above Rp5,400,000 – Rp5,650,000

0.25%

Above Rp5,650,000 – Rp5,950,000

0.5%

Above Rp5,950,000 – Rp6,300,000

0.75%

Above Rp6,300,000 – Rp6,750,000

1%

Above Rp6,750,000 – Rp7,500,000

1.25%

Above Rp7,500,000 – Rp8,550,000

1.5%

Above Rp8,550,000 – Rp9,650,000

1.75%

Above Rp9,650,000 – Rp10,050,000

2%

Above Rp10,050,000 – Rp10,350,000

2.25%

Above Rp10,350,000 – Rp10,700,000

2.5%

Above Rp10,700,000 – Rp11,050,000

3%

Above Rp11,050,000 – Rp11,600,000

3.5%

Above Rp11,600,000 – Rp12,500,000

4%

Above Rp12,500,000 – Rp13,750,000

5%

Above Rp13,750,000 – Rp15,100,000

6%

Above Rp15,100,000 – Rp16,950,000

7%

Above Rp16,950,000 – Rp19,750,000

8%

Above Rp19,750,000 – Rp24,150,000

9%

Above Rp24,150,000 – Rp26,450,000

10%

Above Rp26,450,000 – Rp28,000,000

11%

Above Rp28,000,000 – Rp30,050,000

12%

Above Rp30,050,000 – Rp32,400,000

13%

Above Rp32,400,000 – Rp35,400,000

14%

Above Rp35,400,000 – Rp39,100,000

15%

Above Rp39,100,000 – Rp43,850,000

16%

Above Rp43,850,000 – Rp47,800,000

17%

Above Rp47,800,000 – Rp51,400,000

18%

Above Rp51,400,000 – Rp56,300,000

19%

Above Rp56,300,000 – Rp62,200,000

20%

Above Rp62,200,000 – Rp68,600,000

21%

Above Rp68,600,000 – Rp77,500,000

22%

Above Rp77,500,000 – Rp89,000,000

23%

Above Rp89,000,000 – Rp103,000,000

24%

Above Rp103,000,000 – Rp125,000,000

25%

Above Rp125,000,000 – Rp157,000,000

26%

Above Rp157,000,000 – Rp206,000,000

27%

Above Rp206,000,000 – Rp337,000,000

28%

Above Rp337,000,000 – Rp454,000,000

29%

Above Rp454,000,000 – Rp550,000,000

30%

Above Rp550,000,000 – Rp695,000,000

31%

Above Rp695,000,000 – Rp910,000,000

32%

Above Rp910,000,000 – Rp1,400,000,000

33%

Above Rp1,400,000,000

34%

TER Rates for Category B

Category B applies to individual taxpayers with the following statuses:

  1. Unmarried with two dependents (TK/2)

  2. Unmarried with three dependents (TK/3)

  3. Married with one dependent (K/1)

  4. Married with two dependents (K/2)

Below is a detailed breakdown of the TER rates for Category B taxpayers:

Monthly Gross Income (IDR)

Tax Rate (%)

Up to Rp6,200,000

0%

Above Rp6,200,000 – Rp6,500,000

0.25%

Above Rp6,500,000 – Rp6,850,000

0.5%

Above Rp6,850,000 – Rp7,300,000

0.75%

Above Rp7,300,000 – Rp9,200,000

1%

Above Rp9,200,000 – Rp10,750,000

1.5%

Above Rp10,750,000 – Rp11,250,000

2%

Above Rp11,250,000 – Rp11,600,000

2.5%

Above Rp11,600,000 – Rp12,600,000

3%

Above Rp12,600,000 – Rp13,600,000

4%

Above Rp13,600,000 – Rp14,950,000

5%

Above Rp14,950,000 – Rp16,400,000

6%

Above Rp16,400,000 – Rp18,450,000

7%

Above Rp18,450,000 – Rp21,850,000

8%

Above Rp21,850,000 – Rp26,000,000

9%

Above Rp26,000,000 – Rp27,700,000

10%

Above Rp27,700,000 – Rp29,350,000

11%

Above Rp29,350,000 – Rp31,450,000

12%

Above Rp31,450,000 – Rp33,950,000

13%

Above Rp33,950,000 – Rp37,100,000

14%

Above Rp37,100,000 – Rp41,100,000

15%

Above Rp41,100,000 – Rp45,800,000

16%

Above Rp45,800,000 – Rp49,500,000

17%

Above Rp49,500,000 – Rp53,800,000

18%

Above Rp53,800,000 – Rp58,500,000

19%

Above Rp58,500,000 – Rp64,000,000

20%

Above Rp64,000,000 – Rp71,000,000

21%

Above Rp71,000,000 – Rp80,000,000

22%

Above Rp80,000,000 – Rp93,000,000

23%

Above Rp93,000,000 – Rp109,000,000

24%

Above Rp109,000,000 – Rp129,000,000

25%

Above Rp129,000,000 – Rp163,000,000

26%

Above Rp163,000,000 – Rp211,000,000

27%

Above Rp211,000,000 – Rp374,000,000

28%

Above Rp374,000,000 – Rp459,000,000

29%

Above Rp459,000,000 – Rp555,000,000

30%

Above Rp555,000,000 – Rp704,000,000

31%

Above Rp704,000,000 – Rp957,000,000

32%

Above Rp957,000,000 – Rp1,405,000,000

33%

Above Rp1,405,000,000

34%

TER Rates for Category C

Category C applies to individual taxpayers with the following statuses:

  1. Married with three dependents (K/3)

Below is a detailed breakdown of the TER rates for Category C taxpayers:

Monthly Gross Income (IDR)

Tax Rate (%)

Up to Rp6,600,000

0%

Above Rp6,600,000 – Rp6,950,000

0.25%

Above Rp6,950,000 – Rp7,350,000

0.5%

Above Rp7,350,000 – Rp7,800,000

0.75%

Above Rp7,800,000 – Rp8,850,000

1%

Above Rp8,850,000 – Rp9,800,000

1.25%

Above Rp9,800,000 – Rp10,950,000

1.5%

Above Rp10,950,000 – Rp11,200,000

1.75%

Above Rp11,200,000 – Rp12,050,000

2%

Above Rp12,050,000 – Rp12,950,000

3%

Above Rp12,950,000 – Rp14,150,000

4%

Above Rp14,150,000 – Rp15,550,000

5%

Above Rp15,550,000 – Rp17,050,000

6%

Above Rp17,050,000 – Rp19,500,000

7%

Above Rp19,500,000 – Rp22,700,000

8%

Above Rp22,700,000 – Rp26,600,000

9%

Above Rp26,600,000 – Rp28,100,000

10%

Above Rp28,100,000 – Rp30,100,000

11%

Above Rp30,100,000 – Rp32,600,000

12%

Above Rp32,600,000 – Rp35,400,000

13%

Above Rp35,400,000 – Rp38,900,000

14%

Above Rp38,900,000 – Rp43,000,000

15%

Above Rp43,000,000 – Rp47,400,000

16%

Above Rp47,400,000 – Rp51,200,000

17%

Above Rp51,200,000 – Rp55,800,000

18%

Above Rp55,800,000 – Rp60,400,000

19%

Above Rp60,400,000 – Rp66,700,000

20%

Above Rp66,700,000 – Rp74,500,000

21%

Above Rp74,500,000 – Rp83,200,000

22%

Above Rp83,200,000 – Rp95,600,000

23%

Above Rp95,600,000 – Rp110,000,000

24%

Above Rp110,000,000 – Rp134,000,000

25%

Above Rp134,000,000 – Rp169,000,000

26%

Above Rp169,000,000 – Rp221,000,000

27%

Above Rp221,000,000 – Rp390,000,000

28%

Above Rp390,000,000 – Rp463,000,000

29%

Above Rp463,000,000 – Rp561,000,000

30%

Above Rp561,000,000 – Rp709,000,000

31%

Above Rp709,000,000 – Rp965,000,000

32%

Above Rp965,000,000 – Rp1,419,000,000

33%

Above Rp1,419,000,000

34%

Annual Taxable Income (PKP setahun)

The Annual Taxable Income (Penghasilan Kena Pajak Setahun or PKP) is the total income subject to tax after deducting allowable expenses, non-taxable income, and tax allowances. PKP is used to calculate the annual income tax liability, especially for the final tax period. The Annual Taxable Income calculation is applicable to:

  1. Permanent and Contract Employee in December of the tax year.

  2. Permanent and Contract Employee in the resigned month.

Steps to Calculate PKP Setahun

1) Determine Annual Gross Income:

Sum up the employee's monthly gross income (Ph. Bruto) for the entire year.

Annualized gross = Beginning Netto* + Sum of taxable gross income**


*) Beginning Netto is the PKP (taxable income) of the previous employment period.The initial net income of an employee at the start of a payroll period, before any additional earnings (e.g., overtime, bonuses) or deductions (e.g., unpaid leave, lateness penalties) are applied.
**) Sum of taxable gross income is The total taxable income of an employee, including all earnings subject to tax, such as: Basic Salary, Overtime, Additional Allowances, Unpaid Leave Deduction, Lateness Deduction, etc.

2) Deduct Non-Taxable Income (PTKP):

Subtract the Non-Taxable Income (Penghasilan Tidak Kena Pajak or PTKP) based on the taxpayer's category.

PTKP Status

PTKP Values

TK/0

Rp 54,000,000

TK/1

Rp 58,500,000

TK/2

Rp 63,000,000

TK/3

Rp 67,500,000

K/0

Rp 58,500,000

K/1

Rp 63,000,000

K/2

Rp 67,500,000

K/3

Rp 72,000,000

K/I/0

Rp 112,500,000

K/I/1

Rp 117,000,000

K/I/2

Rp 121,500,000

K/I/3

Rp 126,000,000

3) Deduct Position Allowance (Biaya Jabatan) when applicable:

For Permanent / Contract Employees, an additional position allowance deduction is allowed from the gross income to determine the taxable income.

  • It is calculated as 5% of the gross income.

  • With a limit of Rp6,000,000 per year or Rp500,000 per month.

4) Calculate Taxable Income (PKP):

PKP = Annualized Gross – PTKP – Position Allowance + BPJS paid by Employer* - BPJS paid by Employee**

*) BPJS paid by Employer includes: BPJS Kesehatan, JKK, JKM

**) BPJS paid by Employee includes: Iuran Pensiun (IP), Jaminan Pensiun (JP), JHT/THT

5) Apply Progressive Tax Rates:

Use the progressive tax rates under Article 17 of the Income Tax Law to calculate the annual tax liability.

Annual Taxable Income (PKP) (IDR)

Tax Rate (%)

Up to Rp60,000,000

5%

Above Rp60,000,000 – Rp250,000,000

15%

Above Rp250,000,000 – Rp500,000,000

25%

Above Rp500,000,000 – Rp5,000,000,000

30%

Above Rp5,000,000,000

35%

  • Example: PKP = 75,000,000

    • 1st layer: 60,000,000 x 5%

    • 2nd layer: (75,000,000 - 60,000,000) x 15%

6) Calculate Tax Liability of the month

Remaining PPh = Annualised PPh - PPh paid for the whole year - PPh21 paid

Tax without NPWP (Nomor Pokok Wajib Pajak)

If you don't specify NPWP in the employee details. The individuals are subject to a 20% higher tax rate than the standard rates.

Gross-up Tax Calculation

The gross-up concept is used in PPh21 calculations when an employer agrees to cover the employee's income tax liability. In such cases, the employer pays the tax on behalf of the employee, and the employee's income is "grossed up" to reflect the total amount before tax. The grossed-up amount ensures that the employee receives the net income they are entitled to after taxes.

TER with Gross-up

Formula of gross-up calculation:

PPh21 Allowance / Deduction = (Gross Income x Tax Rate) / (100 - Tax Rate)

Example:

  • An employee under Category A (TER A) and his gross income in January 2024 is Rp10,000,000. Referring to the TER A table, the corresponding tax rate is 2%.


    PPh21 Allowance / Deduction = (10,000,000 x 2) / (100 - 2)

    = 10,000,000 x 2/98

    = 204,082

    To verify the calculation.

    The grossed-up income become Rp10,000,000 + Rp204,082 = Rp10,204,082
    PPh21 Deduction = Rp10,204,082 x 2% = Rp204,082
    Income after tax deduction = Rp10,204,082 - Rp204,082 = Rp10,000,000

Annualized with Gross-up

For the progressive tax rates, use the following rates and calculation mechanism to calculate the annual tax liability:

Annual Taxable Income (PKP) (IDR)

Tax Rate (%)

Calculation Mechanism

Up to Rp57,000,000

5%

PKP x 5/95

Above Rp57,000,000 – Rp218,500,000

15%

(PKP - 57,000,000) x 15/85

Above Rp218,500,000 – Rp406,000,000

25%

(PKP - 218,500,000) x 25/75

Above Rp406,000,000 – Rp3,556,000,000

30%

(PKP - 406,000,000) x 30/70

Above Rp3,556,000,000

35%

(PKP - 3,556,000,000) x 35/65

Example:

An employee has a monthly gross of Rp30,000,000. PTKP status is TK/0 and using gross-up.

Annualized gross = 30,000,000 x 12 = Rp360,000,000
PTKP for TK/0 = Rp54,000,000.
Position Allowance = 5% x 360,000,000 (up to 6,000,000) = Rp6,000,000
PKP = 360,000,000 - 54,000,000 - 6,000,000 = Rp300,000,000

Based on the PKP, the tax falls to the 3rd layer of the progressive tax rates (5%, then 15%, then 25%). Hence, the progressive tax calculation:

  • PPh21 Allowance / Deduction (1st layer)
    = 57,000,000 x 5/95 = 3,000,000

  • PPh21 Allowance / Deduction (2nd layer)
    = (218,500,000 - 57,000,000) x 15/85 = 28,500,000

  • PPh21 Allowance / Deduction (3rd layer)
    = (360,000,000 - 218,500,000) x 25/75 = 21,166,667

  • The total PPh21 Allowance / Deduction = 3,000,000 + 28,500,000 + 21,166,667 = 58,666,667

    To verify the calculation.

    The annual grossed-up income, with the PPh allowance, become
    Rp360,000,000 + Rp58,666,667 = Rp418,666,667
    PTKP for TK/0 = Rp54,000,000.
    Position Allowance = 5% x 360,000,000 (up to 6,000,000) = Rp6,000,000

    PKP = 418,666,667 - 54,000,000 - 6,000,000 = Rp358,666,668

  • PPh21 Deduction (1st layer) = 60,000,000 x 5% = 3,000,000

  • PPh21 Deduction (2nd layer) = (250,000,000 - 60,000,000) x 15% = 28,500,000

  • PPh21 Deduction (3rd layer) = (358,666,667 - 250,000,000) x 25% = 27,166,667

  • The total PPh21 Deduction = 3,000,000 + 28,500,000 + 27,166,667 = 58,666,667
    Annual income after tax deduction = Rp418,666,667 - Rp58,666,667 = Rp360,000,000

It is tallied that the annual income received is the same as the annual gross because the employer gives the PPh allowance to compensate for the PPh deduction.

Example Tax Calculation

  • Scenario 1 - Calculating contract employees in regular month (Jan - Nov)

    In June, a permanent employee has monthly gross income of Rp8,000,000

    The employee is married with two dependents (K/2), so it falls on TER category C with 1% rate.
    Tax liability in a month = 1% x 8,000,000 = Rp80,000

  • Scenario 2 - Calculating permanent employees in December

    In December, a permanent employee has a monthly salary of Rp30,000,000. The employee is married with one dependent (K/1) with gross method.

    There are BPJS components (BPJS Kesehatan, JHT, JP, JKM & JKK) in payroll:
    1) BPJS Kesehatan (with max. income is 12,000,000):
    - 4% by Employer = 4% x 12,000,000 = Rp480,000
    - 1% by Employee = 1% x 12,000,000 = Rp120,000
    2) BPJS JHT:
    - 3.7% by Employer = 3.7% x 30,000,000 = Rp1,110,000
    - 2% by Employee = 2% x 30,000,000 = Rp600,000
    3) BPJS JP (with max. income is 10,042,300):
    - 2% by Employer = 2% x 10,042,300 = Rp200,846
    - 1% by Employee = 1% x 10,042,300 = Rp100,423
    4) BPJS JKM:
    - 0.3% by Employer = 0.3% x 30,000,000 = Rp90,000
    5) BPJS JKK (0.24% for lowest risk):
    - 0.24% by Employer = 0.24% x 30,000,000 = Rp72,000

    Based on the table above, the BPJS paid by employers that are taxable are BPJS Kesehatan, JKK, and JKM. While BPJS paid by employees that should deduct the taxable income are JP & JHT.

    Hence, the monthly gross income is
    = Monthly salary + BPJS Kesehatan (Employer) + JKK + JKM - JP (Employee) - JHT (Employee)
    = 30,000,000 + 480,000 + 72,000 + 90,000 - 100,423 - 600,000
    = Rp29,941,577

    Annual gross income = 29,941,577 x 12 = Rp359,298,924
    PTKP for K1 is Rp63,000,000.
    Position allowance is 5% x Rp. 360,000,000 > Rp6,000,000. Hence, limited to 6,000,000.

    Step 1: Calculate PKP

    PKP = Annual Gross Income – PTKP – Position Allowance

    PKP = 359,298,924 – 63,000,000 – 6,000,000 = Rp290,298,924

    Step 2: Apply Progressive Tax Rates

    The PKP falls in the to the 3rd layer (up to Rp500,000,000), so the progressive tax is:

    • 1st layer (up to 60mio) = 60,000,000 × 5% = Rp3,000,000

    • 2nd layer (60mio - 250mio) = (250,000,000 - 60,000,000) × 15% = Rp28,500,000

    • 2nd layer (250mio - 500mio) = (290,298,924 - 250,000,000) × 25% = Rp10,074,731

    • Total annual tax = 3,000,000 + 28,500,000 + 10,074,731 = 41,574,731


    Using the TER rate, from January to November, on a monthly basis, the employee has paid:

    • Monthly gross = Rp29,941,577. Based on TER (K/1) falls in the 12% rate.

    • Monthly Tax (Jan - Nov) = 12% x Rp29,941,577 = Rp3,592,989

    • Total Tax paid from Jan - Nov = 3,592,989 x 11 = Rp39,522,879

    Tax liability in December = 41,574,731 - 39,522,879 = Rp2,051,852

  • Scenario 3 - Calculating tax without NPWP

    Follow-up from scenario 2: say that the employee doesn't have NPWP. Hence, he/she is taxed 20% more than the standard rate.
    The total annual tax become = 120% x 41,574,731 = Rp49,889,677

  • Scenario 4 - Permanent employee that joins and resigns in mid-year with gross-up

    A permanent employee joins in August and works for only 3 months until October due to not passing the probation.

    • The monthly salary is Rp10,000,000.

    • He is married with no dependent (K/0)

    • and using gross-up for the tax calculation method.

    • The taxable income (beginning netto) from the previous employment was Rp78,000,000. While the PPh21 paid was Rp975,000

    • There are BPJS components (BPJS Kesehatan, JHT, JP, JKM & JKK) in payroll:
      1) BPJS Kesehatan (with max. income is 12,000,000):
      - 4% by Employer = 4% x 10,000,000 = Rp400,000
      - 1% by Employee = 1% x 10,000,000 = Rp100,000
      2) BPJS JHT:
      - 3.7% by Employer = 3.7% x 10,000,000 = Rp370,000
      - 2% by Employee = 2% x 10,000,000 = Rp200,000
      3) BPJS JP (with max. income is 10,042,300):
      - 2% by Employer = 2% x 10,000,000 = Rp200,000
      - 1% by Employee = 1% x 10,000,000 = Rp100,000
      4) BPJS JKM:
      - 0.3% by Employer = 0.3% x 10,000,000 = Rp30,000
      5) BPJS JKK (0.24% for lowest risk):
      - 0.24% by Employer = 0.24% x 10,000,000 = Rp24,000


    Hence, the monthly gross income is
    = Monthly salary + BPJS Kesehatan (Employer) + JKK + JKM - JP (Employee) - JHT (Employee)
    = 10,000,000 + 400,000 + 24,000 + 30,000 - 100,000 - 200,000
    = Rp10,154,000


    For August & September, using the TER rate & gross-up method:

    • Monthly gross = Rp10,154,000. Based on TER (K/0) falls in the 2.25% rate.

    • Tax Allowance / Deduction in a month (Aug - Sep)
      = Rp10,154,000 x 2.25/(100-2.25) = Rp233,724

    In the final month (October), using Annualized calculation:

    • Total gross (Aug-Oct) = 10,154,000 x 3 = Rp30,462,000

    • PTKP for K/0 = Rp58,500,000.

    • Position Allowance (monthly) = 5% x 10,154,000 > 500,000. Limited to Rp500,000 per month

    • Beginning Netto (from the previous employment) = Rp78,000,000

    • PPh21 paid (from the previous employment) = Rp975,000

    Annualized gross = Beginning Netto + Sum of taxable gross income
    Annualized gross = 78,000,000 + 30,462,000 = Rp108,462,000

    PKP = Annualized Gross – PTKP – Position Allowance
    ​PKP = 108,462,000 - 58,500,000 - (500,000 x 3 months) = 48,462,000

    Based on the PKP, the tax falls to the 1st layer of the progressive tax (5%). Hence, the calculation:
    Final PPh21 Allowance / Deduction = 48,462,000 x 5/95 = 2,550,632

    Tax liability in the final month (Oct) = Final tax - PPh paid (Aug-Sep) - PPh21 paid (from the previous employment)
    Tax liability in the final month (Oct) = 2,550,632 - (233,724 x 2) - 975,000
    = 1,108,184


How do we calculate PPh21 for multiple payruns in a month

PPh21 (Income Tax Article 21) is ultimately calculated and paid on a monthly basis. However, within a single month, there might be multiple payroll runs for an employee. In such cases, PPh21 calculations for each payroll run are estimated using the following formula:

PPh21 for Payrun [N] =
PPh21 for all Payruns till [N] − PPh21 for previous Payruns till [N-1]


Where payruns occur in chronological sequence.

Example scenario:

Bob is a contract employee with Monthly Salary: Rp15,000,000. Bob is subject to PPh21 under the Category A (TK/0) tax rate.
Payruns:

  • Payrun 1: Rp6,000,000 (earlier in the month)

  • Payrun 2: Rp9,000,000 (later in the month)


1. PPh21 for Payrun 1 (Rp6,000,000)

  • PPh21 for Payrun 1:

    PPh21 = Rp6,000,000 × 0.75%= Rp45,000

2. Run Payrun 2 (Rp9,000,000)

  • Gross for Payrun 1 + Payrun 2 = 6,000,000 + 9,000,000 = 15,000,000

  • PPh21 for Payrun 1 + Payrun 2 = 15,000,000 x 6% = Rp900,000

  • PPh21 for Payrun 2 = (PPh21 for Payrun 1 + 2) − (PPh21 for Payrun 1)
    = 900,000 - 45,000 = Rp855,000

Summary of PPh21 Contributions

Payrun

Income (IDR)

PPh21 (IDR)

Payrun 1

Rp6,000,000

Rp45,000

Payrun 2

Rp9,000,000

Rp855,000

Total

Rp15,000,000

Rp900,000

Did this answer your question?