IsonAI
← Insights Everyday AI

How to Calculate PPh 21 (Indonesian Income Tax)

PPh 21 (Pajak Penghasilan Pasal 21) is Indonesia’s tax on employment income, such as an employee’s salary. Since 1 January 2024 it is computed with two engines: the January–November months are withheld using an Average Effective Rate (TER, Tarif Efektif Rata-rata) — the month’s gross income multiplied by a single rate; then December (or your last month of work) is recomputed over the whole year with the progressive Article 17 rates, less the tax already withheld. This guide explains both for a permanent employee (pegawai tetap), with the PTKP table and three examples.

Reviewed as of July 2026 against Government Regulation PP 58/2023, Ministerial Regulation PMK 168/2023, and Law No. 7 of 2021 (UU HPP). Rates, the PTKP threshold, and the TER tables can change; always verify against the official Directorate General of Taxes (DJP) sources before deciding. This explains the method; it is not a substitute for a tax adviser on complex cases.

First, identify your profile

PPh 21 is computed differently by type of income recipient. This page covers permanent employees. Other profiles use a different basis.

ProfileExampleBasis in brief
Permanent employee (this page)Salaried monthly staffMonthly TER (Jan–Nov) + Article 17 reconciliation (December)
Casual worker (pegawai tidak tetap)Daily/piece-rate/temporary workersDaily basis, with its own daily and monthly thresholds
Non-employee (freelancer, professional)Consultant, doctor in practice, MCUsually 50% × gross as the base, then TER/Article 17 per the rules
Non-resident taxpayer (subjek luar negeri)Foreigner without Indonesian tax residencyNot PPh 21 but PPh Article 26 (generally 20% of gross, reducible by a tax treaty/P3B)

The rest of this guide assumes you are a permanent employee paid monthly by one employer.

The two engines of PPh 21

This is the part most people misunderstand. Since PP 58/2023 and PMK 168/2023 took effect:

  1. January–November — the TER engine. Your employer withholds PPh 21 each month with a simple formula: month’s gross income × TER rate. There is no occupational-cost or PTKP deduction at this stage; the PTKP is already “baked into” the TER figure through categories A/B/C.
  2. December (or your last month of work) — the Article 17 engine. The employer computes the full-year tax the old way: annual gross − occupational cost − allowed contributions = net; net − PTKP = taxable income (PKP); PKP × progressive Article 17 rates = annual PPh. That annual figure is reduced by the total PPh already withheld in January–November. The difference becomes December’s deduction (or, if too much was withheld, it lowers December’s deduction; any remaining over-withholding is refunded by the employer — see Example 3).

So TER is just a way of paying in instalments; the final truth is set by the annual Article 17 rates. If your income is fairly even through the year, the December adjustment is usually small.

The PTKP table (non-taxable income)

PTKP (Penghasilan Tidak Kena Pajak) is the slice of income that is not taxed, set by family status as at the start of the tax year. The amounts have been unchanged since 2016:

  • Base for an individual taxpayer: Rp54,000,000/year.
  • An added Rp4,500,000 for married status.
  • An added Rp4,500,000 per dependent, up to 3 dependents.
StatusMeaningAnnual PTKP
TK/0Single, 0 dependentsRp54,000,000
TK/1Single, 1 dependentRp58,500,000
TK/2Single, 2 dependentsRp63,000,000
TK/3Single, 3 dependentsRp67,500,000
K/0Married, 0 dependentsRp58,500,000
K/1Married, 1 dependentRp63,000,000
K/2Married, 2 dependentsRp67,500,000
K/3Married, 3 dependentsRp72,000,000

“Dependents” (tanggungan) are direct-line blood/marriage relatives and adopted children who are fully dependent, capped at three. Status is fixed by the situation at the start of the tax year.

How to read the TER table (categories A, B, C)

You do not compute the monthly TER by hand — you read it from the official table in the Annex to PMK 168/2023. The steps: (1) find your PTKP category, (2) locate the row containing your month’s gross income, (3) take that row’s percentage, (4) multiply by the month’s gross.

TER categories map from PTKP status:

TER categoryPTKP statusAnnual PTKP
TER ATK/0, TK/1, K/0Rp54,000,000 / Rp58,500,000
TER BTK/2, TK/3, K/1, K/2Rp63,000,000 / Rp67,500,000
TER CK/3Rp72,000,000

Each category has dozens of income bands (TER A alone has 44, topping out at 34%). So don’t memorise the whole table — understand how to read it and open the official table when you calculate. A few opening rows of TER A, for orientation:

