Skip to content

RBS Ecosystem Pricing Architecture

Created: January 23, 2026 Status: PROPOSAL - Pending Implementation Purpose: Unified pricing model that preserves app value while enabling ecosystem growth


Executive Summary

This document proposes a pricing architecture that:

  1. Preserves individual app value - Each app maintains independent pricing
  2. Rewards ecosystem adoption - Bulk discounts for multi-app self-service tenants
  3. Enables enterprise customization - Sales Copilot manages custom deals
  4. Tracks consumption - Overage billing for shared resources
  5. Increases revenue with integrations - Each integration adds to monthly billing

Part 1: Refactored Strategic Priorities

Immediate Priorities (Q1 2026 - Remaining)

PriorityGapImpactEffort
P0Extract @rbs/payments shared packageEliminates 8+ duplicated files, single source of truth2 weeks
P0Implement webhook idempotency in all appsPrevents duplicate payments/actions1 week
P1Complete MercadoPago webhook flowEnables card payments >$8K MXN1 week
P1Create ecosystem_pricing tables in CaminoFoundation for unified billing1 week
P2Build Sales Copilot deal configuration UIEnables enterprise custom pricing2 weeks

Short-term Priorities (Q2 2026)

PriorityGapImpact
P1Implement overage tracking & billingRevenue from high-usage tenants
P1Build ecosystem billing dashboardConsolidated invoicing
P2Design Layer 3 (tenant subscriptions)Tenants can bill their customers
P2Add bundle discount automationSelf-service multi-app discounts

Deferred (Q3-Q4 2026)

PriorityItemRationale
P3Mobile apps for POSAfter billing infrastructure complete
P3Colombia DIAN complianceAfter pricing model validated
P4White-label solutionsRequires stable multi-tenant billing

Part 2: Ecosystem Pricing Architecture

Core Principles

1. ADDITIVE MODEL
   Each app subscription ADDS to monthly billing
   Integrations ADD features, not replace subscriptions

2. VALUE PRESERVATION
   Caracol at $425/user is worth $425/user
   Adding Camino doesn't reduce Caracol's price

3. ECOSYSTEM REWARDS
   Multi-app tenants get bulk discounts (5-15%)
   Discounts apply to base subscriptions, not overages

4. CONSUMPTION BILLING
   Shared resources (AI, stamps, voice) have soft limits
   Overages billed at tier-specific rates
   Enterprise gets best overage rates

Pricing Tiers Overview

┌─────────────────────────────────────────────────────────────────────────────┐
│                        RBS ECOSYSTEM PRICING MODEL                           │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│  TIER 1: SELF-SERVICE (Individual Apps)                                      │
│  ├── Each app has its own subscription                                       │
│  ├── No minimum commitment                                                   │
│  ├── Standard overage rates                                                  │
│  └── Bundle discount when 2+ apps subscribed                                 │
│                                                                              │
│  TIER 2: SELF-SERVICE BUNDLE (Multi-App Discount)                            │
│  ├── 2 apps: 5% discount on base subscriptions                               │
│  ├── 3 apps: 10% discount on base subscriptions                              │
│  ├── 4+ apps: 15% discount on base subscriptions                             │
│  └── Discounts do NOT apply to overages or add-ons                           │
│                                                                              │
│  TIER 3: ENTERPRISE (Custom via Sales Copilot)                               │
│  ├── Custom per-user rates negotiated                                        │
│  ├── Custom implementation fees                                              │
│  ├── Custom overage rates (best rates available)                             │
│  ├── Custom allocation limits                                                │
│  ├── SLA-backed support                                                      │
│  └── Managed through Camino Sales Copilot                                    │
│                                                                              │
└─────────────────────────────────────────────────────────────────────────────┘

Part 3: Self-Service Pricing (Individual Apps)

App-Specific Pricing

Each app maintains its independent pricing model:

AppPricing ModelBase RateNotes
CaracolPer management user$425/user/moOperational users FREE
La HojaTiered SaaS$499 / $999 / $1,499/moPer location
Cosmos PetTiered SaaS$599 / $1,299 / $2,499/moPer clinic
ConstanzaTiered SaaS$590 / $1,490 / $3,990/moBy entities/features
Camino CRMTiered + Consumption$499 / $1,499 / $3,999/moAI/Voice included
AgoraTiered SaaSTBDPer firm
PlenuraCommission5-10% per bookingPlatform commission
ManchaPer-coverTBDReservation system

