Skip to main content

KeyNova / HMP — Go-Live Readiness Audit

Date: 2026-04-25 Style: Big-Four operational readiness review (Deloitte / EY / KPMG / PwC) Method: 5 parallel domain auditors scored 422 individual checks against code evidence. Slice files: A · B · C · D · E


Bottom line​

🔴 NOT GO-LIVE READY. Cumulative 20 P0 blockers across reservations, billing, OTA channels, India regulatory compliance, tenant-isolation security, and live-mode integrations.

The platform's architecture is sound — there is no need to throw out modules. The blockers are fillable: each is a discrete code change or vendor configuration. Estimated remediation: 3–4 weeks with two parallel tracks (engineering + compliance).


Master scorecard​

#DomainSlice✅ Done⚠️ Partial🔴 Stub❌ MissingP0Verdict
1ReservationsA✓⚠️ × 4——3🔴
2Front DeskA✓⚠️ × 4——0⚠️
3Folio & BillingA✓⚠️ × 1——1🔴
4HousekeepingB19/254200🟢
5F&B / POSB28/355200🟢
6Banquet & EventsB10/143100🟢
7SpaB7/102100🟢
8Channel ManagerC65 %4212⚠️
9Revenue & RatesC90 %2001🟢
11Reports & AnalyticsC70 %5311⚠️
10CRM & LoyaltyE38/84251474🔴
14Master DataE(in 38)(in 25)(in 14)(in 7)1🔴
15IntegrationsE(in 38)(in 25)(in 14)(in 7)3🔴
12India ComplianceD812848🔴
13Security & TechD288221⚠️
TOTAL across 422 checks20🔴

P0 Go-Live Blockers (must fix before opening doors to a real hotel)​

A. Revenue & operational integrity (4)​

IDSliceItemWhy it's a blockerEst. effort
P0-1ANo refund posting on reservation cancellationCancellation fee calculated but never posted to folio → revenue reconciliation breaks; no audit trail of refund3 d
P0-2AOverbooking workflow incompleteBuffer calc exists but no acceptance/rejection/overflow routing → guests arrive at full hotel4 d
P0-3ANegative payment amounts blocked at folioDefense-in-depth check rejects negatives → blocks refund posting once P0-1 wires it up1 d
P0-4APer-room edits within multi-room booking blockedGroup of 3 rooms wants to extend 1 room → must cancel all 3 and rebook4 d

B. India regulatory compliance (9)​

IDSliceItemRegulationEst. effort
P0-5DGST exemption flag not wired into invoice calcGST Act2 d
P0-6DReverse Charge Mechanism (RCM) flag missingGST §9(3) for B2B > ₹5 L3 d
P0-7DMonthly GSTR-1 / 3B export missingGST returns5 d
P0-8DSequential, gap-free invoice numbering not guaranteed per FY/branchGST Rule 462 d
P0-9DE-Invoice NIC API integration only stubbed (IRN + signed QR + ACK)CBIC e-invoicing8 d
P0-10DForeigner C-Form: visa fields missing, no PDF export, no check-in enforcementFRRO4 d
P0-11DTDS on agent commissions (10 %) and TCS on luxury rate (1 % > ₹7.5 K) not implementedIT Act3 d
P0-12DChildren's data (< 18) parental-consent flow missingDPDPA §92 d
P0-13DPCI DSS scope not formally assessed (SAQ / ASV)PCI DSS7 d

C. Channel & integrations (4)​

IDSliceItemWhy blockerEst. effort
P0-14COTA booking-ingestion incomplete (cron-only, 1 h latency, webhook receiver not persisting)Direct OTA bookings will be missed5 d
P0-15CNo cross-channel double-book detectionSame room sold on Booking.com + Expedia simultaneously4 d
P0-16CE-Invoice compliance reports return empty (no EventStore consumer)Same as P0-9 — required for tax submission3 d
P0-17ERazorpay LIVE not staged — only sandboxNo real payments accepted2 d (config + test)

D. Tenant isolation & cross-cutting (3)​

IDSliceItemWhy blockerEst. effort
P0-18ECRM (campaigns / loyalty / feedback / revenue) controllers lack @CurrentTenant()Cross-tenant data leak under any auth user1 d
P0-19EMaster data (Property / Room / RatePlan) endpoints don't validate tenant ownershipSame leak class2 d
P0-20EEmail + SMS in simulator mode (SendGrid + Twilio creds missing)No guest communication on confirmation, OTPs, etc.1 d (config)

