MinAI - Về trang chủ
Hướng dẫn
7/132 giờ
Đang tải...

Transaction Analysis

Phân tích giao dịch: Patterns, Channel Analysis, và Anomaly Detection

0

🎯 Mục tiêu bài học

TB5 min
Sau bài học này, bạn sẽ:
  • Phân tích transaction patterns theo thời gian, kênh, và loại giao dịch
  • Xây dựng channel analysis đánh giá hiệu quả các kênh giao dịch
  • Phát hiện anomaly (giao dịch bất thường) bằng statistical methods
  • Phân tích số dư tài khoản và xu hướng khách hàng
📋 Thông tin bài học
Thông tinChi tiết
⏱️ Thời lượng2 giờ
📖 Chủ đề chínhTransaction Patterns, Channel Analysis, Anomaly Detection
💡 Kiến thức cần cóSQL, Statistics cơ bản
🎯 OutputTransaction Analysis Report
1

📖 Thuật ngữ quan trọng

TB5 min
Thuật ngữTiếng ViệtMô tả
Transaction VolumeSố lượng giao dịchTổng số giao dịch trong khoảng thời gian
Transaction ValueGiá trị giao dịchTổng giá trị tiền của các giao dịch
Channel MixCơ cấu kênhTỷ trọng giao dịch theo kênh (Mobile, ATM, Branch)
Digital AdoptionTỷ lệ số hóa% giao dịch qua kênh digital (Mobile + Online)
AnomalyBất thườngGiao dịch có giá trị hoặc pattern khác thường
Average BalanceSố dư bình quânTrung bình số dư tài khoản trong kỳ
Peak HoursGiờ cao điểmThời điểm giao dịch nhiều nhất
Dormant AccountTài khoản ngủTài khoản không giao dịch > 3 tháng

Checkpoint

Transaction Analysis trong ngân hàng bao gồm: Volume & Value trends, Channel Mix (Mobile đang tăng mạnh, thay thế Branch), Anomaly Detection (phát hiện giao dịch bất thường có thể là fraud), và Balance Analysis (số dư phản ánh sức khỏe tài chính KH).

2

📊 Transaction Volume & Value Trends

TB5 min

Giao dịch theo thời gian

SQL
1-- 1. Daily transaction volume & value
2SELECT
3 transaction_date,
4 COUNT(*) AS txn_count,
5 SUM(amount) AS total_value,
6 ROUND(AVG(amount), 0) AS avg_txn_value,
7 COUNT(DISTINCT customer_id) AS unique_customers
8FROM fact_transaction
9GROUP BY transaction_date
10ORDER BY transaction_date;

Giao dịch theo loại

SQL
1-- 2. Transaction mix theo loại
2SELECT
3 transaction_type,
4 COUNT(*) AS txn_count,
5 ROUND(COUNT(*) * 100.0 / SUM(COUNT(*)) OVER(), 1) AS pct_count,
6 SUM(amount) AS total_value,
7 ROUND(SUM(amount) * 100.0 / SUM(SUM(amount)) OVER(), 1) AS pct_value,
8 ROUND(AVG(amount), 0) AS avg_value,
9 ROUND(PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY amount) OVER (PARTITION BY transaction_type), 0) AS median_value
10FROM fact_transaction
11GROUP BY transaction_type
12ORDER BY txn_count DESC;

Weekly Pattern

SQL
1-- 3. Giao dịch theo ngày trong tuần
2SELECT
3 DATENAME(WEEKDAY, transaction_date) AS day_name,
4 DATEPART(WEEKDAY, transaction_date) AS day_number,
5 COUNT(*) AS txn_count,
6 ROUND(AVG(amount), 0) AS avg_amount,
7 COUNT(DISTINCT customer_id) AS unique_customers
8FROM fact_transaction
9GROUP BY DATENAME(WEEKDAY, transaction_date), DATEPART(WEEKDAY, transaction_date)
10ORDER BY day_number;
📅 Kỳ vọng kết quả — Transaction Volume theo ngày
NgàyVolumeGhi chú
Monday🟦🟦🟦🟦🟦🟦🟦🟦🟦🟦📈 Cao — đầu tuần
Tuesday🟦🟦🟦🟦🟦🟦🟦🟦🟦
Wednesday🟦🟦🟦🟦🟦🟦🟦🟦
Thursday🟦🟦🟦🟦🟦🟦🟦🟦🟦
Friday🟦🟦🟦🟦🟦🟦🟦🟦🟦🟦📈 Cao — cuối tuần lương
Saturday🟦🟦🟦🟦🟦🟦📉 Giảm
Sunday🟦🟦🟦🟦🟦📉 Thấp nhất
3