Implementation Fees (One-Time)

Apps with complex setup charge implementation:

AppBásicoProfesionalEmpresarialEnterprise
Caracol$12,000$24,000$38,000$52,500+
Constanza$5,000$10,000$20,000Custom
La Hoja$8,000$15,000$25,000Custom
Other apps---As needed

Part 4: Bundle Discounts (Self-Service Multi-App)

Discount Structure

When a tenant subscribes to multiple apps, they receive a discount on base subscriptions only:

Apps SubscribedDiscountApplies To
2 apps5%Base subscription only
3 apps10%Base subscription only
4+ apps15%Base subscription only

Exclusions (NO discount):

  • Implementation fees
  • Overage charges
  • Add-on purchases
  • One-time stamp packs

Example: Restaurant Chain

Tenant: "Tacos El Buen Sabor" (3 locations, 5 management users)

INDIVIDUAL APP PRICING:
├── Caracol: 5 users × $425 = $2,125/mo
├── Constanza Professional: $1,490/mo
├── Mancha (reservations): $499/mo
└── Subtotal: $4,114/mo

BUNDLE DISCOUNT (3 apps = 10%):
├── Discount: $4,114 × 10% = $411.40
└── Monthly Total: $3,702.60/mo (+ IVA)

OVERAGES (billed separately, no discount):
├── AI tokens over limit: $0.08/1K tokens
├── Stamps over limit: $2.99/stamp
└── Voice over limit: $1.50/minute

Bundle Detection Logic

typescript
// In Camino subscription service
async function calculateBundleDiscount(ecosystemTenantId: string): Promise<number> {
  const activeSubscriptions = await getActiveSubscriptions(ecosystemTenantId);
  const appCount = new Set(activeSubscriptions.map(s => s.app_name)).size;

  if (appCount >= 4) return 0.15; // 15%
  if (appCount >= 3) return 0.10; // 10%
  if (appCount >= 2) return 0.05; // 5%
  return 0; // No discount for single app
}

Part 5: Enterprise Custom Pricing (Sales Copilot)

Sales Copilot Integration

Enterprise deals are managed through Camino Sales Copilot, which:

  1. Configures custom pricing per tenant
  2. Tracks deal lifecycle (proposal → negotiation → close)
  3. Generates contracts with custom terms
  4. Monitors usage against custom limits
  5. Alerts on renewal opportunities

Custom Pricing Configuration

Enterprise tenants have a custom_tier_config record that overrides standard pricing:

sql
-- New table in Camino Supabase
CREATE TABLE custom_tier_configs (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  ecosystem_tenant_id TEXT NOT NULL UNIQUE,

  -- Deal metadata (linked to Sales Copilot)
  deal_id UUID REFERENCES deals(id),
  sales_rep_id UUID REFERENCES users(id),
  contract_start DATE NOT NULL,
  contract_end DATE,

  -- Custom pricing per app
  app_pricing JSONB NOT NULL DEFAULT '{}',
  -- Example: {
  --   "caracol": { "per_user_rate": 400, "implementation_fee": 60000 },
  --   "constanza": { "monthly_rate": 2500 },
  --   "camino": { "monthly_rate": 2000, "ai_tokens_included": 5000000 }
  -- }

  -- Custom overage rates (best available)
  overage_rates JSONB NOT NULL DEFAULT '{}',
  -- Example: {
  --   "ai_tokens": 0.03,      -- per 1K (vs 0.08 standard)
  --   "stamps": 1.75,          -- per stamp (vs 2.99 standard)
  --   "voice_minutes": 0.80    -- per minute (vs 1.50 standard)
  -- }

  -- Custom allocations
  allocations JSONB NOT NULL DEFAULT '{}',
  -- Example: {
  --   "ai_tokens": null,       -- unlimited
  --   "stamps": 2000,
  --   "voice_minutes": 1000
  -- }

  -- Support level
  support_tier TEXT DEFAULT 'enterprise', -- standard, priority, dedicated
  sla_response_hours INTEGER DEFAULT 4,

  -- Metadata
  notes TEXT,
  created_at TIMESTAMPTZ DEFAULT NOW(),
  updated_at TIMESTAMPTZ DEFAULT NOW()
);

