Services · Accounting

Bookkeeping & financial reporting with absolute precision.

Professional bookkeeping, financial statements, payroll and internal audit — keeping your business finances accurate, compliant and ready for audit whenever it comes.

Xero Advisor Brevet A & B Financial Reporting

Credentials

Professional Certifications

portfolio & resources

Accounting Guide for Business Owners

Three core concepts every business owner should understand before handing books to anyone — including me. Clear bookkeeping today means a clean SPT tomorrow, no tax surprises, and financial statements investors can actually trust.

01 / Fundamental
The Accounting Equation
ASSETS = LIABILITIES + EQUITY

Every transaction keeps this balanced. If your books don't balance, something is wrong — not the math. When business starts running, we extend it to: Assets = Liabilities + Equity + Revenue − Expenses.

entity principle
Business accounts MUST be separated from personal accounts. This is the most common violation by UMKM owners — and the most frequent source of tax problems during audit.
02 / Process
The 8-Step Accounting Cycle

Every transaction flows through these eight steps — from receipt to financial statement. Skip a step, and your reports can't be trusted.

1Transaction
2Journalizing
3Posting to Ledger
4Trial Balance
5Adjusting Entries
6Worksheet
7Closing Entries
8Financial Statements
03 / Reference
Normal Balance: Debit or Credit?

The one table you'll reference forever. It tells you which side an account normally sits on — and which side to record an increase.

Account Normal
AssetsD
ExpensesD
LiabilitiesK
EquityK
RevenueK
Memory trick — DHAR: Debit for Harta (Assets) & BiaR (Expenses). KHMP: Kredit for Hutang (Liabilities), Modal (Equity), Pendapatan (Revenue).
worked example

From Transaction to Financial Statement

An illustrative service-firm example (not real client data) showing how a year of transactions moves through the accounting cycle into a clean Income Statement — the same process applied to live client books.

STAGE 01
Transactions
Identify & document every business event
STAGE 02
Journal Entries
Record chronologically, debit = credit
STAGE 03
Trial Balance
Verify total debits = total credits
STAGE 04
Income Statement
Revenue minus expenses = net profit
Journal Entries — Service Firm, Period 1 Jan – 31 Dec
Date Description Account (Dr / Cr) Debit (Rp) Credit (Rp)
01 Jan Owner capital deposit Bank / Equity 500.000.000 500.000.000
03 Jan Buy vehicle, cash Vehicle / Bank 200.000.000 200.000.000
10 Jan Buy office supplies on credit Supplies Exp / A/P 5.000.000 5.000.000
10 Mar Service revenue, cash Bank / Revenue 50.000.000 50.000.000
30 Mar Pay salary Salary Exp / Bank 5.000.000 5.000.000
10 Apr Service Rp 300M, DP Rp 50M Bank + A/R / Revenue 300.000.000 300.000.000
31 Dec Depreciation, vehicle Deprec Exp / Accum Deprec 25.000.000 25.000.000
Trial Balance — 31 Dec
Bank390.000.000
Vehicle200.000.000
Accounts Receivable250.000.000
Supplies Expense5.000.000
Salary Expense5.000.000
Depreciation25.000.000
Equity (cr)(500.000.000)
Revenue (cr)(350.000.000)
Accum Deprec (cr)(25.000.000)
Balanced ✓875.000.000
Income Statement — Year End
Service Revenue350.000.000
Expenses:
Salary(5.000.000)
Supplies(5.000.000)
Depreciation(25.000.000)
Total Expenses(35.000.000)
Net Profit315.000.000
client casebook

Client Casebook — Palu Businesses

Five representative businesses from Palu — from a UMKM café to a construction PT — each sitting in a different corner of Indonesia's tax landscape. Browse the bookkeeping below, then follow the View tax analysis → link on any case to see the full tax compliance analysis on the Tax page. The same data, two professional lenses.

Select a case
Case 01
Kopi Tadulako
Café / F&B · sole proprietor
UMKM Non-PKP
View casebook →
Case 02
Toko Makmur
Sembako retail · FIFO
PKP · PPN 11%
View casebook →
Case 03
CV Solusi Digital
IT services · invoicing
PKP · PPh 23
View casebook →
Case 04
PT Bangun Sulawesi
Construction · project costing
PKP · PPh 4(2)
View casebook →
Case 05
Kos Pak Haris
Boarding house · 20 rooms
Non-PPN · Final 10%
View casebook →
CASE 01 · JANUARI 2025

Kopi Tadulako

A small café in Palu owned by Pak Hasan, serving espresso-based drinks, teas, and snacks. Monthly revenue of Rp 32.9M places it well within the UMKM threshold — single-entry bookkeeping is sufficient, no PPN to collect, and employee payroll sits below PTKP. A textbook Non-PKP case.

Business Café (F&B) Location Palu, Sulteng Revenue Rp 32,93 M/mo Status Non-PKP · UMKM Employees 2 baristas
Buku Harian — Cash Journal · Januari 2025

Every cash in and cash out, recorded chronologically. Since Kopi Tadulako is Non-PKP and owner-managed, a simple single-entry cash book is compliant under Article 28(7) UU KUP (pencatatan instead of pembukuan lengkap).

