Nowcasting: Menebak Angka Sales Bulan Ini Sebelum Bulan Berakhir
Suatu waktu, pada tanggal 20 saya sedang lewat area kerja tim sales dan melihat salah seorang sales manager sedang menatap serius laptopnya. Padahal waktu itu jam kerja belumlah dimulai. Karena iseng, saya coba tanyakan ia sedang apa. Beliau berkata masih ada 10 hari lagi sampai akhir bulan:
“Kira-kira kita bakal hit target bulan ini nggak? Angka akhir bulan kita bakal di mana?”
Bagi sebagian orang, pertanyaan ini bisa dijawab dengan insting: “Kayaknya sih bisa” atau “Agak berat nih”. Tapi apakah ada cara saintifik untuk menjawabnya? Menggunakan data yang sudah tersedia, kemudian melakukan estimasi angka sales di akhir bulan.
Inilah yang disebut Nowcasting.
Apa Itu Nowcasting ?
Kata nowcasting adalah gabungan dari “now” (sekarang) dan “forecasting” (meramalkan). Kalau forecasting memprediksi masa depan yang jauh (bulan depan, tahun depan), nowcasting menjawab pertanyaan yang lebih dekat. Sehingga definisi sederhananya adalah mengestimasi nilai suatu indikator pada periode SEKARANG (yang belum selesai), menggunakan data parsial yang sudah tersedia hari ini.
Teknik ini awalnya populer di dunia makroekonomi. Bank sentral menggunakannya untuk mengestimasi GDP kuartal ini sebelum data resmi dirilis yang biasanya butuh berbulan-bulan setelah kuartal berakhir. Mereka tidak mau menunggu; mereka butuh estimasi sekarang untuk membuat kebijakan.
Konsep ini yang sangat relevan di dunia sales dan marketing, contohnya:
• Melakukan estimasi total sales bulan ini berdasarkan data 20 hari pertama. • Melakukan estimasi revenue Q3 di pertengahan Juli. • Membuat prediksi apakah campaign iklan akan hit target sebelum campaign berakhir. • Melakukan estimasi stok yang dibutuhkan berdasarkan tren order masuk hari ini.
Perbedaan Nowcasting vs Forecasting
| Aspek | Nowcasting | Forecasting |
|---|---|---|
| Pertanyaan | “Bulan ini kita akan jual berapa?” | “Bulan depan kita akan jual berapa? |
| Time range | Saat ini (periode berjalan) | Masa depan (minggu/bulan/tahun depan) |
| Data yang digunakan | Data historikal + data parsial | Data historikal lengkap |
| Output | Estimasi nilai akhirperiode berjalan | Prediksi nilai masa depan |
| Metode yang digunakan | ARIMA, prophet, dll | Regresi, dll |
Sekarang saya akan coba buat satu study case tentang estimasi sales produk minuman di Jabodetabek.
Studi Kasus: Estimasi Sales Minuman di Jabodetabek
Misalkan kita adalah data analyst di sebuah perusahaan FMCG yang menjual minuman buah kemasan. Setiap bulan ada target penjualan (dalam satuan kuantitas yakni karton). Data penjualan harian tersedia di sistem IT kantor dan bersifat update real time harian. Hari ini tanggal 20 dan tim managerial sales bertanya: berapa estimasi total sales sampai akhir bulan?
- Produk: Minuman buah kemasan 500ml
- Area: Jabodetabek
- Target bulan ini: 50.000 karton
- Data tersedia: Penjualan harian hari ke-1 sampai hari ke-20
- Yang ingin diestimasi: Total penjualan hari ke-1 sampai hari ke-31
Kita memiliki 547 baris data harian (mulai 1 Januari 2024 hingga 30 Juni 2025) dan ini adalah sampel data yang dimiliki:
| tanggal | penjualan | tahun | bulan | hari | hari_minggu | bulan_label |
|---|---|---|---|---|---|---|
| 2024-01-01 | 1871 | 2024 | 1 | 1 | Mon | Jan 2024 |
| 2024-01-02 | 2003 | 2024 | 1 | 2 | Tue | Jan 2024 |
| 2024-01-03 | 1819 | 2024 | 1 | 3 | Wed | Jan 2024 |
| 2024-01-04 | 1952 | 2024 | 1 | 4 | Thu | Jan 2024 |
| 2024-01-05 | 1967 | 2024 | 1 | 5 | Fri | Jan 2024 |
| 2025-06-26 | 2249 | 2025 | 6 | 26 | Thu | Jun 2025 |
| 2025-06-27 | 2044 | 2025 | 6 | 27 | Fri | Jun 2025 |
| 2025-06-28 | 3197 | 2025 | 6 | 28 | Sat | Jun 2025 |
| 2025-06-29 | 3258 | 2025 | 6 | 29 | Sun | Jun 2025 |
| 2025-06-30 | 2259 | 2025 | 6 | 30 | Mon | Jun 2025 |
Sedangkan berikut ini adalah rekapan sales bulanan dari data sales harian:
# A tibble: 18 × 3
label total_penjualan rata_harian
<chr> <dbl> <dbl>
1 Jan 2024 57289 1848
2 Feb 2024 53868 1858
3 Mar 2024 60884 1964
4 Apr 2024 57799 1927
5 May 2024 59654 1924
6 Jun 2024 59870 1996
7 Jul 2024 62292 2009
8 Aug 2024 64379 2077
9 Sep 2024 61284 2043
10 Oct 2024 63149 2037
11 Nov 2024 62300 2077
12 Dec 2024 66288 2138
13 Jan 2025 66598 2148
14 Feb 2025 58706 2097
15 Mar 2025 68292 2203
16 Apr 2025 65420 2181
17 May 2025 68090 2196
18 Jun 2025 68734 2291