-- Index for quick lookup
CREATE INDEX idx_custom_tier_tenant ON custom_tier_configs(ecosystem_tenant_id);

Sales Copilot Deal Flow

┌─────────────────────────────────────────────────────────────────┐
│                    SALES COPILOT FLOW                            │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│  1. LEAD CAPTURE                                                 │
│     └── Lead enters via Camino (UTM tracking, scoring)           │
│                                                                  │
│  2. QUALIFICATION                                                │
│     └── Sales rep assesses: Multi-app? High volume? Custom?      │
│                                                                  │
│  3. DEAL CREATION                                                │
│     └── Create deal in Sales Copilot with:                       │
│         ├── Apps needed (Caracol, Constanza, Camino, etc.)       │
│         ├── User counts (management, operational)                │
│         ├── Volume estimates (stamps, AI, voice)                 │
│         └── Implementation requirements                          │
│                                                                  │
│  4. PRICING CONFIGURATION                                        │
│     └── Sales Copilot calculates:                                │
│         ├── Base pricing per app                                 │
│         ├── Custom per-user rates (if negotiated)                │
│         ├── Custom overage rates                                 │
│         ├── Implementation fee                                   │
│         └── Total contract value                                 │
│                                                                  │
│  5. PROPOSAL GENERATION                                          │
│     └── Auto-generate PDF proposal with:                         │
│         ├── Itemized pricing                                     │
│         ├── Feature breakdown                                    │
│         ├── SLA terms                                            │
│         └── Contract duration                                    │
│                                                                  │
│  6. NEGOTIATION                                                  │
│     └── Track changes, versions, approvals                       │
│                                                                  │
│  7. CLOSE                                                        │
│     └── On deal close:                                           │
│         ├── Create custom_tier_config record                     │
│         ├── Create app_subscriptions for each app                │
│         ├── Set up billing in Colectiva                          │
│         └── Trigger onboarding workflows                         │
│                                                                  │
│  8. ONGOING MANAGEMENT                                           │
│     └── Sales Copilot monitors:                                  │
│         ├── Usage vs allocations                                 │
│         ├── Overage trends                                       │
│         ├── Renewal dates                                        │
│         └── Upsell opportunities                                 │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

Enterprise Example: Viñedos y Bodegas

ENTERPRISE DEAL: Viñedos y Bodegas
├── Contract: 12 months
├── Implementation: $60,000 (one-time)

├── APP SUBSCRIPTIONS (Monthly):
│   ├── Caracol: 5 mgmt users × $400 (custom rate) = $2,000
│   │   └── 15 operational users = FREE
│   ├── Constanza Professional (custom): $2,500
│   ├── Camino Business (custom): $2,000
│   └── Mancha: $400 (custom)

├── MONTHLY BASE: $6,900

├── CUSTOM ALLOCATIONS:
│   ├── AI Tokens: 5,000,000/mo (vs 2M standard Business)
│   ├── CFDI Stamps: 500/mo
│   └── Voice Minutes: 200/mo

├── CUSTOM OVERAGE RATES:
│   ├── AI: $0.03/1K tokens (vs $0.05)
│   ├── Stamps: $1.75/stamp (vs $2.00)
│   └── Voice: $0.80/min (vs $1.20)

├── SUPPORT: Dedicated (4hr SLA)

└── TOTAL CONTRACT VALUE:
    ├── Implementation: $60,000
    ├── Year 1 Subscription: $82,800 ($6,900 × 12)
    └── Estimated Overages: ~$5,000
    ════════════════════════════════════
    TOTAL YEAR 1: ~$147,800 MXN

Part 6: Shared Resource Allocation & Overage Billing

Resource Types

