Algoritma Scoring

Bagaimana OtoSwitch memilih supplier "terbaik" untuk setiap produk — dan cara tuning agar sesuai preferensi.


Formula

Setiap supplier kandidat mendapat skor total berdasarkan kombinasi:

Total = (price × 0.4) + (connection × 0.3) + (sla × 0.2) + (stock × 0.1)
      + review_bonus
      + preferred_bonus

Default weights: Price 40%, Connection 30%, SLA 20%, Stock 10%. Total weights = 100%. Bonus ditambahkan di atas skor 100, jadi skor akhir bisa > 100.

Supplier dengan skor tertinggi yang dipilih. Jika skor sama, tiebreaker = harga termurah.


Komponen

Price (40%)

Semakin murah, semakin tinggi skornya:

score = 100 × (cheapest_price / this_price)

Supplier termurah dapat 100. Yang dua kali lebih mahal dapat 50.

Connection (30%)

Tipe Default skor
IP (Direct API) 100
H2H (Host-to-Host bridge) 70

IP biasanya lebih cepat dan stabil daripada H2H. Bisa di-tune.

SLA (20%)

SLA Default skor
H+0 (proses real-time) 100
H+1 (besok) 60
H+2 (lusa) 30

Skor mencerminkan kecepatan proses. Bisa di-tune.

Stock (10%)

Stok Skor
Unlimited / ada stok 100
Habis 0

Tidak ada gradasi — biner. Supplier yang sedang habis stok otomatis skip.

Review bonus

Rating supplier (0-5) jadi bonus tambahan:

review_bonus = (rating / 5.0) × reviewBonusMax
Rating Bonus (max=15)
5.0 +15
4.0 +12
3.0 +9
0 0

Disable di Pengaturan → Scoring → Review Bonus toggle.

Preferred bonus

Supplier yang ada di daftar Preferred dapat +20 flat.

Bonus +20 cukup signifikan. Berguna untuk "memaksa" supplier favorit naik di ranking, tapi jangan berlebihan — supplier mahal yang preferred tetap bisa kalah dengan supplier lebih murah + rating tinggi.


Filter sebelum scoring

Tidak semua supplier ikut di-scoring. Filter pre-scoring:

  1. Status aktifstatus_sellerSku == 1. Yang nonaktif diabaikan.
  2. Tidak di-blocked — supplier di daftar Blocked tidak masuk kandidat.
  3. Harga dalam batas wajarprice ≤ current_price × (1 + maxPriceIncreasePercent/100). Default maxPriceIncreasePercent = 10 artinya harga baru tidak boleh > 110% harga sekarang.

Untuk produk bermasalah (NO_SELLER, PRICE_EXCEEDS_MAX, PRODUCT_INACTIVE), filter #3 (harga) diabaikan — supaya OtoSwitch tetap menemukan kandidat walaupun lebih mahal.

Filter zona (kalau pakai)

Kalau produk ter-assign ke zona, ada filter tambahan sebelum scoring:

  1. Pattern matching — supplier harus deskripsinya cocok dengan rule zona.
  2. Sibling exclusion — supplier yang sudah dipakai sibling lain di-exclude.

Detail: Grup Produk.


Tuning scenarios

Skenario 1: Stabilitas > Harga

Kalau prioritas kestabilan transaksi > harga termurah, naikkan bobot Connection & SLA, turunkan Price:

Price 20% — Connection 40% — SLA 30% — Stock 10%

Supplier dengan koneksi IP H+0 selalu menang walaupun lebih mahal.

Skenario 2: Harga Sensitif

Kalau prioritas selalu cari termurah:

Price 60% — Connection 20% — SLA 10% — Stock 10%

Lebih agresif ganti supplier saat ada yang lebih murah.

Skenario 3: Preferred Heavy

Kalau ingin supplier preferred sangat dominan, naikkan preferredBonus (currently fixed +20 di kode — perlu modifikasi config atau patch). Alternatif: matikan Connection/SLA bobot dan andalkan rating.

Skenario 4: Review Bias

Pembeli pemula lebih trust review:

Price 40% — Connection 25% — SLA 15% — Stock 10% + reviewBonusMax = 25

Supplier rating 5 dapat +25 bonus → bisa kalahkan supplier IP H+0 yang rating 3.


Cara tuning

  1. Klik Settings di sidebar bawah.
  2. Klik panel Scoring → tombol Buka Editor Scoring.
  3. Drag slider weights — auto-rebalance ke 100%.
  4. Atur connection/SLA scores di section Skor Tipe.
  5. Toggle review bonus di section Review Bonus.
  6. Tambah/hapus supplier di section Preferred / Blocked.
  7. Klik Save All.

Setelah tuning, pantau tab Perubahan beberapa siklus untuk lihat efeknya. Kalau auto-switch terlalu agresif (sering ganti-ganti), kecilkan bobot Price.


FAQ

Skor maksimum berapa? Tanpa bonus: 100. Dengan review (max +15) + preferred (+20) = max 135.

Apakah scoring berbeda untuk produk gangguan vs sehat? Formula sama. Yang berbeda hanya filter — produk bermasalah skip filter harga (#3).

Bisa custom formula sendiri? Belum. Weights bisa di-tune, tapi struktur formula fix.

Kenapa supplier termurah tidak selalu dipilih? Karena scoring multi-faktor. Termurah dengan koneksi H2H + SLA H+2 + rating 2 bisa kalah dengan yang sedikit lebih mahal tapi IP + H+0 + rating 5.