Sedangkan berikut ini adalah data sales 20 hari pertama di bulan Juli 2025:
| tanggal | penjualan |
|---|---|
| 2025-07-01 | 2195 |
| 2025-07-02 | 2430 |
| 2025-07-03 | 2209 |
| 2025-07-04 | 2182 |
| 2025-07-05 | 3176 |
| 2025-07-06 | 2721 |
| 2025-07-07 | 1941 |
| 2025-07-08 | 1947 |
| 2025-07-09 | 1902 |
| 2025-07-10 | 2201 |
| 2025-07-11 | 1725 |
| 2025-07-12 | 2662 |
| 2025-07-13 | 2550 |
| 2025-07-14 | 1628 |
| 2025-07-15 | 2030 |
| 2025-07-16 | 2214 |
| 2025-07-17 | 1954 |
| 2025-07-18 | 2083 |
| 2025-07-19 | 2605 |
| 2025-07-20 | 2600 |
| 2025-07-21 | 1787 |
| 2025-07-22 | 2131 |
| 2025-07-23 | 2115 |
| 2025-07-24 | 1843 |
| 2025-07-25 | 2501 |
| 2025-07-26 | 3063 |
| 2025-07-27 | 3006 |
| 2025-07-28 | 2318 |
| 2025-07-29 | 2131 |
| 2025-07-30 | 2279 |
| 2025-07-31 | 2284 |
Penjualan Juli (hari 1-20): 44955 karton
Sisa hari yang belum ada datanya: 11 hari
Persentase bulan yang sudah terlewati: 64.5 %
Catatan: Saya sebenarnya sudah membuat data lengkap 1 - 31 Juli 2025 yang kemudian nanti akan digunakan sebagai benchmark seberapa bagus model nowcasting yang dibuat.
Aktual penjualan Juli 2025 (full bulan): 70413 karton

