# 14 — Editions: One Codebase, Four Configurable Plans **Hard rule:** every cell below is a **DB row** (`plan`, `plan_feature`, `price_book`, `setting` — 07-DB-AND-CONFIG §2), never code. Changing a limit, price, or privilege is configuration; new editions are new rows. Upgrades apply in place — the paywall is a demo. ## Identity & positioning | Dimension | Lite | Standard | Pro | Enterprise | |---|---|---|---|---| | Target business | Mini/small shop, kirana | Medium store | Supermarket, pharmacy | Chains, multi-outlet | | Positioning | "Bill in 15 minutes" | "Run the whole store" | "Run it at scale" | "Run every store" | | Price posture (₹ = D5, rows in `price_book`) | Entry; monthly allowed | Mid; annual preferred | Premium; annual | Custom quote | | Billing basis | Per store | Per store + per counter | Per store + per counter | Per org, negotiated | | Support privilege | Dealer/WhatsApp | Dealer priority | Priority + remote fix | Dedicated + SLA | ## Capacity limits (rows in `plan_feature`, enforced at runtime) | Limit | Lite | Standard | Pro | Enterprise | |---|---|---|---|---| | Counters | 1 | 3 | 8 | Unlimited | | Stores | 1 | 1 | 2 | Unlimited | | Users | 2 | 6 | 15 | Unlimited | | SKUs (validated target) | 5,000 | 15,000 | 100,000 | 100,000+ | | Bills/day (validated target) | 200 | 600 | 2,500 | 2,500/store | | Held bills per counter | 3 | 10 | 20 | 20 | ## Feature privileges (rows in `plan_feature`; ✗ renders as upsell, never hidden) | Feature | Lite | Standard | Pro | Enterprise | |---|---|---|---|---| | POS billing, suggestions, quick-add, khata, customer attach | ✓ | ✓ | ✓ | ✓ | | GST invoices, HSN summary, core reports | ✓ | ✓ | ✓ | ✓ | | Purchase entry + last-cost + drafts | ✓ | ✓ | ✓ | ✓ | | Multi-counter + per-counter series | ✗ | ✓ | ✓ | ✓ | | Schemes & offers, salesman tagging | ✗ | ✓ | ✓ | ✓ | | Label printing | ✗ | ✓ | ✓ | ✓ | | GSTR-1/3B exports, Tally export | ✗ | ✓ | ✓ | ✓ | | Owner app | ✗ | ✓ | ✓ | ✓ | | Weighing-scale barcodes & scale port | ✗ | ✗ | ✓ | ✓ | | Batch/expiry tracking | ✗ | ✗ | ✓ | ✓ | | Loyalty | ✗ | ✗ | ✓ | ✓ | | Purchase Inbox (AI) | ✗ | ✗ | ✓ | ✓ | | e-Invoice (IRN) + e-Way | ✗ | ✗ | ✓ | ✓ | | Full accounting (P&L/BS) | ✗ | ✗ | ✓ | ✓ | | B2B counter billing (GSTIN, IGST) | ✗ | ✓ | ✓ | ✓ | | Multi-store HO console, transfers, central pricing | ✗ | ✗ | ✗ | ✓ | | API access | ✗ | ✗ | ✗ | ✓ | ## Advantages story (what the dealer sells) | Edition | The advantage in one line | |---|---| | Lite | Cheapest way to bill legally, fast, with khata and WhatsApp — zero training | | Standard | Everything the counter and the owner need for one busy store | | Pro | Supermarket-grade: scale barcodes, batch/expiry, AI purchases, compliance automation | | Enterprise | One brain for every outlet: central pricing, consolidated GST, APIs | ## Configurability rules | Rule | Meaning | |---|---| | Cells are rows | Every value above lives in `plan`/`plan_feature`/`price_book` — no release to change | | Per-tenant overrides | A specific tenant can be granted any single privilege via a tenant-scope row | | In-place upgrade | Locked feature → upsell panel → plan change → unlock without reinstall | | Grace, never strand | Expiry enters grace (setting row); billing never stops mid-day | | New editions | A fifth edition = new rows; the UI renders it automatically |