Skip to content

🧠 Case Study — Power BI / Tableau: BI Dashboard trong thực tế

Trong buổi học này, chúng ta đã nắm được Power BI / Tableau, data model, DAX, và dashboard design. Bây giờ hãy xem các kỹ năng đó được áp dụng thực tế như thế nào — từ supply chain dashboard của Coca-Cola, đến market intelligence của Unilever, và cuối cùng là hệ thống BI cho 500+ sales tại FPT.


Case Study 1: Coca-Cola — Power BI Dashboard cho Supply Chain & Sales

Bối cảnh

Coca-Cola Bottling Company United (CCBCU) là một trong những công ty đóng chai lớn nhất của hệ thống Coca-Cola tại Mỹ, phân phối hơn 300 sản phẩm tại 6 bang miền Đông Nam. Mỗi ngày, CCBCU xử lý hơn 1 triệu case đồ uống — từ kho hàng đến 60,000+ điểm bán lẻ.

Trước năm 2020, team operations dùng hỗn hợp Excel spreadsheets + báo cáo SAP + email để theo dõi supply chain. Mỗi sáng, quản lý khu vực nhận email PDF báo cáo tồn kho — data đã cũ 12 giờ. Khi cần drill-down theo SKU hoặc route, họ phải gọi nhờ IT team chạy query SAP — mất 2-4 giờ.

Vấn đề

Coca-Cola đối mặt với 4 thách thức cốt lõi:

  1. Data silos — Dữ liệu sales nằm trong SAP, marketing trong Salesforce, delivery tracking trong hệ thống riêng. Không có single source of truth. Quản lý khu vực đến cuộc họp thứ Hai với trung bình 3 phiên bản số liệu khác nhau.

  2. Report lag — Báo cáo PDF gửi email mỗi sáng nhưng data đã cũ 12-24 giờ. Trong ngành FMCG, 1 ngày out-of-stock = mất doanh thu không thể lấy lại (consumer chuyển sang đối thủ).

  3. No interactivity — Khi VP Sales hỏi "tồn kho Coke Zero tại Georgia tuần này?", team phải chạy query SAP, export Excel, format, rồi gửi email. Trung bình 4 giờ cho 1 ad-hoc request.

  4. Scalability — 60,000+ điểm bán, 300+ SKU, 6 bang. Excel không xử lý nổi volume này. File Excel báo cáo tuần nặng 85MB, crash thường xuyên.

Giải pháp — Power BI Enterprise Dashboard

Coca-Cola triển khai Power BI Premium kết hợp với Azure Data Factory pipeline:

Kiến trúc hệ thống:

mermaid
flowchart LR
    A["📦 SAP ERP<br/>Sales & Inventory"] --> D["🔧 Azure Data Factory<br/>ETL Pipeline"]
    B["📊 Salesforce<br/>Marketing Data"] --> D
    C["🚚 Route System<br/>Delivery Tracking"] --> D
    D --> E["🏢 Azure SQL Data Warehouse<br/>Centralized"]
    E --> F["📱 Power BI Premium<br/>Interactive Dashboards"]
    F --> G["👥 200+ Users<br/>VP, Managers, Reps"]

Data Model — Star Schema:

TableTypeRowsKey Columns
FACT_SALESFact50M+/yearorder_id, product_id, store_id, date, quantity, revenue
FACT_INVENTORYFact18M+/yearwarehouse_id, product_id, date, stock_level, reorder_point
DIM_PRODUCTDimension320product_id, brand, category, package_size
DIM_STOREDimension60,000+store_id, chain, city, state, route_id
DIM_DATEDimension3,650date_key, year, quarter, month, week, day_type
DIM_ROUTEDimension800route_id, driver, region, zone

DAX Measures được triển khai:

dax
// Out-of-Stock Rate — tỷ lệ hết hàng theo SKU
OOS Rate =
    DIVIDE(
        COUNTROWS(FILTER(FACT_INVENTORY, FACT_INVENTORY[stock_level] = 0)),
        COUNTROWS(FACT_INVENTORY),
        0
    )

// Days of Supply — còn bao nhiêu ngày hàng trong kho
Days of Supply =
    DIVIDE(
        [Current Stock],
        [Avg Daily Sales],
        0
    )

// Revenue vs Same Period Last Year
Revenue YoY Growth =
    VAR RevenuePY = CALCULATE([Total Revenue], SAMEPERIODLASTYEAR(DIM_DATE[date_key]))
    RETURN DIVIDE([Total Revenue] - RevenuePY, RevenuePY, 0)

Dashboard Pages:

  1. Executive Summary — 4 KPI cards (Revenue, Volume, OOS Rate, Market Share) + revenue trend + regional heatmap
  2. Supply Chain — Inventory levels by warehouse, days of supply, reorder alerts, delivery compliance
  3. Sales Performance — Revenue by brand/store/route, comparison YoY, target achievement
  4. Route Analytics — Map view, delivery time, store visit frequency, cold drink equipment tracking

Kết quả đo lường

MetricTrước (Excel/SAP)Sau (Power BI)Cải thiện
Report delivery time12-24 giờ (email PDF)Real-time (< 15 phút refresh)96% nhanh hơn
Ad-hoc request turnaround4 giờ (IT chạy query)0 (user tự filter/drill-down)100% tự phục vụ
Out-of-Stock rate8.5% → không phát hiện kịp3.2% → alert real-timeGiảm 62%
Revenue loss from OOS~$12M/year~$4.5M/yearTiết kiệm $7.5M/year
Report preparation time15 giờ/tuần (team 3 người)2 giờ/tuần (maintenance)Giảm 87%
Users accessing data15 (IT + senior managers)200+ (all levels)Tăng 13x
Data freshnessT+1 (data cũ 1 ngày)Near real-time (15 min)Real-time

📌 Key Takeaway từ Coca-Cola

  • Star schema là nền tảng — 5 dimension tables cho 60,000 stores + 300 SKUs = query nhanh
  • DAX measures cho supply chain — OOS Rate, Days of Supply, reorder alerts = proactive thay vì reactive
  • Self-service BI — 200 users tự filter/drill-down thay vì 15 người chờ IT = democratize data
  • ROI rõ ràng — tiết kiệm $7.5M/year từ giảm OOS + 13 giờ/tuần từ automation

Case Study 2: Unilever — Tableau cho Market Intelligence

Bối cảnh

Unilever là tập đoàn FMCG top 3 thế giới, sở hữu 400+ thương hiệu (Dove, OMO, Knorr, Lipton...) bán tại 190 quốc gia. Riêng khu vực Đông Nam Á, Unilever có doanh thu ~$7 tỷ/năm với hàng nghìn SKU.

Team Market Intelligence (MI) tại Unilever Southeast Asia chịu trách nhiệm theo dõi market share, competitor pricing, consumer sentiment, và distribution coverage trên 6 quốc gia. Trước khi chuyển sang Tableau, MI team dùng hỗn hợp Nielsen reports (PDF) + Excel models + PowerPoint slides — quy trình mà team gọi là "the monthly marathon."

Vấn đề

  1. Monthly marathon — Mỗi tháng, MI team dành 80 giờ (2 full-time analysts × 2 tuần) để: nhận data Nielsen → clean trong Excel → build charts → paste vào PowerPoint → gửi cho 12 country teams. Khi 1 country team phát hiện sai số, phải redo từ đầu.

  2. Cross-country comparison khó — Mỗi quốc gia có format data khác nhau (Nielsen Indonesia ≠ Nielsen Thailand). So sánh market share OMO tại VN vs Thái Lan phải merge manual — dễ sai.

  3. Competitor response chậm — Khi đối thủ P&G tung promotion, Unilever cần phản ứng trong 48 giờ. Nhưng report monthly → phát hiện chậm 2-4 tuần.

  4. Attribution gap — Marketing team chi $50M/năm cho quảng cáo ĐNA nhưng không thể liên kết spending → market share change ở granularity week-by-week.

