KPI / Performa Karyawan
Key Performance Indicator multi-role: pengukuran performa harian/bulanan/tahunan untuk seluruh peran (mekanik, kasir, kepala mekanik, gudang, operator, dst). Dihitung otomatis dari input harian + agregasi data Work Order, Inventory, dan Customer Feedback. Output: skor 0-100, ranking, tren, dan input untuk perhitungan komisi & bonus di modul HCM.
UI Mockup — KPI Dashboard & Input
Bengkel
Pintar
Pintar
HCM
Karyawan
Absensi
KPI
Komisi
82.4
Avg Score
Rudi H.
Top Performer
3
Needs Attention
12
Excellent (≥85)
| Karyawan | Role | SPK Done | On-Time | QC Rating | Score |
|---|---|---|---|---|---|
| Rudi Hartono | Mekanik | 42/40 | 95% | 4.7 | 92.5 |
| Anton Susilo | Mekanik | 38/40 | 88% | 4.5 | 86.2 |
| Sari Dewi | Kasir | — | 100% | — | 78.0 |
| Joko Priyanto | Mekanik | 22/40 | 72% | 3.8 | 58.4 |
Bengkel
Pintar
Pintar
Input Harian KPI
PRESENSI
Kehadiran✓ Hadir
Keterlambatan0 menit
KINERJA (auto dari WO)
SPK Selesai Hari Ini3 / target 2
On-Time %100%
QC Rating4.8 ★
Rework / Return0
Akurasi Parts Request100%
SKOR HARI INI
94.5
EXCELLENT — di atas target harian
Lihat Detail
Simpan & Approve
Sequence Diagram — Lifecycle KPI Input → Skor
KPI Calculation Sequence
Dari input harian (manual + auto) → agregasi bulanan → skor final → digunakan di komisi
sequenceDiagram
participant K as Karyawan
participant KM as Kepala Mekanik
participant WO as WO Module
participant INV as Inventory
participant CRM as Customer Feedback
participant KPI as KPI Engine
participant HCM as HCM (Komisi)
participant A as Admin
rect rgb(239,246,255)
Note over K,KPI: Input Harian (per-shift)
K->>WO: Selesaikan job + QC
WO-->>KPI: Push event "spk_done" (auto)
INV-->>KPI: Push akurasi parts request (auto)
CRM-->>KPI: Push rating customer (auto)
KM->>KPI: Input manual (kehadiran, keterlambatan, deviasi)
KPI->>KPI: Simpan KpiInputDaily per indikator
end
rect rgb(240,253,244)
Note over KPI,A: Agregasi & Skoring
KPI->>KPI: Cron harian 23:55 — agregasi per karyawan
KPI->>KPI: Apply formula per scoreType (ratio / binary_low / ratio_low)
KPI->>KPI: Hitung weighted total per kategori
KPI->>KPI: Hitung totalScore = Σ(category × bobot)
KPI->>KPI: Update KpiRecord (overwrite untuk hari itu)
end
rect rgb(255,247,237)
Note over KPI,HCM: Akhir Bulan — Output ke Komisi
A->>KPI: Trigger "Recalculate Bulan Ini"
KPI->>KPI: Aggregate semua KpiRecord bulan berjalan
KPI-->>A: Tampilkan dashboard ranking + tren
HCM->>KPI: Query skor bulan ini per mekanik
KPI-->>HCM: Return totalScore + breakdown indikator
HCM->>HCM: Hitung komisi pakai skor (bonus rating dst)
end
Flow Diagram — Siklus Input KPI Harian
Alur KPI — Multi-source Input ke Skor Final
Sumber input: aktivitas WO (auto), Inventory (auto), CRM rating (auto), input manual (kepala mekanik)
flowchart TD
A([Mulai Hari]) --> B[Karyawan Login &\nAbsensi Pagi]
B --> C{Role?}
subgraph Auto_Input
C -->|Mekanik| D1[Aktivitas WO Tracking]
D1 --> E1[Job Selesai → Event spk_done]
D1 --> E2[QC Rating → Event qc_score]
D1 --> E3[Rework Detected → Event return_rate]
C -->|Kasir| D2[Aktivitas Transaksi]
D2 --> E4[Closing Jurnal → Event closing_done]
D2 --> E5[Deviasi Kas → Event deviasi]
C -->|Gudang| D3[Aktivitas Stock]
D3 --> E6[Akurasi Stok → Event stock_accuracy]
end
subgraph Manual_Input
F[Kepala Mekanik / Admin] --> G[Form Input KPI Harian]
G --> H[Indikator Manual:\nkebersihan, etika, dll]
end
E1 --> I[(KpiInputDaily)]
E2 --> I
E3 --> I
E4 --> I
E5 --> I
E6 --> I
H --> I
I --> J{End of Day?}
J -->|Cron 23:55| K[Aggregate per Karyawan]
K --> L[Apply Formula per scoreType]
L --> M[Calculate Category Score\n× Bobot]
M --> N[Total Score 0-100]
N --> O[(KpiRecord)]
O --> P{Akhir Bulan?}
P -->|Ya| Q[Cron 25 hari berikutnya\nrecalc bulanan]
Q --> R[Output ke HCM Komisi]
R --> S[Ranking & Tren\ndi Dashboard]
style A fill:#dbeafe,stroke:#3b82f6
style N fill:#dcfce7,stroke:#16a34a
style S fill:#fef3c7,stroke:#d97706
Template Indikator per Role
flowchart LR
T[KPI Templates] --> M[Mekanik]
T --> KS[Kasir]
T --> KM[Kepala Mekanik]
T --> G[Gudang]
T --> O[Operator]
T --> KK[Kepala Kasir]
T --> ST[Sales / Telesales]
M --> M1[Presensi 30%]
M --> M2[Kinerja 60%\nSPK, On-Time, QC, Rework]
M --> M3[Etika 10%]
KS --> KS1[Presensi 30%]
KS --> KS2[Kinerja 60%\nDeviasi, Closing, AR, CSI]
KS --> KS3[Etika 10%]
G --> G1[Presensi 30%]
G --> G2[Kinerja 60%\nAkurasi Stok, Receiving, Outbound]
G --> G3[Etika 10%]
style T fill:#dbeafe,stroke:#3b82f6
style M fill:#fff7ed,stroke:#d97706
style KS fill:#f0fdf4,stroke:#16a34a
style G fill:#fef3c7,stroke:#ca8a04
Formula Scoring
scoreType: ratio
- Untuk indikator "lebih banyak = lebih bagus"
- Contoh: jumlah SPK selesai, kehadiran, jumlah review
- Formula:
min(actual / target, 1) × bobot × 100 - Cap di 100% — tidak ada bonus over-target di skor
scoreType: binary_low
- Untuk indikator "kalau ada = penalti"
- Contoh: keterlambatan, deviasi keuangan, AR overdue
- Formula:
actual === 0 ? bobot × 100 : 0 - Tidak ada gradasi — full score atau zero
scoreType: ratio_low
- Untuk indikator "lebih sedikit = lebih bagus" (proporsional)
- Contoh: rework rate, response time, idle time
- Formula:
max(0, 1 - actual/target) × bobot × 100 - Skor turun bertahap, sampai 0 saat actual ≥ target
Total Score
- Sum dari semua indikator setelah weighted
- Range 0-100 (selalu)
- Threshold: ≥85 = Excellent, 70-84 = Good, <70 = Needs attention
- Bobot kategori: Presensi 30% + Kinerja 60% + Etika 10%
Automation & Akses
Auto-input dari Modul Lain
- WO Module → push
spk_done,qc_score,rework - Inventory → push
parts_accuracy,stock_match - Kasir → push
closing_done,deviasi_kas - CRM → push
customer_rating,review_count
Cron Jobs
kpi-daily-aggregate— setiap 23:55 (rekap input harian)kpi-monthly-recalc— tanggal 1 bulan berikutnya 02:00- Konfigurabel via Settings → Cron Jobs (admin)
- Trigger manual via tombol "Recalculate" di dashboard
RBAC
- Admin Cabang — full akses input, edit template, recalc
- Super Admin — semua + kelola template lintas cabang
- Kepala Mekanik — input manual harian untuk timnya
- Karyawan — view only KPI miliknya sendiri
Output / Konsumen
- HCM Komisi — base & bonus dihitung dari skor bulanan
- Dashboard Manajemen — ranking, tren, deviasi cabang
- Laporan PDF — slip KPI individual untuk arsip
- Notifikasi — auto alert ke karyawan saat skor <70