Monthly gross income (TER A)Effective rate
Up to Rp5,400,0000%
Above Rp5,400,000 – Rp5,650,0000.25%
Above Rp5,650,000 – Rp5,950,0000.5%
… (continues rising in steps)
Above Rp1,400,000,00034%

For casual workers (daily), a simple daily TER applies (PMK 168/2023): 0% up to a daily wage of Rp450,000, then 0.5% for wages above Rp450,000 (up to Rp2,500,000 a day, before the next band). So a wage of exactly Rp450,000 is still 0%.

Gross components and annual deductions

Gross income (used both for the monthly TER and the annual reconciliation) includes regular and irregular pay:

  • Base salary and fixed allowances (position, family, transport if a fixed allowance).
  • Overtime, bonus, gratuities, and THR (Tunjangan Hari Raya, the mandatory religious-holiday bonus).
  • Tax allowance (if the company covers the tax via a gross-up method).
  • Insurance premiums (accident/death cover) paid by the employer on the employee’s behalf.

Deductions are counted only on the Article 17 engine (final period), not on the monthly TER:

  • Occupational cost (biaya jabatan): 5% of gross income, capped at Rp500,000/month or Rp6,000,000/year. It applies to every permanent employee, whether or not they hold a “position”.
  • Allowed contributions: pension contributions to a pension fund approved by the Minister of Finance, and old-age-savings (JHT/Jaminan Hari Tua) contributions paid by the employee. (This guide does not cover BPJS mechanics separately; follow your employer’s arrangement.)

Progressive Article 17 rates (for the annual figure)

Rates apply in tiers to the annual PKP: only the portion of income in each tier is taxed at that tier’s rate.

Annual taxable income (PKP) tierRate
Up to Rp60,000,0005%
Above Rp60m – Rp250m15%
Above Rp250m – Rp500m25%
Above Rp500m – Rp5 billion30%
Above Rp5 billion35%

Checklist to compute it yourself

Before you start, have ready:

  • This month’s gross income (salary + all allowances + any overtime/bonus/THR in that month).
  • Your PTKP status (e.g. TK/0) and the matching TER category (A/B/C).
  • Which month you are computing (January–November use TER; December/final period uses Article 17).
  • For the annual reconciliation: total annual gross, total PPh 21 already withheld in January–November (from payslips), and any deductible contributions.

Example 1 — an ordinary month, TER (permanent employee, TK/0)

Andi is single with no dependents (TK/0TER A), gross salary and allowances Rp10,000,000 in May (an ordinary month, no THR/bonus).

  • Find the TER A row for gross Rp10,000,000 → the rate is 2%.
  • PPh 21 for May = 2% × Rp10,000,000 = Rp200,000.

No PTKP or occupational-cost deduction appears here, because both are already reflected in the TER figure.

Example 2 — a month with THR

The same Andi receives THR of Rp10,000,000 in June, on top of the Rp10,000,000 salary.

  • June gross = salary Rp10,000,000 + THR Rp10,000,000 = Rp20,000,000.
  • Find the TER A row for gross Rp20,000,000 → the rate is 9%.
  • PPh 21 for June = 9% × Rp20,000,000 = Rp1,800,000.

June’s deduction is much larger because the THR is added to that month’s gross and one TER rate is applied to the total. This is not double taxation; any over- or under-withholding is squared up at the December reconciliation (Example 3).

Example 3 — December reconciliation (final period)

Still Andi (TK/0), for the year: salary Rp10,000,000 × 12 = Rp120,000,000, plus THR Rp10,000,000, giving annual gross Rp130,000,000. Assume no self-paid pension/JHT contributions.

  1. Occupational cost = 5% × Rp130,000,000 = Rp6,500,000 → capped at Rp6,000,000.
  2. Annual net income = Rp130,000,000 − Rp6,000,000 = Rp124,000,000.
  3. PKP = Rp124,000,000 − PTKP Rp54,000,000 = Rp70,000,000.
  4. Annual Article 17 PPh = (5% × Rp60,000,000) + (15% × Rp10,000,000) = Rp3,000,000 + Rp1,500,000 = Rp4,500,000.
  5. PPh already withheld Jan–Nov via TER = (10 ordinary months × Rp200,000) + (June with THR Rp1,800,000) = Rp2,000,000 + Rp1,800,000 = Rp3,800,000.
  6. December deduction = Rp4,500,000 − Rp3,800,000 = Rp700,000.

