MinAI - Về trang chủ
Dự án
12/134 giờ
Đang tải...

Capstone: VNCredit Bank Analysis

Dự án tổng hợp phân tích toàn diện ngân hàng VNCredit Bank

0

🎯 Mục tiêu Capstone Project

TB5 min
Capstone Project: VNCredit Bank Analysis

Đây là dự án tổng hợp cuối khóa. Bạn sẽ thực hiện phân tích toàn diện VNCredit Bank Data, áp dụng tất cả kiến thức từ 11 bài trước. Output: 1 báo cáo phân tích + 1 bộ dashboard design hoàn chỉnh.

📋 Thông tin Capstone
Thông tinChi tiết
⏱️ Thời lượng4 giờ
📖 ScopeEnd-to-end Banking Analytics
💡 Kiến thứcTất cả 11 bài trước
🎯 OutputReport + Dashboard Blueprint + Recommendations
📊 DatasetVNCredit Bank (6 tables, 2.6M+ records)
1

📋 Business Context & Deliverables

TB5 min

Scenario

Bạn là Senior Data Analyst tại VNCredit Bank. Ban Tổng Giám đốc yêu cầu báo cáo phân tích tổng thể tình hình hoạt động ngân hàng để chuẩn bị cho cuộc họp HĐQT (Hội đồng Quản trị) quý tới.

Deliverables yêu cầu

#DeliverableMô tảTừ bài
1Executive Summary1-page tóm tắt key findingsAll
2Portfolio Health ReportNPL, DPD, Vintage, Default analysis03, 04, 05
3Customer InsightsSegmentation, RFM, CLV, Cross-sell06, 09
4Branch ScorecardTop/Bottom performers, Regional analysis08
5Transaction ReportChannel, Anomaly, Digital adoption07
6Risk & ComplianceNHNN classification, Provisioning11
7Dashboard BlueprintExecutive Dashboard design (mockup)10
8RecommendationsTop 5 actionable recommendationsAll
2

📊 Part 1: Executive Summary

TB5 min

Bước 1: Overall Portfolio KPIs

SQL
1-- Capstone Q1: Executive KPIs Summary
2SELECT
3 '=== VNCREDIT BANK EXECUTIVE SUMMARY ===' AS report_section,
4 COUNT(*) AS total_applications,
5 SUM(CASE WHEN status = 'Approved' THEN 1 ELSE 0 END) AS approved_loans,
6 ROUND(AVG(CASE WHEN status = 'Approved' THEN 1.0 ELSE 0 END) * 100, 1) AS approval_rate,
7 SUM(CASE WHEN status = 'Approved' THEN loan_amount ELSE 0 END) AS total_portfolio,
8 ROUND(AVG(CASE WHEN status = 'Approved' THEN loan_amount END), 0) AS avg_loan_size,
9 ROUND(AVG(CASE WHEN status = 'Approved' THEN credit_score END), 0) AS avg_credit_score,
10 ROUND(AVG(CASE WHEN status = 'Approved' THEN default_flag END) * 100, 2) AS default_rate,
11 COUNT(DISTINCT customer_id) AS unique_customers,
12 COUNT(DISTINCT branch_id) AS active_branches
13FROM fact_loan_application;

Bước 2: Growth Trend (QoQ)

SQL
1-- Capstone Q2: Quarterly Growth Analysis
2WITH quarterly AS (
3 SELECT
4 DATEPART(YEAR, application_date) AS yr,
5 DATEPART(QUARTER, application_date) AS qtr,
6 COUNT(*) AS loan_count,
7 SUM(loan_amount) AS loan_amount,
8 ROUND(AVG(default_flag) * 100, 2) AS default_rate
9 FROM fact_loan_application
10 WHERE status = 'Approved'
11 GROUP BY DATEPART(YEAR, application_date), DATEPART(QUARTER, application_date)
12)
13SELECT
14 CONCAT('Q', qtr, '/', yr) AS quarter,
15 loan_count,
16 loan_amount,
17 default_rate,
18 ROUND(
19 (loan_amount - LAG(loan_amount) OVER(ORDER BY yr, qtr)) * 100.0
20 / LAG(loan_amount) OVER(ORDER BY yr, qtr), 1
21 ) AS growth_pct_qoq
22FROM quarterly
23ORDER BY yr, qtr;
3

