Đo lường đa địa điểm (Xếp hạng Geo-Grid)
Tổng quan
| Mục | Nội dung |
|---|---|
| Trạng thái | 🔵 Đề xuất |
| Issue | - |
| Phụ trách | - |
Bố trí các điểm đo theo dạng lưới (tối đa 49 điểm) trong khu vực chỉ định, gọi Google Places API với cùng một từ khóa từ mỗi điểm để lấy xếp hạng, và trực quan hóa bằng bản đồ nhiệt trên bản đồ. Đặt mục tiêu đạt mức dịch vụ tương đương MEO Dashboard byGMO.
| Mục | Nội dung |
|---|---|
| Tham chiếu (benchmark) | MEO Dashboard byGMO (theo mô tả "Đo lường xếp hạng đa địa điểm" trên trang chính thức: tối đa 49 điểm / khoảng cách 100m〜10km có thể thay đổi / xuất file PNG + EXCEL) |
| Phương thức đo | Google Places API (New) Text Search — chuyển locationBias.circle theo từng điểm đo |
| KPI chính | AGR / ATGR / SoLV (chuẩn quốc tế) + ghi kèm tên gọi nội địa |
| Trực quan hóa | Bản đồ nhiệt + chỉ số tổng hợp + so sánh kỳ + xuất CSV/PNG |
| Đối tượng | MAPPY (đầu tiên) → GCOR / PIPIT triển khai tiếp theo |
| Phí API | Duy trì $0 (Basic SKU với Field Mask chỉ chứa places.id) |
Nội dung đề xuất
Bối cảnh & vấn đề
- Phiên bản Places API hiện tại chỉ đo 1 điểm tại địa chỉ cửa hàng (đã vận hành chính thức từ kỳ tổng hợp lần 2 ngày 17/4)
- Tìm kiếm địa phương của Google phụ thuộc mạnh vào vị trí hiện tại của người tìm (hiệu ứng Proximity) — trường hợp trước cửa hàng đang xếp hạng 3 nhưng cách 2km thì ngoài phạm vi sẽ không nhìn thấy nếu chỉ đo 1 điểm
- Với các ngành kinh doanh kiểu di động (vệ sinh, ống nước, y tế tại nhà...), khách không đến cửa hàng, nên xếp hạng tại 1 điểm địa chỉ cửa hàng không phản ánh thực tế
- Khách hàng yêu cầu rõ "hiển thị xếp hạng trực quan trên bản đồ" và "lấy dịch vụ của GMO làm tham chiếu"
- Trên thị trường nội địa, các công cụ thương mại hóa đo đa địa điểm chỉ chiếm khoảng 3〜4 phần trên 15〜30 công cụ — vẫn còn khoảng trống
- MEO Dashboard byGMO do GMO TECH cung cấp đứng No.1 thị phần doanh số trong nước 3 năm liên tiếp theo khảo sát ITR (nguồn: GMO IR) — thực tế là tiêu chuẩn tham chiếu nội địa
Giải pháp đề xuất
Chuyển locationBias của Google Places API theo từng điểm đo để gọi API và lưu xếp hạng tại mỗi điểm. Trên màn hình bản đồ hiển thị bản đồ nhiệt và các chỉ số tổng hợp (AGR / ATGR / SoLV).
Tính năng chính:
- Cấu hình lưới có thể chọn 3×3 / 5×5 / 7×7, khoảng cách có thể thay đổi 100m〜10km (thiết kế đạt cùng số điểm 49 với GMO ở cấu hình 7×7)
- Mỗi điểm đo chỉ định động
locationBias.circle.center(lat,lng)+radius - 1 điểm đo = 1 bản ghi, mở rộng tương thích bảng
mappy_place_search_rankings - Bản đồ nhiệt sử dụng phân màu theo dải xếp hạng + lớp phủ số (kế thừa định dạng GMO)
- Bổ sung tên gọi nội địa cho KPI chuẩn quốc tế (ví dụ: SoLV → "Tỷ lệ đạt Top 3") để khác biệt hóa
- Phí API duy trì Basic SKU ($0), chi phí tăng chỉ ở phía hạ tầng (Fargate / DB / S3)
Danh sách chức năng
| # | Tên chức năng | Mô tả | Ưu tiên |
|---|---|---|---|
| 1 | UI cài đặt lưới | Chọn điểm trung tâm / N×N / khoảng cách (100m〜10km) / từ khóa đo | Cao |
| 2 | Sinh tọa độ điểm đo | Tính (lat, lng) của từng điểm từ điểm trung tâm + thông số lưới | Cao |
| 3 | Gọi API đa địa điểm | Chuyển locationBias theo từng điểm và chạy Text Search | Cao |
| 4 | Chia nhỏ batch | Chia nhỏ thực thi để cấu hình 7×7 không vượt timeout 6h | Cao |
| 5 | Mở rộng DB schema | Thêm grid_point_id / lat / lng / grid_index | Cao |
| 6 | Hiển thị bản đồ nhiệt | Pin màu xếp hạng + lớp phủ số trên Google Maps | Cao |
| 7 | Hiển thị chỉ số tổng hợp | AGR / ATGR / SoLV + tên gọi nội địa | Cao |
| 8 | So sánh kỳ | Hiển thị song song bản đồ nhiệt 2 thời điểm / tóm tắt biến động | Trung bình |
| 9 | Xuất CSV / PNG | Bảng số kết quả lưới + ảnh bản đồ | Trung bình |
| 10 | Mở rộng GCP đa project | Đối phó burst rate limit, chạy song song 5〜6 project | Cao |
| 11 | GIF Time-lapse (mở rộng) | Xuất animation bản đồ nhiệt trong kỳ | Thấp |
Vấn đề thiết kế
Đặc tả lưới
| Lưới | Điểm đo | Mục đích sử dụng | Số request/ngày (tham khảo) |
|---|---|---|---|
| 3×3 | 9 | Trung tâm đô thị, khu thương mại hẹp | Khoảng 250.000 request |
| 5×5 | 25 | Tiêu chuẩn (cân bằng) | Khoảng 690.000 request |
| 7×7 | 49 | Cùng số điểm GMO (49 điểm) / khu thương mại rộng | Khoảng 1.350.000 request |
※ Tính theo Tổng (từ khóa × cửa hàng × hệ thống)/ngày = khoảng 27.656 case (thực tế 13/4) × N
Kiểm chứng hoạt động của locationBias (bắt buộc trong PoC)
locationBiascủa Places API là gợi ý, không phải bộ lọc. Kết quả có thể bao gồm cả các vị trí cách xa tọa độ chỉ định- Không đảm bảo trùng khớp hoàn toàn với "xếp hạng Google Maps khi người dùng thực sự tìm từ vị trí đó"
- Các công cụ quốc tế (Local Falcon / Geogrid.dev) chủ yếu sử dụng scraping Google SERP có UULE. Đo đa địa điểm bằng Places API trực tiếp ít tiền lệ trong ngành
- → Trong PoC cần đo thực tế 3〜5 cửa hàng × 5〜10 từ khóa × 25 điểm để kiểm chứng sự chênh lệch xếp hạng giữa các điểm có hợp lý không (tỷ lệ trùng khớp với phương thức UULE)
Ước tính khối lượng xử lý & thời gian
| Lưới | Số request/batch | Thời gian dự kiến (3 GCP project / 12 thread) |
|---|---|---|
| 3×3 | 248.904 request | Khoảng 3〜4 giờ |
| 5×5 | 691.400 request | Khoảng 9〜12 giờ |
| 7×7 | 1.355.144 request | Khoảng 17〜20 giờ (vượt timeout 6h của Fargate) |
→ Để chạy được cấu hình 7×7 bắt buộc:
- Mở rộng GCP project lên 5〜6 cái (QPM 3.000〜3.600 / thực tế 50〜60 req/s)
- Chia batch theo vùng địa lý hoặc theo khung giờ (mỗi job ≤ 6h)
- Phân tách trigger EventBridge (ví dụ: phân chia 4 job theo dải store_id)
Đề xuất mở rộng DB schema
Dựa trên bảng mappy_place_search_rankings hiện tại, thêm bảng cha chứa thông tin điểm đo:
-- Cấu hình lưới điểm đo
CREATE TABLE mappy_grid_definitions (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
gbp_location_id BIGINT NOT NULL,
grid_size TINYINT NOT NULL, -- 3,5,7
spacing_meters INT NOT NULL, -- 100〜10000
center_lat DECIMAL(10,7) NOT NULL,
center_lng DECIMAL(10,7) NOT NULL,
created_at DATETIME,
updated_at DATETIME,
INDEX idx_location (gbp_location_id)
);
-- Xếp hạng theo từng điểm đo
CREATE TABLE mappy_grid_search_rankings (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
grid_def_id BIGINT NOT NULL,
grid_index SMALLINT NOT NULL, -- 0〜48 (7×7)
point_lat DECIMAL(10,7) NOT NULL,
point_lng DECIMAL(10,7) NOT NULL,
keyword_id BIGINT NOT NULL,
place_id VARCHAR(255),
ranking SMALLINT NOT NULL, -- 0=ngoài phạm vi / 1-60 / 997=error
ranking_status VARCHAR(20),
search_at DATETIME,
source VARCHAR(20) DEFAULT 'grid_api',
INDEX idx_grid_kw (grid_def_id, keyword_id, search_at)
);Định nghĩa KPI (chuẩn quốc tế + tên gọi nội địa)
| Ký hiệu | Định nghĩa quốc tế | Tên gọi nội địa (đề xuất) | Cách tính |
|---|---|---|---|
| AGR | Average Grid Rank | Xếp hạng trung bình (chỉ trong phạm vi) | Trung bình của các pin có xếp hạng 1〜20 |
| ATGR | Average Total Grid Rank | Xếp hạng trung bình toàn bộ | Trung bình toàn bộ pin (ngoài phạm vi tính là 21) |
| SoLV | Share of Local Voice | Tỷ lệ đạt Top 3 | Tỷ lệ pin đạt xếp hạng 1〜3 trong toàn bộ pin (%) |
Cấu trúc chi phí (ước tính hàng tháng)
Tiền đề tính toán (dựa trên đo thực tế hiện có)
| Mục | Giá trị |
|---|---|
| Số case batch/ngày hiện tại | 27.656 case (đo thực tế 13/4/2026) |
| Thời gian thực thi/ngày hiện tại | Khoảng 92 phút (= 1,53 giờ) |
| Cấu hình Fargate | 1 vCPU + 2 GB (places_api_def hiện có) |
| Khu vực | ap-northeast-1 (Tokyo) |
| Đơn giá Fargate | vCPU $0,05056/h + RAM $0,00553/GB-h = $0,06162/h |
Chi phí AWS tăng thêm hàng tháng
| Mục | 1 điểm (hiện tại) | 3×3 (9 điểm) | 5×5 (25 điểm) | 7×7 (49 điểm) |
|---|---|---|---|---|
| Thời gian Fargate/ngày | 1,5 giờ | Khoảng 3,5 giờ | Khoảng 10,5 giờ | Khoảng 18,5 giờ |
| Chi phí Fargate/tháng | Khoảng $2,8 | Khoảng $6,5 | Khoảng $19 | Khoảng $34 |
| RDS tăng dung lượng/tháng (200 B/rec × 49 lần × giữ 3 tháng) | — | +khoảng $0,6 | +khoảng $1,7 | +khoảng $3,3 |
| Log S3/tháng (DEBUG 49 lần, Lifecycle chuyển IA sau 30 ngày) | — | +khoảng $0,3 | +khoảng $0,7 | +khoảng $1,5 |
| Data transfer OUT (Fargate → GCP) | Rất nhỏ | +khoảng $1 | +khoảng $2,5 | +khoảng $4,5 |
| Tổng tăng AWS/tháng | Mốc cơ sở | +khoảng $8〜10 | +khoảng $24〜30 | +khoảng $43〜50 |
GCP (Places API) hàng tháng
| Mục | Ước tính |
|---|---|
| Đơn giá Text Search IDs Only SKU | $0 (Basic SKU = miễn phí) |
| Số request/tháng ở 7×7 | Khoảng 40,65 triệu request |
| Phí API | $0 (miễn phí kể cả khi đo đa địa điểm) |
| Bổ sung GCP project (3 → 5〜6) | $0 (tạo project, kích hoạt API đều miễn phí) |
→ Phía GCP hoàn toàn $0 kể cả với 7×7. Yếu tố khác biệt hóa lớn so với các công cụ quốc tế (Local Falcon $25〜, BrightLocal $39〜/tháng).
Frontend: Google Maps JavaScript API
| Mục | Ước tính |
|---|---|
| Đơn giá Maps JavaScript API | $7 / 1.000 lần load (đã tính $200/tháng credit miễn phí) |
| Số load trong hạn mức miễn phí | Khoảng 28.500 lần/tháng |
| Dự kiến (200 khách hàng × 20 lần/tháng = 4.000 load) | $0 (trong hạn mức miễn phí) |
| Khi sử dụng nhiều (1.000 khách hàng × 50 lần/tháng = 50.000 load) | Khoảng $150/tháng (phần vượt hạn mức) |
→ Khi sử dụng quy mô lớn, cần xem xét chuyển sang Embed iframe / Static Maps API / chiến lược cache.
Tóm tắt: Chi phí tăng thêm hàng tháng
| Lưới | Tăng AWS | GCP | Frontend | Tổng (tháng) |
|---|---|---|---|---|
| 1 điểm (hiện tại) | — | $0 | $0 | Mốc cơ sở |
| 3×3 (9 điểm) | +khoảng $10 | $0 | $0〜 | Khoảng ¥1.500/tháng |
| 5×5 (25 điểm) | +khoảng $30 | $0 | $0〜 | Khoảng ¥4.500/tháng |
| 7×7 (49 điểm) | +khoảng $50 | $0 | $0〜 | Khoảng ¥7.500/tháng |
Điểm thuyết minh cho khách hàng
- Trên đây là mức tăng cho toàn bộ batch của tất cả cửa hàng, không phải mỗi khách hàng 1 đơn vị
- So với mức phí hàng tháng của các đối thủ chính (vài nghìn〜vài chục nghìn yên/cửa hàng), chi phí thực tế phía hạ tầng nhỏ đến mức gần như có thể bỏ qua
- Có thể hiện thực hóa tính năng tương đương GMO với "phí API $0" và "hạ tầng +khoảng ¥7.500/tháng"
- Dự kiến đảm bảo lợi nhuận gộp đủ với phí tính cho khách hàng (ví dụ: option ¥300〜500/tháng/cửa hàng)
Các điểm chưa chắc chắn & cần xác nhận trong PoC
- Overhead khởi động khi chia nhỏ batch Fargate (4 song song = start/stop ×4 → +5〜10 phút)
- Chi phí I/O của RDS (phí IOPS khi ghi gấp 49 lần. gp3 ảnh hưởng nhỏ, io1 ảnh hưởng lớn)
- CloudWatch Logs ingest (DEBUG gấp 49 lần phải trả thêm $0,50/GB. Cần kiểm soát log level)
- Liệu giới hạn tốc độ phía GCP có cho phép hoàn thành 7×7 trong ngày hay không (hiện tại 74% thời gian là đợi rate)
Mối liên hệ với dự án & implementation hiện có
- Mở rộng, không thay thế Lấy ranking qua Places API hiện tại. Đo 1 điểm (hiện có) và đo đa địa điểm (dự án này) chạy song song
- Khi kết hợp với dự án hiện có #1-2 Mở rộng giới hạn từ khóa, mỗi location sẽ thành 15 KW × 49 điểm = 735 case/cửa hàng/ngày — cần điều chỉnh thứ tự tùy kết quả PoC
- Xem xét bổ sung giá trị mới (ví dụ:
3= grid_api) chomappy_gbp_locations.data_source
Mock màn hình
多地点順位チェック
(AGR)
(ATGR)
(SoLV)
Tham chiếu màn hình thực tế của GMO
Mock này được tạo sau khi xem trực tiếp ảnh chụp màn hình tại trang chính thức MEO Dashboard byGMO "Đo lường xếp hạng đa địa điểm". Cấu trúc layout (header + filter + bản đồ + danh sách bên phải + nút download) và bảng màu (5 dải: top xanh / giữa vàng / cuối cam·đỏ / ngoài phạm vi xám) kế thừa quan sát từ màn hình thực tế của GMO. Ngưỡng dải xếp hạng (ví dụ: 1〜3 / 4〜10) được thiết kế lại theo đặc tả của công ty.
Cấu trúc màn hình (theo màn hình thực tế GMO)
| Khu vực | Nội dung | Đối chiếu với màn hình GMO |
|---|---|---|
| Header | Tiêu đề + nút download | Khớp |
| Hàng filter | Tên doanh nghiệp / Từ khóa tìm kiếm / Kích thước lưới / Khoảng cách | GMO chỉ có "Tên doanh nghiệp + Từ khóa". Mở rộng của công ty: cho phép thay đổi kích thước lưới · khoảng cách trên frontend |
| Bản đồ (trung tâm) | Pin N×N (vòng tròn có số xếp hạng) trên Google Maps, 5 dải màu, trung tâm = cửa hàng | Khớp (49 pin + số xếp hạng + gradient 4〜5 màu) |
| Panel bên phải | KPI (AGR / ATGR / SoLV) + danh sách xếp hạng | GMO chỉ có danh sách xếp hạng. Khác biệt hóa của công ty: hiển thị rõ chỉ số tổng hợp |
| Ghi chú bản đồ | "Cửa hàng hiển thị ở trung tâm" "Khoảng cách chéo là đường chéo (×√2)" | Khớp (kế thừa nguyên ghi chú trên màn hình chính thức) |
| Download | CSV / PNG | Khớp (GMO là EXCEL + PNG) |
Ước tính công (dựa trên AI)
Cơ cấu nhân sự
| Vai trò | Số người | Nội dung phụ trách |
|---|---|---|
| Thiết kế | 1 người | Xác nhận yêu cầu → Thiết kế PoC → Chỉ thị AI tạo tài liệu thiết kế → Review → Chỉ thị sản xuất |
| Sản xuất | 1 người | Chỉ thị AI tạo theo ISSUE → Code review → Kiểm thử → Deploy |
Chi tiết công
Giai đoạn 1: Kiểm chứng kỹ thuật PoC (tổng 5,0 người-ngày)
| # | Hạng mục công việc | Retry AI | Review | Công (người-ngày) | Phụ trách |
|---|---|---|---|---|---|
| 1 | Xác nhận yêu cầu, tài liệu thiết kế PoC | 2 lần | 0,5 ngày/lần | 1,0 | Thiết kế |
| 2 | Triển khai script kiểm chứng locationBias (5×5 = 25 điểm) | 2 lần | 0,5 ngày/lần | 1,0 | Sản xuất |
| 3 | Đo thực tế 3〜5 cửa hàng × 5〜10 từ khóa, thu thập dữ liệu | 1 lần | 0,5 ngày/lần | 1,0 | Sản xuất |
| 4 | Phân tích kết quả (chênh lệch xếp hạng giữa các điểm, 1 điểm vs đa điểm, đối chiếu với UULE) | 2 lần | 0,5 ngày/lần | 1,0 | Thiết kế |
| 5 | Soạn báo cáo PoC, chia sẻ với khách hàng | 1 lần | 0,5 ngày/lần | 1,0 | Thiết kế |
Giai đoạn 2: Chốt đặc tả & thiết kế (tổng 3,0 người-ngày)
| # | Hạng mục công việc | Retry AI | Review | Công (người-ngày) | Phụ trách |
|---|---|---|---|---|---|
| 6 | Chốt đặc tả lưới, tên KPI, wireframe UI | 2 lần | 0,5 ngày/lần | 1,0 | Thiết kế |
| 7 | Thiết kế DB schema (grid_definitions / grid_search_rankings) | 2 lần | 0,5 ngày/lần | 1,0 | Thiết kế |
| 8 | Thiết kế chia nhỏ batch (cấu hình 7×7 / multi GCP project) | 2 lần | 0,5 ngày/lần | 1,0 | Thiết kế |
Giai đoạn 3: Implementation chính & triển khai thương mại hạn chế (tổng 12,0 người-ngày)
| # | Hạng mục công việc | Retry AI | Review | Công (người-ngày) | Phụ trách |
|---|---|---|---|---|---|
| 9 | DB migration (2 bảng mới + mở rộng cột source) | 1 lần | 0,5 ngày/lần | 0,5 | Sản xuất |
| 10 | Logic sinh tọa độ điểm đo + implement chia batch | 3 lần | 0,5 ngày/lần | 2,0 | Sản xuất |
| 11 | Mở rộng GCP project lên 5〜6 cái, cấp key, cấu hình env | 1 lần | 0,5 ngày/lần | 1,0 | Sản xuất |
| 12 | Lambda / EventBridge phân tách (trigger theo vùng) | 2 lần | 0,5 ngày/lần | 1,0 | Sản xuất |
| 13 | Màn hình bản đồ nhiệt (liên kết Google Maps, vẽ pin) | 3 lần | 0,5 ngày/lần | 3,0 | Sản xuất |
| 14 | API tổng hợp KPI + hiển thị trên màn hình | 2 lần | 0,5 ngày/lần | 1,5 | Sản xuất |
| 15 | Xuất CSV / PNG | 1 lần | 0,5 ngày/lần | 1,0 | Sản xuất |
| 16 | Kiểm thử tích hợp (cửa hàng PoC → triển khai hạn chế) | 2 lần | 0,5 ngày/lần | 1,5 | Sản xuất |
| 17 | Deploy, xác nhận hoạt động, tài liệu vận hành | 1 lần | 0,5 ngày/lần | 0,5 | Sản xuất |
Tổng cộng: 20,0 người-ngày (PoC 5,0 + Thiết kế 3,0 + Implementation 12,0)
Điều kiện tiên quyết & ràng buộc
- Phí API giữ ở Basic SKU ($0). Khi bổ sung
places.displayNamev.v. vào Field Mask, cần xét lại phí riêng - Để vận hành 7×7 thực tế, bắt buộc có 5〜6 GCP project + chia batch
- Nếu PoC cho thấy locationBias không đủ phụ thuộc vào vị trí, cần xem xét chuyển sang phương thức lấy SERP qua UULE (thêm 5〜8 người-ngày)
- Khi chạy song song với dự án #1-2 Mở rộng giới hạn từ khóa, khối lượng nhân lên (15 KW × 49 điểm), cần điều chỉnh thứ tự release
- GIF Time-lapse (tính năng mở rộng) nằm ngoài phạm vi dự án này, sẽ xử lý ở dự án tiếp theo
Vấn đề cần xác nhận với khách hàng
- Mức ưu tiên mục tiêu chính: ①Nâng cao năng lực đề xuất qua trực quan hóa khu vực kinh doanh ②Tiếp cận khách hàng kiểu service area ③Giá trị bổ sung cho khách hàng hiện có
- Đặc tả lưới: Tương đương GMO 7×7 với khoảng cách biến đổi / Bắt đầu cố định 5×5 / Chuyển đổi theo giai đoạn — chọn phương án nào
- Đối tượng khách hàng: Tính năng cho toàn bộ khách hàng / Option theo plan (phí cộng thêm)
- Thời điểm release: Có ràng buộc nào về mùa cao điểm / quyết toán không
- Cửa hàng PoC: Khách hàng có thể chọn 3〜5 cửa hàng × 5〜10 từ khóa không
Lịch trình
| タスク | 担当 | 日数 | 5/25 | 5/26 | 5/27 | 5/28 | 5/29 | 5/30 | 5/31 | 6/1 | 6/2 | 6/3 | 6/4 | 6/5 | 6/6 | 6/7 | 6/8 | 6/9 | 6/10 | 6/11 | 6/12 | 6/13 | 6/14 | 6/15 | 6/16 | 6/17 | 6/18 | 6/19 | 6/20 | 6/21 | 6/22 | 6/23 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 月 | 火 | 水 | 木 | 金 | 土 | 日 | 月 | 火 | 水 | 木 | 金 | 土 | 日 | 月 | 火 | 水 | 木 | 金 | 土 | 日 | 月 | 火 | 水 | 木 | 金 | 土 | 日 | 月 | 火 | |||
| Thiết kế PoC | GĐ1 PoC | 1d | ||||||||||||||||||||||||||||||
| Implement PoC (25 điểm) | GĐ1 PoC | 1d | ||||||||||||||||||||||||||||||
| Đo thực tế PoC | GĐ1 PoC | 1d | ||||||||||||||||||||||||||||||
| Phân tích kết quả | GĐ1 PoC | 1d | ||||||||||||||||||||||||||||||
| Báo cáo PoC | GĐ1 PoC | 1d | ||||||||||||||||||||||||||||||
| Chốt đặc tả · KPI · UI | GĐ2 Thiết kế | 1d | ||||||||||||||||||||||||||||||
| Thiết kế DB schema | GĐ2 Thiết kế | 1d | ||||||||||||||||||||||||||||||
| Thiết kế chia batch | GĐ2 Thiết kế | 1d | ||||||||||||||||||||||||||||||
| DB migration | GĐ3 Implementation | 1d | ||||||||||||||||||||||||||||||
| Sinh điểm đo, chia batch | GĐ3 Implementation | 2d | ||||||||||||||||||||||||||||||
| Mở rộng GCP project | GĐ3 Implementation | 1d | ||||||||||||||||||||||||||||||
| Lambda/EventBridge | GĐ3 Implementation | 1d | ||||||||||||||||||||||||||||||
| Màn hình bản đồ nhiệt | GĐ3 Implementation | 3d | ||||||||||||||||||||||||||||||
| API · màn hình KPI | GĐ3 Implementation | 2d | ||||||||||||||||||||||||||||||
| Xuất CSV/PNG | GĐ3 Implementation | 1d | ||||||||||||||||||||||||||||||
| Kiểm thử tích hợp | GĐ3 Implementation | 2d | ||||||||||||||||||||||||||||||
| Deploy, xác nhận | GĐ3 Implementation | 1d |