- Tren M-Score → Untuk melihat apakah perusahaan dengan skor tinggi memiliki pola khusus.
- Perbandingan Penjualan vs Piutang → Untuk melihat apakah peningkatan kepuasan tidak wajar.
- Pendapatan Bersih vs Arus Kas Operasi → Untuk melihat apakah laba meningkat tetapi arus kas stagnan.
- Potensi Pajak Terutang → Untuk memperjelas estimasi pajak yang kurang dibayar.
Interpretasi Grafik:
-
Tren Beneish M-Skor
- Semua perusahaan memiliki M-Score di atas -2.22 , yang berarti terindikasi manipulasi laporan keuangan .
- Perusahaan ke-4 memiliki M-Score tertinggi (0.6757) , yang menunjukkan risiko ketidaksesuaian tertinggi .
-
Perbandingan Penjualan vs Piutang
- Piutang meningkat signifikan dibandingkan Penjualan , terutama pada perusahaan ke-3, ke-4, dan ke-5.
- Hal ini bisa menjadi indikasi pengakuan pendapatan yang agresif atau fiktif .
-
Laba Bersih vs Arus Kas Operasional
- Pendapatan Bersih jauh lebih tinggi dibandingkan Operasi Arus Kas , yang berarti ada kemungkinan manipulasi akrual .
- Idealnya, arus kas operasi seharusnya berbanding lurus dengan laba bersih.
-
Potensi Pajak Terutang
- Perusahaan ke-4 memiliki potensi pajak tertinggi (132,000) , yang bisa menjadi fokus utama pemeriksaan pajak.
Kesimpulan dan Rekomendasi:
✔ Semua perusahaan dalam dataset memiliki indikasi ketidaksesuaian berdasarkan Beneish M-Score.
✔ Peningkatan perolehan yang lebih besar dari penjualan mengindikasikan potensi pengakuan pendapatan fiktif.
✔ Laba bersih yang lebih tinggi dari arus kas operasi menunjukkan kemungkinan manipulasi akrual.
✔ Total potensi pajak yang bisa dikoreksi: Rp 451,000.
✅ Rekomendasi:
- Audit lebih lanjut terhadap perusahaan dengan M-Score tertingg.
- Hasil Perhitungan Beneish M-Score dan Deteksi Fraud**
Beneish M-Score dihitung berdasarkan 8 indikator utama. Jika **M-Score > -2.22**, maka perusahaan terindikasi melakukan manipulasi laporan keuangan.
Indeks
|
M-Skor
|
Indikator
Penipuan
|
Keterangan
|
0
|
-1.7203
|
✅
Terindikasi Tidak Sesuai
|
M-Score mendekati batas
-2.22
|
1
|
-1.6135
|
✅
Terindikasi Tidak Sesuai
|
M-Score mendekati batas
-2.22
|
2
|
-0,8879
|
✅
Terindikasi Tidak Sesuai
|
M-Score mendekati batas
-2.22
|
3
|
0,1804
|
✅
Terindikasi Tidak Sesuai
|
M-Score mendekati batas
-2.22
|
4
|
0,6757
|
✅
Terindikasi Tidak Sesuai
|
M-Score mendekati batas
-2.22
|
Temuan:
- Semua perusahaan dalam dataset memiliki M-Score lebih besar dari -2.22, sehingga semuanya terindikasi melakukan manipulasi laporan keuangan.
- Perusahaan ke-4 (indeks 4) memiliki M-Score tertinggi (0.6757), yang menunjukkan kemungkinan belum sesuai terbesar.
2. Akun Keuangan yang Berpotensi Bermasalah
Analisis lebih lanjut dilakukan pada akun-akun keuangan utama dari perusahaan yang terindikasi penipuan:
Indeks
|
Penjualan
|
Piutang
|
Margin Kotor
|
Laba Bersih
|
Arus Kas Operasional
|
Potensi Pajak
|
0
|
1.000.000
|
250.000
|
450.000
|
250.000
|
180.000
|
55000
|
1
|
1.200.000
|
300.000
|
550.000
|
300.000
|
200.000
|
66.000
|
2
|
1.500.000
|
500.000
|
700.000
|
400.000
|
250.000
|
88.000
|
3
|
1.800.000
|
800.000
|
850.000
|
500.000
|
300.000
|
110.000
|
4
|
2.000.000
|
1.000.000
|
950.000
|
600.000
|
350.000
|
132.000
|
Temuan Utama:
1. Peningkatan Piutang (Piutang) yang Tidak Wajar
- Perusahaan dengan penjualan meningkat, tetapi piutang naik drastis, bisa menunjukkan pengakuan pendapatan fiktif atau agresif.
- Misalnya, pada indeks 4, kredit naik hingga 50% dari penjualan (1 juta dari 2 juta).
2. Margin Kotor Tetap Tinggi
- Biasanya, saat penjualan meningkat, margin kotor bisa mengalami tekanan karena biaya produksi.
- Namun, dalam kasus ini, margin kotor tetap tinggi, yang bisa mengindikasikan perbedaan biaya produksi atau beban pokok penjualan.
3. Pendapatan Bersih yang Meningkat Tajam, tapi Arus Kas Relatif Lebih Rendah
- Jika laba bersih naik drastis tetapi arus kas operasi (cash flow ops) tidak naik sebanding, bisa jadi ada manipulasi akrual.
- Misalnya, pada indeks 4, laba bersih mencapai 600,000, tetapi arus kas operasi hanya 350,000.
3. Potensi Pajak yang Harus Dibayar
Jika laba yang dimanipulasi dikenakan pajak dengan tarif 22%, berikut potensi pajak yang harus dioperasikan:
Indeks
|
Laba Bersih (Laba)
|
Potensi Pajak (22%)
|
0
|
250.000
|
55.000
|
1
|
300.000
|
66.000
|
2
|
400.000
|
88.000
|
3.
|
500.000
|
110.000
|
4.
|
600.000
|
132.000
|
Total potensi pajak dari seluruh perusahaan: 451.000.
Jika terbukti manipulasi, maka total pajak yang bisa dikoreksi oleh otoritas pajak mencapai 451 ribu.
4. Kesimpulan dan Rekomendasi
Temuan utama:
✔ Semua perusahaan dalam dataset ini memiliki indikasi penipuan berdasarkan Beneish M-Score.
✔ Piutang meningkat signifikan → Bisa menunjukkan pengakuan pendapatan fiktif.
✔ Laba naik tajam, tapi arus kas tidak sebanding → Indikasi manipulasi akrual.
✔ Potensi pajak yang bisa dikoreksi: 451 ribu.
Rekomendasi:
✅ Audit lebih lanjut untuk memastikan tidak ada manipulasi pendapatan atau akrual yang berlebihan.
✅ Fokus pemeriksaan pada akun piutang dan arus kas operasi.
✅ Otoritas pajak dapat melakukan investigasi terhadap perusahaan dengan M-Score tertinggi untuk estimasi pajak tambahan.
impor panda sebagai pd
def hitung_skor_m(df):
"""
Menghitung Beneish M-Score dari DataFrame
"""
DSRI = df['Piutang_Saat Ini'] / df['Penjualan_Saat Ini'] / (df['Piutang_Sebelumnya'] / df['Penjualan_Sebelumnya'])
GMI = (df['Margin_Kotor_Sebelumnya'] / df['Margin_Kotor_Saat Ini'])
AQI = ((1 - (df['Aset_Lancar'] - df['PPE_Lancar'] - df['Piutang_Lancar']) / df['Aset_Lancar'])) / \
((1 - (df['Aset_Sebelumnya'] - df['PPE_Sebelumnya'] - df['Piutang_Sebelumnya']) / df['Aset_Sebelumnya']))
SGI = df['Penjualan_Saat Ini'] / df['Penjualan_Sebelumnya']
DEPI = (df['Penyusutan_Sebelumnya'] / (df['PPE_Sebelumnya'] + 1e-6)) / (df['Penyusutan_Saat Ini'] / (df['PPE_Saat Ini'] + 1e-6))
SGAI = (df['SGA_Saat Ini'] / df['Penjualan_Saat Ini']) / (df['SGA_Sebelumnya'] / df['Penjualan_Sebelumnya'])
TATA = (df['Pendapatan_Bersih'] - df['Operasi_Arus_Kas']) / df['Aset_Lancar']
LVGI = (df['Total_Kewajiban_Lancar'] / df['Total_Aset_Lancar']) / (df['Total_Kewajiban_Sebelumnya'] / df['Total_Aset_Sebelumnya'])
df['M_Score'] = (-4,84 + (0,92 * DSRI) + (0,528 * GMI) + (0,404 * AQI) +
(0,892 * SGI) + (0,115 * DEPI) - (0,172 * SGAI) + (4,679 * TATA) - (0,327 * LVGI))
kembali df
def mendeteksi_penipuan(df):
"""
Menentukan apakah ada indikasi manipulasi berdasarkan M-Score
"""
df['Indikator_Penipuan'] = df['Skor_M'] > -2,22
kembali df
def hitung_potensi_pajak(df, tarif_pajak=0,22):
"""
Menghitung potensi pajak terutang akibat laba penipuan
"""
df['Potensi_Pendapatan_Penipuan'] = df['Indikator_Penipuan'] * df['Pendapatan_Bersih']
df['Potensi_Pajak'] = df['Potensi_Pendapatan_Penipuan'] * tarif_pajak
kembali df
def menganalisis_akun_penipuan(df):
"""
Analisis potensi penipuan dari masing-masing akun keuangan
"""
akun_penipuan = df[df['Indikator_Penipuan']]
analisis = akun_penipuan[['Penjualan_Lancar', 'Piutang_Lancar', 'Margin_Kotor_Lancar',
'Pendapatan_Bersih', 'Arus_Kas_Operasi', 'Potensi_Pajak']]
analisis pengembalian
# Contoh penggunaan dengan DataFrame dummy yang menunjukkan indikasi penipuan
datanya = {
'Penjualan_Saat Ini': [1000000, 1200000, 1500000, 1800000, 2000000],
'Penjualan_Sebelumnya': [900000, 1000000, 1200000, 1500000, 1800000],
'Piutang_Lancar': [250000, 300000, 500000, 800000, 1000000], #Meningkat signifikan
'Piutang_Sebelumnya': [140000, 150000, 170000, 190000, 220000],
'Gross_Margin_Current': [450000, 550000, 700000, 850000, 950000], # Ditekan agar mempengaruhi GMI
'Margin_Kotor_Sebelumnya': [450000, 500000, 600000, 750000, 900000],
'Aset_Lancar': [5000000, 5500000, 6000000, 7000000, 8000000],
'Aset_Sebelumnya': [4800000, 5000000, 5500000, 6000000, 7000000],
'PPE_Saat Ini': [2000000, 2200000, 2500000, 3000000, 3500000],
'PPE_Sebelumnya': [1800000, 2000000, 2200000, 2500000, 3000000],
'Penyusutan_Saat Ini': [100000, 120000, 140000, 160000, 180000],
'Penyusutan_Sebelumnya': [90000, 100000, 120000, 140000, 160000],
'SGA_Saat Ini': [100000, 110000, 120000, 140000, 160000],
'SGA_Sebelumnya': [90000, 100000, 110000, 120000, 140000],
'Pendapatan_Bersih': [250000, 300000, 400000, 500000, 600000], #Laba meningkat signifikan
'Operasi_Arus_Kas': [180000, 200000, 250000, 300000, 350000],
'Total_Kewajiban_Lancar': [3000000, 3200000, 3500000, 4000000, 4500000],
'Total_Kewajiban_Sebelumnya': [2800000, 3000000, 3200000, 3500000, 4000000],
'Total_Aset_Lancar': [5000000, 5500000, 6000000, 7000000, 8000000],
'Total_Aset_Sebelumnya': [4800000, 5000000, 5500000, 6000000, 7000000]
}
df = pd.DataFrame(data)
df = hitung_skor_m(df)
df = deteksi_penipuan(df)
df = hitung_potensi_pajak(df)
analisis_penipuan = analisis_akun_penipuan(df)
cetak(df[['M_Score', 'Indikator_Penipuan', 'Potensi_Pajak']])
cetak(analisis_penipuan)