BedrockCalculator
Figures cited to primary sourcesWritten by Aapt Dubey, MBA (Marketing & Banking), ISB 2 primary sourcesLast updated

Indonesia Net Salary Calculator (Gaji Bersih After PPh 21 and BPJS)

The Indonesia Net Salary Calculator works out Indonesian take-home pay from gross: the TER withholding applied to gross, the five BPJS employee shares, and the December reconciliation.

Quick Answer: A gross salary of Rp 10,000,000 a month for a single employee with no dependents leaves Rp 9,400,000 net: Rp 400,000 of BPJS employee contributions and Rp 200,000 of PPh 21. The employer pays Rp 11,024,000 to deliver it. December is not like the other eleven months. The final tax period reconciles the year to the progressive ladder and withholds Rp 620,000 instead of Rp 200,000, dropping net pay to Rp 8,980,000.

Assumptions

Computed
Rp
Rp
Rp

Preset scenarios

Monthly Net Salary (Gaji Bersih)
Rp 9,400,000.00

Every period in the schedule below reconciles to the exact penny.

Monthly Gross Salary
Rp 10,000,000.00
BPJS Employee Deduction
Rp 400,000.00
PPh 21 Withheld (TER Month)
Rp 200,000.00
Total Deducted
Rp 600,000.00
Deductions as a Share of Gross
6.00% of gross
TER Category and Rate Applied
Category A at 2%, status TK/0
What the TER Rate Is Applied To
The TER rate is applied to the full gross of Rp 10000000, not to gross less BPJS. PP 58/2023 Pasal 2(4) applies the monthly effective tariff to penghasilan bruto bulanan.
JHT and JP Employee Share
Rp 300,000.00
Deductibility of BPJS
Only the JHT and JP employee shares are deductible, and only in the annual Pasal 17 computation. The BPJS Kesehatan employee 1% is never deductible, and none of them reduce the monthly TER base.
Total Monthly Employer Cost
Rp 11,024,000.00
Annual Gross
Rp 120,000,000.00
Annual PPh 21 Liability (Pasal 17)
Rp 2,820,000.00
December Withholding (Reconciliation)
Rp 620,000.00
December Net Pay
Rp 8,980,000.00
Why December Differs
The eleven TER months under-collected against the annual Pasal 17 liability, so the final tax period withholds the shortfall and December net pay is LOWER than an ordinary month.

Net Pay by Month

GrossBPJS EmployeePPh 21
12 periods, peak Rp 10,000,000

Twelve Months of Net Pay, With the Final-Period Reconciliation

Showing 12 rows.

Twelve Months of Net Pay, With the Final-Period Reconciliation, from the Indonesia Net Salary Calculator (Gaji Bersih After PPh 21 and BPJS)
MonthGrossBPJS EmployeePPh 21
JanuaryRp 10,000,000.00Rp 400,000.00Rp 200,000.00
FebruaryRp 10,000,000.00Rp 400,000.00Rp 200,000.00
MarchRp 10,000,000.00Rp 400,000.00Rp 200,000.00
AprilRp 10,000,000.00Rp 400,000.00Rp 200,000.00
MayRp 10,000,000.00Rp 400,000.00Rp 200,000.00
JuneRp 10,000,000.00Rp 400,000.00Rp 200,000.00
JulyRp 10,000,000.00Rp 400,000.00Rp 200,000.00
AugustRp 10,000,000.00Rp 400,000.00Rp 200,000.00
SeptemberRp 10,000,000.00Rp 400,000.00Rp 200,000.00
OctoberRp 10,000,000.00Rp 400,000.00Rp 200,000.00
NovemberRp 10,000,000.00Rp 400,000.00Rp 200,000.00
DecemberRp 10,000,000.00Rp 400,000.00Rp 620,000.00
Net Pay by Month: Gross, BPJS Employee, PPh 21 across 12 periods for this calculator's default example, peaking at Rp 10,000,000.00.
Drawn from this calculator's own default inputs, where Monthly Net Salary (Gaji Bersih) is Rp 9,400,000.00. Change the inputs above to see your own figures.
Quick Answer: A gross salary of Rp 10,000,000 a month for a single employee with no dependents leaves Rp 9,400,000 net: Rp 400,000 of BPJS employee contributions and Rp 200,000 of PPh 21. The employer pays Rp 11,024,000 to deliver it. December is not like the other eleven months. The final tax period reconciles the year to the progressive ladder and withholds Rp 620,000 instead of Rp 200,000, dropping net pay to Rp 8,980,000.