Giải pháp — Tableau + Snowflake Data Platform

Unilever triển khai Tableau Enterprise trên nền tảng Snowflake:

Data Sources được tích hợp:

SourceDataFrequency
Nielsen Retail AuditMarket share, distribution, pricingMonthly
Internal Sales (SAP)Sell-in by SKU/channel/countryDaily
Social Listening (Brandwatch)Consumer sentiment, mentionsHourly
Digital Marketing (Google/Meta)Ad spend, impressions, clicksDaily
E-commerce (Shopee/Lazada API)Online sales, reviews, ratingsDaily

Tableau Dashboards được xây:

  1. Market Pulse — Market share trend (12 tháng rolling) cho top 10 categories × 6 countries. LOD expression cho weighted share calculation:

    // Tableau LOD: Market share weighted by category size
    {FIXED [Country], [Category], [Month]:
        SUM([Unilever Revenue]) / SUM([Category Revenue])}
  2. Competitor War Room — Real-time competitor pricing & promotion tracking. Alert khi đối thủ giảm giá > 10%.

  3. Brand Health Tracker — Sentiment score from social listening + NPS survey data. Scatter plot: sentiment vs market share by brand.

  4. Marketing ROI — Ad spend vs market share lift, by channel (TV, digital, in-store). Attribution model visualization.

  5. Distribution Coverage — Map view: % stores carrying each SKU, by province. Highlight "white space" opportunities.

Dashboard Design Principles Unilever áp dụng:

Nguyên tắcImplementation
One dashboard = One decisionMỗi dashboard trả lời 1 strategic question
Country toggle1 dashboard, filter by country — không build riêng cho mỗi nước
Benchmark always visibleLuôn hiển thị vs Previous Year, vs Plan, vs Competitor
Mobile-firstVP Marketing xem trên iPad trong cuộc họp
Drill path rõ ràngRegion → Country → Category → Brand → SKU

Kết quả đo lường

MetricTrước (Excel/PPT)Sau (Tableau)Cải thiện
Monthly report time80 giờ (2 analysts × 2 tuần)8 giờ (automated + review)Giảm 90%
Competitor response time2-4 tuần (monthly cycle)48 giờ (daily data + alerts)Nhanh hơn 10-20x
Cross-country comparison2 ngày (merge manual)Instant (1 filter click)Real-time
Marketing ROI visibilityQuarterly estimateWeekly actuals4x frequency
Data consumers5 MI analysts150+ marketers across 6 countries30x reach
Market share gain (Year 1)Baseline+1.2 pp average across categoriesMeasurable impact
Cost saving$0~$800K/year (reduced manual work + faster decisions)$800K/year

📌 Key Takeaway từ Unilever

  • Tableau cho cross-country analysis — 1 dashboard, 6 countries, filter by click = consistency
  • LOD Expressions cho weighted calculations — market share weighted by category size = accurate benchmark
  • Daily data vs monthly report — competitor response time từ tuần xuống giờ = competitive advantage
  • Mobile-first design — VP Marketing xem trên iPad trong meeting = higher adoption rate
  • Democratize data — từ 5 MI analysts → 150 marketers tự truy cập = data-driven culture

Case Study 3: FPT — Power BI cho Sales Team 500+ người

Bối cảnh

FPT Corporation là tập đoàn công nghệ lớn nhất Việt Nam, doanh thu ~48,000 tỷ VND (2024), với 3 mảng chính: FPT Software (outsourcing), FPT Telecom (viễn thông), và FPT IS (giải pháp CNTT). Riêng mảng FPT IS có đội ngũ sales 500+ người phụ trách bán giải pháp CNTT cho doanh nghiệp — từ ERP, Cloud, đến AI solutions.

