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.
Overview
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 This Is 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.
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.
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.
5. Net pay is gross less both deductions.
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.
8. December withholds the difference. The eleven TER months are subtracted from the annual liability, and whatever remains is taken in the final period.
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 This Does 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.
Common Pitfalls
- 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?
Is PPh 21 calculated before or after BPJS?
Can I ever get money back in December?
Which BPJS contributions reduce my tax?
Does the employer's JKK class affect my take-home pay?
Why does my BPJS deduction stop growing with my salary?
What if I marry or have a child during the year?
Sources
- 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.
- 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.
- 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.
- All figures verified on 31 August 2026.