📊 Part 2: Portfolio Health Deep-dive

TB5 min

Bước 3: Credit Quality Matrix

SQL
1-- Capstone Q3: Credit Quality Matrix (Score x DTI)
2SELECT
3 CASE
4 WHEN credit_score >= 750 THEN 'Excellent (750+)'
5 WHEN credit_score >= 700 THEN 'Good (700-749)'
6 WHEN credit_score >= 650 THEN 'Fair (650-699)'
7 WHEN credit_score >= 600 THEN 'Poor (600-649)'
8 ELSE 'Very Poor (<600)'
9 END AS score_band,
10 CASE
11 WHEN dti_ratio <= 0.3 THEN 'Low DTI (≤30%)'
12 WHEN dti_ratio <= 0.5 THEN 'Medium DTI (30-50%)'
13 ELSE 'High DTI (>50%)'
14 END AS dti_band,
15 COUNT(*) AS loan_count,
16 ROUND(AVG(default_flag) * 100, 2) AS default_rate,
17 ROUND(AVG(loan_amount), 0) AS avg_loan,
18 SUM(loan_amount) AS total_exposure
19FROM fact_loan_application
20WHERE status = 'Approved'
21GROUP BY
22 CASE
23 WHEN credit_score >= 750 THEN 'Excellent (750+)'
24 WHEN credit_score >= 700 THEN 'Good (700-749)'
25 WHEN credit_score >= 650 THEN 'Fair (650-699)'
26 WHEN credit_score >= 600 THEN 'Poor (600-649)'
27 ELSE 'Very Poor (<600)'
28 END,
29 CASE
30 WHEN dti_ratio <= 0.3 THEN 'Low DTI (≤30%)'
31 WHEN dti_ratio <= 0.5 THEN 'Medium DTI (30-50%)'
32 ELSE 'High DTI (>50%)'
33 END
34ORDER BY score_band, dti_band;

Bước 4: Vintage Performance

SQL
1-- Capstone Q4: Loan Vintage Analysis
2WITH vintage AS (
3 SELECT
4 FORMAT(l.application_date, 'yyyy-MM') AS vintage_month,
5 l.application_id,
6 l.loan_amount,
7 l.default_flag,
8 DATEDIFF(MONTH, l.application_date, p.payment_date) AS months_on_book,
9 p.days_past_due
10 FROM fact_loan_application l
11 JOIN fact_loan_payment p ON l.application_id = p.application_id
12 WHERE l.status = 'Approved'
13)
14SELECT
15 vintage_month,
16 months_on_book AS mob,
17 COUNT(DISTINCT application_id) AS active_loans,
18 ROUND(AVG(CASE WHEN days_past_due > 90 THEN 1.0 ELSE 0 END) * 100, 2) AS npl_rate
19FROM vintage
20WHERE months_on_book BETWEEN 1 AND 24
21GROUP BY vintage_month, months_on_book
22ORDER BY vintage_month, months_on_book;
4

📊 Part 3: Customer & Branch Analysis

TB5 min

Bước 5: Customer 360 Summary

SQL
1-- Capstone Q5: Customer Segmentation Summary
2WITH customer_profile AS (
3 SELECT
4 c.customer_id,
5 c.age,
6 c.income_level,
7 c.occupation,
8 -- Loan metrics
9 COUNT(DISTINCT l.application_id) AS total_loans,
10 SUM(l.loan_amount) AS total_borrowed,
11 AVG(l.default_flag) AS default_rate,
12 -- Transaction metrics
13 COUNT(DISTINCT t.transaction_id) AS total_txns,
14 SUM(t.amount) AS total_txn_amount,
15 -- Segment
16 CASE
17 WHEN c.income_level IN ('Very High') THEN 'Priority'
18 WHEN c.income_level IN ('High') THEN 'Affluent'
19 ELSE 'Mass'
20 END AS segment
21 FROM dim_customer c
22 LEFT JOIN fact_loan_application l ON c.customer_id = l.customer_id AND l.status = 'Approved'
23 LEFT JOIN fact_transaction t ON c.customer_id = t.customer_id
24 GROUP BY c.customer_id, c.age, c.income_level, c.occupation
25)
26SELECT
27 segment,
28 COUNT(*) AS customers,
29 ROUND(AVG(total_loans), 1) AS avg_loans,
30 ROUND(AVG(total_borrowed), 0) AS avg_borrowed,
31 ROUND(AVG(default_rate) * 100, 2) AS avg_default_rate,
32 ROUND(AVG(total_txns), 0) AS avg_txns,
33 ROUND(AVG(total_txn_amount), 0) AS avg_txn_value
34FROM customer_profile
35GROUP BY segment
36ORDER BY avg_txn_value DESC;

Bước 6: Branch Scorecard

SQL
1-- Capstone Q6: Branch Performance Scorecard
2WITH branch_metrics AS (
3 SELECT
4 b.branch_id,
5 b.branch_name,
6 b.region,
7 b.city,
8 b.branch_type,
9 COUNT(l.application_id) AS total_loans,
10 SUM(l.loan_amount) AS total_amount,
11 ROUND(AVG(l.default_flag) * 100, 2) AS default_rate,
12 COUNT(DISTINCT l.customer_id) AS unique_customers,
13 COUNT(DISTINCT t.transaction_id) AS total_txns,
14 SUM(t.amount) AS txn_volume
15 FROM dim_branch b
16 LEFT JOIN fact_loan_application l ON b.branch_id = l.branch_id AND l.status = 'Approved'
17 LEFT JOIN fact_transaction t ON b.branch_id = t.branch_id
18 GROUP BY b.branch_id, b.branch_name, b.region, b.city, b.branch_type
19),
20scored AS (
21 SELECT *,
22 NTILE(5) OVER(ORDER BY total_amount DESC) AS volume_tier,
23 NTILE(5) OVER(ORDER BY default_rate ASC) AS quality_tier,
24 NTILE(5) OVER(ORDER BY unique_customers DESC) AS customer_tier,
25 ROUND(
26 NTILE(5) OVER(ORDER BY total_amount DESC) * 0.4 +
27 NTILE(5) OVER(ORDER BY default_rate ASC) * 0.35 +
28 NTILE(5) OVER(ORDER BY unique_customers DESC) * 0.25
29 , 2) AS composite_score
30 FROM branch_metrics
31)
32SELECT
33 branch_name, region, city, branch_type,
34 total_loans, total_amount, default_rate,
35 unique_customers, composite_score,
36 CASE
37 WHEN composite_score >= 4.0 THEN '⭐ Star'
38 WHEN composite_score >= 3.0 THEN '✅ Good'
39 WHEN composite_score >= 2.0 THEN '⚠️ Average'
40 ELSE '🔴 Underperform'
41 END AS performance_tier
42FROM scored
43ORDER BY composite_score DESC;
5

📊 Part 4: Actionable Recommendations

TB5 min

Framework viết Recommendations

Mỗi recommendation phải theo cấu trúc STAR:

ElementMô tảVí dụ
SituationHiện trạng từ data"NPL rate hiện tại 7%, cao hơn target 3%"
TargetMục tiêu cần đạt"Giảm NPL xuống 5% trong 6 tháng"
ActionHành động cụ thể"Thắt chặt Credit Score threshold từ 600 → 650"
ResultKết quả dự kiến"Giảm ~40% default ở nhóm 600-649"

Top 5 Recommendations Template

📝 KHuyếN NGHỊ CHIẾN LƯỢC — VNCREDIT BANK