What does this calculator do?

Indonesian gross to net has two deductions and one trap.

The deductions are straightforward in isolation. BPJS takes an employee share across five programmes, and PPh 21 is withheld monthly by the employer. The trap is the relationship between them, and it is a legal question rather than a presentational one.

PPh 21 is withheld on gross pay, not on pay after BPJS. Since PP 58/2023 the monthly withholding uses a Tarif Efektif Rata-rata, a single average effective rate read off a schedule, and Pasal 2(4) applies it to penghasilan bruto bulanan, the month's gross income. The BPJS employee contributions come out of the same gross in parallel. Netting BPJS off first and then applying the TER rate understates the withholding every single month, and on the reference case above it would put the rate in the 1.75% band instead of the 2% band.

The employee JHT and JP contributions are deductible, but only in the annual computation under Pasal 17, which the employer performs in the final tax period. The BPJS Kesehatan employee contribution is never deductible at all.

The second thing worth understanding before reading your own payslip is that the eleven TER months are deliberately approximate. They are trued up once, at the end of the year, and the size of that true-up is the number most people are unprepared for.

How is this calculated?

1. Charge each BPJS programme on its own base. The three ceilings are different and only one of them is indexed. BPJS Kesehatan runs on the wage floored at the local minimum wage and capped at Rp 12,000,000, a ceiling fixed since 2020. JP runs on the wage capped at the pension ceiling, which is reindexed every year to prior-year GDP growth. JHT, JKK and JKM have no ceiling at all.

Base_kesehatan = min(max(W, UMK), 12,000,000); Base_JP = min(W, Ceiling_JP)

2. Total the employee side. Kesehatan takes 1%, JHT 2% and JP 1% from the employee. JKK and JKM are employer-paid in full and take nothing from the employee.

BPJS_employee = 0.01 × Base_kesehatan + 0.02 × W + 0.01 × Base_JP

3. Fix the TER category from PTKP status. PP 58/2023 Pasal 2(3) sets the category by marital status and dependents at the start of the tax year, so a change in June does not affect withholding until the following January. Status TK/0, TK/1 and K/0 give category A, TK/2, TK/3, K/1 and K/2 give B, and K/3 gives C.

4. Apply the TER rate to gross. The rate is read against the month's gross income, with no deduction for biaya jabatan, for PTKP or for BPJS.

PPh21_monthly = W × r_TER

5. Net pay is gross less both deductions.

Net = W − BPJS_employee − PPh21_monthly

6. Employer cost is gross plus the employer side. That is 4% Kesehatan, 3.7% JHT, the JKK rate for your risk class, 0.30% JKM and 2% JP, each on its own base.

7. Compute the real annual liability under Pasal 17. In the final tax period the employer works out what the year actually owed. Biaya jabatan is 5% of annual gross capped at Rp 6,000,000, the annual JHT and JP employee contributions are deducted, PTKP is subtracted, and the result is rounded down to the nearest Rp 1,000 before the progressive ladder is applied.

PKP = ⌊(G − BJ − JHT / JP − PTKP)/1000⌋ × 1000

8. December withholds the difference. The eleven TER months are subtracted from the annual liability, and whatever remains is taken in the final period.

PPh21_December = Tax_annual − 11 × PPh21_monthly

This can be negative, in which case the TER months over-collected and the final period returns the excess.

Worked Example

Gross Rp 10,000,000 a month, single with no dependents, very low JKK risk, no local UMK entered, the default pension ceiling of Rp 11,086,300.

Step 1 (the bases). Kesehatan: min(10,000,000, 12,000,000) = Rp 10,000,000. JP: min(10,000,000, 11,086,300) = Rp 10,000,000. Neither ceiling binds at this wage.

Step 2 (employee contributions). Kesehatan 1% = Rp 100,000, JHT 2% = Rp 200,000, JP 1% = Rp 100,000. Total Rp 400,000.

Step 3 (the TER category). TK/0, so category A.

Step 4 (the TER rate on gross). Rp 10,000,000 falls in the band above Rp 9,650,000 and up to Rp 10,050,000, so the rate is 2%, and the withholding is Rp 10,000,000 x 2% = Rp 200,000.

Step 5 (the error this avoids). Applying the rate to gross less BPJS, Rp 9,600,000, would land in the 1.75% band and withhold Rp 168,000. That is Rp 32,000 too little every month, and it is not what the regulation says.

Step 6 (net pay). Rp 10,000,000 - Rp 400,000 - Rp 200,000 = Rp 9,400,000, which is 6.00% of gross deducted.

Step 7 (employer cost). Kesehatan 4% = Rp 400,000, JHT 3.7% = Rp 370,000, JKK 0.24% = Rp 24,000, JKM 0.30% = Rp 30,000, JP 2% = Rp 200,000, a total of Rp 1,024,000. The employer pays Rp 11,024,000 for an employee who banks Rp 9,400,000, a wedge of Rp 1,624,000 a month.

Now the annual leg.

Step 8 (annual gross). Rp 10,000,000 x 12 = Rp 120,000,000

Step 9 (biaya jabatan). 5% x Rp 120,000,000 = Rp 6,000,000, which is exactly the cap. Allowed: Rp 6,000,000.

Step 10 (deductible contributions). JHT and JP employee shares, Rp 300,000 a month, so Rp 300,000 x 12 = Rp 3,600,000. The Rp 100,000 a month of Kesehatan is not deductible and is excluded.

Step 11 (taxable income). Rp 120,000,000 - Rp 6,000,000 - Rp 3,600,000 = Rp 110,400,000, less PTKP of Rp 54,000,000 = Rp 56,400,000. Already a whole thousand, so the statutory round-down changes nothing here.

Step 12 (the annual tax). Entirely inside the first Pasal 17 band, so Rp 56,400,000 x 5% = Rp 2,820,000.

Step 13 (the true-up). Withheld across the eleven TER months: Rp 200,000 x 11 = Rp 2,200,000. December therefore takes Rp 2,820,000 - Rp 2,200,000 = Rp 620,000, which is 3.1 times an ordinary month.

Step 14 (December net pay). Rp 10,000,000 - Rp 400,000 - Rp 620,000 = Rp 8,980,000, or Rp 420,000 less than every other month of the year.

Step 15 (the year reconciles). Rp 9,400,000 x 11 + Rp 8,980,000 = Rp 112,380,000 of net pay, and the twelve tax legs sum to exactly the Rp 2,820,000 annual liability.

What does this calculator not account for?

  • Irregular pay. The calculator assumes a level wage every month, which is what makes annual gross twelve times the monthly figure. A bonus, a THR or a mid-year raise changes the TER month it lands in and changes the annual reconciliation. The THR case has its own calculator.
  • Which month is the final tax period. The reconciliation is modelled as December. Where employment ends mid-year the final period is the last month of employment instead.
  • Income other than employment income. Freelance income, rental income and investment income all enter the annual return and are not modelled here.
  • The pensioner deduction. Biaya pensiun is 5% capped at Rp 2,400,000 a year, not the Rp 6,000,000 employee figure used here.
  • Your local minimum wage. The BPJS Kesehatan floor is set per regency and is never assumed. Enter it only if your wage is below it.
  • The JP pension ceiling with full confidence. It is reindexed annually, and the Rp 11,086,300 default is the March 2026 figure taken from a BPJS Ketenagakerjaan circular that could not be retrieved from bpjsketenagakerjaan.go.id itself. It is exposed as an editable input for that reason. Confirm it before relying on it.
  • Your JKK risk class. BPJS Ketenagakerjaan assigns it from your business activity. Check your certificate rather than guessing.
  • Non-cash benefits and natura. Taxable fringe benefits under UU HPP are not modelled.
  • Tax credits, foreign tax relief and married-filing arrangements, including the NPWP-combining election for a working spouse.

What mistakes do people make with this?

  • Applying the TER rate to pay after BPJS. It goes on gross. This is the single commonest modelling error and it understates withholding every month.
  • Expecting December to look like November. It routinely does not, and on the reference case it is more than three times the deduction.
  • Deducting BPJS Kesehatan against PPh 21. Only JHT and JP are deductible, and only in the annual computation.
  • Applying one ceiling to all five programmes. Kesehatan caps at Rp 12,000,000, JP at a separate indexed figure, and JHT, JKK and JKM have no ceiling at all.
  • Updating your marital status mid-year and expecting withholding to move. The TER category is fixed at the start of the tax year.
  • Claiming a fourth dependent. PTKP caps dependents at three, and so does the TER category assignment.
  • Reading employer cost as take-home. The gap between the two is over 16% of gross on the reference case.
  • Assuming a 21% or flat rate. Neither the TER schedule nor the Pasal 17 ladder is flat.