Trước 2022, sales team FPT IS dùng 3 hệ thống riêng biệt:

  • Salesforce CRM — quản lý leads, opportunities, pipeline
  • SAP — quản lý hợp đồng, doanh thu, thu tiền
  • Excel — forecast hàng quý (mỗi sales manager tự làm)

Vấn đề

  1. 3 nguồn dữ liệu, 3 con số khác nhau — VP Sales hỏi "pipeline Q4 là bao nhiêu?", nhận 3 câu trả lời: Salesforce nói 850 tỷ, SAP nói 720 tỷ, Excel forecast nói 780 tỷ. Nguyên nhân: definition khác nhau, timing khác nhau, manual input sai.

  2. Forecast accuracy thấp — Mỗi sales manager tự forecast trong Excel riêng. Không có chuẩn chung (weighted pipeline, probability stage). FY2021, forecast accuracy chỉ 55% — ban lãnh đạo không tin forecast để ra quyết định.

  3. Performance visibility kém — Với 500+ sales, VP Sales không thể theo dõi performance cá nhân bằng Excel. Monthly review meeting: mỗi manager present 15 phút, 30 managers = 7.5 giờ họp mỗi tháng.

  4. Ramp-up slow — Sales mới mất 3-6 tháng để hiểu "số liệu ở đâu." Không có dashboard thống nhất để onboard.

Giải pháp — Power BI + Dataverse Integration

FPT IS triển khai Power BI Premium embedded trong Microsoft Teams:

Kiến trúc:

mermaid
flowchart TD
    A["Salesforce CRM<br/>Pipeline, Leads"] --> D["Microsoft Dataverse<br/>Unified Data Model"]
    B["SAP ERP<br/>Revenue, Contracts"] --> D
    C["HRMS<br/>Sales Headcount, KPI"] --> D
    D --> E["Power BI Premium<br/>Embedded in Teams"]
    E --> F["📱 Sales Rep<br/>My Performance"]
    E --> G["👔 Sales Manager<br/>Team Dashboard"]
    E --> H["🏢 VP Sales<br/>Executive Dashboard"]

Role-based Dashboards (Row-Level Security):

RoleDashboardThấy dataKey Metrics
Sales RepMy PerformanceChỉ của mìnhPipeline, quota attainment, activities, forecast
Sales ManagerTeam DashboardTeam 15-20 ngườiTeam pipeline, rep comparison, deal stages, coaching needs
VP SalesExecutiveToàn bộ 500+Overall pipeline, forecast vs actual, win rate, market segment
CFOFinance ViewRevenue + ARRecognized revenue, cash collection, DSO

DAX Measures cho Sales Analytics:

dax
// Weighted Pipeline — xác suất theo stage
Weighted Pipeline =
    SUMX(
        FACT_OPPORTUNITIES,
        FACT_OPPORTUNITIES[deal_value] * FACT_OPPORTUNITIES[stage_probability]
    )

// Quota Attainment %
Quota Attainment =
    DIVIDE(
        [Closed Won Revenue],
        [Quarterly Quota],
        0
    )

// Win Rate
Win Rate =
    DIVIDE(
        COUNTROWS(FILTER(FACT_OPPORTUNITIES, FACT_OPPORTUNITIES[status] = "Won")),
        COUNTROWS(FILTER(FACT_OPPORTUNITIES,
            FACT_OPPORTUNITIES[status] IN {"Won", "Lost"})),
        0
    )

// Sales Velocity (days) — trung bình ngày close deal
Sales Velocity =
    AVERAGEX(
        FILTER(FACT_OPPORTUNITIES, FACT_OPPORTUNITIES[status] = "Won"),
        DATEDIFF(FACT_OPPORTUNITIES[created_date],
                 FACT_OPPORTUNITIES[close_date], DAY)
    )

