Files
hub/docs/SUITES_AND_PRICING_MODEL.md
kelly b47fc35857 feat: expand Management Suite with AR, budgets, expenses, fixed assets, recurring schedules, and CFO dashboard
Adds comprehensive financial management capabilities:
- Accounts Receivable (AR) with customers, invoices, payments
- Budget management with lines and variance tracking
- Expense tracking with approval workflow
- Fixed asset management with depreciation
- Recurring transaction schedules (AP, AR, journal entries)
- CFO dashboard with financial KPIs
- Cash flow forecasting
- Directory views for customers and vendors
- Division filtering support across all modules
2025-12-06 23:26:14 -07:00

19 KiB
Raw Permalink Blame History

Suites & Pricing Model Architecture Overview

1. Purpose

This document defines:

  • The Suite architecture (7 Suites total)
  • How each business (Cannabrands, Curagreen, Leopard AZ, Canopy) is mapped to Suites
  • How menus/navigation should eventually be suite-driven
  • The pricing and usage model for the Sales Suite
  • Procurement flow between subdivisions and Canopy
  • Cross-division access for users
  • Ground rules to prevent breaking existing behavior while we evolve the system

This is the ground truth for implementation and future design.


2. Corporate Structure

Canopy is the parent management company. Cannabrands, Curagreen, and Leopard AZ are subdivisions.

                    ┌─────────────────┐
                    │     CANOPY      │
                    │  (Parent Co)    │
                    │                 │
                    │  • AP/AR        │
                    │  • Finance      │
                    │  • Budgets      │
                    │  • Approvals    │
                    └────────┬────────┘
                             │ owns
        ┌────────────────────┼────────────────────┐
        │                    │                    │
        ▼                    ▼                    ▼
┌───────────────┐    ┌───────────────┐    ┌───────────────┐
│   Curagreen   │    │  Leopard AZ   │    │  Cannabrands  │
│  (Processing) │    │  (Mfg/Deliv)  │    │    (Sales)    │
│               │    │               │    │               │
│  Operations   │    │  Operations   │    │  Operations   │
│  only         │    │  only         │    │  only         │
└───────────────┘    └───────────────┘    └───────────────┘

Key principle: All money flows through Canopy. Subdivisions handle operations; Canopy handles finance.


3. Suites Overview (7 Total)

We model functionality in high-level Suites, not scattered feature flags.

# Suite Target User Priced?
1 Sales Suite External customers (Brands) Yes - $495/mo
2 Processing Suite Internal (Curagreen, Leopard AZ) No
3 Manufacturing Suite Internal (Leopard AZ) No
4 Delivery Suite Internal (Leopard AZ) No
5 Management Suite Internal (Canopy) No
6 Brand Manager Suite External (brand partners) No
7 Dispensary Suite Buyers (dispensaries/retailers) No

Note: Enterprise Plan is NOT a suite - it's a flag (is_enterprise_plan) that removes usage limits.

3.1 Sales Suite (Usage-Tiered, Sold to Customers)

The commercial brain for brands and sales orgs.

Core Features:

  • Products & Inventory
  • Orders & Invoicing
  • Menus & Promotions
  • Campaigns & Marketing
  • Buyers & Accounts (CRM)
  • Buyer Intelligence
  • Analytics
  • Automations & Orchestrator
  • Copilot / AI Assist
  • Batches (from supplied COAs)

Shared Features (all suites get these):

  • Messaging (omnichannel)
  • Procurement (vendors, requisitions, POs, receiving)
  • Tools (settings, users, departments, integrations)

Only the Sales Suite is priced and usage-tiered.

3.2 Processing Suite (Internal / Enterprise Only)

Used by processing entities (e.g., Curagreen, Leopard AZ solventless).

Core Features:

  • Biomass intake
  • Batches and runs
  • BHO extraction (Curagreen)
  • Solventless extraction washing & pressing (Leopard AZ)
  • Yield tracking & conversions
  • Material transfers between entities
  • Work Orders from Sales → Processing
  • Processing analytics
  • Compliance (licenses, COAs)

Shared Features:

  • Messaging
  • Procurement
  • Tools

3.3 Manufacturing Suite (Internal / Enterprise Only)

Used by manufacturing entities (e.g., Leopard AZ packaging & production).