Date Description Debit (Rp) Credit (Rp) Account Cash Balance
01 JanOwner capital deposit50.000.000Kas / Modal50.000.000
01 JanRent — January3.500.000B. Sewa / Kas46.500.000
01 JanCafé equipment (tables, chairs, coffee machine)12.000.000Peralatan / Kas34.500.000
02 JanInitial raw material stock4.000.000Persediaan / Kas30.500.000
03 JanCash sales day 11.250.000Kas / Pendapatan31.750.000
04 JanCash sales day 2980.000Kas / Pendapatan32.730.000
05 JanCash sales day 31.100.000Kas / Pendapatan33.830.000
06 JanPay salary (2 baristas)4.000.000B. Gaji / Kas29.830.000
07 JanCash sales day 5–62.150.000Kas / Pendapatan31.980.000
08 JanWeekly restock2.500.000Persediaan / Kas29.480.000
10 JanCash sales (8–10 Jan)3.450.000Kas / Pendapatan32.930.000
12 JanCash sales (11–12 Jan)2.200.000Kas / Pendapatan35.130.000
13 JanElectricity & water850.000B. Utilitas / Kas34.280.000
14 JanCash sales (13–14 Jan)2.400.000Kas / Pendapatan36.680.000
15 JanWeekly restock2.500.000Persediaan / Kas34.180.000
17 JanCash sales (15–17 Jan)3.600.000Kas / Pendapatan37.780.000
19 JanCash sales (18–19 Jan)2.300.000Kas / Pendapatan40.080.000
20 JanPay salary (2 baristas)4.000.000B. Gaji / Kas36.080.000
21 JanRestock + packaging3.000.000Persediaan / Kas33.080.000
21 JanCash sales (20–21 Jan)2.500.000Kas / Pendapatan35.580.000
24 JanCash sales (22–24 Jan)3.800.000Kas / Pendapatan39.380.000
26 JanCash sales (25–26 Jan)2.600.000Kas / Pendapatan41.980.000
27 JanMarketing (IG ads + flyer)500.000B. Pemasaran / Kas41.480.000
28 JanCash sales (27–28 Jan)2.700.000Kas / Pendapatan44.180.000
29 JanEnd-of-month restock2.000.000Persediaan / Kas42.180.000
31 JanCash sales (29–31 Jan)3.900.000Kas / Pendapatan46.080.000
31 JanEquipment depreciation (Rp12M / 36 mo)333.333B. Penyusutan / Akm. Penyusutan45.746.667
TOTAL84.930.00039.183.33345.746.667
Total cash in
Rp 84.930.000
Total cash out
Rp 39.183.333
Ending cash balance
Rp 45.746.667
HPP — Cost of Goods Sold · Januari 2025

Two views of COGS: (A) raw material movement by date, (B) breakdown by menu category. Compared against gross margin targets to flag pricing issues early.

A — Raw material movement
Date Description Purchased (Rp) Used (Rp) Stock balance
02 JanInitial raw stock4.000.0004.000.000
08 JanWeekly restock2.500.0006.500.000
08 JanEstimated usage (1–8 Jan)3.200.0003.300.000
15 JanWeekly restock2.500.0005.800.000
15 JanEstimated usage (9–15 Jan)3.100.0002.700.000
21 JanRestock + packaging3.000.0005.700.000
21 JanEstimated usage (16–21 Jan)2.800.0002.900.000
29 JanEnd-of-month restock2.000.0004.900.000
31 JanEstimated usage (22–31 Jan)2.900.0002.000.000
TOTAL14.000.00012.000.0002.000.000
B — HPP breakdown by menu category
Menu category Main ingredients Cost/unit Portions Total COGS Price/unit GM %
Coffee (espresso) Beans, milk, sugar 8.000 820 6.560.000 12.000 33,3%
Non-coffee drinks Tea, milk, syrup, fruit 5.000 410 2.050.000 9.000 44,4%
Snacks Flour, eggs, oil, packaging 6.000 380 2.280.000 12.000 50,0%
Bottled resale Direct supplier purchase 7.000 210 1.470.000 12.000 41,7%
TOTAL COGS — JANUARY12.360.000
⚠ Reconciliation finding
Three different COGS numbers across three sheets
The Buku Harian shows Rp 14M total purchases of raw materials. Table A here shows Rp 12M total usage. Table B breaks down to Rp 12.36M. The P&L uses Rp 14M as ‘materials consumed’ — which is wrong, because Rp 2M of inventory is still on hand. Correct COGS = Beginning (0) + Purchases (14M) − Ending (2M) = Rp 12M. In real practice, this kind of small discrepancy is the exact thing I'd flag during monthly close — it only becomes a problem at SPT time when the tax office sees Laba Kotor figures that don't tie to inventory movement.
Income Statement · Januari 2025

The core monthly performance statement — revenue, gross profit after COGS, operating expenses, and net profit after final tax.

REVENUE
Food & beverage sales32.930.000
TOTAL REVENUE32.930.000
COST OF GOODS SOLD
Raw materials consumed (per source sheet)14.000.000
GROSS PROFIT18.930.000
Gross margin %57,5%
OPERATING EXPENSES
Salary (2 baristas)8.000.000
Rent3.500.000
Utilities850.000
Marketing500.000
Depreciation333.333
TOTAL OPEX13.183.333
PRE-TAX PROFIT (EBIT)5.746.667
PPh Final UMKM (0.5% × revenue)(164.650)
NET PROFIT AFTER TAX5.582.017
Employee data · Januari 2025

Three people on the books. Both baristas fall below the PTKP (non-taxable income threshold), so no PPh 21 withholding applies — but compensation structure means even a small raise could change that.

# Name Role PTKP Gross/mo PPh 21/mo Note
1 Rina Marlina Barista / Cashier TK/0 4.000.000 0 Annual gross < PTKP
2 Dedy Kurniawan Barista / Server TK/0 4.000.000 0 Annual gross < PTKP
3 Pak Hasan Owner / Manager K/1 Takes profit, not salary · files SPT 1770
TOTAL8.000.0000
Tax perspective
Continue with the full tax analysis for Kopi Tadulako
Same data, tax-compliance lens — PPh Final calculation, PKP threshold check, PTKP verification, filing calendar, and practitioner recommendations.
View Tax Analysis  
CASE 02 · JANUARI 2025

Toko Makmur