Total withheld for the year = Rp3,800,000 + Rp700,000 = Rp4,500,000, exactly equal to the annual Article 17 tax. If the accumulated TER for January–November exceeds the annual tax, there is over-withholding (lebih potong) — and this does not automatically make your annual return status “overpaid (lebih bayar)”. The over-withheld amount must be refunded by the employer (the withholder) to the employee, together with the withholding slip, no later than the end of the month following the last tax period. So on form 1721-A1, “lebih potong” is not the same as an “overpaid” status on your SPT (DJP).

Special cases

  • Starting or leaving work mid-year. The Article 17 reconciliation happens in your final tax period with that employer (not necessarily December). The 1721-A1 slip is issued for the period you actually worked.
  • Two employers. Each employer withholds as if it were the only one, so the PTKP can be “used” twice and too little is withheld. You must combine all income when filing your annual return (SPT Tahunan); this usually produces an underpayment you settle yourself.
  • Change in family status (marriage, new child). PTKP follows the situation at the start of the tax year; a mid-year change only affects the following tax year.
  • Freelancer/daily worker. Not a permanent employee; a different basis applies (see the profile table above). Don’t apply this page’s examples as-is.

Common misunderstandings

Wrong beliefThe reality
”TER deducts PTKP from my salary each month.”No. TER = gross × rate; PTKP is baked into categories A/B/C.
”Just salary × progressive rate gives the monthly tax.”Wrong. Monthly uses TER; the Article 17 progressive rates are only for the annual figure in the final period.
”THR is taxed with a special TER rate.”There is no special THR rate. THR is added to that month’s gross, then TER is applied to the total.
”A big December deduction means a mistake.”Not necessarily. December carries the annual reconciliation; it is expected to differ from an ordinary month.
”Tax is higher because of TER.”The annual total is still set by Article 17. TER only changes the pattern of instalments between months.

If your figure doesn’t match the withholding slip

  1. Check you used the right engine. Compare an ordinary month with TER, and the annual figure with Article 17 — don’t mix them.
  2. Check the PTKP status and TER category your employer used; a wrong category (e.g. K/1 recorded as TK/0) shifts the rate.
  3. Check the gross components: a missed allowance or bonus changes the TER row.
  4. For an annual difference, confirm the occupational cost was capped at Rp6,000,000 and the PTKP is correct.
  5. If it still differs, ask your finance/HR team; they are the withholder and the issuer of the 1721-A1 slip.

After calculating: your reporting duties

  • Keep the 1721-A1 slip from your employer. It is the key document for filling in your annual return.
  • File your annual return (SPT Tahunan) through Coretax. The income and tax-already-withheld figures from the 1721-A1 form the basis of the return.
  • If you have two employers or other income, prepare to settle any underpayment before the filing deadline.

Let IsonAI do the calculation

The tiring part isn’t the formula — it’s making sure you’re on the right engine, in the right TER category, with all gross components. Give IsonAI structured input — PTKP status, the month’s gross income (and which month), plus extras like THR — and it lays out a calculation you can check step by step. Always match the result against your 1721-A1 slip; if it differs greatly, ask your employer’s finance team.

Questions that decide the calculation

Why is the December deduction different from other months?

Because December (or your last month of work) uses the Article 17 engine: the employer recomputes the full-year tax and subtracts the January–November total. The difference shows up in December.

Does THR use TER?

Yes, but with no special rate. THR is added to the gross income of the month it is received, then one TER rate is applied to that month’s total gross.

Why not just salary × progressive rate?

Because the Article 17 progressive rates are designed for annual income, not a single month. For monthly withholding the rules use TER for simplicity; only the annual figure uses Article 17.

Does PTKP reduce my monthly salary base?

Not directly under TER. PTKP is already reflected through the TER category (A/B/C). It appears as an explicit deduction only in the annual (Article 17) calculation.

I have two employers — what happens?

Each withholds as if it were the only one, so total withholding is usually too low. Combine all income when filing your annual return and settle the underpayment.

Is tax higher under TER?

Not for the annual total, which is still set by Article 17. TER only changes when the tax is withheld (the pattern across months), not the total.

What if I leave work before December?

The Article 17 reconciliation is done in your last month of work, and the withholding slip is issued for that period.

Sources & review

This guide was reviewed in July 2026. The links below include official sources (DJP and the JDIH BPK law database) plus a few secondary explainer readings (e.g. DDTC, MUC Consulting) for extra context, not official sources.

Last updated: