Portfolio Project · Analitik Pasar Semen Kantong

CORE Platform

Commercial Optimization & Retention Engine

Sistem analitik prediktif berbasis AI untuk mendukung pengambilan keputusan komersial di pasar semen kantong. Mengintegrasikan deteksi risiko pasar, optimasi program loyalty, manajemen operasional peserta, dan pemantauan outcome dalam satu ekosistem digital yang terhubung.

PythonFastAPINext.js 14TypeScriptXGBoostProphetSHAPILP/PuLPscikit-learnGMMRechartsClaude API

Lima Modul Utama

Early Warning System

AEGIS Market Share Defense

Deteksi anomali perilaku transaksi toko mitra 3–6 minggu sebelum berdampak pada volume. Ensemble tiga model AI: CRS + Isolation Forest + XGBoost.

ROC-AUC 0.860 · Recall 73.6%

Fitur

Peta Choropleth wilayahStore Detail per tokoCAD Alert HistoryAEGIS-PREDICT (Prophet)AEGIS-EXPLAIN (SHAP)
Mathematical Optimizer

ILP Store Selection

Integer Linear Programming untuk seleksi toko loyalty program optimal dengan multi-constraint: budget, cluster, wilayah, dan hierarki sales.

PuLP CBC Solver · Multi-criteria scoring

Fitur

Scenario comparisonBobot scoring dinamisFilter SSM → ASM → TSOConstraint distribusi clusterReferensi Loyalty Program
Operational System

Loyalty Management

Manajemen peserta program loyalty dengan target hybrid adaptive, smart promotion berbasis kondisi AEGIS, dan pengelolaan program promo multi-jenis.

Hybrid target: 60% rolling 3M + 40% YoY

Fitur

Smart Promotion EngineProgram Promo multi-jenisTarget & AchievementRe-enroll & TakeoutTakeout RecommendationsBrand Config per Wilayah
Outcome Monitor

Store Performance Tracker

Memantau outcome toko setelah intervensi program loyalty — menutup loop AEGIS Detection + GMM Cannibalization + Competitor Intelligence → ILP Optimization → Loyalty Enrollment → hasil nyata di lapangan.

End-to-end loop closure

Fitur

Journey timeline 3-tahapVolume delta monitoringFBSI delta trackingVerdict otomatis per tokoStore Journey Modal
External Signal Layer

Competitor Intelligence

Triangulasi sinyal internal AEGIS dengan data ASPERSSI untuk mengkonfirmasi apakah anomali transaksi disebabkan tekanan kompetitor eksternal atau faktor internal dan seasonal.

Prophet + LinReg + Delta Projection · 5 Verdict

Fitur

Triangulasi per Provinsi5 Verdict LevelRanking Dual-Source (ASPERSSI + CAD)Prediksi Market ShareAI Insight Competitor

4 Pola Deteksi AEGIS

AToko mulai beralih ke produk murah — order masih rutin
BToko bermasalah — tiga sinyal aktif bersamaan · Prioritas tertinggi
CPola order berubah — pre-warning, pantau sebelum memburuk
DToko sudah kembali normal — momentum positif, perkuat hubungan

5 Verdict Competitor Intelligence

TerkonfirmasiWarning AEGIS tinggi DAN market share kompetitor naik di provinsi yang sama
Waspada AwalMarket share kompetitor naik meski warning AEGIS masih rendah — sinyal dini
Bukan KompetitorWarning AEGIS tinggi tapi market share stabil — indikasi masalah internal/seasonal
Data KurangWarning AEGIS tinggi tapi data ASPERSSI tidak tersedia untuk provinsi ini
NormalTidak ada indikasi tekanan kompetitor maupun anomali internal

Tiga Tipe Program Promo

Program Promo mendukung tiga tipe konfigurasi yang masing-masing cocok untuk strategi insentif berbeda. Semua tipe menggunakan satuan Poin yang dikonversi ke Rupiah berdasarkan nilai per brand yang dikonfigurasi terpusat di Settings.

Tipe 1

Flat Multiplier

Efek Instan

Setiap transaksi langsung mendapat poin berlipat tanpa perlu mencapai target apapun. Cocok untuk dorongan jangka pendek yang ingin langsung terasa.

"Semua transaksi Elang bulan ini 2× Poin"
Tipe 2

Multi-Tier Target

Target-Driven

Reward bertingkat berdasarkan persentase pencapaian target individual toko. Threshold dan multiplier setiap tier dikonfigurasi bebas saat membuat program.

100% target → 2× Poin · 120% target → 3× Poin · >120% → 1× Poin (reguler)
Tipe 3

Gamifikasi / Leaderboard

Kompetitif

Toko-toko bersaing membentuk papan peringkat berdasarkan volume total atau growth persentase, dengan scope per cluster atau global. Reward berbeda per posisi — poin maupun Rupiah tetap.

Ranking Posisi 1 → Rp 5 jt · Posisi 2 → Rp 3 jt · Posisi 3 → Rp 1 jt

Konversi Poin ke Rupiah

Ketiga tipe program menggunakan satuan Poin yang dikonversi ke Rupiah berdasarkan nilai per brand yang dikonfigurasi terpusat di Settings — memungkinkan strategi insentif berbeda per brand tanpa mengubah struktur program satu per satu.

Konfigurasi Brand per Wilayah (MB/CB/FB)

Sistem konfigurasi brand loyalty yang fleksibel per provinsi dan kabupaten, dengan hierarki resolusi otomatis: setting kabupaten menggantikan provinsi, provinsi menggantikan default global. Memungkinkan strategi brand yang berbeda per wilayah sesuai kondisi pasar setempat.

Kategori 1

Main Brand (MB)

Reward 100%

Brand utama wilayah tersebut — tepat satu brand per konfigurasi. Volume brand ini dihitung penuh terhadap target dan reward loyalty.

Default: SEMEN ELANG
Kategori 2

Companion Brand (CB)

Reward 50%

Brand pendukung — boleh lebih dari satu per wilayah, mendukung strategi multi-brand sesuai kondisi pasar setempat.

Default: SEMEN BADAK
Kategori 3

Fighting Brand (FB)

Reward 50% · Opsional

Brand fighting/value untuk melawan kompetitor di kelas harga rendah. Dapat dikosongkan per wilayah jika tidak ingin diikutkan dalam kalkulasi.

Default: SEMEN BANTENG

Hierarki Resolusi & Kalkulasi Volume

Resolusi config mengikuti urutan Kabupaten → Provinsi → Default Global. Volume dan target toko loyalty dihitung dari semua brand yang masuk kategori MB+CB+FB sesuai konfigurasi wilayah yang berlaku — bukan statis dari satu brand saja. Perhitungan ini menggunakan fork kalkulasi terpisah dari ILP Optimizer untuk menjaga independensi kedua sistem.

Kapabilitas AI

Isolation Forest

Deteksi anomali statistik per tier cluster

Contamination: SP 3% · Platinum 4% · Gold 5% · Silver 6% · Bronze 8%

XGBoost Classifier

Prediksi probabilitas risiko beralih

SMOTE oversampling · Walk-forward validation · ROC-AUC 0.860

Integer Linear Programming

Optimasi alokasi dengan multi-constraint

PuLP CBC Solver · Global optimum · Tidak greedy

Prophet Forecasting

Prediksi trendline adaptif di 3 modul platform

AEGIS-PREDICT (4 minggu) · Loyalty trendline · Competitor market share (Prophet + LinReg + Delta adaptive) · CI 80% · Seasonal aware

SHAP Explainability

Transparansi keputusan model AI

TreeExplainer · Narasi otomatis bahasa bisnis

Hybrid Adaptive Target

Target loyalty yang fair dan seasonal-aware

Base_1 (60%) × rolling 3M + Base_2 (40%) × YoY · Growth rate per AEGIS

Smart Promotion Engine

Rekomendasi insentif real-time per toko

Emergency Boost · Retention · Loyalty Reward · Standard

Performance Attribution

Mengukur dampak nyata intervensi program

Volume delta · FBSI delta · Verdict otomatis · Journey reconstruction

GMM Cannibalization Detector

Membedakan kanibalisasi internal dari tekanan kompetitor eksternal

Gaussian Mixture Model · BIC-optimal k · 4 brand-shift features · Digunakan ILP & Smart Promotion Engine

Causal Impact Estimator

Mengkuantifikasi besaran dampak program loyalty terhadap volume toko

DoWhy + EconML · Panel Diff-in-Diff · Causal Forest (CATE per toko) · Refutation test

Multi-Signal Priority Adjustment

Menyesuaikan skor ILP dari sinyal GMM dan triangulasi kompetitor, dengan deteksi sinyal bertentangan

GMM Cannibalization × Competitor Intelligence (ASPERSSI) · Verdict Kompetitor per provinsi · Sinyal Bertentangan → reset skor dasar + Validasi Lapangan TSO

Generative AI (Claude API)

ORACLE Intelligence

AI analyst dengan tool calling ke data real platform, page-context aware, dan Root Cause Analysis

14+ tools (volume, AEGIS, kompetitor, GMM, ROI promo, simulasi) · Floating widget di semua halaman + Full Workspace di /analytics/oracle · Claude API

AI Report Generator

Laporan bulanan lengkap otomatis dalam satu klik

Ringkasan eksekutif · Analisis AEGIS · Evaluasi Loyalty · Rekomendasi tindakan · Download PDF

Executive Summary

Ringkasan kondisi platform lintas-modul dalam satu halaman — orientasi cepat untuk stakeholder

Health score AEGIS · Loyalty achievement snapshot · Competitor risk overview · KPI utama · Cross-module aggregation

Action Center

Agregasi rekomendasi aksi terprioritasi dari semua modul dalam satu tampilan

3 severity level (Kritis/Penting/Info) · Source: AEGIS, Loyalty, Competitor Intelligence · Badge real-time di navbar · Dismiss per item · 5-menit cache TTL

Logika Bisnis

Mengapa Ensemble untuk AEGIS Score?

CRS (50%) Sinyal bisnis yang dapat diinterpretasikan langsung
IF (20%) Anomali statistik yang tidak terlihat oleh aturan bisnis
XGB (30%) Pola kompleks dari kombinasi fitur historis

Mengapa Target Hybrid 60/40?

Rolling 3M Responsif terhadap kondisi terkini, tapi rentan seasonal
YoY Mengeliminasi seasonal, tapi sensitif kejadian luar biasa
Kombinasi 60/40 Menghasilkan target yang stabil dan fair

Mengapa AEGIS adalah Warning, Bukan Diagnosis?

Sumber data Hanya transaksi internal — kompetitor tidak terlihat langsung
Sinyal anomali Terkonsentrasi = indikasi, bukan bukti aktivitas kompetitor
Keputusan akhir Validasi lapangan TSO tetap kunci — sistem hanya trigger

AEGIS adalah sistem early warning, bukan pengganti validasi lapangan.

Cara Menggunakan

1

🔑Login

Gunakan demo account viewer / viewer123 (read-only) atau admin / admin123 (penuh).

2

🏠Home Dashboard

Ringkasan kondisi pasar: distribusi warning level, top toko berisiko, peta sebaran.

3

⚠️AEGIS Monitor

Identifikasi toko dan wilayah berisiko, analisis pola A/B/C/D, prioritaskan kunjungan TSO.

4

🔍Store Detail

Analisis mendalam per toko: SHAP explanation faktor risiko, prediksi 4 minggu ke depan.

5

🗺️Peta Wilayah

Visualisasi geografis choropleth distribusi CAD Alert per kabupaten/kota.

6

📊ILP Optimizer

Seleksi toko untuk program loyalty dengan constraint budget, cluster, dan wilayah.

7

👥Loyalty Management

Kelola peserta aktif, smart promotion berbasis AEGIS, target & achievement monitoring.

8

🎁Program Promo

Buat, monitor, dan hentikan program promosi multi-jenis dengan tracking realisasi.

9

📈Performance Tracker

Evaluasi outcome program: volume delta, FBSI delta, dan verdict otomatis per toko.

10

🤝Competitor Intelligence

Triangulasi AEGIS + ASPERSSI per provinsi: konfirmasi ancaman kompetitor, ranking brand dari dua sumber, dan prediksi market share dengan label keandalan.

11

📄AI Report Generator

Generate laporan bulanan otomatis — ringkasan eksekutif, analisis AEGIS, evaluasi loyalty, dan rekomendasi tindakan dalam satu klik. Tinjau di browser sebelum unduh PDF.

12

📊Executive Summary

Ringkasan lintas-modul dalam satu halaman: health score AEGIS, Loyalty achievement, Competitor snapshot, dan KPI utama — orientasi cepat kondisi platform untuk stakeholder.

13

Action Center

Rekomendasi aksi terprioritasi dari semua modul. Severity Kritis → tindak segera, Penting → dalam 48 jam, Info → pantau berkala. Dismiss item yang sudah ditangani.

Hak Akses per Role