Total P0 effort: ≈ 64 person-days. With 3 engineers in parallel = 3 weeks calendar.


Stub register (catalogued by priority — what you specifically asked for)​

These are every "Coming in Phase 2" / TODO / placeholder discovered, prioritised so we know what to clean up after the go-live blockers.

Priority 1 — operational, but workable in Phase 1​

ModuleStubFile:line
HousekeepingRoom enrichment for arrivals/departures (ReservationServiceClient call)hmp-housekeeping-service/.../rooms.service.ts:145
HousekeepingDND preference enrichment (GuestServiceClient)rooms.service.ts:160
POSBill email endpoint (/orders/:id/email)hmp-pos-service — no route yet
POSHappy-hour / time-based pricingPricingRuleService (in-memory only)
BanquetPre-function setup checklistevents module — JSON-only
BanquetPost-function teardown checklistsame
BanquetFloor-plan visual editorcurrently raw string field
BanquetPuppeteer rootless modecontracts.service.ts:380 (BNQ-027)
SpaFolio posting (currently stub)hmp-spa-service
SpaTherapist commission trackingstub
CRMPricing-rule persistence (in-memory → Prisma/Redis)CRM service
CRMDrip-campaign step persistenceCRM service
CRMFeedback trigger queue persistenceCRM service
CRMEmail bounce/complaint webhook (SendGrid)CRM service
ReservationsConfirmation e-mail / SMS wiring untested e2ereservations
Front DeskCash drawer variance manager-approval UIfront-desk

Priority 2 — Phase-2 features, defer​

ModuleStubFile:line
Front DeskLate-checkout charge auto-post in some flowsfrontdesk
ReportsPredictive / BI reportsreports module
ReportsCompetitor intelligencereports module
HKLost & Found page (UI placeholder)dashboard
HKInventory reorder UIdashboard
MarketplacePlugin marketplace pagesdashboard
Settings/settings/compliancedashboard
Settings/settings/currencydashboard
Settings/settings/in-room-techdashboard
Settings/settings/integrations/sapdashboard
Settings/settings/integrations/tallydashboard
Settings/settings/integrations/whatsappdashboard
FrontDesk/front-desk/phone (PBX integration)dashboard

Priority 3 — code-quality TODOs​

ModuleStubFile:line
HKauto-reorder.service.ts cross-DB accessSTRICT-TODO
Banquetcosting.service.ts cross-DB accessSTRICT-TODO
POSmain.ts:15 missing @typesSTRICT-TODO
Spamain.ts:15 missing @typesSTRICT-TODO
HKTask DTO missing @Sensitive decoratortask.dto.ts:120

Priority 4 — vendor configuration (ops, not code)​

ModuleItem
IntegrationsRazorpay LIVE credentials stage
IntegrationsSendGrid API key + sender domain SPF/DKIM
IntegrationsTwilio Account SID/Token + DLT registration
IntegrationsWhatsApp Business — Meta flows + creds
IntegrationsNIC e-invoice production credentials
IntegrationsOTA channel auth (Booking.com / Expedia / Agoda / MakeMyTrip)
IntegrationsHardware vendor adapters (key-card, ID-scanner, terminal printer)

Compliance register (India regulatory)​

RegulationStatusNotes
GST — CGST/SGST/IGST⚠️ Partialcore calc OK; exemption + RCM + GSTR export missing (P0-5..7)
GST — invoice numbering🔴 Stubgap-free per-FY-per-branch sequence missing (P0-8)
E-Invoice (NIC)🔴 Stubtype stubs only (P0-9)
FRRO C-Form🔴 Stubdata captured but no PDF / portal export (P0-10)
TDS on commissions❌ Missing(P0-11)
TCS on luxury rate❌ Missing(P0-11)
DPDPA — consent✅ Donecapture + immutable audit
DPDPA — DSAR✅ Doneexport + erasure
DPDPA — children❌ Missing(P0-12)
TRAI DND⚠️ Partialinfra hooks; DLT registration not staged (P1)
CERT-In⚠️ Partiallogging in place; 6-h notification process undocumented (P1)
PCI DSS🔴 Stubno SAQ/ASV (P0-13); no card data stored ✅

Risk register (top 15, cross-domain)​

