# 13. Ước tính chi phí (Cost estimate)

> **Đối tượng đọc**: HungPM (sponsor), Tài chính OmiGroup, ban đề tài Viện DD.
> **Mục đích**: Cung cấp ngân sách dự toán đủ chi tiết cho sponsor ra quyết định đầu tư + đàm phán hợp đồng tài trợ với Viện DD.

> **Lưu ý**: Đây là **dự toán sơ bộ v1** dựa trên giả định và benchmark thị trường. Số liệu cuối cần HungPM + Tài chính OmiGroup review và điều chỉnh theo policy giá nội bộ. Các con số sử dụng giá tham chiếu **giữa năm 2026** tại Việt Nam.

> **v0.4 update — Pivot sang CF MVP + OmiGroup On-prem**: Tech stack đã pivot khỏi AWS (xem CLAUDE.md §Tech stack lock). Doc này so sánh **3 phương án hạ tầng**: (A) AWS làm tham chiếu lịch sử, (B) CloudFlare MVP đang triển khai, (C) OmiGroup On-prem là migration target Phase 2.

---

## 13.1. Tổng quan ngân sách — so sánh 3 phương án

```
┌──────────────────────────────────────────────────────────────────┐
│ TOTAL COST OF OWNERSHIP — 3 năm (Base case)                      │
├──────────────────────────────────────────────────────────────────┤
│              │  A — AWS (ref)  │  B — CF MVP  │  C — On-prem     │
│ One-time dev │  820–930 tr     │  820–930 tr  │  820–930 tr      │
│ Setup infra  │  ~25–35 tr      │  ~0 tr       │  ~80 tr migrate  │
│ Vận hành 3 yr│  ~850 tr        │  ~471 tr     │  ~574 tr         │
│ Reserve 5%   │  ~85–90 tr      │  ~50 tr      │  ~57 tr          │
│              │                 │              │                  │
│ TỔNG 3 năm   │ ~1,780–1,905 tr │  ~1,341–     │  ~1,531–         │
│ (Base case)  │                 │   1,451 tr   │   1,641 tr       │
│              │                 │ (~1,4 tỷ)    │  (~1,6 tỷ)       │
└──────────────────────────────────────────────────────────────────┘
```

**Khuyến nghị triển khai**:
- **Phase 1 (v1, 8 tuần)**: Phương án B — CF MVP. Gần như zero infra cost, zero DevOps overhead, go-live nhanh nhất.
- **Phase 2 (sau go-live, ~3–6 tháng)**: Đánh giá migration sang Phương án C — On-prem OmiGroup DC nếu có yêu cầu data residency VN hoặc cần scale out tới nhiều Sở/Cục.
- **Phương án A — AWS**: Không khuyến nghị. Đắt hơn CF ở mọi volume nhỏ-vừa, không có data residency advantage so với on-prem.

**Phân chia tỉ trọng (CF MVP — đang triển khai)**:
- Phát triển v1: ~62%
- Vận hành 3 năm: ~26%
- Hidden costs + reserve: ~12%

→ Đây là dự án **hoàn vốn nhanh** cho Viện DD vì: tiết kiệm thời gian cán bộ (3–5× năng suất), có dataset nghiên cứu là tài sản dài hạn, sản phẩm tham chiếu cho hợp tác Bộ Y tế tiếp theo.

---

## 13.2. Chi phí phát triển v1 (one-time)

### 13.2.1. Nhân sự

Theo Section 11.5: **5.5 FTE × 8 tuần = 44 man-week**.

**3 cost bases cho chi phí nhân sự**: Cùng một resource có 3 con số khác nhau tùy mục đích kế toán. Bảng dưới đưa cả 3 để HungPM + Tài chính OmiGroup chọn cost basis phù hợp khi trình board, đàm phán với Viện DD, hoặc record vào sổ kế toán.

| Cost basis | Định nghĩa | Dùng khi nào |
|---|---|---|
| **(a) Cash cost nội bộ** | Lương net + bảo hiểm + overhead văn phòng. Đây là số tiền OmiGroup thực sự chi ra | Trình board duyệt chi tiêu mặt cash flow |
| **(b) Market replacement** | Giá thuê ngoài trên thị trường VN giữa 2026 nếu phải hire freelance/agency | Đối chiếu giá tài trợ với thị trường, defend value cho Viện DD |
| **(c) Sponsor accounting** | (a) + 30% margin (lợi nhuận hoàn lại tái đầu tư R&D OmiGroup) | Hợp đồng tài trợ với điều khoản chia sẻ IP/dataset, hoặc đàm phán Phase 2 chuyển sang B/C |

**Đơn giá đề xuất** (chờ Tài chính OmiGroup verify — Q-INT-03):