📱 Channel Analysis

TB5 min

Channel Mix & Digital Adoption

SQL
1-- 4. Channel analysis
2SELECT
3 channel,
4 COUNT(*) AS txn_count,
5 ROUND(COUNT(*) * 100.0 / SUM(COUNT(*)) OVER(), 1) AS pct_count,
6 SUM(amount) AS total_value,
7 ROUND(AVG(amount), 0) AS avg_value,
8 COUNT(DISTINCT customer_id) AS unique_customers
9FROM fact_transaction
10GROUP BY channel
11ORDER BY txn_count DESC;

Digital Adoption Rate

SQL
1-- 5. Digital Adoption theo tháng (trend)
2SELECT
3 FORMAT(transaction_date, 'yyyy-MM') AS month,
4 COUNT(*) AS total_txn,
5 SUM(CASE WHEN channel IN ('Mobile', 'Online') THEN 1 ELSE 0 END) AS digital_txn,
6 ROUND(
7 SUM(CASE WHEN channel IN ('Mobile', 'Online') THEN 1.0 ELSE 0 END)
8 / COUNT(*) * 100, 1
9 ) AS digital_adoption_pct
10FROM fact_transaction
11GROUP BY FORMAT(transaction_date, 'yyyy-MM')
12ORDER BY month;

Channel Preference theo Customer Segment

SQL
1-- 6. Channel preference theo income segment
2SELECT
3 CASE
4 WHEN c.monthly_income >= 50000000 THEN 'Priority'
5 WHEN c.monthly_income >= 20000000 THEN 'Affluent'
6 ELSE 'Mass'
7 END AS segment,
8 t.channel,
9 COUNT(*) AS txn_count,
10 ROUND(COUNT(*) * 100.0 / SUM(COUNT(*)) OVER (
11 PARTITION BY CASE
12 WHEN c.monthly_income >= 50000000 THEN 'Priority'
13 WHEN c.monthly_income >= 20000000 THEN 'Affluent'
14 ELSE 'Mass'
15 END
16 ), 1) AS pct_within_segment
17FROM fact_transaction t
18JOIN dim_customer c ON t.customer_id = c.customer_id
19GROUP BY
20 CASE
21 WHEN c.monthly_income >= 50000000 THEN 'Priority'
22 WHEN c.monthly_income >= 20000000 THEN 'Affluent'
23 ELSE 'Mass'
24 END,
25 t.channel
26ORDER BY segment, txn_count DESC;
Xu hướng Digital Banking VN

Mobile banking đã chiếm 45% giao dịch tại VNCredit Bank, tiếp tục tăng mạnh. Ngân hàng đang:

  • Giảm chi nhánh vật lý (Branch chỉ còn 10%)
  • Đẩy mạnh ưu đãi trên Mobile app
  • ATM vẫn quan trọng cho rút tiền mặt (25%)
  • Online banking (20%) cho chuyển khoản lớn
4

🔍 Anomaly Detection

TB5 min

Phát hiện giao dịch bất thường