A sembako retailer in Palu owned by Bapak Rahmat, selling rice, cooking oil, sugar, and mixed grocery to walk-in customers. Already registered as PKP, so every purchase and sale carries PPN 11%. Three employees — one kepala toko above PTKP, two below. Where Kopi Tadulako kept things simple, Toko Makmur operates at the next tier of tax complexity.

Business Sembako retail Location Palu, Sulteng Revenue DPP Rp 27,46 jt/mo Status PKP · FIFO Employees 3 staff
Buku Besar Harian — Double-Entry Ledger · Januari 2025

As a PKP, Toko Makmur is required to use full double-entry bookkeeping under Article 28(1) UU KUP — not just pencatatan. Every sale is split into DPP + PPN Keluaran; every purchase into Persediaan + PPN Masukan. This separation is what makes the monthly PPN reconciliation possible.

Date Description Debit (Rp) Credit (Rp) Account (D / K)
01 JanOwner capital deposit150.000.000Kas / Modal
01 JanRent — Januari5.000.000B. Sewa / Kas
03 JanBuy rice 200kg — DPP2.400.000Persediaan / Kas
03 Jan  ↳ VAT In (11%)264.000PPN Masukan / Kas
05 JanSale rice — DPP2.160.000Kas / Penjualan
05 Jan  ↳ VAT Out (11%)237.600Kas / PPN Keluaran
07 JanBuy cooking oil — DPP1.850.000Persediaan / Kas
07 Jan  ↳ VAT In (11%)203.500PPN Masukan / Kas
08 JanSale cooking oil — DPP2.160.000Kas / Penjualan
08 Jan  ↳ VAT Out (11%)237.600Kas / PPN Keluaran
10 JanBuy sugar 150kg — DPP2.175.000Persediaan / Kas
10 Jan  ↳ VAT In (11%)239.250PPN Masukan / Kas
12 JanSale sugar — DPP2.800.000Kas / Penjualan
12 Jan  ↳ VAT Out (11%)308.000Kas / PPN Keluaran
14 JanBuy mixed sembako — DPP4.500.000Persediaan / Kas
14 Jan  ↳ VAT In (11%)495.000PPN Masukan / Kas
16 JanSale rice — DPP3.000.000Kas / Penjualan
16 Jan  ↳ VAT Out (11%)330.000Kas / PPN Keluaran
18 JanSale mixed sembako — DPP3.300.000Kas / Penjualan
18 Jan  ↳ VAT Out (11%)363.000Kas / PPN Keluaran
20 JanBuy rice 300kg — DPP3.660.000Persediaan / Kas
20 Jan  ↳ VAT In (11%)402.600PPN Masukan / Kas
22 JanSale cooking oil — DPP1.480.000Kas / Penjualan
22 Jan  ↳ VAT Out (11%)162.800Kas / PPN Keluaran
24 JanSale rice — DPP3.360.000Kas / Penjualan
24 Jan  ↳ VAT Out (11%)369.600Kas / PPN Keluaran
26 JanBuy sugar & sembako — DPP3.700.000Persediaan / Kas
26 Jan  ↳ VAT In (11%)407.000PPN Masukan / Kas
28 JanSale mixed sembako — DPP4.500.000Kas / Penjualan
28 Jan  ↳ VAT Out (11%)495.000Kas / PPN Keluaran
29 JanPay salary (3 staff)7.500.000B. Gaji / Kas
30 JanSale rice & sugar — DPP2.600.000Kas / Penjualan
30 Jan  ↳ VAT Out (11%)286.000Kas / PPN Keluaran
31 JanEnd-of-month sales — DPP2.100.000Kas / Penjualan
31 Jan  ↳ VAT Out (11%)231.000Kas / PPN Keluaran
31 JanElectricity & internet1.200.000B. Utilitas / Kas
TOTAL DEBIT / KREDIT180.480.60033.996.350
Operating transactions
36
VAT entries (split)
16
Accounts used
9
Kartu Persediaan — FIFO Inventory Card · Januari 2025

FIFO (First-In, First-Out) tracks which physical stock gets sold first — the oldest purchases. Purchases are recorded at DPP (excluding PPN, which flows separately). Outflows should be valued at FIFO cost, not selling price.

Date Description Qty In Unit Cost (Rp) Value In (Rp) Qty Out Outflow Value (Rp)
01 JanOpening: rice50012.0006.000.000
01 JanOpening: cooking oil20018.0003.600.000
01 JanOpening: sugar30014.0004.200.000
03 JanBuy rice 200kg + PPN20012.0002.400.000
05 JanSale rice1802.160.000
07 JanBuy cooking oil 100L + PPN10018.5001.850.000
08 JanSale cooking oil1202.160.000
10 JanBuy sugar 150kg + PPN15014.5002.175.000
12 JanSale sugar2002.800.000
14 JanBuy mixed sembako + PPN30015.0004.500.000
16 JanSale rice2503.000.000
18 JanSale mixed sembako2203.300.000
20 JanBuy rice 300kg + PPN30012.2003.660.000
22 JanSale cooking oil801.480.000
24 JanSale rice2803.360.000
26 JanBuy sugar & sembako + PPN25014.8003.700.000
28 JanSale mixed sembako3004.500.000
30 JanSale rice & sugar2002.600.000
31 JanEnd-of-month sale1502.100.000
TOTAL2.00032.085.0001.98027.460.000
⚠ Reconciliation finding
The ‘Nilai Keluar’ column shows selling prices, not FIFO cost
Under FIFO, outflow value should equal quantity sold × unit cost from the oldest purchase layer — not the selling price. In this card, Nilai Keluar totals Rp 27,460,000 which exactly matches Total Penjualan (DPP) in the ledger. That can’t be right: it would imply a 0% gross margin, making every sale a cost-price transaction.

The proper reconciliation: HPP = Opening Inventory (Rp 13,8 jt) + Purchases (Rp 18,3 jt) − Closing Inventory. The client still needs to do a physical stock count at month-end to determine closing inventory precisely. For this dashboard, HPP is estimated at 58% gross margin (Rp 11,53 jt), yielding a closing inventory of Rp 20,57 jt — consistent with mixed SKU margins (staples lower, packaged goods higher) in a well-operated Palu sembako store.
Opening inventory
Rp 13.800.000
Purchases (DPP)
Rp 18.285.000
Estimated closing inv.
Rp 20.566.800
VAT Reconciliation — PPN Masukan vs Keluaran · Januari 2025

Every month, Toko Makmur files SPT Masa PPN. It adds up all PPN collected from customers (Keluaran) and subtracts PPN paid to suppliers (Masukan). The difference is either remitted to DJP (kurang bayar) or carried forward as credit / refunded (lebih bayar).

A — PPN Masukan (VAT paid on purchases)
Date Purchase DPP (Rp) VAT 11% (Rp) Total paid FP No.
03 JanBuy rice 200kg2.400.000264.0002.664.000FP-TM-2501-001
07 JanBuy cooking oil 100L1.850.000203.5002.053.500FP-TM-2501-002
10 JanBuy sugar 150kg2.175.000239.2502.414.250FP-TM-2501-003
14 JanBuy mixed sembako4.500.000495.0004.995.000FP-TM-2501-004
20 JanBuy rice 300kg3.660.000402.6004.062.600FP-TM-2501-005
26 JanBuy sugar & sembako3.700.000407.0004.107.000FP-TM-2501-006
TOTAL PPN MASUKAN18.285.0002.011.35020.296.350
B — PPN Keluaran (VAT collected on sales)
Date Sale DPP (Rp) VAT 11% (Rp) Total received FK No.
05 JanSale rice to customer2.160.000237.6002.397.600FK-TM-2501-001
08 JanSale cooking oil2.160.000237.6002.397.600FK-TM-2501-002
12 JanSale sugar2.800.000308.0003.108.000FK-TM-2501-003
16 JanSale rice3.000.000330.0003.330.000FK-TM-2501-004
18 JanSale mixed sembako3.300.000363.0003.663.000FK-TM-2501-005
22 JanSale cooking oil1.480.000162.8001.642.800FK-TM-2501-006
24 JanSale rice3.360.000369.6003.729.600FK-TM-2501-007
28 JanSale mixed sembako4.500.000495.0004.995.000FK-TM-2501-008
30 JanSale rice & sugar2.600.000286.0002.886.000FK-TM-2501-009
31 JanEnd-of-month sale2.100.000231.0002.331.000FK-TM-2501-010
TOTAL PPN KELUARAN27.460.0003.020.60030.480.600
C — SPT Masa PPN Summary
PPN Keluaran (collected from customers) 3.020.600
PPN Masukan (credited from purchases) (2.011.350)
PPN KURANG BAYAR — to remit to DJP 1.009.250

📌 Tax note: PPN Kurang Bayar (positive) = remit to state treasury by end of following month (28 Feb 2025 for Jan period). PPN Lebih Bayar (negative) = can be compensated against future months or requested as refund (restitusi).

Income Statement · Januari 2025

DPP only — VAT flows separately through PPN Masukan/Keluaran accounts on the balance sheet side. HPP is estimated at 58% gross margin (see reconciliation finding on the Persediaan tab). PPh is zero because Bapak Rahmat’s annualized PKP falls below PTKP K/2.

REVENUE
Sembako retail sales (DPP only)27.460.000
TOTAL REVENUE27.460.000
COST OF GOODS SOLD
COGS (imputed at 58% GM)11.533.200
GROSS PROFIT15.926.800
Gross margin %58,0%
OPERATING EXPENSES
Salary (3 staff)7.500.000
Rent (ruko)5.000.000
Utilities (electricity + internet)1.200.000
TOTAL OPEX13.700.000
PRE-TAX PROFIT (EBIT)2.226.800
Net margin %8,1%
PPh OP (annualized EBIT < PTKP K/2)0
NET PROFIT AFTER TAX2.226.800
Counter-intuitive but correct: The business made Rp 2.23M profit this month yet owes Rp 1.13M in tax (PPN Rp 1.01M + PPh 21 Tono Rp 117k) — that’s 51% of net profit going to taxes. Meanwhile, Bapak Rahmat’s personal PPh OP is zero because his annualized PKP falls under PTKP K/2. This is why PPN cash-flow discipline matters far more than income tax for PKP retailers.
Employee data · Januari 2025

Four people on the books — including the owner. Only one (Tono, kepala toko) exceeds PTKP and triggers actual PPh 21 withholding. Kasir and pramuniaga sit comfortably below.

# Name Role PTKP Gross/mo PPh 21/mo Note
1 Bapak Rahmat Owner / Director K/2 Takes profit distribution · files SPT 1770
2 Desi Ratnasari Cashier / Admin TK/0 3.700.000 0 Annual gross < PTKP TK/0
3 Tono Wibowo Store Manager K/1 8.000.000 117.500 PKP Rp 28,2jt × 5% = Rp 1,41jt/yr
4 Sari Dewi Sales clerk TK/0 3.000.000 0 Annual gross < PTKP TK/0
TOTAL14.700.000117.500
Tono’s PPh 21 worked out: Bruto annual Rp 96 jt − Biaya Jabatan 5% (capped at Rp 6 jt/yr → Rp 4,8 jt) = Neto Rp 91,2 jt. After PTKP K/1 Rp 63 jt → PKP Rp 28,2 jt. First bracket 5% → Rp 1,41 jt/yr ÷ 12 = Rp 117.500/bulan. Deposited via SSP code 411121-100 by the 10th of each following month; SPT Masa PPh 21 filed by the 20th.
Tax perspective
Continue with the full tax analysis for Toko Makmur
Same data, tax-compliance lens — PPN Masukan vs Keluaran reconciliation with SPT Masa PPN output, PPh 21 progressive calc for Tono, and 5 distinct filing obligations per month.
View Tax Analysis  
CASE 03 · JANUARI 2025

CV Solusi Digital

An IT services firm in Palu, registered as PKP with annual revenue above Rp 4.8B. CV Solusi Digital issues invoices to corporate clients who withhold PPh 23, collects PPN 11% on every service, and runs payroll for 5 employees — two of whom have no NPWP yet. A three-tax-obligation case.

Business IT Services (Jasa IT) Location Palu, Sulteng Revenue Rp 180M DPP/mo Status PKP · PPh 23 · PPN 11% Employees 5 staff
Invoice & Receivables — January 2025

CV Solusi Digital is a registered PKP — every invoice must include PPN 11% and be accompanied by a Faktur Pajak. Corporate clients (PT, CV, government) withhold PPh 23 at 2% of the service fee (DPP) before remitting payment. Three invoices remain unpaid — but PPN is already owed to DJP from the invoice date.

Invoice Client Date DPP (Rp) PPN 11% Total (Rp) Status
INV-2501-001PT Harapan Maju05 Jan15.000.0001.650.00016.650.000PAID
INV-2501-002CV Berkah Abadi08 Jan8.500.000935.0009.435.000PAID
INV-2501-003UD Sejahtera Palu10 Jan22.000.0002.420.00024.420.000UNPAID
INV-2501-004PT Sulawesi Niaga12 Jan18.000.0001.980.00019.980.000SEBAGIAN
INV-2501-005Dinas Pertanian Sulteng15 Jan45.000.0004.950.00049.950.000PAID
INV-2501-006CV Mitra Teknologi18 Jan12.000.0001.320.00013.320.000UNPAID
INV-2501-007PT Alam Sulawesi20 Jan9.500.0001.045.00010.545.000PAID
INV-2501-008Koperasi Nelayan Palu22 Jan6.000.000660.0006.660.000UNPAID
INV-2501-009PT Konstruksi Prima25 Jan33.000.0003.630.00036.630.000SEBAGIAN
INV-2501-010UD Karya Mandiri28 Jan11.000.0001.210.00012.210.000PAID
TOTAL180.000.00019.800.000199.800.000
Receivables Aging Summary
Status Invoices DPP (Rp) PPN (Rp) Total Tagihan (Rp)
PAID589.000.0009.790.00098.790.000
SEBAGIAN251.000.0005.610.00056.610.000
UNPAID340.000.0004.400.00044.400.000
TOTAL10180.000.00019.800.000199.800.000
⚠ Tax timing risk
PPN is owed on invoice date — not payment date
CV Solusi Digital has Rp 44.4M in unpaid invoices and Rp 56.6M partially paid — but the PPN on all of them (Rp 19.8M total) is already owed to DJP from the invoice date. If these clients pay late or default, the firm still owes the tax. This is the most common cash-flow trap for small PKP service firms in Indonesia.
Cash Flow Statement — Direct Method · January 2025

Direct method: cash in and out by activity. Three sections — Operating, Investing, Financing. Note that PPN and PPh 23 collected/withheld appear as operating items, not income.

Description Notes Cash In (Rp) Cash Out (Rp) Net (Rp)
I. AKTIVITAS OPERASI
Collections from clients (5 paid invoices)INV-001,002,005,007,01099.500.000
Partial collection INV-004 (50%)50% × Rp 19,98jt9.990.000
Partial collection INV-009 (30%)30% × Rp 36,63jt10.989.000
Pay salaries (5 employees)See Employees tab22.500.000
Office rentJanuari 20258.000.000
Operational costs (stationery, internet, etc)3.500.000
PPN remittance (prior month SPT)SPT Masa PPN Des 202412.650.000
PPh 21 employee withholdingSee Employees tab4.250.000
NET CASH FROM OPERATING ACTIVITIES69.579.000
II. AKTIVITAS INVESTASI
Purchase 2 new laptops (fixed assets)Aset tetap24.000.000
Server upgrade & annual hostingInfrastruktur IT6.500.000
NET CASH FROM INVESTING ACTIVITIES(30.500.000)
III. AKTIVITAS PENDANAAN
Working capital loanBank Sulutgo50.000.000
Loan principal repaymentAngsuran rutin5.000.000
NET CASH FROM FINANCING ACTIVITIES45.000.000
OPENING CASH BALANCE (1 Jan 2025)35.000.000
CLOSING CASH BALANCE (31 Jan 2025)119.079.000
Employee Data & PPh 21 — January 2025

5 permanent employees. Arif (Director) and Novia (Senior Dev) are in the 15% progressive bracket. Dewi and Bagas have no NPWP — DJP requires a 20% PPh 21 surcharge on their monthly withholding until they register.

Name Position PTKP Gross/mo (Rp) PPh 21/mo (Rp) Net (Rp) Notes
Arif HidayatullahDirekturK/218.000.0001.281.25016.718.750PKP Rp 142,5jt — lapis 5%+15%
Novia RahmawatiSenior DevTK/011.500.000475.00011.025.000PKP Rp 78jt — lapis 5%+15%
Rizky FirmansyahBackend DevK/19.500.000188.7509.311.250PKP Rp 45,3jt × 5%
Dewi Anggraini ⚠UI/UX DesignerTK/07.750.000143.1257.606.875No NPWP yet — subject to the 20% surcharge
Bagas Setiawan ⚠Junior DevTK/06.000.00060.0005.940.000No NPWP yet — subject to the 20% surcharge
TOTAL52.750.0002.148.12550.601.875
⚠ Compliance finding — NPWP
2 employees without NPWP — 20% PPh 21 surcharge applies
Dewi and Bagas have no NPWP. Under Article 21(5a) UU PPh, employees without NPWP are subject to a 20% higher withholding rate. CV Solusi Digital must apply the surcharge — if DJP audits and finds it wasn't applied, the firm is liable for the underpayment plus penalties. Fix: assist both employees in registering NPWP — it takes 30 minutes online via ereg.pajak.go.id.
Financial Statements — PSAK Presentation · January 2025