Frequently Asked Questions

Why is my December payslip so much smaller?

Because the eleven earlier months were withheld at an average effective rate, and the final tax period recomputes the year properly against the progressive ladder and takes the shortfall in one go. On a Rp 10,000,000 salary that is Rp 620,000 instead of Rp 200,000.

Is PPh 21 calculated before or after BPJS?

Before. The TER rate is applied to gross monthly income under PP 58/2023 Pasal 2(4). The BPJS employee contributions are a separate deduction from the same gross.

Can I ever get money back in December?

Yes. If the TER months over-collected, the final period returns the excess and December net pay is higher than an ordinary month rather than lower.

Which BPJS contributions reduce my tax?

The employee JHT (2%) and JP (1%) contributions, and only in the annual Pasal 17 computation. The Kesehatan 1% never does.

Does the employer's JKK class affect my take-home pay?

No. JKK and JKM are paid entirely by the employer, so changing the risk class moves employer cost and leaves net pay untouched.

Why does my BPJS deduction stop growing with my salary?

Only partly. Kesehatan stops at the Rp 12,000,000 wage ceiling and JP stops at the pension ceiling, but JHT has no ceiling, so its 2% keeps scaling with the whole wage however high it goes.

What if I marry or have a child during the year?

Your withholding does not change until the following January. PP 58/2023 Pasal 2(3) fixes the TER category by your PTKP status at the start of the tax year. The annual computation does use your correct status, so the difference comes out in the reconciliation.

Sources

  • Perpres 64/2020 Pasal 30(1) and 32 for BPJS Kesehatan at 5% split 4% employer and 1% employee, the Rp 12,000,000 ceiling and the local minimum wage floor. dol.gov/agencies/whd/minimum-wage/state
  • Directorate General of Taxes (Indonesia), the official authority for the national tax authority this calculator relates to. pajak.go.id

All figures verified on 31 August 2026.

Also consulted: Peraturan Pemerintah Nomor 58 Tahun 2023, BPK JDIH text. Pasal 2(3) for the category being fixed at the start of the tax year, Pasal 2(4) for the monthly effective tariff applied to penghasilan bruto bulanan and for the A, B and C category assignments, and the Lampiran for the three rate schedules; Undang-Undang Nomor 7 Tahun 2021 (UU HPP), amending UU PPh Pasal 17, for the five-band progressive ladder; PMK 101/PMK.010/2016 for PTKP of Rp 54,000,000 with Rp 4,500,000 additions for marriage and for each of up to three dependents; PMK 250/PMK.03/2008 for biaya jabatan at 5% of gross capped at Rp 6,000,000 a year; PP 46/2015 Pasal 16 for JHT at 5.7% split 3.7% and 2%; PP 44/2015 Pasal 16(1) and 18(1) for the five JKK risk classes and JKM at 0.30%; PP 45/2015 Pasal 28 and 29(3) for JP at 3% split 2% and 1% and its annual reindexation; The March 2026 JP wage ceiling of Rp 11,086,300 comes from BPJS Ketenagakerjaan circular B/1226/022026 and was not retrieved from bpjsketenagakerjaan.go.id directly. It is the weakest-sourced figure on this page and is exposed as an editable input.

Did this calculator answer your question?

How this calculator is tested

This calculator is checked by 10 automated test cases: specific inputs whose correct result is known in advance, and rules the output must always obey. They run on every change to the site. See the testing and corrections policy.

Show the test cases
  • Vector 1: net pay on the defaults is Rp 9,400,000
  • Vector 2: the TER rate is applied to gross, not to gross less BPJS
  • Vector 3: only JHT and JP are deductible, and only annually
  • Vector 4: the employer pays Rp 11,024,000 a month
  • Vector 5: the annual liability is Rp 2,820,000 and December trues it up
  • Vector 6: the twelve month ledger has eleven equal months and one that is not
  • Vector 7: the health ceiling binds above Rp 12,000,000 but JHT does not
  • Vector 8: status K/3 moves the TER category from A to C
  • Vector 9: the JKK risk class changes employer cost, not net pay
  • Vector 10: the local UMK floors the Kesehatan base

Add This Website as Preferred Source on Google

See Bedrock Calculator first in your Search results & AI Overviews