Core Features:

  • Work Orders from Sales/Processing
  • BOM (Bill of Materials) - Manufacturing only
  • Packaging & labeling
  • SKU creation from batches
  • Lot tracking
  • Production queues & status
  • Manufacturing analytics
  • Compliance (licenses, COAs)
  • Batches

Shared Features:

  • Messaging
  • Procurement
  • Tools

3.4 Delivery Suite (Internal / Enterprise Only)

Used by delivery/fulfillment operations (e.g., Leopard AZ).

Core Features:

  • Pick/Pack screens
  • Delivery manifests
  • Delivery windows
  • Drivers & vehicles
  • Route management
  • Proof of delivery (POD)
  • Delivery analytics

Shared Features:

  • Messaging
  • Procurement
  • Tools

3.5 Management Suite (Internal / Canopy Only)

Used by top-level management (Canopy as parent company).

Core Features:

  • Org-wide dashboard
  • Cross-business analytics
  • AP (Accounts Payable) - all vendor bills, PO payments
  • AR (Accounts Receivable) - all customer invoices, collections
  • Budget Management - set budgets per subdivision
  • Budget Exception Approvals - approve POs that exceed budget
  • Inter-company Ledger - track transfers between subdivisions
  • Financial Reports - P&L, balance sheet, cash flow
  • Forecasting
  • Operational KPIs
  • Usage & billing analytics

Shared Features:

  • Messaging
  • Tools

3.6 Brand Manager Suite (External Partners)

View-only portal for external brand teams to see their brand performance.

Core Features (all read-only, brand-scoped):

  • View sales history
  • View orders
  • View products
  • View inventory status
  • View promotions
  • View conversations
  • View buyer accounts
  • View brand-level analytics

Communication:

  • Messaging (their brand only - can send/receive)

Explicitly NOT available:

  • View costs, margins, wholesale pricing
  • Edit products, create promotions
  • Manage settings
  • View other brands

3.7 Dispensary Suite (Buyers)

For buyer businesses (dispensaries, retailers) accessing the marketplace.

Core Features:

  • Marketplace access
  • Ordering
  • Buyer portal
  • Promotions (view/redeem)

Shared Features:

  • Messaging
  • Tools

4. Shared Features (All Suites)

These features are available to ALL operational suites:

4.1 Messaging

All suites get omnichannel messaging capabilities.

4.2 Procurement

Feature Description
Vendors & Suppliers Each subdivision manages their own
Requisitions Request purchases
Purchase Orders Create POs
Goods Receiving Confirm deliveries

4.3 Tools

Feature Description
Settings Business settings
Users User management
Departments Department structure
Integrations Third-party integrations
Audit Log Activity tracking

5. Procurement & Finance Flow

5.1 Who Can Do What

Role Create Requisitions Create POs Approve Requisitions Pay (via Canopy)
Department Managers (their dept)
Owners/Admins (all)
Canopy Finance (budget exceptions)

5.2 Flow

Department Manager or Owner/Admin:

Creates REQUISITION or PO directly
    └─▶ Canopy AP pays when invoiced

Budget Exception (PO exceeds subdivision budget):

PO created
    └─▶ Flagged as over budget
        └─▶ Canopy must approve
            └─▶ Canopy AP pays

5.3 Canopy's Role

Canopy doesn't approve routine POs - they just handle the money:

Feature Description
AP Processing Pay vendor invoices matched to POs
AR Collections Collect customer payments
Budget Management Set budgets per subdivision
Budget Exception Approvals Only intervene when PO exceeds budget
Financial Reporting Consolidated view across all subdivisions

6. AR Invoicing vs CRM Invoicing

The platform has two distinct invoicing systems that serve different purposes. This is intentional, not duplication.

6.1 CRM Invoices (Sales Suite)

Tables: crm_invoices, crm_invoice_items, crm_invoice_payments

Purpose: Customer billing for sales transactions

Aspect Description
Audience Buyer-facing (dispensaries, retailers)
Linked To Orders, Deals, Quotes, CRM Contacts
Customer Reference account_id → Buyer's business
Features PDF generation, payment links, email delivery, view tracking
Workflow Quote → Invoice → Payment → Fulfillment

Use Cases:

  • Send invoice to dispensary after order placed
  • Convert quote to invoice when deal closes
  • Track customer payment status
  • Generate PDF for customer records

6.2 AR Invoices (Management Suite)

Tables: ar_invoices, ar_invoice_items, ar_payments, ar_customers

Purpose: Internal accounting and collections management