| Role | (a) Cash cost / tuần | (b) Market / tuần | (c) Sponsor / tuần | Số tuần |
|---|---|---|---|---|
| Tech Lead | 25 tr | 35 tr | 32 tr | 8 |
| Mobile Engineer | 18 tr | 25 tr | 23 tr | 8 |
| Backend Engineer | 18 tr | 25 tr | 23 tr | 8 |
| Fullstack Engineer | 16 tr | 22 tr | 21 tr | 7 |
| DevOps / SRE (0.5) | 11 tr | 16 tr | 14 tr | 8 |
| QA Engineer (0.5) | 7 tr | 11 tr | 9 tr | 7 |
| BA / PM (0.5) | 9 tr | 13 tr | 12 tr | 8 |
| **Subtotal** | **~810 tr** | **~1.130 tr** | **~1.050 tr** |

→ Em dùng **(a) Cash cost ~810 tr** làm baseline cho Section 13.2.4 (đây là số trình board OmiGroup duyệt chi). Khi đàm phán với Viện DD nếu hỏi "giá trị thị trường", show **(b) ~1.130 tr** để defend giá trị tài trợ.

> **[CẦN VERIFY với Tài chính OmiGroup]**: 3 cột trên là estimate. Đặc biệt cột (b) Market dựa benchmark ITviec.com / TopDev VN 2026 cho dev senior 4–6 năm exp — cần verify với HR.

### 13.2.2. Tận dụng AI coding agent giảm chi phí

Theo Section 11.5.2, AI coding agents giảm ~35% effort dev. Tương ứng giảm ~25–30% chi phí nhân sự (vì AI tool có cost):

| Hạng mục | Giá trị |
|---|---|
| Subtotal nhân sự với AI agent | ~720 tr VND |
| Cost AI agent (Claude Code, Cursor Pro) — 8 tuần × 5 dev | ~25 tr VND |
| **Net nhân sự** | **~745 tr VND** |

→ **Quyết định**: dự toán nhân sự **720–810 triệu VND**, range tùy mức độ tận dụng AI tool.

### 13.2.3. Hạ tầng + license setup (one-time)

| Hạng mục | Chi phí | Ghi chú |
|---|---|---|
| Apple Developer Program | 2,5 tr VND/năm | Đã có trong OmiGroup |
| Google Play Console | 600k VND (one-time) | |
| Domain `omiscan.vn` + DNS | 1 tr/năm | Route 53 (AWS ref) / CF DNS / Registrar |
| Sentry SaaS Team plan | 6 tr/năm | Hoặc self-host on-prem (Phase 2) |
| Snyk / Trivy security scan | 5 tr/năm | Free tier có thể đủ cho v1 |
| GitHub Team / Enterprise | Đã có trong OmiGroup | |
| Linear / Jira | Đã có trong OmiGroup | |
| **CF MVP setup** | **~0 tr** | CF Account free, Workers Paid $5/tháng |
| **Subtotal one-time (CF MVP)** | **~15–20 tr VND** | |

> Phương án AWS cộng thêm: AWS account setup + Business Support = ~25–35 tr → Không còn áp dụng.

### 13.2.4. Tổng phát triển v1

| Khoản | Min (tr VND) | Max (tr VND) | Ghi chú |
|---|---|---|---|
| Nhân sự — cost basis (a) Cash cost với AI agent | 720 | 810 | Mức "tốt nhất" 720tr nếu AI tool save 35% effort; "thận trọng" 810tr nếu chỉ save 20% |
| Hạ tầng + license setup (CF MVP) | 15 | 20 | One-time, đã chi tiết 13.2.3 |
| Buffer 10% (unknown unknown) | 74 | 83 | Cho rủi ro chuẩn (re-do PoC, fix bug ngoài plan) |
| **TỔNG PHÁT TRIỂN V1 (cash cost)** | **809 tr** | **913 tr** | |

→ **Range chính thức: ~820–930 triệu VND** (cash cost basis). Headline giữ "~900 triệu" cho round number.

---

## 13.3. Hạ tầng production — so sánh 3 phương án

Volume mục tiêu: 3.300 submission/tháng, ~10 user active, ~13–20GB ảnh/tháng.

---

### 13.3a. Phương án A — AWS (tham chiếu lịch sử, không áp dụng v0.4+)

> **Lưu ý v0.4**: Đây là kiến trúc ban đầu. Stack đã pivot sang CF MVP (Section 13.3b). Giữ lại làm tham chiếu và benchmark.

#### a) Detailed breakdown AWS Production

| Bucket | USD/tháng |
|---|---|
| Compute (Lambda) | $3 |
| Storage (S3) | $1 |
| Database (Aurora Serverless v2, PostgreSQL 16) | $47 |
| Edge (API GW REST + CloudFront + 2 WAF Web ACL) | $9 |
| **Networking (VPC: 1 NAT Gateway + 3 Interface Endpoints)** | **$73** |
| Auth (Cognito — free tier) | $0 |
| Other (5 KMS CMK, Secrets Manager, RDS Proxy, CloudTrail, CloudWatch, SES) | $11 |
| **Subtotal** | **~$144** |
| Buffer 25% | ~$36 |
| **Tổng AWS prod / tháng** | **~$180 ≈ 4,5 tr VND** |