Prepared under PSAK (SAK Umum) presentation. As a CV without public accountability, this entity may formally use SAK EP; the full PSAK format below demonstrates full-standard capability.

▣ PSAK standard
Two statements are shown: Statement of Financial Position (Neraca) and Income Statement (Laporan Laba Rugi), classified per PSAK — current vs non-current, revenue less cost of sales to gross profit, then operating expenses. Figures are illustrative and internally consistent (Assets = Liabilities + Equity).
A — Income Statement (PSAK)
DescriptionAmount (Rp)
Service revenue180.000.000
Direct project cost(90.000.000)
GROSS PROFIT90.000.000
Salary expense(22.500.000)
Office rent(8.000.000)
Operating expense(3.500.000)
Depreciation(1.000.000)
NET PROFIT55.000.000
B — Statement of Financial Position (PSAK)
ItemAmount (Rp)
CURRENT ASSETS
Cash & equivalents119.079.000
Trade receivables72.100.000
Prepaid tax (PPh 23)3.600.000
Total current assets194.779.000
NON-CURRENT ASSETS
Fixed assets (net)29.500.000
TOTAL ASSETS224.279.000
LIABILITIES
Bank loan (short-term)45.000.000
Tax payable (VAT)4.279.000
Total liabilities49.279.000
EQUITY
Paid-in capital120.000.000
Current-year profit55.000.000
Total equity175.000.000
TOTAL LIABILITIES & EQUITY224.279.000
Net Profit
Rp 55,0 jt
Total Assets
Rp 224,3 jt
Balance
Seimbang ✓
linked analysis
Tax Analysis: PPN, PPh 23 & PPh 21 for CV Solusi Digital
Full tax compliance walkthrough — PPN timing trap, PPh 23 credit mechanism, NPWP surcharge, and 6-obligation filing calendar.
View Tax Analysis  
CASE 04 · JANUARI 2025

PT Bangun Sulawesi

A construction company in Palu contracted for a 3-month government office building project worth Rp 2.8B. PT Bangun Sulawesi manages project costing with budget vs actuals variance, progress billing in three termins, and a mixed workforce of 5 permanent staff plus 15 daily laborers — each with different tax treatment.

Business Construction (Jasa Konstruksi) Location Palu, Sulteng Contract Rp 2,8B · 3 months Status PKP · PPh 4(2) Final 2.65% Workforce 5 permanent + 15 daily
Project Costing — Budget vs Actuals · January 2025

Gedung Kantor Dinas project — Rp 2.8B contract over 3 months. This sheet tracks budget vs actual spending in January across 4 cost categories: Materials, Labor, Equipment, Overhead. Variance analysis shows where the project is running over or under budget.

Code Work Item Budget Jan (Rp) Actual Jan (Rp) Variance (Rp) %
MATERIAL
MAT-01Cement & foundation materials180.000.000175.000.0005.000.00097,2%
MAT-02Besi beton & tulangan220.000.000215.000.0005.000.00097,7%
MAT-03Bata, pasir & kerikil95.000.00092.000.0003.000.00096,8%
MAT-04Kayu bekisting60.000.00058.000.0002.000.00096,7%
MAT-05Cat, keramik & finishing20.000.000020.000.0000% — not yet scheduled
TENAGA KERJA
LAB-01Foreman wages (1 person)8.000.0008.000.0000100%
LAB-02Tradesmen wages (10 people)50.000.00050.000.0000100%
LAB-03Labourer wages (15 people)45.000.00045.000.0000100%
LAB-04Lembur & tunjangan lapangan12.000.00011.500.000500.00095,8%
PERALATAN
EQP-01Heavy equipment rental (excavator)35.000.00033.000.0002.000.00094,3%
EQP-02Scaffolding rental8.000.0008.000.0000100%
OVERHEAD
OVH-01Occupational health & safety costs5.000.0004.800.000200.00096,0%
OVH-02Transportasi & logistik15.000.00014.500.000500.00096,7%
OVH-03Project office overhead10.000.00010.000.0000100%
TOTAL JANUARI763.000.000724.800.00038.200.00094,9%
✓ Variance analysis finding
January actuals 5.1% under budget — on track
Total January spending of Rp 724.8M is Rp 38.2M below the Rp 763M budget — a healthy 5.1% underspend. The largest favorable variance is MAT-05 (cat & finishing) at Rp 20M — this is expected, as finishing work is scheduled for March. All labor costs hit exactly on budget. The project is running within tolerance entering February.
Progress Billing — Termin Schedule · Jan–Mar 2025

Construction contracts in Indonesia typically use termin billing — payment is triggered by physical progress milestones, not calendar dates. Each termin is subject to PPN 11% and PPh 4(2) Final 2.65%. The government client withholds PPh 4(2) before remitting payment.

Termin Milestone % DPP (Rp) PPN 11% (Rp) PPh 4(2) 2.65% (Rp) Net Received (Rp) Status
Termin IPondasi & struktur bawah (Jan)30%840.000.00092.400.00022.260.000817.740.000PAID
Termin IIStruktur atas & dinding (Feb)35%980.000.000107.800.00025.970.000954.030.000PENDING
Termin IIIFinishing & serah terima (Mar)35%980.000.000107.800.00025.970.000954.030.000PENDING
TOTAL CONTRACT2.800.000.000308.000.00074.200.0002.725.800.000
📌 Tax note — PPh 4(2) Final
PPh 4(2) is withheld by the government client — not self-remitted
For government contracts, the pemberi kerja (Dinas) acts as the withholding agent for PPh 4(2) Final 2.65%. PT Bangun Sulawesi receives net payment after deduction. The tax is final — it cannot be credited against PPh Badan at year-end. This means the Rp 74.2M in PPh 4(2) across all three termins is gone from PT Bangun Sulawesi's perspective — it will never reduce the company's annual tax bill.
Payroll & PPh 21 — Mixed Workforce · January 2025

