- ngày ghi
- phút đọc
- 3
- nguồn dẫn
- 2
Vì sao lãi vay không cào được như lãi tiết kiệm
Đo 16 trang vay của ngân hàng lớn: 3 nơi công bố mức ưu đãi kèm kỳ hạn. Kho có 234 dòng lãi cơ sở, 2 dòng biên độ, 0 ngân hàng có cả hai. Cách tôi xử lý: hai lớp máy, một lớp người.
Chủ đề: lãi suất 24h, dữ liệu, vận hành
Với tiền gửi, cào là đủ. Ngân hàng nào cũng niêm yết bảng lãi tiết kiệm theo kỳ hạn, cập nhật đều, đọc được bằng máy. Sau vài tuần, kho của Lãi suất 24h có hàng nghìn dòng tiền gửi, mỗi dòng gắn ngày, kỳ hạn, mã ngân hàng.
Với lãi vay thì không. Và cái sai đầu tiên của tôi là tưởng nó giống nhau.
Đo trước khi tin
Ngày 07/08/2026 tôi mở 16 trang lãi vay của các ngân hàng lớn và đếm bằng tay: chỉ 3 nơi công bố mức ưu đãi kèm kỳ hạn. Mười ba trang còn lại ghi "lãi suất hấp dẫn" rồi mời gọi điện.
Đến 14/08/2026, đếm trong kho: 234 dòng lãi suất cơ sở, 2 dòng biên độ, và 0 ngân hàng có cả hai. Mà tổng chi phí một khoản vay 20 năm được quyết định từ năm thứ hai, bằng đúng công thức lãi tham chiếu + biên độ. Vế quyết định chi phí không nằm trên web của ai.
Hai con số đó thay đổi cách tôi xây sản phẩm. Không phải "cào tốt hơn" - mà là thừa nhận có một lớp dữ liệu máy không với tới được.
Trang HTML là mục lục, không phải dữ liệu
Bài học thứ hai: trang lãi vay của ngân hàng phần lớn là trang mục lục. Biểu thật nằm trong PDF mà nó trỏ tới. Có ngân hàng công bố đủ cả lãi tham chiếu theo kỳ hạn, kỳ điều chỉnh và biên độ (0,5% linh hoạt, tối đa 3,0%) trong một PDF, trong khi trang HTML không có con số nào.
Đọc text trang HTML rồi kết luận "ngân hàng không công bố" là đọc mục lục rồi bảo sách rỗng. Tôi viết một công cụ dò link PDF trong các snapshot đã chụp: 97 link ở 12 ngân hàng, toàn bộ là thứ đã trả tiền để tải về mà chưa đọc.
Ba lớp, ưu tiên giảm dần
Bảng lãi vay bây giờ gộp ba lớp:
| # | Lớp | Nguồn | Ai ghi |
|---|---|---|---|
| 1 | Khảo sát | file YAML trong repo | Người, sau khi hỏi thẳng ngân hàng |
| 2 | Niêm yết | kho snapshot | Máy cào web / PDF |
| 3 | Thị trường | bài đăng nhóm công khai | Máy đọc nhóm Facebook |
Điểm quan trọng: nhãn gắn cho từng ô, không cho cả dòng. Một ngân hàng có thể được khảo sát ở cột 12 tháng mà cột 24 tháng vẫn phải lấy từ web. Khảo sát quá 90 ngày tụt xuống dưới lớp niêm yết nhưng không biến mất - vì một mức đã từng đúng vẫn có giá trị hơn một ô trống.
Lớp 1 là lớp người, và nó rẻ hơn tôi tưởng: 26 ngân hàng chia 13 tuần là 2 cuộc gọi mỗi tuần, một vòng mỗi quý. Kết quả ghi vào YAML kèm ngày khảo sát và kênh, commit vào git. git log -p chính là biên bản khảo sát - không cần thêm một hệ thống nào.
Điều tôi rút ra cho việc khác
- Đếm trước, kết luận sau. "3 trên 16" và "0 ngân hàng có cả hai" là hai con số tốn nửa ngày để có, và chúng đáng giá hơn mọi giả định tôi từng viết vào brief.
- Đừng tự động hoá cái không tự động hoá được. Nhận ra lớp người sớm thì thiết kế được nhịp cho nó (2 cuộc gọi/tuần); nhận ra muộn thì sản phẩm hứa thứ nó không có.
- Nhãn cho từng ô. Khi dữ liệu đến từ nhiều nguồn với độ tin cậy khác nhau, người đọc cần biết ô này từ đâu ra, không phải bảng này nói chung.
Nếu bạn làm sản phẩm tài chính và đang cần một nguồn lãi suất có nhãn theo từng ô, ta nói chuyện.
Bài này chạm đúng việc bạn đang làm? Mười lăm phút nói chuyện không mất gì.