DESKRIPSI DATA

Judul: Coffee Chain
Format: .xlsx
Deskripsi: Dataset terdiri dari 4.248 baris dan 20 kolom.
Kolom:
- Area Code: Kode Wilayah
- Date: Waktu
- Market: Wilayah
- Market Size: Ukuran Market
- Product: Nama Produk
- Product Line: Lini Produk
- Product Type: Tipe Produk
- State: Provinsi
- Type: Varian Produk
- Budget COGS (Cost of Goods Sold): Estimasi Biaya Pokok Penjualan
- Budget Margin: Estimasi Laba Kotor
- Budget Profit: Estimasi Laba Bersih
- Budget Sales: Estimasi Penjualan
- COGS (Cost of Goods Sold): Biaya Pokok Penjualan
- Inventory: Stok Bahan Baku
- Margin: Laba Kotor Aktual
- Marketing: Biaya Pemasaran
- Profit: Laba Bersih Aktual (Margin - Total Expenses)
- Sales: Penjualan
- Total Expenses: Total Biaya (Margin - Profit)


Persiapan Data

Import Dataset

df <-read_xlsx(
  here('dataset', '1. Tugas SIM 2025B - Coffee Chain Datasets.xlsx'),
  sheet = 1,
  col_names = T,
  na = c('', ' ', 'NA', 'NULL', 'na', 'null'),
  trim_ws = T,
  progress = T
)

Melihat Struktur Data

glimpse(df)
## Rows: 4,248
## Columns: 20
## $ `Area Code`      <dbl> 719, 970, 970, 303, 303, 720, 970, 719, 970, 719, 303…
## $ Date             <dttm> 2012-01-01, 2012-01-01, 2012-01-01, 2012-01-01, 2012…
## $ Market           <chr> "Central", "Central", "Central", "Central", "Central"…
## $ `Market Size`    <chr> "Major Market", "Major Market", "Major Market", "Majo…
## $ Product          <chr> "Amaretto", "Colombian", "Decaf Irish Cream", "Green …
## $ `Product Line`   <chr> "Beans", "Beans", "Beans", "Leaves", "Beans", "Beans"…
## $ `Product Type`   <chr> "Coffee", "Coffee", "Coffee", "Tea", "Espresso", "Esp…
## $ State            <chr> "Colorado", "Colorado", "Colorado", "Colorado", "Colo…
## $ Type             <chr> "Regular", "Regular", "Decaf", "Regular", "Regular", …
## $ `Budget COGS`    <dbl> 90, 80, 100, 30, 60, 80, 140, 50, 50, 40, 50, 150, 10…
## $ `Budget Margin`  <dbl> 130, 110, 140, 50, 90, 130, 160, 80, 70, 70, 70, 210,…
## $ `Budget Profit`  <dbl> 100, 80, 110, 30, 70, 80, 110, 20, 40, 20, 40, 130, 1…
## $ `Budget Sales`   <dbl> 220, 190, 240, 80, 150, 210, 300, 130, 120, 110, 120,…
## $ COGS             <dbl> 89, 83, 95, 44, 54, 72, 170, 63, 60, 58, 64, 144, 95,…
## $ Inventory        <dbl> 777, 623, 821, 623, 456, 558, 1091, 435, 336, 338, 96…
## $ Margin           <dbl> 130, 107, 139, 56, 80, 108, 171, 87, 80, 72, 76, 201,…
## $ Marketing        <dbl> 24, 27, 26, 14, 15, 23, 47, 57, 19, 22, 19, 47, 30, 7…
## $ Profit           <dbl> 94, 68, 101, 30, 54, 53, 99, 0, 33, 17, 36, 111, 87, …
## $ Sales            <dbl> 219, 190, 234, 100, 134, 180, 341, 150, 140, 130, 140…
## $ `Total Expenses` <dbl> 36, 39, 38, 26, 26, 55, 72, 87, 47, 55, 40, 90, 52, 1…

Periksa Null dan Duplikat

df %>%
  summarise(total_null = sum(is.na(df)))
df %>%
  summarise(total_duplicate = sum(duplicated(df)))

Ubah Tipe Data

df <-df %>%
  mutate(
    Date = as.Date(Date)
  )