PT Bangun Sulawesi has two workforce tiers: permanent staff (PPh 21 withheld monthly) and daily laborers (PPh 21 = 0 because daily wages are below the PTKP threshold). This is a common structure in Indonesian construction — and a common source of PPh 21 miscalculation.

A — Permanent Staff
Name / Position PTKP Gross/mo (Rp) BPJS TK 2% (Rp) BPJS Kes 1% (Rp) PPh 21/mo (Rp) Net (Rp)
Ir. Slamet Riyadi / Project DirectorK/223.000.000460.000230.0002.031.25020.278.750
Hendra Kusuma / Site ManagerK/114.000.000280.000140.000737.50012.842.500
Fitri Handayani / Project AdminTK/05.750.000115.00057.50048.1255.529.375
Budi Santoso / MandorK/110.000.000200.000100.000212.5009.487.500
Ahmad Yani / Tukang SeniorK/06.300.000126.00063.00055.5006.055.500
TOTAL PERMANENT EMPLOYEES59.050.0001.181.000590.5003.084.87554.193.625
B — Daily Workers & Tukang (PPh 21 = 0)
Name / Position Gross/mo (Rp) PPh 21 (Rp) Reason
Rizal Hidayat / Tukang5.600.00041.000Annual gross Rp 67,2jt > PTKP TK/0
Faisal Ibrahim / Tukang5.700.00045.750Annual gross Rp 68,4jt > PTKP TK/0
Yusuf Karim / Tukang5.500.00036.250Annual gross Rp 66jt > PTKP TK/0
Hasrul Bakri / Tukang5.600.00022.250PTKP K/0 Rp 58,5jt — just above
Doni Pratama / Tukang ✓4.700.0000Annual gross Rp 56,4jt < PTKP TK/0 Rp 54jt — just below
Supriadi / Tukang5.100.00017.250Annual gross Rp 61,2jt > PTKP TK/0
Hamid Lako / Tukang ✓5.000.0000Annual gross Rp 60jt — assumed K/0, PTKP Rp 58,5jt
Wahyu Saputra / Tukang5.200.00022.000Annual gross Rp 62,4jt > PTKP TK/0
Amir Saad / Tukang ✓4.400.0000Annual gross Rp 52,8jt < PTKP TK/0 Rp 54jt
Casual Day Labourers (15 people) ✓3.000.0000Daily wage < Rp 450rb/day → PPh 21 = 0
TOTAL TRADESMEN + DAY LABOURERS49.800.000184.500
⚠ Common mistake in construction payroll
Not all tukang are below PTKP — check each one
Many construction firms assume all daily workers and tukang are PPh 21-exempt. This is wrong. Seven of the nine tukang here exceed the TK/0 PTKP of Rp 54M/year and owe PPh 21. Only Doni, Amir, and the 15 daily laborers are genuinely below threshold. Blanket exemption = underpayment = DJP penalty at audit time.
Financial Statements — PSAK Presentation · January 2025

Prepared under PSAK — including PSAK 72 (revenue recognised over time, percentage-of-completion) and the presentation of contract assets and liabilities.

▣ PSAK 72 — revenue over time
At 38.8% completion (cost-to-cost), revenue of Rp 1,085 M is recognised even though only Rp 840 M was billed (Termin I). The Rp 245 M difference is a contract asset — earned but unbilled — a distinctly PSAK treatment. Figures are illustrative and balanced (Assets = Liabilities + Equity).
A — Income Statement (PSAK 72)
DescriptionAmount (Rp)
Contract revenue (38.8% complete)1.085.262.000
Contract cost(724.800.000)
GROSS PROFIT360.462.000
General & admin expense(30.000.000)
OPERATING PROFIT330.462.000
Memo: Final PPh 4(2) on billing22.260.000
B — Statement of Financial Position (PSAK)
ItemAmount (Rp)
CURRENT ASSETS
Cash & bank415.600.000
Contract asset (unbilled)245.262.000
TOTAL ASSETS660.862.000
LIABILITIES
Trade payables (materials)38.000.000
Output VAT payable92.400.000
Total liabilities130.400.000
EQUITY
Paid-in capital200.000.000
Current-year profit330.462.000
Total equity530.462.000
TOTAL LIABILITIES & EQUITY660.862.000
Operating Profit
Rp 330,5 jt
Contract Asset
Rp 245,3 jt
Balance
Seimbang ✓
linked analysis
Tax Analysis: PPh 4(2) Final & Mixed-Workforce PPh 21 for PT Bangun Sulawesi
Construction tax regime walkthrough — PPh 4(2) Final on each termin, BPJS deductibility, and the mixed-workforce PPh 21 trap.
View Tax Analysis  
CASE 05 · JANUARI 2025

Kos Pak Haris

A 20-room boarding house in Palu owned by Pak Haris — registered as PKP due to annual revenue above Rp 4.8B, yet rental income is VAT-exempt under PMK 70/2022. PPh 4(2) Final 10% applies and is self-assessed by Pak Haris directly. One employee (penjaga kos) earns well below PTKP. The simplest operations in this series — but the most counterintuitive tax treatment.

Business Boarding House (Kos-kosan) Location Palu, Sulteng Rooms 20 rooms · 85% occupancy Status PKP · PPN Exempt · PPh 4(2) 10% Employee 1 caretaker
Occupancy & Rental Income — January 2025

20 rooms across 3 tiers: AC Deluxe (Rp 1.2M), AC Standard (Rp 900K), Non-AC (Rp 650K). January occupancy: 17 of 20 rooms (85%). One room unpaid, one vacant. PPh 4(2) Final 10% is calculated on actual rental income received — Rp 15.45M this month.