Pendekatan Nowcasting yang Akan Dicoba
Kita akan membangun tiga model nowcasting dari yang paling sederhana sampai yang lebih canggih, lalu membandingkan hasilnya:
- Model 1 — Simple Scaling: Extrapolasi linier dari data parsial.
- Model 2 — Regression-based: Pakai pola historis untuk koreksi.
- Model 3 — MIDAS-lite: Manfaatkan leading indicator harian.
Model 1 — Simple Scaling (Paling Sederhana)
Model paling sederhana. Konsepnya sama seperti melakukan ekstrapolasi harian: asumsikan sisa hari akan berjalan seperti rata-rata hari yang sudah ada. Kalau 20 hari pertama rata-ratanya X karton/hari, maka 11 hari sisanya juga X karton/hari.
Estimasi Total = Penjualan Parsial + (Rata-rata Harian Parsial × Sisa Hari)
=== MODEL 1: SIMPLE SCALING ===
Rata-rata harian (H1-H20) : 2248 karton/hari
Estimasi total Juli 2025 : 69680 karton
Aktual total Juli 2025 : 70413 karton
Error : -1.04 %
Model ini cepat, mudah, dan sangat sederhana tapi ada kelemahan. Model ini tidak mempertimbangkan bahwa hari-hari tertentu (misalnya akhir bulan atau akhir pekan) ada pola berbeda dari rata-rata.
Model 2 — Regression-Based Nowcasting
Model ini lebih “cerdas” dibanding sebelumnya. Idenya adalah kita punya data historis 18 bulan. Dari setiap bulan itu, kita tahu berapa penjualan di hari ke-1 sampai ke-20 (parsial), dan berapa total penjualan akhir bulan (penuh). Kemudia kita akan membuat model regresi:
total_penuh ~ parsial_20_hari
Lalu gunakan model itu untuk memprediksi Juli 2025 dari data parsialnya.
Kalau kita tahu bulan-bulan sebelumnya bahwa ‘penjualan 20 hari pertama biasanya 64% dari total bulan’, maka kita bisa balik hitung:
total estimasi = parsial / 0.64
Regresi adalah cara ilmiah untuk menemukan angka 0.64 itu — plus memperhitungkan faktor lain seperti momen gajian.
Oke, pertama-tama saya akan hitung berapa rasio parsial dari semua data yang ada:
Rata-rata rasio parsial/total: 0.6462
Range rasio: 0.6214 - 0.7171
Berikut adalah visualisasi dari rasio 20 hari vs total hari dari semua data bulanan:

Perlu saya ingatkan kembali bahwa kita punya data dua tahun pada bulan Januari - Juni, maka dari itu bentuk grafik pada bulan-bulan tersebut berbeda dengan bulan lainnya.
Oke, sekarang saatnya kita membuat model regresinya. Akan ada dua model regresi sebagai berikut:
- Model sederhana berisi total_penuh ~ parsial_20.
- Model lengkap berisi total_penuh ~ parsial_20 + factor(bulan) +
hariraya.
- Kita tambahkan variabel bulan biasa dan bulan hari raya (lebaran dan natal).
R-squared model simple : 0.7706
R-squared model lengkap : 0.9775
Call:
lm(formula = total_penuh ~ parsial_20 + factor(bulan) + hariraya,
data = df_historis_regresi)
Residuals:
Min 1Q Median 3Q Max
-1323.5 -114.5 0.0 114.5 1277.9
Coefficients: (1 not defined because of singularities)
Estimate Std. Error t value Pr(>|t|)
(Intercept) 6.861e+03 4.691e+02 14.628 < 2e-16 ***
parsial_20 1.395e+00 1.171e-02 119.129 < 2e-16 ***
factor(bulan)2 -5.567e+03 1.140e+02 -48.843 < 2e-16 ***
factor(bulan)3 1.020e+03 1.124e+02 9.074 < 2e-16 ***
factor(bulan)4 -1.494e+03 1.129e+02 -13.235 < 2e-16 ***
factor(bulan)5 4.182e+02 1.123e+02 3.725 0.000216 ***
factor(bulan)6 -3.252e+02 1.147e+02 -2.835 0.004752 **
factor(bulan)7 5.243e+02 1.366e+02 3.838 0.000139 ***
factor(bulan)8 -3.089e+02 1.385e+02 -2.230 0.026182 *
factor(bulan)9 -1.893e+02 1.382e+02 -1.370 0.171267
factor(bulan)10 1.758e+02 1.369e+02 1.284 0.199559
factor(bulan)11 -2.061e+03 1.396e+02 -14.766 < 2e-16 ***
factor(bulan)12 1.106e+03 1.393e+02 7.941 1.19e-14 ***
hariraya NA NA NA NA
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 621.1 on 534 degrees of freedom
Multiple R-squared: 0.9775, Adjusted R-squared: 0.977
F-statistic: 1937 on 12 and 534 DF, p-value: < 2.2e-16
Dari nilai ,
kita dapatkan kedua model baik dan sangat baik. Berdasarkan itu, saya
akan buat prediksi nowcasting dari model lengkap.
=== MODEL 2: REGRESSION-BASED ===
Estimasi total Juli 2025 : 70108 karton
Interval bawah (95%) : 68862 karton
Interval atas (95%) : 71354 karton
Aktual total Juli 2025 : 70413 karton
Error : -0.43 %
Model 3 — MIDAS-lite: Menggunakan Leading Indicator
Model ketiga ini sedikit lebih canggih. Kita manfaatkan leading indicator, yakni sinyal-sinyal yang muncul lebih awal dan berkorelasi dengan penjualan untuk meningkatkan akurasi estimasi.
MIDAS (Mixed Data Sampling) adalah teknik formal untuk menggabungkan data dengan frekuensi berbeda (misalnya: data harian dan data bulanan). Di sini kita buat versi sederhananya. Leading indicator yang kita gunakan dalam simulasi ini:
- Search index: Proxy dari Google Trends untuk kata kunci terkait produk kita.
- Cuaca: Suhu rata-rata harian (minuman lebih laku saat panas).
- Momentum awal bulan: Apakah 5 hari pertama lebih tinggi dari rata-rata historis?
Indikator pertama dan kedua akan saya simulasikan datanya, sedangkan indikator ketiga akan dihitung dari data yang ada.
Korelasi indikator vs total penjualan:
total_penuh parsial_20 suhu_rata search_index momentum_awal
1.000 0.878 -0.194 -0.040 0.750
Sekarang kita buat model MIDAS-nya menjadi: total_penuh ~ parsial_20 + suhu_rata + search_index + momentum_awal + factor(bulan) + hariraya.
Berikut ini hasilnya:
R-squared model MIDAS-lite: 0.9958
=== MODEL 3: MIDAS-LITE ===
Estimasi total Juli 2025 : 67099 karton
Interval bawah (95%) : 66506 karton
Interval atas (95%) : 67692 karton
Aktual total Juli 2025 : 70413 karton
Error : -4.71 %
yang dihasilkan
sangat bagus.
Perbandingan Tiga Model Nowcasting
| Model | Estimasi | CI_Bawah | CI_Atas | Error_pct | Hit_target |
|---|---|---|---|---|---|
| Model 1: Simple Scaling | 69680 | NA | NA | -1.04 | YA ✓ |
| Model 2: Regression | 70108 | 68862 | 71354 | -0.43 | YA ✓ |
| Model 3: MIDAS-lite | 67099 | 66506 | 67692 | -4.71 | YA ✓ |
| Aktual (Ground Truth) | 70413 | NA | NA |
Dari ketiga model yang sudah dibuat, kita bisa dapatkan:
- Ketiga model memberikan estimasi yang berada di bawah nilai aktual
(under estimate).
- Menurut keyakinan saya, under estimasi justru memberikan rasa aman pada tim sales pada laporannya dibandingkan nilai yang over estimate.
- Ternyata model kedua (regresi) memberikan estimasi dengan persentase error terkecil.