#RiskLikelihoodImpactMitigation
1Refund cannot be processedHIGHHIGHP0-1 + P0-3
2Cross-tenant data leak via CRMHIGHHIGH (legal)P0-18
3OTA double-bookingMEDHIGHP0-14 + P0-15
4E-invoice non-compliance → GST penaltyHIGHHIGHP0-9
5C-Form non-compliance → FRRO penaltyMEDHIGH (legal)P0-10
6Razorpay live not configured → no paymentsHIGHHIGHP0-17
7Email/SMS in simulator → guest comms brokenHIGHMEDP0-20
8Per-room edit forces full cancelMEDMEDP0-4
9Overbooking guest turn-awayMEDHIGHP0-2
10Invoice gap → GST audit riskLOWHIGHP0-8
11TDS not deducted on commissions → IT recoveryLOWMEDP0-11
12DPDPA children's data complaintLOWHIGHP0-12
13PCI scope blow-up if assessor finds card data leakLOWHIGHP0-13
14Manager variance bypassLOWMEDUI gate (P1)
15Confirmation email not deliveredMEDLOWP1 e2e + bounce

Track 1 — Engineering (3 engineers × 3 weeks)​

Week 1

  • P0-1 + P0-3 + P0-4 (refund, negatives, per-room edits) — Slice A
  • P0-18 + P0-19 (tenant isolation guards) — Slice E
  • P0-17 + P0-20 (Razorpay live + email/SMS production credentials) — Slice E

Week 2

  • P0-2 (overbooking routing) — Slice A
  • P0-14 + P0-15 (OTA booking ingestion + double-book detection) — Slice C
  • Top 6 P1s from Slice B (bill email, ReservationServiceClient enrichment, Puppeteer sidecar, validators)

Week 3

  • E2E regression on the full reservation lifecycle (create → check-in → folio → check-out → cancel/refund)
  • E2E OTA round trip
  • P1 hardening (state persistence, bounce handling, locking)

Track 2 — Compliance (compliance lead + 1 engineer × 4 weeks)​

Week 1

  • P0-5 + P0-6 + P0-8 (GST exemption / RCM / numbering) — Slice D
  • P0-12 (children's consent) — Slice D
  • DLT registration filing (TRAI prerequisite — long lead time)

Week 2

  • P0-7 (GSTR-1 / 3B export) — Slice D
  • P0-11 (TDS / TCS) — Slice D
  • NIC e-invoicing access provisioning (long lead time)

Week 3

  • P0-9 (NIC integration build) — Slice D
  • P0-10 (C-Form PDF + check-in enforcement) — Slice D

Week 4

  • P0-13 (PCI DSS SAQ assessment, third-party ASV scan) — Slice D
  • Compliance sign-off package (Legal, Finance, Security)

Sign-off gates before opening doors​

  • ✓ All 20 P0 closed and regression-tested
  • ✓ Razorpay LIVE end-to-end transaction (auth + capture + refund + webhook) on each merchant account
  • ✓ NIC e-invoice IRN generated against live test invoice
  • ✓ FRRO C-Form export tested
  • ✓ Tenant isolation pen-test (attempt cross-tenant read on every CRM endpoint)
  • ✓ DR drill (kill primary DB, verify RTO < 1 h, RPO < 15 min)
  • ✓ 24-h soak test on staging with realistic load
  • ✓ Compliance dossier signed by Legal, Finance, Security, Operations heads

What's strong (positive findings worth preserving)​

  • Architecture is sound — microservice boundaries match domain shape; no big rewrites needed.
  • Slice B is GREEN — Housekeeping, F&B/POS, Banquet, Spa are launch-ready (76 % done, no P0).
  • Auth & audit infrastructure is solid — RS256 JWT, MFA TOTP, brute-force lockout, tamper-evident audit logs (SHA-256 chain), 7-yr retention.
  • Encryption at rest for Aadhaar / identity fields (AES-256-GCM).
  • DPDPA core — consent, DSAR, erasure all present.
  • Backup & DR — daily RDS snapshots, PITR, RTO < 1 h, RPO < 5 min, monthly restore test.
  • Reservation/folio happy-path test coverage is dense (200 + test files across the two services).
  • Reservations chip-driven hub consolidation just shipped — UX baseline is in good shape.
  • Tape Chart redesign just shipped with continuation arrows + keyboard shortcuts.

Files​

  • This master report: hmp-docs/docs/platform-registry/golive-readiness-2026-04-25.md
  • Slice A: golive-audit-2026-04-25/A-reservations-frontdesk-folio.md
  • Slice B: golive-audit-2026-04-25/B-hk-pos-banquet-spa.md
  • Slice C: golive-audit-2026-04-25/C-channel-revenue-reports.md
  • Slice D: golive-audit-2026-04-25/D-compliance-security.md
  • Slice E: golive-audit-2026-04-25/E-crm-masterdata-integrations.md