glimpse(df)
## Rows: 4,248
## Columns: 20
## $ `Area Code`      <dbl> 719, 970, 970, 303, 303, 720, 970, 719, 970, 719, 303…
## $ Date             <date> 2012-01-01, 2012-01-01, 2012-01-01, 2012-01-01, 2012…
## $ Market           <chr> "Central", "Central", "Central", "Central", "Central"…
## $ `Market Size`    <chr> "Major Market", "Major Market", "Major Market", "Majo…
## $ Product          <chr> "Amaretto", "Colombian", "Decaf Irish Cream", "Green …
## $ `Product Line`   <chr> "Beans", "Beans", "Beans", "Leaves", "Beans", "Beans"…
## $ `Product Type`   <chr> "Coffee", "Coffee", "Coffee", "Tea", "Espresso", "Esp…
## $ State            <chr> "Colorado", "Colorado", "Colorado", "Colorado", "Colo…
## $ Type             <chr> "Regular", "Regular", "Decaf", "Regular", "Regular", …
## $ `Budget COGS`    <dbl> 90, 80, 100, 30, 60, 80, 140, 50, 50, 40, 50, 150, 10…
## $ `Budget Margin`  <dbl> 130, 110, 140, 50, 90, 130, 160, 80, 70, 70, 70, 210,…
## $ `Budget Profit`  <dbl> 100, 80, 110, 30, 70, 80, 110, 20, 40, 20, 40, 130, 1…
## $ `Budget Sales`   <dbl> 220, 190, 240, 80, 150, 210, 300, 130, 120, 110, 120,…
## $ COGS             <dbl> 89, 83, 95, 44, 54, 72, 170, 63, 60, 58, 64, 144, 95,…
## $ Inventory        <dbl> 777, 623, 821, 623, 456, 558, 1091, 435, 336, 338, 96…
## $ Margin           <dbl> 130, 107, 139, 56, 80, 108, 171, 87, 80, 72, 76, 201,…
## $ Marketing        <dbl> 24, 27, 26, 14, 15, 23, 47, 57, 19, 22, 19, 47, 30, 7…
## $ Profit           <dbl> 94, 68, 101, 30, 54, 53, 99, 0, 33, 17, 36, 111, 87, …
## $ Sales            <dbl> 219, 190, 234, 100, 134, 180, 341, 150, 140, 130, 140…
## $ `Total Expenses` <dbl> 36, 39, 38, 26, 26, 55, 72, 87, 47, 55, 40, 90, 52, 1…

Parsing Column

df <-df %>%
  mutate(
    Year = year(Date),
    Month = month(Date),
    Year_Month = format(Date, '%Y-%m'),
    .after = Date
  )

head(df, 3)

Feature Engineering

df <-df %>%
  mutate(
    Margin_vs_Budget = Margin - `Budget Margin`,
    Profit_vs_Budget = Profit - `Budget Profit`,
    Sales_vs_Budget = Sales - `Budget Sales`
  ) %>%
  relocate(Margin_vs_Budget, .after = Margin) %>%
  relocate(Profit_vs_Budget, .after = Profit) %>%
  relocate(Sales_vs_Budget, .after = Sales)

head(df, 3)

Analisis Penjualan

Total Penjualan dan Profit Per-product Line Per-tahun

df %>%
  group_by(Year, `Product Line`) %>%
  summarise(
    Sales = sum(Sales),
    Marketing = sum(Marketing),
    Margin = sum(Margin),
    Profit = sum(Profit),
    Profit_Margin = paste0(round(Profit / Sales * 100, 1), '%')
  ) %>%
  ungroup() %>%
  mutate(
    Profit_Percent = paste0(round(Profit / sum(Profit) * 100, 1), '%')
  )

Beans dan Leaves memiliki kinerja baik, profit margin meningkat selama setahun terakhir sebesar ~10% dari masing-masing kedua lini produk. Hal ini menunjukkan peningkatan profitabilitas yang diikuti dengan peningkatan volume penjualan Beans dari 215.220 penjualan menjadi 224.604 penjualan dan Leaves dari 185.939 penjualan menjadi 194.048 penjualan.

Insight: Beans menunjukkan peningkatan profit paling tinggi sehingga dapat menjadi kandidat untuk rencana ekspansi besar, diikuti dengan demand yang tinggi dan meningkat selama setahun. Leaves juga mengalami peningkatan cukup tinggi meskipun masih di bawah Beans, perlu direncanakan untuk melakukan pemasaran yang lebih strategis lagi.

Rekomendasi: Fokus memaksimalkan performa positif dari Beans untuk terus menekan peningkatan volume penjualan dengan tetap memperhatikan traffic pasar agar lebih terukur. Evaluasi kembali lini produk Leaves meskipun volume penjualan dan profit meningkat, pertimbangkan untuk melakukan pemasaran yang strategis seperti mencoba melakukan campaign, diskon, bundling.

Pertumbuhan Profit

ggplot(
  data = df %>%
    group_by(Year_Month = ym(Year_Month)) %>%
    summarise(
      Total_Profit = sum(Profit),
      Operational_Margin = sum(Margin),
      Profit_Percent = (Total_Profit / Operational_Margin) * 100
    ) %>%
    ungroup(),
  aes(x = Year_Month, y = Profit_Percent)
) + geom_line(
  color = 'skyblue',
  linewidth = 1.5
) + labs(
  title = 'PROFIT GROWTH',
  x = 'Year-Month',
  y = 'Profit Percent'
) + geom_text(
  aes(label = paste0(round(Profit_Percent, 1), '%')), 
  vjust = -1,
  size = 3,
  fontface = 'bold'
) + theme(
  panel.background = element_rect(fill = NA),
  panel.grid = element_line(color = 'gray'),
  plot.background = element_rect(fill = 'white'),
  plot.title = element_text(vjust = -6, hjust = 0.5, margin = margin(t = 3, b = 40), size = 14, face = 'bold'),
  plot.margin = margin(r = 20),
  axis.title.x = element_text(margin = margin(t = 30), vjust = 6, size = 12, face = 'bold'),
  axis.text.x = element_text(margin = margin(t = 5), size = 8, face = 'bold'),
  axis.title.y = element_text(margin = margin(r = 30), vjust = -6, size = 12, face = 'bold'),
  axis.text.y = element_text(margin = margin(r = 5), size = 8, face = 'bold')
)

Garis cenderung stabil selama tahun 2012 dan terdapat puncak pertumbuhan sebesar 49,5% di kuartal ke-3 tahun 2012. Transisi pergantian tahun 2013 terdapat lonjakan sangat tinggi sebesar 72,1%, kemudian naik-turun cenderung fluktuatif. Fluktuatif terjadi selama satu tahun hingga akhir Desember 2013, namun meskipun terjadi fluktuatif naik-turun angka profit merosot tidak lebih dari 6,5%.

Insight: Lonjakan terjadi di pergantian tahun, penyebab kemungkinan adanya nataru dan libur panjang anak sekolah maupun cuti bersama para pekerja. Hal ini sejalan dengan meningkatnya penjualan lini produk.

Rekomendasi: Pertahankan kondisi positif di tahun 2013 untuk terus membuat profit menjadi terus meningkat atau mininal stabil di tahun selanjutnya.

Top 10 Produk Berdasarkan Profil Kontribusi

ggplot(
  data = df %>%
    group_by(Product) %>%
    summarise(Total_Sales = sum(Sales)) %>%
    arrange(desc(Total_Sales)) %>%
    slice_head(n = 10) %>%
    mutate(Product = fct_reorder(Product, Total_Sales, .desc = F)),
  aes(x = Total_Sales, y = Product)
) + geom_col(
  fill = 'skyblue', 
  color = 'black', 
  width = 0.6
) + geom_text(
  aes(label = scales::comma(Total_Sales)),
  hjust = -0.1,
  size = 3,
  fontface = 'bold'
) + labs(
  title = 'TOP 10 PRODUCT BASED ON CONTRIBUTE',
  x = 'Total Sales',
  y = 'Product', 
) + coord_cartesian(
  clip = 'off'
) + scale_x_continuous(
  labels = scales::comma,
  expand = expansion(mult = c(0.01, 0.1))
) + theme(
  panel.background = element_rect(fill = 'white'), 
  plot.background = element_rect(fill = 'white'),
  plot.title = element_text(hjust = 0.5, size = 14, face = 'bold', margin = margin(b = 10, t = 20)),
  legend.position = 'none',
  axis.text.y = element_text(margin = margin(r = 3), size = 12, face = 'bold'),
  axis.title.y = element_text(margin = margin(r = 15), vjust = -5, size = 12, face = 'bold'),
  axis.text.x = element_text(margin = margin(t = 3), size = 12, face = 'bold'),
  axis.title.x = element_text(margin = margin(t = 30), vjust = 8, size = 12, face = 'bold')
) 

Colombian, Lemon, Caffe Mocha menjadi tiga produk produk tertinggi yang memiliki kontribusi baik. Colombian memimpin jauh dengan total penjualan mencapai 128.311 penjualan, Lemon menyusul di peringkat kedua dengan 95.926 penjualan. Total penjualan Caffe Mocha, Decaf Espresso, Chamomile, Darjeeling, Earl Grey, dan Decaf Irish Cream tidak terlalu jauh selisih jumlah penjualan satu sama lainnya.

Insight: Caffe Latte dan Mint menjadi produk yang memiliki performa penjualan yang rendah hanya sekitar 35.500 penjualan dari kedua produk tersebut. Hal ini menjadikannya hampir 2x lebih rendah dibanding Decaf Irish Cream yang berada di atasnya dan sekitar 3,5x lebih rendah dari Colombian.

Rekomendasi: Fokus terhadap produk Colombian untuk mempertahankan posisi best seller, tingkatkan performanya atau minimal performa akan tetap stabil. Produk dengan performa menengah untuk dapat dipertimbangkan melakukan campaign atau bundling dengan diskon. Berikan perhatian khusus pada produk Caffe Latte dan Mint untuk dapat memperbaiki performa penjualannya dan lakukan evaluasi terhadap keduanya apakah terdapat masalah khusus yang perlu ditangani.

Budget VS Aktual

ggplot(
  data = df %>%
    summarise(
      Budget_Sales = sum(`Budget Sales`),
      Sales = sum(Sales)
    ) %>%
    pivot_longer(
      cols = c(Budget_Sales, Sales),
      names_to = 'Variable',
      values_to = 'Value'
    ) %>%
    mutate(
      Variable = factor(Variable, levels = c('Budget_Sales', 'Sales'))
    ), 
  aes(x = Variable, y = Value, fill = Variable) 
) + geom_col(
  color = 'black',
  width = 0.6
) + scale_fill_manual(
  values = c('#A0E9FF', '#A0E9FF')
) + labs(
  y = 'Total'
) + geom_text(
  aes(label = paste0(scales::comma(Value))),
  vjust = -1,
  size = 3,
  fontface = 'bold'
) + scale_y_continuous(
  labels = scales::comma,
  expand = expansion(mult = c(0, 0))
) + coord_cartesian(
  clip = 'off'
) + theme(
  plot.background = element_rect(fill = 'white'),
  panel.background = element_rect(fill = 'white'),
  legend.position = 'none',
  axis.title.x = element_blank(),
  axis.text.x = element_text(margin = margin(b = 20, t = 10), size = 12, face = 'bold'),
  axis.title.y = element_text(margin = margin(r = 30), vjust = -5, size = 12, face = 'bold'),
  axis.text.y = element_text(size = 8, face = 'bold')
) +
ggplot(
  data = df %>%
    summarise(
      Budget_Profit = sum(`Budget Profit`),
      Profit = sum(Profit)
    ) %>%
    pivot_longer(
      cols = c(Budget_Profit, Profit),
      names_to = 'Variable',
      values_to = 'Value'
    ) %>%
    mutate(
      Variable = factor(Variable, levels = c('Budget_Profit', 'Profit'))
    ), 
  aes(x = Variable, y = Value, fill = Variable) 
) + geom_col(
  color = 'black',
  width = 0.6
) + scale_fill_manual(
  values = c('#A0E9FF', '#A0E9FF')
) + labs(
  y = 'Total'
) + geom_text(
  aes(label = paste0(scales::comma(Value))),
  vjust = -1,
  size = 3,
  fontface = 'bold'
) + scale_y_continuous(
  labels = scales::comma,
  expand = expansion(mult = c(0, 0))
) + coord_cartesian(
  clip = 'off'
) + theme(
  plot.background = element_rect(fill = 'white'),
  panel.background = element_rect(fill = 'white'),
  legend.position = 'none',
  axis.title.x = element_blank(),
  axis.text.x = element_text(margin = margin(b = 20, t = 10), size = 12, face = 'bold'),
  axis.title.y = element_text(margin = margin(r = 30), vjust = -5, size = 12, face = 'bold'),
  axis.text.y = element_text(size = 8, face = 'bold')
) +
plot_layout(ncol = 2) +
plot_annotation(
  title = 'BUDGET VS ACTUAL',
  theme = theme(
    plot.title = element_text(margin = margin(t = 30, b = 60), hjust = 0.5, size = 14, face = 'bold'),
  )
)

Sales aktual melampaui estimasi penjualan yang cukup signifikan dari yang diharapkan dengan selisih sekitar 76.000 penjualan dari estimasi.

Insight: Total penjualan aktual melampaui estimasi cukup signifikan sekitar 76.000 penjualan, namun profit aktual hanya memiliki selisih <1.000 dari profit yang telah di estimasi dan aktual cenderung tepat dengan hasil estimasi. Hal ini menunjukkan bahwa ada sinyal bahwa margin tertekan atau ada biaya lain yang meningkat.

Rekomendasi: Fokus terhadap produk dengan performa terbaik untuk memastikan ketersediaan dan margin. Optimisasi produk yang memiliki performa menengah karena memiliki potensi, lakukan eksperimen bundling dengan diskon atau cross sell dengan jangka waktu tertentu. Perhatikan langkah pemasaran, jangan sampai justru menekan biaya yang melebihi margin.

Proporsi Penjualan Menurut Tipe Produk

ggplot(
  data = df %>%
    group_by(Product_Type = `Product Type`) %>%
    summarise(Total_Sales = sum(Sales)) %>% 
    arrange(desc(Total_Sales)) %>%
    mutate(Proportion = Total_Sales /  sum(Total_Sales) * 100) %>%
    ungroup(),
  aes(x = '', y = Total_Sales, fill = Product_Type)
) + geom_col(
  width = 1,
  color = 'black'
) + coord_polar(
  theta = 'y', 
  start = 0
) + labs(
  title = 'Sales Proportion by Product Type'
) + geom_text(
  aes(label = paste0(round(Proportion, 1), '%')),
  position = position_stack(vjust = 0.5),
  size = 6, 
  fontface = 'bold'
) + theme(
  panel.background = element_rect(fill = 'white'),
  plot.background = element_rect(fill = 'white'),
  axis.title = element_blank(),
  axis.text = element_blank(),
  axis.ticks = element_blank(),
  plot.title = element_text(margin = margin(t = 20), hjust = 0.5, size = 20, face = 'bold'),
  legend.text = element_text(size = 12),
  legend.title = element_text(size = 14, face = 'bold')
) + scale_fill_manual(
  values = c('#89CFF3', '#00A9FF', '#A0E9FF', '#CDF5FD')
)

Proporsi penjualan cenderung tersebar merata, konsentrasi penjualan ada di tiga kategori Coffee, Espresso, dan Herbal Tea. Espresso penjualan tertinggi sebesar 27,2%, Coffee 26,4%, Herbal Tea 25,3%, dan Tea 21,1%.

Insight: Oleh karena proporsi penjualan cenderung tersebar merata, terdapat peluang peningkatan margin melalui mix product sehingga dapat memaksimalkan profit. Tea memiliki proporsi paling rendah diantara keempat tipe produk dengan selisih sekitar 4%-5% dari tipe produk yang terkonsentrasi.

Rekomendasi: Pastikan stok terjaga agar tetap menjaga stabilitas penjualan terutama produk yang menjadi titik konsentrasi penjualan. Lakukan A/B testing promosi untuk pemasaran mix product, misal uji bundling produk tipe coffee dengan produk performa menengah untuk meningkatkan order value dan margin.

Distribusi Penjualan Berdasarkan Wilayah

ggplot(
  data = df,
  aes(x = Sales, fill = Market)
) + geom_density(
  stat = 'density',
  color = 'black',
  alpha = 0.6
) + labs(
  title = 'SALES DISTRIBUTION BY MARKET'
) + theme(
  plot.background = element_rect(fill = 'white'),
  panel.background = element_rect(fill = 'white'),
  plot.title = element_text(hjust = 0.5, margin = margin(t = 30, b = 60), size = 14, face = 'bold'),
  axis.title.x = element_text(margin = margin(b = 30), size = 10, face = 'bold'),
  axis.text.x = element_text(margin = margin(b = 30, t = 5), size = 8, face = 'bold'),
  axis.title.y = element_text(margin = margin(l = 30), size = 10, face = 'bold'),
  axis.text.y = element_text(margin = margin(l = 40, r = 5), size = 8, face = 'bold'),
  legend.margin = margin(r = 30),
  legend.title = element_text(size = 12, face = 'bold'),
  legend.text = element_text(size = 10)
) + scale_fill_manual(
  values = c('#0AC4E0', '#FF52A0', '#FF9B51', '#982598')
)