Aspect Description
Audience Internal finance team (Canopy)
Linked To Standalone AR Customers (not CRM contacts)
Customer Reference ar_customer_id → ArCustomer record
Features Aging reports, collections workflow, GL posting, credit management
Workflow Invoice → Aging → Collections → Write-off/Payment

Use Cases:

  • Consolidated receivables across all divisions
  • Aging analysis (30/60/90 day buckets)
  • Collections tracking and follow-up
  • Credit limit management
  • Financial reporting and GL integration
  • Receivables not tied to platform orders

6.3 Why Both Exist

┌─────────────────────────────────────────────────────────────────┐
│                        SALES SUITE                              │
│                                                                 │
│   Quote → Order → CRM Invoice → Customer Payment                │
│                      │                                          │
│   (Buyer-facing billing document)                               │
└─────────────────────────────────────────────────────────────────┘
                       │
                       │ feeds into (future integration)
                       ▼
┌─────────────────────────────────────────────────────────────────┐
│                     MANAGEMENT SUITE                            │
│                                                                 │
│   AR Invoice → Aging → Collections → GL Posting                 │
│                                                                 │
│   (Internal accounting record for finance team)                 │
└─────────────────────────────────────────────────────────────────┘

Key Distinctions:

CRM Invoices AR Invoices
What you send to customer What finance tracks internally
Sales document Accounting record
One business's customers Consolidated across divisions
Linked to orders/deals May include non-order receivables
Customer portal access Internal dashboards only

6.4 Source of Truth

  • For customer billing: CRM Invoices (crm_invoices)
  • For accounting/collections: AR Invoices (ar_invoices)

Both systems may eventually be linked (AR record references CRM invoice), but they serve fundamentally different business functions and should remain separate.

6.5 When to Use Which

Scenario System
Customer needs invoice for their records CRM Invoice
Finance needs aging report AR Invoice
Sales rep checking if customer paid CRM Invoice
CFO reviewing consolidated receivables AR Invoice
Send payment reminder to customer CRM Invoice
Collections team following up AR Invoice
Customer disputes an invoice CRM Invoice (original document)
Write off bad debt AR Invoice

7. Cross-Division Access

Users can access multiple businesses via department assignments.

7.1 How It Works

  1. Add user to another business via business_user pivot
  2. Assign them to a department in that business
  3. Department has suite permissions that control what they can do

7.2 Example

Sarah (User)
├── Business: Cannabrands (primary)
│   └── Department: Sales Team
│       └── Suite: Sales (full permissions)
│
└── Business: Leopard AZ (cross-division)
    └── Department: Manufacturing
        └── Suite: Manufacturing (manage_bom only)

7.3 Permission Hierarchy

