THR
The Payroll menu can make a THR payroll (Tunjangan Hari Raya, the religious holiday bonus). Etalasse works out each staff member's THR from their join date and pay, prorated for anyone who has worked less than a year. After that it works like a normal payroll: check, lock, pay your staff yourself, mark as paid, and send the slips.
THR is part of the Payroll menu: from the Pro plan, Owner only.
Etalasse does not count BPJS or PPh 21 (income tax) on THR. If they need to be deducted, add them as a manual deduction, or ask your accountant. See Export for the accountant.
Before you start
- Fill in every staff member's join date, in Payroll > Salary profiles or in Attendance > Settings > Staff data. Without a join date their THR is Rp0. See Staff join date.
- Staff who get THR need an active salary profile.
Creating a THR payroll
In Payroll > Payrolls, tap New payroll, then choose New THR:
- Pick the holiday: Idul Fitri, Natal (Christmas), Nyepi, Waisak, Imlek (Chinese New Year), or type your own (up to 40 characters).
- Fill in the holiday date.
- Pick the staff. Everyone with an active salary profile is already ticked.
- Tap Create draft.
The name is filled in for you, for example THR Idul Fitri 2027. One staff member can get only one THR for the same holiday in a year. If someone is already in another THR payroll (not cancelled) for that holiday in the same year, Etalasse refuses and names them.
THR doesn't get in the way of normal pay. A THR payroll never counts as overlapping a monthly payroll, and it doesn't carry days over from an earlier period.
Who gets it and how much
Months worked is the number of whole months from the join date to the holiday date.
| Months worked | THR | Flag on the line |
|---|---|---|
| Join date not filled in | Rp0 | Join date not filled in |
| Less than 1 month | Rp0 | Worked less than 1 month |
| 1 to 11 months | Monthly wage × months worked ÷ 12 | Prorated N/12 months |
| 12 months or more | Monthly wage, in full | – |
Each THR is rounded to the nearest rupiah.
Monthly wage for monthly staff
Monthly wage = base salary + all fixed allowances in the salary profile.
Monthly wage for daily and hourly staff
Daily and hourly staff have no fixed salary, so Etalasse uses their average monthly earnings from pay already paid through Etalasse:
- What counts: base pay (daily or hourly wage), meal money, transport money and fixed allowances. Overtime, commission, manual items and earlier THR don't.
- 12 months worked or more: the average over the 12 calendar months before the holiday month.
- Fewer than 12 months: the average over the months they were paid.
- Only months with paid pay count. Months without pay are skipped, not counted as Rp0. Pay belongs to the month of its period end date, so Gaji 16–31 Okt 2026 belongs to October.
If the staff member was never paid through Etalasse, their THR is Rp0 with the flag No salary history yet. Add the amount yourself as a manual item.
Example
Toko Ani makes THR Idul Fitri 2027 with the holiday date 10 Mar 2027.
| Staff | Details | Months worked | Monthly wage | THR |
|---|---|---|---|---|
| Ani (monthly) | Joined 2 Feb 2025. Base salary Rp2.800.000, position allowance Rp200.000 | 25 months | Rp2.800.000 + Rp200.000 = Rp3.000.000 | Rp3.000.000 |
| Dedi (monthly) | Joined 1 Jun 2026. Base salary Rp2.400.000 | 9 months | Rp2.400.000 | Rp2.400.000 × 9 ÷ 12 = Rp1.800.000 |
| Budi (daily) | Joined 2024. The shop started using Etalasse Payroll in May 2026, so from Mar 2026 to Feb 2027 there was paid pay in 10 months, Rp32.500.000 in total (wage, meal money, transport; no overtime or commission) | more than 12 months | Rp32.500.000 ÷ 10 = Rp3.250.000 | Rp3.250.000 |
| Sari (daily) | Joined 1 Jul 2026. Paid from Jul 2026 to Feb 2027 (8 months), Rp20.000.000 in total | 8 months | Rp20.000.000 ÷ 8 = Rp2.500.000 | Rp2.500.000 × 8 ÷ 12 = Rp1.666.667 |
| Eko (monthly) | Joined 20 Feb 2027 | 0 months | – | Rp0 (Worked less than 1 month) |
Checking the draft
Each THR line has one THR item. Base salary, meal money, overtime, commission and fixed allowances are not part of a THR payroll. While it is a draft you can:
- add a manual item, for example THR for a staff member flagged No salary history yet, or an extra bonus;
- cut kasbon. By default THR cuts nothing (0); type an amount if you do want a cut.
Flags on THR lines:
| Flag | Meaning |
|---|---|
| Join date not filled in | THR is Rp0. Fill in the join date, then Recalculate |
| Worked less than 1 month | Worked less than 1 month, THR is Rp0 |
| Prorated N/12 months | Worked less than 12 months, so THR is partial |
| No salary history yet | Daily or hourly staff never paid through Etalasse. Add a manual item |
| Less than 7 days before the holiday | See When to pay |
When to pay
The rules ask for THR to be paid at least 7 days before the holiday. For a holiday on 10 Mar 2027, pay by 3 Mar 2027 at the latest.
If the paid date is later than that (or, before paying, today is already later than that), every line is flagged Less than 7 days before the holiday. Paying exactly 7 days before the holiday is not flagged.
The flag is only a reminder: THR can still be locked and paid.
Locking, paying and slips
The same as a normal payroll: Lock, pay your staff yourself (cash or transfer, with Export transfer CSV if needed), then Mark as paid. See Locking and marking as paid.
When marked as paid, Etalasse records one expense in the Salaries category named THR Idul Fitri 2027 (the holiday and year), so THR shows in Profit & Loss.
A THR slip shows the holiday name, its date and the THR item. Share it by link or WhatsApp like a normal payslip. Staff also see it in My payslips in the POS once it is marked as paid.