// Forecast Accuracy
Forecast Accuracy =
    1 - ABS(DIVIDE([Actual Revenue] - [Forecasted Revenue],
                    [Forecasted Revenue], 0))

Row-Level Security (RLS) implementation:

dax
// RLS Rule — Sales Rep chỉ thấy data của mình
[owner_email] = USERPRINCIPALNAME()

// RLS Rule — Manager thấy data team
[manager_email] = USERPRINCIPALNAME()
    || [owner_email] = USERPRINCIPALNAME()

Kết quả đo lường

MetricTrước (2021)Sau (2023)Cải thiện
"1 source of truth"3 hệ thống, 3 con số1 dashboard, 1 con sốSingle source
Forecast accuracy55%82%+27 percentage points
Monthly review meeting7.5 giờ (30 managers × 15 min)2 giờ (dashboard review)Giảm 73%
Ad-hoc report time4-8 giờ (IT chạy query)0 (tự phục vụ)100% self-service
Sales rep onboarding3-6 tháng hiểu "số ở đâu"1 tuần (Power BI training)Giảm 80%
Pipeline visibilityMonthly snapshotReal-time (refresh 4x/day)Real-time
Dashboard adoption0 (không có dashboard)92% sales login weekly92% adoption
Win rate22%28%+6 pp (insight-driven selling)

Bài học từ FPT

⚠️ Change Management quan trọng hơn technology

FPT chia sẻ: 70% effort của dự án BI là change management, chỉ 30% là technical.

Challenges:

  1. Sales không muốn minh bạch — một số sales resist vì dashboard expose performance kém
  2. Data entry discipline — garbage in, garbage out. Phải train 500 người nhập Salesforce đúng cách
  3. Manager adoption — nếu manager không dùng dashboard trong 1-on-1 meeting, team cũng không dùng

Solutions:

  1. Gamification — leaderboard on dashboard, monthly award cho top performers
  2. Mandatory data entry — Salesforce validation rules, không submit deal nếu thiếu trường bắt buộc
  3. Manager training first — train manager trước, bắt buộc dùng dashboard trong review meeting

📊 So sánh 3 Case Studies

Tiêu chíCoca-ColaUnileverFPT
BI ToolPower BI PremiumTableau EnterprisePower BI Premium
Users200+150+500+
Data sourcesSAP + Salesforce + RouteNielsen + SAP + Social + E-commerceSalesforce + SAP + HRMS
Key use caseSupply chain + SalesMarket intelligenceSales analytics
Data modelStar schema (SQL DW)SnowflakeMicrosoft Dataverse
ROI$7.5M/year saving$800K/year + 1.2pp share27pp forecast accuracy
Key success factorSelf-service BICross-country consistencyChange management
Time to value6 months9 months12 months

💡 3 bài học xuyên suốt

  1. Data model trước, dashboard sau — Cả 3 công ty dành 60-70% effort cho data integration + star schema. Dashboard đẹp mà data sai = vô nghĩa.
  2. Self-service BI = democratize data — Từ 5-15 power users → 150-500 users tự truy cập. Data không còn bị "gatekeeper" bởi IT team.
  3. Adoption > Features — FPT dạy: công nghệ tốt nhất mà không ai dùng = thất bại. Change management, training, gamification quyết định thành bại.

📚 Tài liệu tham khảo

Tài liệuLinkGhi chú
Coca-Cola Power BI Case Study — Microsoftcustomers.microsoft.comCase study chính thức
Unilever Data Strategyunilever.com/digitalTổng quan chiến lược data
Tableau Enterprise Deployment Guidetableau.comHướng dẫn triển khai enterprise
FPT Annual Report 2024fpt.com.vnSố liệu doanh thu, nhân sự
Power BI Premium Documentationlearn.microsoft.comKiến trúc Premium
SQLBI — DAX Patterns for Salesdaxpatterns.comPipeline, forecast patterns