Model Keempat: Nowcasting Rolling
Ada model nowcasting keempat yang bisa kita buat, yakni model yang bisa melakukan update estimasi setiap hari sejak awal bulan. Hasilnya adalah kurva yang semakin lama semakin akurat seiring lebih banyak data tersedia.
Ada dua model yang akan kita coba, yakni:
- Simple scaling, sama seperti model pertama tapi di-update rasio parsial secara harian.
- Regresi, sama seperti model kedua tapi di-update rasio parsial secara harian.
Berikut ini hasilnya:

Model regresi memberikan nowcasting total penjualan akhir bulan yang selalu under estimate dibandingkan dengan model simple scaling yang pada awal-awal nowcasting selalu over estimate. Namun kedua model tersebut memberikan konvergensi yang ke satu nilai yang mirip-mirip dan mendekati nilai aktual bulanannya.
Langkah Strategic dari Hasil Nowcasting
Bagi tim managerial sales, angka estimasi hasil nowcasting bisa dijadikan langkah strategic bagi mereka untuk memastikan sales berjalan sesuai dengan target yang sudah ditetapkan. Bagaimana caranya? Perhatikan tabel berikut ini:
| Kondisi estimasi | SInyal | Hal yang perlu dilakukan |
|---|---|---|
| Estimasi >> target | Over-track | Pastikan stok cukup, jangan sampai out-of-stock di akhir bulan. Siapkan reorder. |
| Estimasi sedikit di atas target | On-track | Maintain momentum. Monitor harian, tidak perlu intervensi besar. |
| Estimasi sedikit di bawah target | At risk | Aktivasi trade promo di channel yang under-perform. Push ke distributor. |
| Estimasi << target | Off track | Eskalasi ke manajemen. Pertimbangkan flash sale, subsidi harga sementara, atau revisi target. |
Pertanyaan berikutnya adalah:
Kapan kita harus mempercayai hasil estimasi dari nowcasting?
Dari grafik rolling nowcasting, kita bisa lihat bahwa estimasi biasanya cukup stabil setelah hari ke-10 (sekitar 30% bulan terlewati). Sebelum itu, masih terlalu banyak noise. Idealnya, mulai jadikan nowcasting sebagai acuan keputusan mulai hari ke-10, dan jadikan dasar eskalasi mulai hari ke-15.
Limitasi
Tentu sebagaimana yang sering saya katakan, setiap model perhitungan (termasuk prediksi dan nowcasting) pasti memiliki limitasi yang perlu kita perhatikan saat menyimpulkan hasil dan mengambil keputusan. Berikut ini adalah beberapa limitasi dari nowcasting:
- Nowcasting bukan sulap.
- Jika ada kejadian tak terduga di sisa bulan, seperti: bencana alam, kompetitor tiba-tiba diskon besar, atau produk kita viral di TikTok maka model tidak akan bisa memprediksinya dari data parsial.
- Kualitas model bergantung data historis.
- Model regresi kita butuh setidaknya 12 bulan historis agar pola musiman tertangkap dengan baik.
- Untuk produk baru yang belum punya riwayat panjang, Model menggunakan Simple Scaling mungkin lebih aman.
- Perhatikan perubahan pola. Kalau ada perubahan besar dalam bisnis (ekspansi ke kota baru, ganti distributor, launching SKU baru), pola historis mungkin tidak lagi relevan. Model perlu di-update.
- Bukan pengganti judgment.
- Nowcasting adalah alat bantu, bukan pengganti pengetahuan lapangan.
- Sales manager yang tahu ada event besar di akhir bulan tetap harus memasukkan informasi itu secara manual ke dalam estimasi.
if you find this article helpful, support this blog by clicking the ads.