# Complete breakdown for all 10 customers - key products driving growth
all_growth = pl.DataFrame({
"customer": [
"① 壽司早點-蘇惠君", "① 壽司早點-蘇惠君", "① 壽司早點-蘇惠君",
"② 活力-屏商技", "② 活力-屏商技", "② 活力-屏商技",
"③ 大屏北-繁華", "③ 大屏北-繁華", "③ 大屏北-繁華",
"④ 順利早點", "④ 順利早點", "④ 順利早點",
"⑤ 小田園-久堂", "⑤ 小田園-久堂", "⑤ 小田園-久堂",
"⑥ 早安8-永大店", "⑥ 早安8-永大店", "⑥ 早安8-永大店",
"⑦ 早點見面", "⑦ 早點見面", "⑦ 早點見面",
"⑧ 琉浪日嚐", "⑧ 琉浪日嚐", "⑧ 琉浪日嚐",
"⑨ 大屏北-龍泉", "⑨ 大屏北-龍泉", "⑨ 大屏北-龍泉",
"⑩ 迪士米", "⑩ 迪士米", "⑩ 迪士米"
],
"product": [
"🍗 紅龍卡啦雞腿堡(辣)", "🥟 鮮肉湯包 50入", "🍗 紅龍雞塊 🆕",
"🍖 每天豬柳 1K", "🍗 正點卡啦雞腿堡 🆕", "🍝 義大利肉醬麵 🆕",
"🥩 黑胡椒里肌 🔥", "🍳 二代紅450g", "🥓 三代450g",
"🍗 紅龍卡啦雞腿堡 🆕", "🌭 安美熱狗50條", "🍗 紅龍雞塊",
"🍗 正點卡啦雞腿堡(辣) 🆕", "🍗 正點卡啦雞腿堡(原) 🆕", "🧀 起士片100片",
"☕ 新萊恩奶精 🆕", "☕ 萊恩咖啡 🆕", "🍗 紅龍雞塊",
"🥔 日規薯餅 🆕", "🍗 香雞城卡啦雞腿(辣)", "🍗 香雞城卡啦雞腿(原)",
"🍕 pizza絲", "🍜 讚岐烏龍麵", "🥫 福鷹玉米粒 🆕",
"🥩 黑胡椒里肌 🔥", "🥟 阿在伯蔥抓餅", "🍗 香酥雞塊 🆕",
"🍗 紅龍雞塊 🆕", "🍗 紅龍搖搖雞球", "🥚 香酥蛋餅 🆕"
],
"h1_qty": [152, 266, 0, 89, 0, 0, 18, 97, 48, 0, 160, 50, 1, 0, 14, 0, 0, 25, 0, 31, 37, 46, 6, 0, 12, 20, 0, 0, 12, 0],
"h2_qty": [258, 392, 70, 186, 49, 360, 140, 132, 72, 98, 295, 97, 133, 93, 52, 315, 90, 128, 89, 92, 98, 75, 36, 120, 177, 292, 41, 70, 57, 88],
"h1_rev": [28954, 36743, 0, 16963, 0, 0, 4440, 21038, 15311, 0, 16763, 7378, 178, 0, 3798, 0, 0, 3638, 0, 5169, 6183, 12703, 611, 0, 2959, 1676, 0, 0, 2022, 0],
"h2_rev": [47305, 54130, 9335, 40208, 8676, 8567, 35071, 31417, 23551, 18160, 30893, 13878, 23790, 16619, 14101, 29999, 18859, 17154, 12627, 15511, 16491, 19459, 3668, 2285, 44060, 22428, 12518, 9618, 9605, 7126]
}).with_columns([
(pl.col("h2_rev") - pl.col("h1_rev")).alias("delta")
])
(
GT(all_growth)
.tab_header(
title="🔍 Top 3 Growth Drivers per Customer",
subtitle="🆕 = New product in H2, 🔥 = Explosive growth"
)
.fmt_currency(["h1_rev", "h2_rev", "delta"], currency="TWD", decimals=0, use_subunits=False)
.fmt_number(["h1_qty", "h2_qty"], decimals=0)
)