Phase 2 - Plan
What we build after the Phase 1 MVP. Phase 2 widens scale to household-business revenue 1-3B VND (Personal Income Tax on % of revenue, accounting book S2a) and adds general retail alongside F&B. Target window: Jun → Sep 2026.
Epics
All twelve Phase 2 epics - value, owner, the end-to-end signal that means done, and live progress (% = done child sub-issues, synced each cycle from the sprint review; snapshot 2026-06-14). Colour = Plane priority: 🔴 High · 🟡 Medium. The three reasons Phase 2 exists - tax 1-3B (E1) · retail (E2) · business customers (E5) - cannot be cut.
| # | Epic · Module | Owner | Delivers | Done signal (end-to-end) | Plane · % |
|---|---|---|---|---|---|
| E1 | 🔴 Tax - S2a book, 01/CNKD, T-VAN | Việt Võ Phát Nguyễn | Keep the S2a tax book File 01/CNKD via T-VAN E-invoice issuance at POS + company VAT (Jul) No accountant needed | A merchant files a full tax period | BANA-1318 70% |
| E2 | 🔴 Commerce - Retail business type | Hải Cao Khoa Nguyễn Phát Nguyễn | Retail business type Barcode, variants, fast counter Beyond F&B | A retail shop sells with no F&B-only steps | BANA-1319 95% |
| E3 | 🟡 Products - Entitlement type | Hải Cao Khoa Nguyễn Phát Nguyễn | Entitlement CRUD ✓ Sell + deduct quota Redeem + track usage | Customer buys & redeems; quota drops | BANA-1320 re-scoped |
| E4 | 🔴 Sale - Shift mgmt + reports + cash reconcile | Việt Võ Phát Nguyễn | Open/close shifts X/Z + revenue reports Cash reconcile at close | Shift opens→closes with report + cash reconciled | BANA-1321 80% |
| E5 | 🔴 Customer - Business customers (MST) + groups | Hải Cao Khoa Nguyễn Phát Nguyễn | Business customers + MST Customer groups Business vs individual | A company's MST flows onto a VAT invoice | BANA-1322 45% |
| E6 | 🔴 Inventory - Stock control for F&B & Retail | Phát Nguyễn | Vouchers · vendors · counts (Jul) F&B: BOM auto-deduct + lot/expiry (Aug) Retail: barcode + real-time stock (Aug) | Sell a dish → ingredients deducted; retail scans in/out | BANA-1323 50% |
| E7 | 🔴 Finance - Partner ledger + accounts + P&L | Việt Võ Phát Nguyễn | Receivables + payables Financial accounts P&L report | A sale & a purchase reconcile; owner sees P&L | BANA-1324 85% |
| E8 | 🟡 Sale - Kitchen & self-order (print → KDS → QR) | Hải Cao Khoa Nguyễn Phát Nguyễn | Kitchen print per station (Jun) KDS screen (Aug) QR self-order + pilot (Jul-Aug) | Guest QR order reaches POS & kitchen | BANA-1325 0% |
| E9 | 🟡 Sale - Selling experience: picker, tables & flows | Hải Cao Khoa Nguyễn Phát Nguyễn | Product picker ≤3 taps (Jun) Table-service polish (Jun) Merge · states · history (Aug) | Pick any item in ≤3 taps; serve a table end-to-end | BANA-1326 50% |
| E10 | 🟡 Pricing - Conditional price rules | Hải Cao Khoa Nguyễn Phát Nguyễn | By time / service / channel By customer segment Combo (FBT) override | Each condition prices correctly at checkout | BANA-1327 45% |
| E11 | 🔴 Permissions - Per-merchant authz + user admin (BO) | Phát Nguyễn Hải Cao | Per-merchant scoping Roles & grants BO user pages: internal / customers | A user can't reach another merchant's data | BANA-1336 70% |
| E12 | 🟡 Commerce - Backoffice portal | Hải Cao Phát Nguyễn | Onboard wizard + full config (Jun) Excel import (Jul) Support Center + dashboards (Aug) | A client onboarded & run from BO alone | BANA-1337 45% |
How to read it
% is direction only (done child sub-issues); the real bar is the Done signal, verified on a live merchant. Epic dot = Plane priority (🔴 High · 🟡 Medium). % badge = progress (🟢 ≥70 · 🟡 40-69 · 🔴 <40 · ⚪ 0). Click a KICKO-xxxx code to open it on Plane.
How epics depend
Customer (E5) and Vendor (E6) are symmetric partners - their records live in their own domain, while all money (receivables, payables, financial accounts) lives once in Finance (E7).
→ Land E5 and E6 early - they unblock E7 (and E5 unblocks E10). All other epics are independent.
Deferred to Phase 3
Offline mode · Loyalty/voucher · Webshop · Device hub - not required for the 1-3B + retail goal.
Proposed sequence (Jun → Sep)
| Block | Epics |
|---|---|
| Foundations | E5 (MST + groups) · E2 (retail) · E6 (inventory/vendor) |
| Depth | E1 (tax) · E4 (shift) · E7 (partner ledger) · E8 (KDS) |
| Polish | E9 (sale flow) · E10 (pricing) · E3 (entitlement) |
Sizing guardrail
The WK22 review showed completion collapses at ~100 items/cycle vs the sustainable ~32 (16 members × 2). Break each epic into ≤1-week child tasks and size sprints to that ceiling.
Find a feature
Search every Phase 2 deliverable - by feature, epic (E1-E12), module, month, or Plane code. A feature can sit under the module that owns it (e.g. an inventory report lives under Reports, not Inventory), so search beats browsing.
70 / 70 deliverables
| Module | Deliverable | Epic | Month | Status | Plane |
|---|---|---|---|---|---|
| Platform | Deploy Phase 1 to production with VNPAY (priority 1) | - | Jun | 🔵 In progress | - |
| Deploy/rollback runbook | |||||
| Dedicated hotfix lane for UAT bugs | |||||
| Sale | See at a glance which tables have orders + for how long | E9 | Jun | 🔵 In progress | BANA-1326 |
| Prevent accidentally deleting a table's order from the queue | |||||
| Print kitchen tickets per station/printer | E8 | Jun | ⬜ Not started | BANA-1325 | |
| Reprint on printer failure (KDS screen moves to Aug) | |||||
| Move POS to multi-employee shifts (open/close) | E4 | Jul | ⬜ Not started | BANA-1321 | |
| X/Z report | |||||
| Cash reconciliation at close | |||||
| Self-order live + pilot at 1-2 venues | E8 | Aug | ⬜ Not started | BANA-1325 | |
| Polish the KDS kitchen screen | |||||
| Transfer · merge tables · manual order states | |||||
| Order & payment history at POS | |||||
| Products | Options → Variant matrix API | E9 | Jun | 🔵 In progress | BANA-1326 |
| New product picker: right variant in ≤3 taps | |||||
| Single-variant items skip the chooser | |||||
| Input/print barcode per variant | - | Jul | ⬜ Not started | - | |
| Search/scan barcode at the counter | |||||
| Sell Entitlement at POS | E3 | Aug | ⬜ Not started | BANA-1320 | |
| Deduct quota on sale | |||||
| Redeem + track remaining usage (CRUD already done) | |||||
| Commerce (BO) | Onboard one client completely: Organizer → Merchant (MST) → channels → business type | E12 | Jun | 🔵 In progress | BANA-1337 |
| Config: packages & licenses · industries & category templates · tax groups | |||||
| Promote payment-methods config + transaction lookup to admin level | |||||
| User Mgmt + Permissions (BO) | Split into two pages: internal users / customer users | E11 | Jun | 🔵 In progress | BANA-1336 |
| Role-grant per merchant right in the user form | |||||
| Verify per-merchant authorization end-to-end | |||||
| Commerce | Lock the retail business spec (scan-first counter, no tables) | E2 | Jul | ⬜ Not started | BANA-1319 |
| Dedicated retail UI design (POS + catalog) | |||||
| Retail category templates + remove the F&B default | |||||
| POS Retail mode: scan → cart → fast checkout | |||||
| A retail shop can onboard | |||||
| Import from Excel: categories, products/variants, prices, tax | E12 | Jul | 🔵 In progress | BANA-1337 | |
| Row-level errors + duplicate-safe re-import | |||||
| Inventory | Goods-in/out voucher screens | E6 | Jul | ⬜ Not started | BANA-1323 |
| Purchase orders + vendors | |||||
| Stock count & adjustment | |||||
| Stock by location + low-stock alerts | |||||
| F&B: recipe/BOM auto-deduct on sale + recipe screens | - | Aug | ⬜ Not started | - | |
| F&B: lot + expiry, expiring-soon alerts | |||||
| Retail: barcode scan for stock in/out | |||||
| Real-time stock at the counter (production orders → Phase 3) | |||||
| Tax | Tax rate by industry + PIT calculator | E1 | Jul | ⬜ Not started | BANA-1318 |
| Declaration form 01/CNKD | |||||
| Tax declaration screens on client | |||||
| Verify book S2a with real data | |||||
| Submit 01/CNKD via T-VAN | - | Aug | ⬜ Not started | - | |
| One full tax period end-to-end, authority acknowledges | |||||
| Tax & Invoice | Issue the e-invoice right at the POS (MTT), one action | E1 | Jul | ⬜ Not started | BANA-1318 |
| Invoice screens: list · detail · adjust/replace | |||||
| Company VAT invoice with buyer MST (with July's business customers) | |||||
| Failed issuance visible + retryable | |||||
| Customer | Business customer profile (MST, company) | E5 | Jul | ⬜ Not started | BANA-1322 |
| Customer groups | |||||
| Customer management screens (client + BO) | |||||
| Finance | Customer receivables | E7 | Jul | ⬜ Not started | BANA-1324 |
| Verify vendor payables end-to-end | |||||
| Sale (Self-order) | Lock the self-order business spec | E8 | Jul | 🔵 In progress | BANA-1325 |
| Guest QR menu design | |||||
| Menu/MenuPolicy backend foundation (build in Aug) | |||||
| Pricing | Customer-group pricing (VIP/Member - uses July's groups) | E10 | Aug | ⬜ Not started | BANA-1327 |
| Campaign pricing | |||||
| Reports | P&L report | - | Aug | ⬜ Not started | - |
| Revenue by shift/period | |||||
| Inventory & best-sellers | |||||
| Helpdesk (BO) | Support-ticket dashboard in BO (list + detail) | - | Aug | 🔵 In progress | - |
| SLA · category · agent config | |||||
| Reports (BO) | Registered stores by industry | - | Aug | ⬜ Not started | - |
| Transactions by store |