ResourceOwnerUsed ByUnit
AI TokensCamino (Groq)All apps with AI featuresPer 1K tokens
CFDI StampsConstanza (SW PAC)All apps with invoicingPer stamp
Voice MinutesCamino (Twilio/Vapi)Apps with Voice AIPer minute
WhatsApp ConversationsCamino (Meta)Apps with WhatsAppPer conversation
Email SendsCamino (Resend)All appsPer email

Allocation Flow

┌─────────────────────────────────────────────────────────────────┐
│                  RESOURCE ALLOCATION FLOW                        │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│  1. SUBSCRIPTION CREATED                                         │
│     └── Camino creates subscription_allocations record           │
│         with limits from tier (or custom_tier_config)            │
│                                                                  │
│  2. APP REQUESTS RESOURCE                                        │
│     └── App calls Camino: POST /api/allocations/check            │
│         {                                                        │
│           "ecosystem_tenant_id": "...",                          │
│           "resource_type": "stamps",                             │
│           "quantity": 5                                          │
│         }                                                        │
│                                                                  │
│  3. CAMINO CHECKS ALLOCATION                                     │
│     ├── Within limit? → Approve, decrement remaining             │
│     ├── Over limit, overage allowed? → Approve, log overage      │
│     └── Over limit, overage blocked? → Reject with upgrade URL   │
│                                                                  │
│  4. APP USES RESOURCE                                            │
│     └── Constanza stamps CFDI, logs usage                        │
│                                                                  │
│  5. MONTHLY BILLING                                              │
│     └── Camino calculates:                                       │
│         ├── Base subscription (with bundle discount if any)      │
│         ├── Overage charges (usage × overage_rate)               │
│         └── Total due                                            │
│                                                                  │
│  6. INVOICE                                                      │
│     └── Colectiva generates invoice, Constanza stamps CFDI       │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

Overage Rates by Tier

ResourceStarterProfessionalBusinessEnterprise
AI Tokens (per 1K)Blocked$0.08$0.05$0.03
Stamps$3.50$2.99$2.00$1.75
Voice (per min)Blocked$1.50$1.20$0.80
WhatsAppBlocked$2.00$1.50$1.00

Part 7: Database Schema Changes

New Tables Required in Camino

sql
-- 1. Ecosystem tenant identity (cross-app linking)
CREATE TABLE ecosystem_tenants (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  billing_email TEXT NOT NULL UNIQUE,
  company_name TEXT NOT NULL,
  rfc TEXT,
  created_at TIMESTAMPTZ DEFAULT NOW()
);

-- 2. Custom enterprise configurations
CREATE TABLE custom_tier_configs (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  ecosystem_tenant_id UUID REFERENCES ecosystem_tenants(id),
  deal_id UUID REFERENCES deals(id),
  app_pricing JSONB NOT NULL DEFAULT '{}',
  overage_rates JSONB NOT NULL DEFAULT '{}',
  allocations JSONB NOT NULL DEFAULT '{}',
  support_tier TEXT DEFAULT 'standard',
  contract_start DATE,
  contract_end DATE,
  created_at TIMESTAMPTZ DEFAULT NOW(),
  updated_at TIMESTAMPTZ DEFAULT NOW()
);

-- 3. Per-app subscriptions (one per app per tenant)
CREATE TABLE app_subscriptions (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  ecosystem_tenant_id UUID REFERENCES ecosystem_tenants(id),
  app_name TEXT NOT NULL,
  tier TEXT NOT NULL,
  status TEXT NOT NULL DEFAULT 'trial',
  monthly_amount DECIMAL(10,2),
  implementation_fee DECIMAL(10,2),
  implementation_paid BOOLEAN DEFAULT false,
  trial_ends_at TIMESTAMPTZ,
  current_period_start TIMESTAMPTZ,
  current_period_end TIMESTAMPTZ,
  created_at TIMESTAMPTZ DEFAULT NOW(),
  UNIQUE(ecosystem_tenant_id, app_name)
);

-- 4. Resource allocations per subscription
CREATE TABLE subscription_allocations (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  subscription_id UUID REFERENCES app_subscriptions(id),
  resource_type TEXT NOT NULL,
  monthly_limit INTEGER,
  used_this_period INTEGER DEFAULT 0,
  overage_count INTEGER DEFAULT 0,
  reset_at TIMESTAMPTZ,
  PRIMARY KEY (subscription_id, resource_type)
);