SQL
1-- 7. Anomaly detection — giao dịch ngoài 3 sigma
2WITH customer_stats AS (
3 SELECT
4 customer_id,
5 AVG(amount) AS avg_amount,
6 STDEV(amount) AS std_amount,
7 COUNT(*) AS txn_count
8 FROM fact_transaction
9 GROUP BY customer_id
10 HAVING COUNT(*) >= 10
11)
12SELECT
13 t.transaction_id,
14 t.customer_id,
15 t.transaction_date,
16 t.transaction_type,
17 t.amount,
18 t.channel,
19 cs.avg_amount,
20 cs.std_amount,
21 ROUND((t.amount - cs.avg_amount) / NULLIF(cs.std_amount, 0), 2) AS z_score
22FROM fact_transaction t
23JOIN customer_stats cs ON t.customer_id = cs.customer_id
24WHERE ABS((t.amount - cs.avg_amount) / NULLIF(cs.std_amount, 0)) > 3
25ORDER BY ABS((t.amount - cs.avg_amount) / NULLIF(cs.std_amount, 0)) DESC;

Balance Analysis

SQL
1-- 8. Average balance theo customer segment
2SELECT
3 CASE
4 WHEN c.monthly_income >= 50000000 THEN 'Priority'
5 WHEN c.monthly_income >= 20000000 THEN 'Affluent'
6 ELSE 'Mass'
7 END AS segment,
8 COUNT(DISTINCT t.customer_id) AS customers,
9 ROUND(AVG(t.balance_after), 0) AS avg_balance,
10 ROUND(MIN(t.balance_after), 0) AS min_balance,
11 ROUND(MAX(t.balance_after), 0) AS max_balance
12FROM fact_transaction t
13JOIN dim_customer c ON t.customer_id = c.customer_id
14GROUP BY
15 CASE
16 WHEN c.monthly_income >= 50000000 THEN 'Priority'
17 WHEN c.monthly_income >= 20000000 THEN 'Affluent'
18 ELSE 'Mass'
19 END
20ORDER BY avg_balance DESC;

Dormant Account Detection

SQL
1-- 9. Tài khoản ngủ — không giao dịch > 90 ngày
2SELECT
3 c.customer_id,
4 c.monthly_income,
5 c.city,
6 MAX(t.transaction_date) AS last_txn_date,
7 DATEDIFF(DAY, MAX(t.transaction_date), '2024-12-31') AS days_inactive,
8 COUNT(*) AS total_txn_before_dormant
9FROM dim_customer c
10JOIN fact_transaction t ON c.customer_id = t.customer_id
11GROUP BY c.customer_id, c.monthly_income, c.city
12HAVING DATEDIFF(DAY, MAX(t.transaction_date), '2024-12-31') > 90
13ORDER BY days_inactive DESC;

Checkpoint

Transaction Analysis: Volume/Value trends theo thời gian, Channel Mix (Mobile 45% đang dẫn đầu), Weekly patterns (peak Monday & Friday). Anomaly Detection dùng Z-score (|z| > 3 = bất thường). Balance Analysis theo segment cho thấy Priority có số dư cao gấp 10x Mass. Dormant accounts (>90 ngày không GD) cần chiến dịch reactivation.

5

📋 Tổng kết

TB5 min

Kiến thức đã học

Chủ đềNội dung chính
Transaction TrendsVolume/Value theo thời gian, seasonal patterns
Channel AnalysisMobile (45%), ATM, POS, Branch — migration trend
Anomaly DetectionZ-score > 3 = flag bất thường, cần điều tra
Balance AnalysisSố dư theo segment: Priority >> Affluent >> Mass
Dormant Accounts> 90 ngày không GD = reactivation target

Key Takeaways

  1. Channel migration sang Mobile banking là xu hướng — cần đầu tư UX
  2. Z-score là công cụ đơn giản mà hiệu quả cho anomaly detection
  3. Weekly patterns giúp tối ưu staffing và capacity planning
  4. Dormant accounts cần reactivation campaigns trước khi trở thành churn

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

  1. Z-score > 3 trong transaction analysis nghĩa là gì?
  2. Tại sao Mobile banking chiếm tỷ trọng ngày càng cao?
  3. Dormant account được định nghĩa như thế nào?
  4. Weekly pattern giúp ngân hàng tối ưu điều gì?

Bài tiếp theo: Branch Performance →

🎉 Tuyệt vời! Bạn đã thành thạo Transaction Analysis!

Nhớ: Transaction data là mỏ vàng — trends, anomalies, channels, dormancy đều từ đây. Mobile banking là tương lai!