Room No. Penghuni Tipe Tarif/bln (Rp) Status Payment Date Paid (Rp)
K-01Andi KurniawanAC Deluxe1.200.000PAID02 Jan1.200.000
K-02Siti RahmawatiAC Deluxe1.200.000PAID03 Jan1.200.000
K-03Budi SetiawanAC Deluxe1.200.000PAID01 Jan1.200.000
K-04Nurul HidayahAC Deluxe1.200.000PAID04 Jan1.200.000
K-05Fajar RamadanAC Deluxe1.200.000LATE18 Jan (H+17)1.200.000
K-06Rini SusantiAC Standard900.000PAID02 Jan900.000
K-07Hendra WijayaAC Standard900.000PAID05 Jan900.000
K-08Dewi LestariAC Standard900.000PAID03 Jan900.000
K-09Irwan SaputraAC Standard900.000UNPAID0
K-10MegawatiAC Standard900.000PAID06 Jan900.000
K-11Rizky PratamaNon-AC650.000PAID02 Jan650.000
K-12Hamid BasriNon-AC650.000PAID03 Jan650.000
K-13YulianaNon-AC650.000PAID04 Jan650.000
K-14DarmawanNon-AC650.000PAID01 Jan650.000
K-15— VACANT —Non-AC650.000VACANT0
K-16Ahmad FauziNon-AC650.000PAID05 Jan650.000
K-17Sri WahyuniNon-AC650.000PAID07 Jan650.000
K-18BaharuddinNon-AC650.000PAID02 Jan650.000
K-19Linda SariNon-AC650.000LATE20 Jan (H+19)650.000
K-20SupriyadiNon-AC650.000PAID03 Jan650.000
TOTAL17.000.00015.450.000
Occupancy Summary
Room Type Unit Tarif (Rp) Occupied Vacant Potential Revenue (Rp) Actual Revenue (Rp) Occupancy
AC Deluxe51.200.000506.000.0006.000.000100%
AC Standard5900.000414.500.0003.600.00080%
Non-AC10650.000826.500.0005.200.00080%
TOTAL2017317.000.00014.800.00085%
Cash Flow & Net Profit — January 2025

Simple single-entry cash flow — rental income minus operating expenses minus PPh Final 10%. Note that PPh 4(2) is calculated on gross rental income received (Rp 15.45M), not on net profit. This is the defining characteristic of a Final Tax regime.

Description Notes Amount (Rp)
RENTAL INCOME
Total rent received (18 rooms paid)See Occupancy tab15.450.000
OPERATING EXPENSES
Electricity & water (paid by owner)20 rooms(3.200.000)
Caretaker salary (Pak Roslan)1 employee(1.800.000)
Cleaning & routine maintenanceMonthly(800.000)
Cicilan KPR — pokok + bungaBank BRI(4.500.000)
Internet for the boarding house (shared WiFi)IndiHome 50 Mbps(500.000)
Repair reserve (2% of revenue)Estimasi(309.000)
TOTAL EXPENSES(11.109.000)
PROFIT BEFORE TAX4.341.000
PPh Final Art. 4(2) — 10% × gross rent10% × Rp 15.450.000(1.545.000)
NET PROFIT AFTER TAX2.796.000
📌 Key tax mechanic — PPh 4(2) on gross, not net
PPh Final 10% is on Rp 15.45M — not on Rp 4.34M profit
This is the most important number to understand in this case. PPh 4(2) Final is always calculated on gross rental income received — Rp 1.545.000 this month. The operating expenses (electricity, salary, KPR) are irrelevant to the tax calculation. Even if Pak Haris made zero profit, he would still owe Rp 1.545.000 in PPh. This is what 'Final' means — the tax base is fixed, not adjustable.
Employee & PPh 21 — January 2025

One employee: Pak Roslan, the boarding house caretaker, earning Rp 1.8M/month. Annualized gross of Rp 21.6M is far below the TK/0 PTKP of Rp 54M/year — PPh 21 = Rp 0. Pak Haris still needs to record Pak Roslan in his payroll records and report him in SPT Tahunan as a non-taxable employee.

Name Jabatan PTKP Salary/mo (Rp) Bruto/thn (Rp) PTKP (Rp) PPh 21 (Rp) Status
Pak Roslan ✓ Caretaker TK/0 1.800.000 21.600.000 54.000.000 0 Gross < PTKP → exempt from PPh 21
📌 Owner's tax — separate from employee tax
Pak Haris reports rental income in his personal SPT Tahunan — not in payroll
Pak Haris is an individual (WP OP) — the boarding house is his personal business. His rental income from Kos Pak Haris goes into his personal SPT Tahunan 1770 as penghasilan final. He self-assesses and pays PPh 4(2) by the 15th of the following month. No withholding agent — no one deducts this for him. This is a common oversight: business owners who forget that personal income from a business venture must be self-reported.
linked analysis
Tax Analysis: PKP-but-VAT-Exempt & Self-Assessed PPh 4(2) for Kos Pak Haris
The most counterintuitive tax case — why being PKP doesn't always mean collecting PPN, and how the 20-room threshold works.
View Tax Analysis  
§
legal obligation

Bookkeeping Isn't Optional — It's the Law

Under Article 28 of the Indonesian General Tax Provisions Law (UU KUP), taxpayers are required to maintain accurate books in good faith, using Rupiah, closed annually with a Balance Sheet and Income Statement. Records must cover assets, liabilities, equity, revenue, expenses, sales, and purchases — and be retained for 10 years. Non-compliance carries serious consequences.

10 yr
document retention
+75%
admin penalty
6 mo – 6 yr
criminal sanction
2–4×
fine vs tax owed

Start

Need help with accounting?

Let's keep your books clean, your statements accurate, and your business finances in order. The first consultation is free, answered within 24 hours, directly by me.

Get in Touch