> **~54 triệu VND/năm AWS production**. Cost driver chính: NAT Gateway $43/tháng + Aurora $47/tháng + VPC endpoints $30/tháng = $120/tháng (67% tổng). Không thể cắt mà không thay đổi kiến trúc bảo mật.

#### b) Cost optimization knobs (AWS)

| Knob | Tiết kiệm | Trade-off |
|---|---|---|
| **RDS Data API thay pg client** (không cần VPC) | ~$73/tháng | Latency +50ms; less SQL feature |
| Dùng RDS `t4g.micro` thay Aurora Serverless | ~$32/tháng | Không auto-scale |
| Region us-east-1 thay Singapore | ~30% rẻ hơn | Latency +150ms cho VN user |

> Kể cả sau tối ưu, AWS tối thiểu ~$80–100/tháng — vẫn đắt hơn CF MVP và on-prem (existing infra) nhiều lần ở volume này.

---

### 13.3b. Phương án B — CloudFlare MVP (đang triển khai)

**Stack**: CF Workers (Hono 4) + D1 (SQLite-on-edge) + R2 + KV + Queues + CF Access (Zero Trust) + CF Pages.

#### Pricing model CF Workers Paid Plan — $5/tháng base

| Service | Usage OmiScan | Free tier | Vượt free | Cost/tháng |
|---|---|---|---|---|
| Workers requests | ~50K req/tháng | 10M req/ngày | $0 | $0 |
| Workers CPU time | ~50K × 5ms avg | 10ms/req free tier; Paid = generous | $0 | $0 |
| D1 reads | ~5M row/tháng | 5M row/ngày | $0 | $0 |
| D1 writes | ~50K row/tháng | 100K writes/ngày | $0 | $0 |
| R2 storage | ~20GB (ảnh submissions) | 10GB/tháng | $0.015/GB × 10GB | **$0.15** |
| R2 Class A ops (PUT) | ~30K/tháng | 1M/tháng free | $0 | $0 |
| R2 Class B ops (GET) | ~50K/tháng | 10M/tháng free | $0 | $0 |
| KV reads/writes | ~100K/tháng | 1B reads / 1M writes free | $0 | $0 |
| Queues ops | ~50K/tháng | 1M/tháng free | $0 | $0 |
| CF Access (Zero Trust) | ~10 users | Free < 50 users | $0 | $0 |
| CF Pages | Static hosting | Free unlimited | $0 | $0 |
| **Workers Paid plan** | base plan | — | — | **$5** |
| **Tổng CF MVP infra** | | | | **~$5.15 ≈ 130K VND** |

→ **Tiết kiệm 97% chi phí infra so với AWS** ($5 vs $180/tháng).

#### Ưu điểm CF MVP

- **Cost gần bằng 0**: $5/tháng cố định ở volume hiện tại, scale tự nhiên không cần config
- **Zero DevOps overhead**: CF quản lý serverless hoàn toàn — không K8s, không Postgres admin, không cert rotation
- **Edge network toàn cầu**: latency thấp từ VN nhờ PoP Singapore/HK
- **SLA 99.99%** built-in — không cần tự setup HA
- **D1 read replica** built-in cho dashboard queries

#### Hạn chế CF MVP

- **D1 là SQLite-on-edge**: không có full PostgreSQL features (partitioning, advanced window functions, custom extensions). Đủ cho v1, nhưng complex reporting v2 cần evaluate.
- **Workers CPU limit**: 30s CPU/request (đủ cho OmiScan nhưng cần monitor cho batch report generation)
- **Data residency**: CF lưu data trên edge nodes toàn cầu — phù hợp Phase 1, cần re-evaluate nếu Bộ Y tế yêu cầu "data phải ở VN" cho Phase 2
- **R2 cost scale tuyến tính**: ở 10× volume (~200GB storage) R2 cost tăng lên ~$3/tháng — vẫn rẻ hơn S3, nhưng cần monitor

#### Non-prod CF

| Env | Approach | Cost/tháng |
|---|---|---|
| Dev | CF Pages preview + Workers preview (tự động theo PR) | $0 |
| Staging | CF Pages branch deployment | $0 |
| **Subtotal non-prod CF** | | **$0** |

---

### 13.3c. Phương án C — OmiGroup On-prem

**Stack**: Node 22 K8s (Hono 4) + PostgreSQL 16 + MinIO + Redis + RabbitMQ + Keycloak 26 + HashiCorp Vault Community + Prometheus/Grafana/Loki.

Triển khai trên **OmiGroup Data Center (Ominext, Hà Nội)**.