User Permission =
    Business Role (owner gets all)
    + Department Permissions (inherited from department's suite permissions)
    + Individual Overrides (grants/revokes specific to user)
Role Access Level
Owner Full access to everything
Admin Full access except some owner-only actions
Manager Department permissions + can manage team
Member Department permissions only

8. Business → Suite Mapping

8.1 Cannabrands

  • Role: Sales & brand representation
  • Suites: Sales Suite
  • Plan: Enterprise (internal)

8.2 Curagreen

  • Role: Processing BHO extraction
  • Suites: Processing Suite
  • Plan: Enterprise (internal)

8.3 Leopard AZ

  • Role: Solventless processing + Manufacturing + Delivery
  • Suites:
    • Processing Suite (solventless)
    • Manufacturing Suite
    • Delivery Suite
  • Plan: Enterprise (internal)

8.4 Canopy

  • Role: Parent company - financial & management oversight
  • Suites: Management Suite
  • Plan: Enterprise (internal)

9. Suite-Driven Navigation (Target State)

When a user logs in:

  1. We determine their Business
  2. We read the Suites assigned to that Business
  3. We check user's Department permissions for each suite
  4. We build the sidebar/navigation based on accessible features

9.1 Sales Suite Menu

  • Dashboard
  • Brands
  • Products & Inventory
  • Orders
  • Menus
  • Promotions
  • Buyers & Accounts (CRM)
  • Conversations
  • Campaigns
  • Automations
  • Copilot
  • Analytics
  • Settings

9.2 Processing Suite Menu

  • Dashboard
  • Batches / Runs
  • Biomass Intake
  • Washing / Pressing (solventless)
  • Extraction Runs (BHO)
  • Yields
  • Material Transfers
  • Work Orders
  • Compliance (Licenses, COAs)
  • Processing Analytics
  • Settings

9.3 Manufacturing Suite Menu

  • Dashboard
  • Work Orders
  • BOM
  • Packaging
  • Labeling
  • SKU Creation
  • Lot Tracking
  • Production Queue
  • Compliance (Licenses, COAs)
  • Manufacturing Analytics
  • Settings

9.4 Delivery Suite Menu

  • Dashboard
  • Pick & Pack
  • Delivery Windows
  • Manifests
  • Drivers & Vehicles
  • Routes
  • Proof of Delivery
  • Delivery Analytics
  • Settings

9.5 Management Suite Menu (Canopy)

  • Org Dashboard
  • Cross-Business Analytics
  • Finance
    • Accounts Payable
    • Accounts Receivable
    • Budgets
    • Inter-company Ledger
  • Forecasting
  • Operations Overview
  • Usage & Billing
  • Settings

9.6 Brand Manager Menu

  • Brand Dashboard
  • Sales History
  • Orders
  • Products
  • Inventory
  • Promotions
  • Conversations
  • Analytics

9.7 Dispensary Suite Menu

  • Marketplace
  • My Orders
  • Favorites
  • Promotions
  • Messages
  • Settings

10. Sales Suite Pricing & Usage Model

10.1 Pricing

Base Sales Suite Plan:

  • $495 / month
  • Includes 1 brand

Additional Brands:

  • $195 / month per additional brand
  • Each additional brand comes with its own usage allotment

No public free tier. Enterprise internal plan is not sold.

10.2 Included Features (Per Brand)

Each brand under the Sales Suite gets:

  • Full Inventory & Product Management
  • Menus & Promotions
  • Buyers & Accounts (CRM)
  • Conversations & Messaging
  • Marketing & Campaign Tools
  • Buyer Intelligence
  • Analytics (unlimited views)
  • Automations & Orchestrator
  • Copilot (AI-assisted workflows)

10.3 Usage Limits (Per Brand) Initial Targets

Resource Limit
SKUs 15 SKUs per brand
Menu Sends 100 menu sends per month
Promotion Impressions 1,000 promotion impressions per month
Messaging 500 messages per month (SMS, email, in-app, WhatsApp combined)
AI Credits 1,000 AI credits per brand per month
Buyer & CRM Contacts 1,000 buyers/contacts per brand
Analytics Unlimited analytics views

10.4 Add-ons (Future)

  • Extra SKU packs (+10, +25, +100)
  • Extra menu send packs
  • Extra promotion impression packs
  • Extra CRM contact packs
  • Extra AI credit packs
  • Extra messaging volume

11. Enterprise Plan

Enterprise is NOT a Suite - it's a billing/limit override.

Enterprise Plan (is_enterprise_plan = true) means:

  • Usage limits are bypassed (brands, SKUs, contacts, messages, AI credits, etc.)
  • Feature access is still controlled by assigned Suites

A business with Enterprise Plan still needs actual Suites assigned to determine which features/menus are available.

Used only for internal operations (Cannabrands, Curagreen, Leopard AZ, Canopy).


12. Safety & Backward Compatibility

  1. Existing navigation and behavior must be preserved until suite-based nav is explicitly enabled.

  2. Changes should be additive:

    • New DB columns for Suites and usage
    • New services for Suite→Menu and usage tracking
    • Config flag app.suites.enabled
  3. Migrations must be reversible.

  4. Feature-flag toggles allow:

    • Switching between current menu and suite-driven menu
    • Disabling suite enforcement if issues arise
  5. Legacy module flags (has_crm, has_marketing, etc.) remain in "Advanced Overrides" admin area until fully migrated.


13. Implementation Phases

Phase Description
Phase 1 Suites & Docs Define Suites, business mapping, and pricing
Phase 2 Suite consolidation Reduce to 7 suites, update seeder and permissions
Phase 3 User Management UI Settings > Users with full permission control
Phase 4 Suite-Driven Menu Resolver Implement Suite→Menu mapping behind flag
Phase 5 Usage Counters Track menu sends, messages, AI usage, contacts, SKUs
Phase 6 Usage Enforcement & Warnings Soft and hard limits, usage dashboards
Phase 7 Public Pricing Site Marketing-facing pricing components

This document is the canonical reference for suite architecture.