FiturAdminViewer
Home Dashboard
AEGIS Monitor + Detail
Peta Choropleth
AEGIS-PREDICT
AEGIS-EXPLAIN (SHAP)
CAD Alert History
ILP Optimizer
Loyalty Management
Program Promo
Performance Tracker
Competitor Intelligence
Executive Summary
Action Center
AI Report Generator
ORACLE Intelligence
Settings (view)
Settings (edit)
Brand Config (view)
Brand Config (tambah/edit/hapus)
Reload Data

Demo: admin / admin123 · viewer / viewer123

Panduan Pengisian CAD Alert Validasi

Panduan kategori validasi lapangan untuk TSO saat mengisi hasil kunjungan setelah toko muncul di CAD Alert.

KategoriKapan DigunakanContoh Catatan
Kompetitor EksternalToko terbukti aktif membeli produk kompetitor (brand selain ELANG & BADAK) dalam 4 minggu terakhir, atau terpantau ada stok kompetitor di area display utama."Toko beli SEMEN BANTENG 80 zak 2 minggu lalu. Harga lebih murah Rp 3.000/zak."
Masalah Harga / Gap Harga BesarToko mengeluhkan selisih harga >Rp 2.000/zak dengan kompetitor namun belum beralih brand. Gunakan jika harga adalah satu-satunya faktor keluhan."Pelanggan tanya kenapa Elang lebih mahal Rp 4.500/zak dari Banteng. Toko belum beralih."
Masalah Stok / Keterlambatan KirimToko mengalami kekosongan stok ELANG/BADAK minimal 3 hari, atau pengiriman distributor terlambat >2 hari dari jadwal rutin."Stok ELANG kosong 5 hari karena truk distributor breakdown. Sekarang sudah isi ulang."
Faktor SeasonalPenurunan volume terjadi bersamaan dengan musim hujan, bulan Ramadan, atau akhir tahun di mana seluruh area mengalami penurunan serupa. Cek dengan toko lain sekitar."Semua toko di kecamatan turun volume. Proyek konstruksi berhenti sementara karena hujan deras."
Faktor Internal DistributorMasalah berasal dari sisi distributor: konflik SO-toko, penghentian kredit, perubahan rute pengiriman, atau salesman baru yang belum kenal toko."Distributor stop kredit toko karena tunggakan 2 bulan. Hubungan sedang diperbaiki."
Kondisi Normal / False AlarmKunjungan lapangan membuktikan toko tidak bermasalah: tidak ada kompetitor, stok cukup, tidak ada keluhan harga. Alert disebabkan fluktuasi data normal."Toko baik-baik saja. Proyek musiman selesai, volume akan naik bulan depan."
Butuh Investigasi LanjutSituasi di lapangan tidak jelas atau toko tidak dapat ditemui. Perlukan kunjungan kedua atau eskalasi ke ASM."Toko tutup 3 hari berturut-turut, tidak ada info. Perlu cek kembali minggu depan."

Tips Penulisan Catatan Validasi

  • 1.Tulis dalam kalimat lengkap. Hindari singkatan yang ambigu ("KB" → tulis "Kabupaten Boyolali").
  • 2.Sertakan angka konkret: volume, harga per zak, jumlah hari kosong, jumlah zak kompetitor.
  • 3.Pisahkan fakta lapangan dari asumsi. Fakta: "Toko beli 100 zak Banteng". Asumsi: "Sepertinya karena harga".
  • 4.Jika lebih dari satu kategori berlaku, pilih yang paling dominan sebagai Utama dan sisanya sebagai Sekunder.
  • 5.Action items wajib berisi langkah konkret: siapa, apa, kapan. Bukan hanya "akan ditindaklanjuti".

Tech Stack

Backend
Python 3.12FastAPIUvicornpandasPyArrowslowapiSQLAlchemySQLite
ML & Optimasi
scikit-learnXGBoostIsolation ForestPuLP CBCProphetSHAPSMOTE
Frontend
Next.js 14TypeScriptTailwind CSSshadcn/uiRechartslucide-reactHugeIcons
Data
Parquet2,15 jt baris36 kolom21.014 toko unik

Persistent Storage

Data platform (loyalty members, program promo, CAD history, dan data ASPERSSI) disimpan di SQLite database pada Railway persistent volume, memastikan data tidak hilang saat redeploy. Setiap modul menggunakan feature flag USE_SQLITE_STORAGE untuk rollback aman jika diperlukan.

F

Firmansyah Romadhoni

Data Science & Analytics Engineer

Portfolio Project · 2026