#### Điều kiện tiên quyết — cần verify với DevOps OmiGroup

| Yêu cầu | Action nếu chưa có |
|---|---|
| K8s cluster với ≥ 4 vCPU / 8GB RAM dư phòng | Mua thêm hardware (xem Case 2 bên dưới) |
| PostgreSQL 16 cluster hoặc StatefulSet | Deploy StatefulSet — 1 ngày setup |
| MinIO cluster hoặc partition trống ≥ 500GB | Deploy MinIO mới — 1 ngày setup |
| Redis + RabbitMQ | Deploy qua Helm — 2 giờ |
| Keycloak instance (shared hay dedicated) | Config realm mới trên instance hiện có — 1 ngày |
| HashiCorp Vault Community | Chưa có → deploy mới + Transit key ECDSA P-256 — 3 ngày |
| Internet egress ≥ 10Mbps stable | Verify với OmiGroup networking |
| GitHub Actions → kubectl access | Setup kubeconfig + ServiceAccount — 0.5 ngày |

#### a) Chi phí infra (Case 1 — dùng existing K8s cluster OmiGroup)

Khi OmiGroup đã có K8s cluster đang chạy các services khác, OmiScan chỉ cần thêm resource quota:

| Hạng mục | Cost/tháng (VND) | Ghi chú |
|---|---|---|
| Compute (K8s resource) | 0 | Absorbed vào existing cluster |
| PostgreSQL (StatefulSet) | 0 | Absorbed vào existing storage |
| MinIO (object storage) | 0 | Absorbed vào existing MinIO |
| Redis + RabbitMQ | 0 | Deploy dedicated hay shared |
| Keycloak realm | 0 | Tạo realm mới trên instance hiện có |
| HashiCorp Vault Community | 0 | Free license (BUSL 1.1 — OK cho internal use) |
| Prometheus + Grafana + Loki | 0 | Shared monitoring stack |
| Sentry Community (self-hosted) | 0 | Chạy trong K8s — free BUSL |
| **Điện (marginal ~200W × 720h × 3.000đ/kWh)** | **~430K** | 2 worker nodes thêm tải |
| **Bandwidth (5GB Internet egress × 40K/GB)** | **~200K** | ISP OmiGroup DC |
| **Domain + SSL (Let's Encrypt)** | **~83K** | ~1M VND/năm |
| GitHub Actions CI/CD | 0 | Free 2.000 min/tháng private repo |
| **Subtotal infra marginal (Case 1)** | **~713K–1M** | |

**SRE overhead** (quản lý self-hosted vs managed services CF):

| Công việc | Effort/tháng | Cost VND (15M/FTE) |
|---|---|---|
| K8s pod health, HPA tuning, rollout | 0.03 FTE | ~450K |
| PostgreSQL backup verify + vacuuming | 0.02 FTE | ~300K |
| MinIO + Redis + RabbitMQ ops | 0.02 FTE | ~300K |
| Keycloak + Vault cert rotation | 0.02 FTE | ~300K |
| Security patching (container images) | 0.03 FTE | ~450K |
| Monitoring + alert response | 0.03 FTE | ~450K |
| **Subtotal SRE overhead** | **0.15 FTE** | **~2.25M/tháng** |

> So sánh: CF MVP SRE chỉ ~0.05 FTE (~750K/tháng) vì CF quản lý DB, queue, auth server. On-prem cần 3× SRE hơn do fully self-managed.

**Tổng on-prem Case 1: ~3–3.5M VND/tháng** (mostly SRE, không phải hardware).

#### b) Chi phí infra (Case 2 — cần thêm phần cứng)

Khi K8s cluster hiện tại không đủ tài nguyên cho OmiScan:

| Phần cứng | Chi phí mua (VND) | Amortized 36 tháng |
|---|---|---|
| Server blade / mini host (8 vCPU, 32GB RAM) | 40–60M | ~1.4M/tháng |
| SSD NVMe 2TB (DB + MinIO) | 8–12M | ~300K/tháng |
| Rack space + UPS (included trong OmiGroup DC) | ~3M | ~83K/tháng |
| **Subtotal phần cứng** | **~51–75M one-time** | **~1.8M/tháng** |

**Tổng on-prem Case 2: ~5–5.5M VND/tháng** (phần cứng + SRE + điện/bandwidth).

#### c) Chi phí migration one-time (từ CF MVP sang On-prem)

Khi quyết định chuyển từ Phase 1 (CF) sang Phase 2 (on-prem):

| Hạng mục | Effort | Cost VND |
|---|---|---|
| Helm charts + K8s manifests (5 services) | 1.5 tuần DevOps | ~20M |
| CI/CD pipeline (GitHub Actions → kubectl) | 0.5 tuần | ~8M |
| HashiCorp Vault Transit key + ECDSA P-256 | 0.5 tuần | ~8M |
| Keycloak realm + OIDC client config | 0.3 tuần | ~5M |
| MinIO bucket policies + lifecycle rules | 0.2 tuần | ~3M |
| D1 (SQLite) → PostgreSQL 16 schema migration | 0.5 tuần | ~8M |
| R2 → MinIO data migration script | 0.3 tuần | ~5M |
| Integration testing on-prem + UAT | 1 tuần | ~15M |
| Runbook + DR documentation | 0.5 tuần | ~8M |
| **Subtotal migration** | **~5.3 tuần** | **~80M VND** |

> Migration là one-time cost, xảy ra khi Phase 2 bắt đầu (ước tính ~3–6 tháng sau go-live v1).

#### d) Non-prod (on-prem)

| Env | Approach | Cost/tháng (VND) |
|---|---|---|
| Dev | K8s namespace riêng, scale-to-zero ban đêm | ~200K (điện/bandwidth) |
| Staging | K8s namespace, scale min | ~300K |
| **Subtotal non-prod on-prem** | | **~500K/tháng** |

---

### 13.3d. So sánh hạ tầng production/tháng

| Hạng mục | A — AWS | B — CF MVP | C — On-prem (existing) |
|---|---|---|---|
| Compute/serverless | ~75K ($3) | ~125K ($5 plan) | 0 (absorbed) |
| Database | ~1.175M ($47) | 0 (D1 free) | 0 (PG existing) |
| Object storage | ~25K ($1) | ~4K ($0.15) | 0 (MinIO existing) |
| Edge/CDN/WAF | ~225K ($9) | 0 (CF incl.) | 0 (Caddy/Nginx) |
| **Networking (NAT + VPC endpoints)** | **~1.825M ($73)** | **0** | **0** |
| Auth | 0 (Cognito free) | 0 (CF Access free) | 0 (Keycloak) |
| Monitoring / observability | ~50K | 0 (CF Analytics) | 0 (Prometheus existing) |
| KMS / Secrets / Vault | ~300K ($12) | 0 (CF handles) | 0 (Vault free) |
| **Subtotal infra/tháng** | **~3.675M** | **~130K** | **~713K** |
| Buffer / overhead | ~900K (25%) | ~25K | — |
| SRE infra ops | ~1.5M (0.1 FTE) | ~750K (0.05 FTE) | ~2.25M (0.15 FTE) |
| **TỔNG/tháng** | **~6.1M VND** | **~905K VND** | **~3–3.5M VND** |

**Nhận xét**:
- CF MVP rẻ nhất: **~905K/tháng** — tiết kiệm 85% vs AWS, thấp hơn on-prem do zero managed-service overhead
- On-prem competitive khi volume scale lên (CF R2 tăng tuyến tính theo storage, on-prem flat)
- AWS không còn lợi thế gì ở volume OmiScan sau khi xét VPC cost — **loại**
- **Breakeven CF vs On-prem** xảy ra khi SRE time on-prem được chia sẻ với nhiều services khác (OmiGroup DC đã vận hành nhiều hệ thống, marginal SRE giảm)

**Lý do chiến lược chọn On-prem Phase 2** (không phải cost):
1. **Data residency**: Bộ Y tế VN có thể yêu cầu dữ liệu y tế lưu trên server trong nước — on-prem OmiGroup DC đáp ứng ngay
2. **Vendor independence**: Không phụ thuộc Cloudflare pricing và ToS thay đổi
3. **Scale-out tới tỉnh/Sở**: Khi nhân rộng ra nhiều Sở Y tế, on-prem cost per tenant giảm; CF cost tăng theo tenant

---

## 13.4. Hạ tầng staging + dev

| Env | CF MVP | On-prem |
|---|---|---|
| Dev | CF Pages preview (auto per PR) — **$0** | K8s dev namespace — ~200K/tháng |
| Staging | CF branch deployment — **$0** | K8s staging namespace — ~300K/tháng |
| **Subtotal non-prod** | **$0** | **~500K/tháng (~6M/năm)** |

> **CF MVP**: non-prod gần như free là lợi thế lớn trong Sprint 0–1 khi cần nhiều test environment.

> **On-prem trick**: K8s CronJob scale-down dev+staging 21:00–07:00 + cuối tuần → giảm ~65% resource, chi phí còn ~200K/tháng.

---

## 13.5. Vận hành Year 1, 2, 3

### 13.5.1. Year 1 (sau go-live v1)

Kịch bản: triển khai CF MVP (Phase 1), chưa migration sang on-prem.

| Hạng mục | CF MVP (tr VND) | On-prem nếu quyết định ngay (tr VND) | Ghi chú |
|---|---|---|---|
| Infra production | 1,5 (~$5/tháng × 12) | 12 (1M/tháng × 12, Case 1) | |
| Non-prod (dev + staging) | 0 | 6 (0.5M/tháng × 12) | |
| Migration setup | 0 | **80** (one-time Year 1) | Chỉ tính nếu chuyển Year 1 |
| Sentry | 6 (SaaS) | 0 (self-hosted) | |
| Domain + DNS | 1 | 1 | |
| Apple Developer Program | 2,5 | 2,5 | Shared OmiGroup |
| Google Play Console | 0,6 (one-time) | 0,6 | |
| Snyk security scan | 5 | 5 | |
| AWS/CF Support | 0 | 0 | CF không có support plan bắt buộc |
| SRE hạ tầng (0.05 FTE CF / 0.15 FTE on-prem) | 9 (0.05 × 15M × 12) | 27 (0.15 × 15M × 12) | |
| Cập nhật rule pack (P3, 4 lần/năm) | 50 | 50 | 4 lần × ~12M/lần |
| **Tổng Year 1 core (CF MVP)** | **~75 tr VND** | **~184 tr (với migration)** | |

> Nếu không migration Year 1, on-prem core = ~104 tr VND.

### 13.5.1.b — Hidden cost "Excluded but likely"

> Các khoản dưới có thể phát sinh tùy quyết định của Viện DD / OmiGroup. Tách riêng để trình board duyệt theo confidence.

| Hạng mục | Low (tr) | Base (tr) | High (tr) | Trigger |
|---|---|---|---|---|
| **Apple Developer Enterprise** | 0 | 0 | 7,5 | Nếu in-house deploy không qua App Store |
| **MFA hardware** (YubiKey 5C × 5 admin) | 0 | 5 | 5 | Bắt buộc P5/P3.5 — Section 10.6.3 |
| **Pen test external** (1 lần/năm) | 0 | 0 | 250 | Phase 2 — Section 10.13.3 |
| **Training cán bộ Viện DD** (5 cán bộ × 2 buổi) | 15 | 30 | 50 | Bắt buộc UAT/go-live |
| **Device test Tier B × 5** | 0 (BYOD) | 30 | 65 (mua mới) | Q-INT-07 |
| **Translation legal docs sang Anh** | 0 | 10 | 30 | Nếu Viện DD muốn share quốc tế |
| **Insurance / liability** | 0 | 0 | 30 | OmiGroup policy |
| **Marketing / PR go-live** | 0 | 30 | 80 | Q-INT-06 |
| **Subtotal hidden** | **~15** | **~105** | **~520** |

### 13.5.2. Year 2–3

| Hạng mục | CF MVP (tr/năm) | On-prem (tr/năm) | Ghi chú |
|---|---|---|---|
| Infra production | 1,5 | 12 | On-prem Case 1 (existing hardware) |
| Non-prod | 0 | 6 | |
| SaaS + license | 12 | 7 | On-prem self-host Sentry → giảm |
| SRE hạ tầng | 9 | 27 | CF 0.05 FTE / on-prem 0.15 FTE |
| Cập nhật rule pack + bug fix | 80 | 80 | |
| Buffer feature requests nhỏ | 30 | 30 | |
| **Tổng Year 2 hoặc 3** | **~133 tr** | **~162 tr** | |

> On-prem Year 2-3 đắt hơn CF ~30M/năm do SRE overhead. Breakeven chỉ xảy ra khi OmiGroup platform team chia sẻ SRE cost với ≥ 3 services trên cùng cluster.

### 13.5.3. Tổng vận hành 3 năm

| Năm | CF MVP core | On-prem core (với migration Y1) | Hidden Base | CF tổng | On-prem tổng |
|---|---|---|---|---|---|
| Year 1 | 75 | 184 (incl. 80M migration) | 105 | 180 | 289 |
| Year 2 | 133 | 162 | 50 | 183 | 212 |
| Year 3 | 133 | 162 | 50 | 183 | 212 |
| **Subtotal 3 năm** | **~341** | **~508** | **~205** | **~546** | **~713** |

---

## 13.6. Tổng cost-of-ownership 3 năm

| Phase | A — AWS | B — CF MVP | C — On-prem |
|---|---|---|---|
| **One-time**: Phát triển v1 | 820–930 | 820–930 | 820–930 |
| **One-time**: Setup hạ tầng | ~25–35 | ~0 | ~80 (migration) |
| **Recurring core 3 năm** | ~645 | ~341 | ~508 |
| **Recurring hidden Base** | ~205 | ~205 | ~205 |
| Reserve 5% | ~85–90 | ~50 | ~57 |
| **TỔNG 3 NĂM (Base case)** | **~1,780–1,905 tr** | **~1,341–1,451 tr** | **~1,531–1,641 tr** |
| | **≈ 1,8–1,9 tỷ** | **≈ 1,4 tỷ** | **≈ 1,6 tỷ** |

**Headline numbers**:
- **CF MVP**: ~1,4 tỷ TCO 3 năm — **tiết kiệm ~400M so với AWS**
- **On-prem**: ~1,6 tỷ TCO 3 năm — **tiết kiệm ~200M so với AWS**
- **AWS**: ~1,8–1,9 tỷ — đắt nhất, không còn là lựa chọn sau pivot

→ Best case (CF MVP, Viện DD BYOD, no pen test, no training trả phí): ~1,1 tỷ
→ Worst case (on-prem + full hidden cost + mua hardware): ~2,1 tỷ

**Lộ trình đề xuất**:
- **Year 1 (v1)**: CF MVP → TCO component ~905K/tháng, zero migration risk
- **Year 2 (Phase 2)**: Đánh giá migration on-prem nếu Bộ Y tế yêu cầu data residency VN, hoặc volume vượt 50K submissions/tháng, hoặc cần mở rộng multi-tenant
- **Not recommended**: Đi thẳng on-prem từ đầu (thêm 80M setup + risk chậm go-live)

---

## 13.7. So sánh benchmark thị trường

| Benchmark | AWS | CF MVP | On-prem | Ghi chú |
|---|---|---|---|---|
| **Mobile app + backend MVP VN 2026** | 1,8–1,9 tỷ | 1,4 tỷ | 1,6 tỷ | Ngành y tế regulator benchmark: 1–3 tỷ — cả 3 đều in-range |
| **AI-on-device compliance app (Forrester 2025)** | 1,8–1,9 tỷ | 1,4 tỷ | 1,6 tỷ | Single-org benchmark: 1–2 tỷ; multi-tenant: 3–5 tỷ |
| **Cloud vận hành < 5k user/tháng** | $180/tháng | $5/tháng | N/A (on-prem) | AWS Cost Explorer: $100–250/tháng có VPC — OmiScan đúng range |
| **Serverless-first vs self-hosted < 10k req/day** | AWS serverless thường $100–200 | CF serverless $5–15 | Self-hosted $1–5 infra + SRE | CF tốt hơn AWS ở mọi volume nhỏ–vừa |
| **Bảo trì rule pack compliance app** | 50–80 tr/năm | 50–80 tr/năm | 50–80 tr/năm | Phụ thuộc tần suất sửa luật, không phụ thuộc infra |

→ **CF MVP ở mức cost competitive nhất** so với mặt bằng thị trường. On-prem hợp lý khi đã có DC sẵn.

---

## 13.8. ROI / value cho Viện DD

Định lượng giá trị OmiScan tạo ra:

### 13.8.1. Năng suất cán bộ — sensitivity analysis

> **[CẦN VERIFY với Viện DD trong Workshop]**: Mọi giả định dưới đây là estimate của OmiGroup dựa benchmark ngành dược/y tế công VN. Các con số "1,5 phút/nhãn" và "150 tr/năm/cán bộ" là giả định — chưa được Viện DD xác nhận.

**3 kịch bản** (low/base/high):

| Yếu tố | Conservative | Base | Aggressive |
|---|---|---|---|
| Năng suất tăng (× lần) | 1.5× | 3× (10→30 nhãn/ngày) | 5× (8→40 nhãn/ngày) |
| Cán bộ-năm tiết kiệm | 0,5 | 1,5 | 2,5 |
| Salary base/năm/cán bộ (giả định) | 100 tr | 150 tr | 200 tr (bao gồm overhead, bonus) |
| **Giá trị năng suất / năm** | **50 tr** | **225 tr** | **500 tr** |
| Giá trị dataset research / năm (13.8.2) | 100 tr | 300 tr | 800 tr |
| **Tổng value / năm** | **150 tr** | **525 tr** | **1.300 tr** |
| **Hoàn vốn TCO CF MVP ~1,4 tỷ** | **~9 năm** | **~2,7 năm** | **~1,1 năm** |

> Hoàn vốn CF MVP nhanh hơn AWS 25% do TCO thấp hơn ~400M. Base case: **2,7 năm** thay vì 3,5 năm với AWS.

### 13.8.2. Tài sản dataset research

- Năm 1: thu thập ~40k submission với JSON cấu trúc + ảnh + audit
- **Là dataset nhãn thực phẩm Việt Nam đầu tiên có cấu trúc** — chưa từng có
- Dùng làm input cho đề tài cấp Bộ, báo cáo Bộ Y tế / WHO, cơ sở dữ liệu nhãn thực phẩm quốc gia
- Giá trị quy đổi tương đương **chương trình nghiên cứu cấp Bộ ~500 tr–1 tỷ VND/năm**

### 13.8.3. Tài sản kỹ thuật cho OmiGroup

Dự án OmiScan tạo ra **3 tài sản tái sử dụng** cho các dự án compliance khác:

1. **Rule engine + DSL**: tái sử dụng cho compliance dược phẩm, mỹ phẩm OmiCare, consulting khách hàng Nhật
2. **On-device AI pipeline (Gemma 4 + ML Kit cross-check)**: tái sử dụng cho mọi document AI (HIS, BHYT, hồ sơ y tế)
3. **Quality gate + multi-shot capture**: tái sử dụng cho các app cần chụp + extract

---

## 13.9. Mô hình tài trợ đề xuất

Đây là dự án **tài trợ cho Viện DD**, không thương mại.

### Mô hình A — Tài trợ trọn gói (recommended cho v1)

- OmiGroup tài trợ 100% chi phí phát triển v1 (~820–930 tr VND cash cost)
- Viện DD chi trả vận hành Year 1 (~75 tr CF core + ~105 tr hidden Base = ~180 tr) hoặc OmiGroup tiếp tục tài trợ
- Sở hữu IP source code: OmiGroup; license sử dụng vĩnh viễn cho Viện DD; data: Viện DD 100%
- **Pros**: Rõ ràng, OmiGroup gánh full upfront, CF MVP giảm vận hành Year 1 từ ~296M (AWS) xuống ~180M
- **Cons**: Year 2-3 vận hành cần đàm phán riêng

### Mô hình B — Đề tài cấp Bộ co-funded

- Đăng ký đề tài nghiên cứu cấp Bộ qua Viện DD → ngân sách Bộ Y tế cover một phần
- **Pros**: Có ngân sách Bộ, validation cao
- **Cons**: Quy trình đăng ký lâu (6–12 tháng)

### Mô hình C — SaaS subsidized (Phase 2+)

- v2 mở rộng cho nhiều Sở Y tế, Cục ATTP → subscription
- **Pros**: Sustainable long-term
- **Cons**: Cần Phase 2 + chứng minh value năm 1 trước

→ **Đề xuất: Mô hình A cho v1**, đàm phán B hoặc C cho Phase 2.

---

## 13.10. Phương án quản lý ngân sách

| Bucket | Khuyến nghị | Lưu ý |
|---|---|---|
| **Phát triển v1** | Phê duyệt trọn gói trước kickoff | Buffer 10% trong total |
| **Vận hành Year 1 (CF MVP)** | Quarterly review | CF cost cực thấp — spike chủ yếu từ SRE và rule pack |
| **Migration on-prem (nếu Phase 2)** | Duyệt riêng ~80M khi trigger | Không đưa vào Year 1 budget trừ khi có yêu cầu data residency rõ ràng |
| **Bảo trì rule pack** | On-demand khi có sửa luật | ~12 tr VND/lần cập nhật |
| **Contingency** | Reserve 10% tổng cho rủi ro | Plan B Gemma 4 fail, hardware thiếu (on-prem), module native |

---

## 13.11. Open questions cost-related

| # | Câu hỏi | Cần giải quyết |
|---|---|---|
| Q1 | Đơn giá nhân sự nội bộ OmiGroup chính xác (junior/mid/senior) là bao nhiêu? | Tài chính OmiGroup |
| Q2 | OmiGroup có policy chiết khấu nội bộ cho dự án tài trợ không? | Tài chính |
| Q3 | Year 2-3 vận hành ai trả? Viện DD có ngân sách thường xuyên không? | Workshop với Viện DD |
| Q4 | Có cần budget marketing / truyền thông khi go-live không? | HungPM + truyền thông OmiGroup |
| Q5 | Có ngân sách đào tạo định kỳ (refresher) sau Year 1 không? | Workshop |
| Q6 | OmiGroup có policy cấp device test cho UAT (5 device tier A/B) không? | Tài chính + DevOps |
| **Q7** | **OmiGroup DC (Ominext) hiện có bao nhiêu K8s worker node dư? Đủ absorb OmiScan (4 vCPU, 8GB) không?** | **DevOps OmiGroup — cần confirm trước khi quyết định on-prem Phase 2** |
| **Q8** | **Có sẵn HashiCorp Vault instance nào trong OmiGroup không? Hay cần deploy mới?** | **DevOps OmiGroup — ảnh hưởng ~8–15M setup cost** |
| **Q9** | **Nếu Bộ Y tế yêu cầu data residency VN, timeline requirement là khi nào? (Phase 2 ~3–6 tháng sau go-live có đủ không?)** | **HungPM + tư vấn pháp lý** |

---

## 13.12. Cross-references

- Roadmap chi tiết: [11_roadmap.md](11_roadmap.md)
- Resource allocation: [11_roadmap.md](11_roadmap.md) mục 11.5
- Architecture CF MVP vs On-prem: [08_architecture.md](08_architecture.md) mục 8.1–8.2
- Tech stack CF vs On-prem: [09_tech_stack.md](09_tech_stack.md) mục 9.1
- Effort estimate per module: [05_functional_spec.md](05_functional_spec.md) mục 5.13
- Volume targets: [02_scope.md](02_scope.md) mục 2.2.5