Distribusi penjualan cenderung miring ke kiri. Sales aktual melampaui estimasi, tapi profit hampir flat sementara distribusi penjualan per-wilayah menunjukkan hal berbeda. Wilayah South sangat terkonsentrasi pada penjualan rendah dengan frekuensi yang tinggi meskipun distribusi wilayah lain juga cenderung penjualan rendah.

Insight: Penjualan meningkat jauh dari estimasi, namun profit hampir tepat. Hal ini menunjukkan indikasi penurunan margin per-unit atau biaya lain yang menekan. Jika penjualan meningkat, namun jika hanya didorong oleh produk margin rendah tidak akan meningkat sebanding profit yang didapat.

Rekomendasi: Gunakan strategi pemasaran dari tiap wilayah berbeda. South banyak frekuensi penjualan sehingga gunakan strategi paket bundling dibandingkan dengan Central, East, West yang memiliki peluang upsell ke penjualan menengah. Jalankan taktik khusus dengan waktu sekitar 14-28 hari, lakukan 1-2 eksperimen A/B (bundling, product type targeting).

Pertumbuhan Penjualan

ggplot(
  data = df %>%
    group_by(Year_Month = ym(Year_Month)) %>%
    summarise(
      Total_Sales = sum(Sales)
    ) %>%
    ungroup(),
  aes(x = Year_Month, y = Total_Sales)
) + geom_line(
  color = 'skyblue',
  linewidth = 1.5
) + geom_text(
  aes(label = paste0(scales::comma(Total_Sales))),
  size = 3,
  fontface = 'bold'
) + scale_y_continuous(
  labels = scales::comma
) + labs(
  title = 'SALES GROWTH',
  x = 'Year-Month',
  y = 'Total Sales'
) + theme(
  plot.background = element_rect(fill = 'white'),
  panel.background = element_rect(fill = 'white'),
  plot.title = element_text(hjust = 0.5, margin = margin(t = 30, b = 10), size = 14, face = 'bold'),
  axis.title.x = element_text(margin = margin(b = 25, t = 20), size = 12, face = 'bold'),
  axis.text.x = element_text(margin = margin(t = 5), size = 10, face = 'bold'),
  axis.title.y = element_text(margin = margin(l = 20), size = 12, face = 'bold'),
  axis.text.y = element_text(margin = margin(l = 15, r = 5), size = 10, face = 'bold')
)

Tahun 2012 hingga pertengahan tahun mengalami peningkatan yang sangat signifikan hingga mencapai puncak penjualan tertinggi selama 2 tahun dengan total penjualan mencapai 36.161 penjualan. Namun, setelah puncak penjualan justru menurun drastis hingga hanya mencapai 32.003 penjualan. Pergantian baru kembali membawa angin segar karena volume penjualan kembali meningkat hingga 35.316 penjualan. Setelahnya hingga akhir tahun 2013, volume penjualan bergerak lebih sering fluktuatif.

Insight: Sales tumbuh, namun analisis sebelumnya diketahui profit tidak sejalan signifikan dengan pertumbahan penjualan. hal ini menandakan perlunya fokus pada strategi pemasaran yang lebih terukur dan optimisasi margin produk terjual.

Rekomendasi: Fokus pada strategi pemasaran, seperti product mix, optimalkan biaya pemasaran, dan koversi penjualan menjadi profit. Hentikan promo jika menghasilkan peningkatan penjualan, namun margin kritis.


Rekomendasi Utama

  1. Maksimalkan perhatian stok pada produk dengan volume penjualan dan margin tinggi sehingga profit ikut terdorong meningkat.
  2. Rencanakan eksperimen A/B untuk produk penjualan menengah.
  3. Strategi pemasaran khusus market South yang berbeda dengan Central, East, West.