-- 5. Usage log for audit and billing
CREATE TABLE service_usage_log (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  ecosystem_tenant_id UUID REFERENCES ecosystem_tenants(id),
  app_name TEXT NOT NULL,
  resource_type TEXT NOT NULL,
  quantity INTEGER NOT NULL,
  is_overage BOOLEAN DEFAULT false,
  unit_cost DECIMAL(10,4),
  total_cost DECIMAL(10,2),
  reference_id TEXT,
  created_at TIMESTAMPTZ DEFAULT NOW()
);

-- 6. Monthly billing records
CREATE TABLE ecosystem_invoices (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  ecosystem_tenant_id UUID REFERENCES ecosystem_tenants(id),
  period_start DATE NOT NULL,
  period_end DATE NOT NULL,

  -- Breakdown
  base_subscriptions_subtotal DECIMAL(10,2),
  bundle_discount_percent INTEGER DEFAULT 0,
  bundle_discount_amount DECIMAL(10,2) DEFAULT 0,
  overages_subtotal DECIMAL(10,2) DEFAULT 0,
  addons_subtotal DECIMAL(10,2) DEFAULT 0,

  -- Totals
  subtotal DECIMAL(10,2),
  iva DECIMAL(10,2),
  total DECIMAL(10,2),

  -- Status
  status TEXT DEFAULT 'draft',
  cfdi_uuid TEXT,
  paid_at TIMESTAMPTZ,

  created_at TIMESTAMPTZ DEFAULT NOW()
);

-- Indexes
CREATE INDEX idx_app_subs_tenant ON app_subscriptions(ecosystem_tenant_id);
CREATE INDEX idx_usage_log_tenant ON service_usage_log(ecosystem_tenant_id, created_at);
CREATE INDEX idx_invoices_tenant ON ecosystem_invoices(ecosystem_tenant_id, period_start);

Part 8: Implementation Roadmap

Phase 1: Foundation (2 weeks)

TaskOwnerDeliverable
Extract @rbs/payments packageDevShared npm package
Create ecosystem pricing tablesDevSupabase migrations
Implement webhook idempotencyDevAll apps updated
Complete MercadoPago webhooksDev/api/webhooks/mercadopago

Phase 2: Self-Service Billing (2 weeks)

TaskOwnerDeliverable
Build allocation checking APIDevPOST /api/allocations/check
Implement bundle discount logicDevAuto-calculate on billing
Create ecosystem billing dashboardDevColectiva /ecosystem
Build overage trackingDevMonthly usage aggregation

Phase 3: Enterprise Features (2 weeks)

TaskOwnerDeliverable
Add custom_tier_configs tableDevEnterprise pricing support
Build Sales Copilot deal UIDevPricing configurator
Generate PDF proposalsDevContract generation
Implement custom overage ratesDevPer-tenant rates

Phase 4: Integration Testing (1 week)

TaskOwnerDeliverable
End-to-end billing flow testQATest cases
Enterprise deal flow testQATest cases
Multi-app bundle testQATest cases
Overage billing testQATest cases

Part 9: Success Metrics

MetricTargetMeasurement
Multi-app adoption30% of tenants use 2+ appsMonthly
Enterprise deals5 enterprise contracts Q2Quarterly
Overage revenue15% of total revenueMonthly
Bundle discount utilization50% of multi-app tenantsMonthly
Billing accuracy99.9%Monthly audit

Appendix: Pricing Quick Reference

Self-Service Individual Apps

AppModelMonthly Range
Caracol$425/mgmt user$425 - $4,250+
La HojaTiered$499 - $1,499
Cosmos PetTiered$599 - $2,499
ConstanzaTiered$590 - $3,990
Camino CRMTiered$499 - $3,999

Bundle Discounts

AppsDiscount
25%
310%
4+15%

Enterprise Customization

ParameterNegotiable
Per-user rateYes
Monthly subscriptionYes
Implementation feeYes
Overage ratesYes (minimum floor)
AllocationsYes
SLA termsYes
Contract lengthYes

Document created: January 23, 2026Next review: After Phase 1 completion

Red Broom Software Ecosystem