Subscription pricing playbook (internal)
One-page reference for how Biashara packages and sells the platform by industry, segment, and tier. Use this for signup copy, sales calls, and super-admin tier changes.
Related: docs/BUSINESS_MODULES_AND_TIERS.md (technical module flags), config/tier_blueprints.php (canonical prices), Platform → Tiers & industries (/platform/tiers).
Principles
- Vertical first — Retail ≠ pharmacy ≠ hospitality. Signup asks industry; hospitality adds segment (café / restaurant / hotel / resort) so plans stay relevant.
- Tier = modules + limits + permissions — Price buys feature flags (
subscription_tiers.features), seat/branch caps, and which RBAC permissions sync to staff. - Opt-in verticals stay off by default — Manufacturing, hospitality modules, rental, pharmacy require an explicit tier flag (
tier_catalog.opt_in_modules). - Upgrade path is predictable — Kiosk → add purchases/expenses → CRM/analytics → accounts/integrations → HR/payroll & unlimited scale.
Seat math: max_staff excludes the owner. “2 users” on a plan = owner + max_staff cashiers/storekeepers.
Retail & shops (general merchandise)
| Tier | KES/mo | Users | Branches | Unlocks |
|---|---|---|---|---|
| Kiosk | 500 | 2 | 1 | POS, catalog, basic reports, eTIMS |
| Starter | 1,200 | ~4 | 1 | + purchases, suppliers, expenses |
| Growth | 2,500 | ~9 | 2 | + CRM, analytics, credit sales |
| Professional | 4,500 | ~16 | 3 | + accounts, advanced reports, integrations |
| Enterprise | 10,000 | Unlimited | Unlimited | + HR, Kenya payroll, push integrations, full ERP |
Preset keys: retail_kiosk … retail_enterprise
Not for: chemists (use Pharmacy vertical), hotels, landlords, factories.
Pharmacy & chemist
Separate vertical — batch/expiry, FEFO, chemist shell (suite_experience: pharmacy). Not supermarket retail.
| Tier | KES/mo | Highlights |
|---|---|---|
| Chemist Kiosk | 800 | 2 users, pharmacy suite, batch & expiry, eTIMS |
| Chemist Standard | 1,800 | CRM, purchases, near-expiry reports |
| Chemist Professional | 4,200 | Multi-branch, accounts, analytics |
| Chemist Enterprise | 9,000 | HR, payroll, integrations, unlimited |
Preset keys: pharmacy_kiosk … pharmacy_enterprise
Hospitality (segment-specific signup)
| Segment | Example tiers | KES/mo range | Core modules |
|---|---|---|---|
| Café | Café Kiosk, Café Growth | 600 – 1,800 | Restaurant/dining POS, kitchen handoff |
| Restaurant | Restaurant Starter, Restaurant Pro | 1,500 – 3,800 | Floor plan, KDS, recipes (manufacturing), CRM |
| Hotel | Hotel Starter, Hotel Pro | 2,200 – 5,500 | PMS, reservations; Pro adds restaurant + guest services |
| Resort | Resort Enterprise | 10,000 | All hospitality modules, events, HR, unlimited properties |
Signup: register.business.industry → hospitality → segment picker → plans filtered by signup_segment.
Preset keys: hospitality_cafe, hospitality_restaurant, hospitality_hotel, hospitality_resort
Property & rentals (RPM)
| Tier | KES/mo | Highlights |
|---|---|---|
| Landlord Starter | 1,000 | Units, leases, rent due, tenant CRM |
| Property Professional | 3,500 | Maintenance, tenant portal, accounts, multi-block |
| Property Enterprise | 8,500 | Screening, HR, integrations, unlimited units |
Module: rental_management · Preset keys: property_starter … property_enterprise
Manufacturing
| Tier | KES/mo | Highlights |
|---|---|---|
| Workshop Starter | 1,500 | BOMs, production orders, inventory link |
| Factory Professional | 4,500 | Workstations, costing prep, CRM, 2 plants |
| Factory Enterprise | 9,500 | Multi-site, HR, advanced costing, integrations |
Module: manufacturing (standalone workspace, not inside Inventory) · Preset keys: manufacturing_starter … manufacturing_enterprise
What each module flag sells (cross-vertical)
| Flag | Customer-facing value |
|---|---|
reports |
Standard reporting |
analytics |
KPI dashboard |
advanced_reports |
Cost / margin visibility |
expenses |
Expense tracking |
accounts |
Books, GL, financial reports |
crm |
Customers, leads, quotes pipeline |
integrations |
eTIMS, payment rails, external hooks |
pos_credit |
On-account sales, refunds, supervisor discounts |
hr |
Employees, leave, attendance, Kenya payroll |
manufacturing |
BOMs, production orders |
pharmacy_management |
Pharmacy suite |
rental_management |
Rental / RPM suite |
hospitality_* |
Accommodation, restaurant, events, guest services |
Operations (product & engineering)
| Task | Where |
|---|---|
| Change list prices or limits | Edit config/tier_blueprints.php → Platform → Sync catalogue |
| Tune one customer / pilot | Platform tier edit UI (modules, permissions, caps) |
| Signup plan list | show_on_signup, industry, signup_segment (hospitality) |
| Menu visibility by tier | Platform → Menu manager + menu_tiers |
| Enforce modules on HTTP | subscription.routes middleware + config/subscription_route_modules.php |
| Enforce permissions | rbac.subscription_gated + tier-synced Spatie permissions |
Local URLs: signup industry register.business.industry · platform tiers http://localhost/platform/tiers · compare ?industry=retail
Sales positioning (one-liners)
- Kiosk (500): “Owner + one cashier, one counter, compliant receipts — nothing you don’t need.”
- Growth (2,500): “When you hire more staff and want customers and charts, not spreadsheets.”
- Enterprise (10,000): “Branches, HR, payroll, and integrations for a chain that outgrew basic POS.”
- Pharmacy: “Built for dispensaries — batches and expiry, not aisle retail.”
- Hospitality: “Pay for rooms, tables, or both — café plans never show hotel PMS.”
Last updated: May 2026 — sync with IndustrySubscriptionTierSeeder after blueprint edits.