KAZENAKAZENA
All posts

Choosing the form was never the user's job

September 8, 2026 · Taro — Founder, KAZENA

On 26 August a short question arrived from V. It was not a bug report. It was 1 line about the selector at the top of the screen: which one of these do I choose? She is an accountant in Jakarta who tests KAZENA Books with the live data of her own practice. Someone who has been through it more than 20 times was stopped at the very top of the form.

That selector holds 4 entries: BPMP, BP21, BPPU, BPA1. All of them are the tax office's names for its forms. We had assumed that copying onto the screen exactly what Coretax accepts would leave nothing to be confused about. In fact there is no sentence anywhere on that screen explaining the difference between the 4. A field that lists abbreviations and nothing else is telling the user: you already know this, don't you.

Here is what the 4 are, as far as I am able to explain them. BPMP is the slip you issue, month by month, for an employee you pay a salary to every month. Since 2024 the monthly deduction has been calculated from a table of average effective rates, and the monthly slip takes this form. The person receiving it is the same person every month.

BPA1 is the one you issue for that same employee once a year. It lays out the year's total pay and the total withheld. For someone who leaves partway through the year, you issue it when they leave. What an employee uses for their own filing is not the monthly slips but this one. They may hold 12 monthly slips, but without this single sheet they cannot show what their year was.

BP21 is for people you are not paying in the form of a monthly salary: day workers, people engaged job by job, someone who received only severance or a bonus. Within the very same tax, PPh 21, the form parts ways depending on whether the recipient is a monthly employee.

BPPU belongs to a different return altogether. It is the slip for withholding on services, rent and the like, and its monthly return is filed separately from PPh 21. And the monthly return is assembled out of the slips. What appears in the PPh 21 return is the BPMP and BP21 slips issued that month. Choosing the wrong form is not a change of heading on a piece of paper. It changes which return the amount lands in. Put the 4 side by side in 1 field and they look like siblings. They were 3 and 1.

Here is what actually happened. In the data of V's practice, 3 months' worth of slips for one employee on a monthly salary had been created as BP21. The amounts were right and the withheld figures matched. Even so, when the BPA1 was produced at year end, the monthly totals and the A1 total did not agree. It was at the A1 stage that she noticed. The 3 months were rebuilt. They could be rebuilt because nothing had been filed yet.

The shape of our mistake is clear. That field was asking the user to enter an answer. To answer the question BPMP or BP21, you must already have decided which of the 2 the person falls under in the eyes of the system. The materials for that decision are in the user's hands: am I paying this person every month, or job by job; is this for this month, or the summary for the year. What they hold is the materials, not the answer.

At a nasi padang place at lunchtime you never have to say the name of a dish. You point at a plate on the display and that is your order. A customer who does not know the names can still order, because the shop is not demanding that you say the name. Our screen was demanding that you say the name.

Here is the fix. We replaced the selector with 2 questions. First: is this payment a monthly salary, or a payment for a job or a service? Second: is this a slip for this month, or the summary for the year? Answer them and the form is decided. The name of the decided form is then shown on the screen, because it is the name you need when you talk to the office or to the other party. Rather than hide it, we derive it and show it.

We fixed the arrangement too. Slips that belong to something other than PPh 21 were taken out of this screen's options and moved to the return they belong to. Sitting in the same field was itself an explanation that they were of a kind. The once-a-year slip is now offered by us, at year end and when an employee's departure is recorded. Waiting silently inside a list of options does not get a thing chosen at the time it is needed.

V tried the month that followed the change. In a month with 27 slips to produce, no question about forms came back. A single query came back, about how to treat someone who had been paid only a bonus. That is not a problem with our wording but a distinction on the system's side. We did not settle the answer ourselves; we added 1 line of note.

I should say this plainly. I am not a tax accountant. How the forms are divided, how the rates are determined, which form belongs to which return — all of it changes on the system's side. What is written here is a record of how we fixed our own screen. Please confirm any actual judgment with a professional.

One request to close with. If you have ever chosen something on a KAZENA screen without understanding what it meant, please tell me. As long as we make you choose, the mistake happens on your side. If we were asking for an answer from someone who does not hold the answer, the thing to fix is the question.

Tell us what you think

How the KAZENA apps feel to use, what we should fix, features you wish existed — if you run a small or medium business or work freelance in Indonesia or the Philippines, your voice is exactly what we want to hear. Messages in Bahasa Indonesia or English are answered by teammates who know your market from the inside. KAZENA Books is already set to launch in the Philippines and Indonesia — and if your company would like to bring it to other countries as a partner, or is interested in acquiring the system, we would love to hear from you too. We also take on new system development. We are a small team, so we cannot always start right away — but what we build carries made-in-Japan quality and stays close to how business really works here, one project at a time.

Get in touch

More from the blog