1. 🛡️ TỐI ƯU CHÍNH SÁCH TÍN DỤNG

STARNội dung
SNPL tập trung ở nhóm Credit Score < 650 và DTI > 50%
TGiảm default rate 30% trong 6 tháng
ANâng credit score threshold, giảm limit cho high DTI
RTiết kiệm ~XX tỷ VND chi phí dự phòng

2. 📱 ĐẨY MẠNH DIGITAL BANKING

STARNội dung
SX% giao dịch vẫn qua counter, chi phí cao
TTăng digital adoption lên 70%
AIncentive cho mobile banking, giảm fee online
RGiảm CIR xuống Y%, tiết kiệm CPVH

3. 📎 PHÁT TRIỂN CROSS-SELL

STARNội dung
SKH Affluent chỉ sử dụng 1.5 SP/người
TTăng lên 2.5 SP/người
ABundle products, targeted campaigns
RTăng revenue/customer XX%, tăng CLV

4. 🏢 CẢI THIỆN CHI NHÁNH YẾU KÉM

STARNội dung
SXX chi nhánh có default rate > 10%
TKhông chi nhánh nào > 8%
ATraining, review quy trình, leadership change
RGiảm NPL tổng thể, đồng đều hiệu suất

5. ⚠️ XÂY DỰNG EARLY WARNING SYSTEM

STARNội dung
SPhát hiện rủi ro chủ yếu sau khi phát sinh
TPhát hiện sớm 30–60 ngày trước default
AMonitoring DPD trends, anomaly detection
RCan thiệp sớm, giảm tỷ lệ chuyển nhóm nợ xấu
💡 Pro Tips cho Capstone
  1. Data-driven: Mọi recommendation phải có con số từ analysis
  2. Prioritize: Sắp xếp theo impact × feasibility
  3. Visualize: Mỗi finding đi kèm 1 chart suggestion
  4. Compare: Luôn so với benchmark (industry average, target)
  5. Timeline: Đề xuất short-term (1-3 tháng) và long-term (6-12 tháng)

Checkpoint

Capstone VNCredit Bank: 8 deliverables (Executive Summary → Portfolio Health → Customer Insights → Branch Scorecard → Transaction Report → Risk & Compliance → Dashboard Blueprint → Recommendations). Framework STAR cho recommendations: Situation + Target + Action + Result. Output = 1 report hoàn chỉnh + 1 dashboard mockup.

6

📋 Tổng kết

TB5 min

Kiến thức đã học

Chủ đềNội dung chính
Capstone Structure8 deliverables từ Executive Summary đến Recommendations
STAR FrameworkSituation + Target + Action + Result
Portfolio HealthNPL, Default Rate, Vintage, DPD analysis
Customer InsightsSegmentation, RFM, Cross-sell, CLV
Branch ScorecardWeighted performance scoring đa tiêu chí
Dashboard Blueprint5-page design với KPI cards, drill-down
RecommendationsData-driven, prioritized theo impact × feasibility

Key Takeaways

  1. 8 deliverables tạo thành báo cáo phân tích ngân hàng hoàn chỉnh
  2. STAR framework giúp recommendations có cấu trúc và actionable
  3. Data-driven — mọi khuyến nghị phải có con số từ analysis
  4. Capstone tích hợp tất cả kiến thức từ bài 01-11

Câu hỏi tự kiểm tra

  1. 8 deliverables của Capstone bao gồm những gì?
  2. STAR framework áp dụng cho recommendations như thế nào?
  3. Tại sao cần prioritize recommendations theo impact × feasibility?
  4. Dashboard Blueprint cần những thành phần nào?

Bài tiếp theo: Banking Analytics Quiz →

🎉 Tuyệt vời! Bạn đã hoàn thành Capstone Project!

Nhớ: Capstone là portfolio piece quan trọng nhất — thể hiện khả năng phân tích end-to-end cho ngành ngân hàng. Hãy hoàn thiện và đưa vào CV!