P9 · Power BI + Python · Finance Domain
Financial Dashboard — VN100 Analysis (2020–2023)
Phân tích Báo cáo Tài chính (BCTC) & Bảng Cân đối Kế toán của 100+ mã VN100 trong giai đoạn 2020–2023, dữ liệu được crawl từ Cafef. Phân tích xu hướng ROS, so sánh ngành, xếp hạng doanh nghiệp.
FinancePower BIPythonStar SchemaDAX
Features
- Crawl BCTC (Kết quả kinh doanh) và CĐKT (Bảng CĐKT) từ Cafef bằng Selenium
- Phân tích ROS (Return on Sales) theo ngành và theo năm
- So sánh hiệu quả hoạt động giữa các sector: ngân hàng, bất động sản, sản xuất...
- Dashboard đa trang với page navigation và bookmark
- Star Schema: Fact_Financial + Dim_Company + Dim_Date + Dim_Sector
Stack & Tools
- Power BI: Star Schema · DAX · Time Intelligence · Page Navigation
- Python: Selenium · Pandas · Data Cleaning · Cafef Crawler
- DAX: YoY Growth · Running Total · Ranking · % KPI
- Visualizations: Line chart · Bar chart · Matrix · Slicer · KPI Card
Kiến trúc & Quy trình hoạt động
Giải pháp phân tích tài chính đầu tư toàn diện. Quy trình được tự động hóa từ bước thu thập dữ liệu thô (Python Scraper), chuẩn hóa dữ liệu kế toán và phân phối báo cáo phân tích tài chính đầu tư trên Power BI.
Cafef.vn ➔ Python Selenium Scraper ➔ Raw CSV ➔ Pandas Data Cleaning Pipeline
⬇
Investment Dashboard ⬅ DAX Financial Ratio calculations ⬅ Power BI Data Model
Thiết kế Cơ sở dữ liệu
Thiết kế cấu trúc cơ sở dữ liệu phục vụ các phép tính toán chỉ số tài chính (như ROS, ROE, ROA) so sánh chéo giữa các doanh nghiệp thuộc các ngành khác nhau:
- Fact_FinancialData (ReportID, CompanyKey, DateKey, TotalRevenue, NetIncome, TotalAssets, Equity)
- Dim_Company (CompanyKey, StockSymbol, CompanyName, SectorKey)
- Dim_Sector (SectorKey, SectorName)
- Dim_Date (DateKey, Quarter, Year)
Thách thức & Giải pháp kỹ thuật
- Thách thức: Dữ liệu báo cáo tài chính thô thu thập từ Cafef có tên tài khoản kế toán (Chart of Accounts) không đồng nhất giữa các doanh nghiệp (Ví dụ doanh nghiệp Ngân hàng có cấu trúc báo cáo rất khác doanh nghiệp Sản xuất).
- Giải pháp: Xây dựng một pipeline xử lý dữ liệu trung gian bằng Python Pandas để ánh xạ các tài khoản thô về một danh mục tài khoản kế toán chuẩn (Standard Chart of Accounts) trước khi đưa vào Power BI.
Thành quả đạt được
- Tự động hóa hoàn toàn quy trình thu thập dữ liệu BCTC của 100+ doanh nghiệp lớn thuộc nhóm VN100.
- Cung cấp giao diện trực quan so sánh biên lợi nhuận ròng giữa các ngành sản xuất, ngân hàng, bất động sản giúp nhà đầu tư lọc mã hiệu quả.
Một số hình ảnh dự án (Screenshots)