Capacity & Scaling Analysis

Pre-work for Session 1 | Prepared: 2026-02-17


The Scaling Story (3-sentence summary for Danny)

Envo is built on a serverless architecture (Vercel + Supabase) that scales automatically with demand — we do not need to buy bigger servers as we grow. The primary cost drivers are usage-based: LLM calls per tenant conversation, Twilio per WhatsApp/SMS message, and VAPI per voice minute — meaning costs grow proportionally with tenant activity, not just property count. At 3,000 properties our estimated platform cost is GBP 1.50—4.50 per property per month (depending on tenant interaction volume), and the BYOAK model lets us shift the most expensive costs (LLM, Twilio, voice) to larger customers.


Infrastructure Stack

Plain-English version: Everything runs in the cloud, managed by third parties. No servers to maintain.

LayerServiceWhy It Scales
Web app + APIVercel (Next.js)Serverless — spins up capacity automatically per request, scales to zero when idle
DatabaseSupabase (PostgreSQL + pgvector)Managed cloud database; we can upgrade compute independently of storage
AuthSupabase AuthIncluded; handles up to 100K monthly active users on Pro plan
File storageSupabase StoragePay-per-GB; stores issue photos, compliance documents
AI brainClaude (Anthropic) with OpenAI fallbackPay-per-token; no capacity limits, multi-provider fallback chain
EmbeddingsOpenAI text-embedding-3-smallPay-per-token; one-time cost per document, near-zero per query
WhatsApp + SMSTwilioPay-per-message; no infrastructure to manage
VoiceVAPIPay-per-minute; includes STT + TTS + telephony
EmailSendGridPay-per-email; Essentials plan from GBP 16/mo

Key point: Nothing in this stack has a hard capacity ceiling. Every layer is pay-as-you-go or upgradeable. The question is not “can it handle 3,000 properties?” but “what does it cost at 3,000 properties?”


Cost Drivers

1. LLM Generation (Claude / OpenAI)

  • What it is: Every tenant conversation triggers AI calls — intent classification, RAG retrieval, response generation, and tool use (e.g. creating issues).
  • How it scales: Per-message (each tenant message = 1+ LLM call). A typical conversation might be 4-8 messages.
  • Current pricing: Claude Sonnet 4 = 15/M output tokens. A single query-response cycle uses roughly 1,500 input tokens (system prompt + context + retrieved chunks) and 300 output tokens.
  • Estimated cost per query: ~$0.01-0.03 (from RAG Pipeline doc; validated by token pricing).
  • Estimated cost per conversation (6 messages avg): ~$0.06-0.18.
ScaleAssumed conversations/moMonthly LLM cost
100 properties200GBP 12-36
500 properties1,000GBP 60-180
1,000 properties2,000GBP 120-360
3,000 properties6,000GBP 360-1,080

Assumption: ~2 conversations per property per month (conservative for HMOs; could be higher). Pricing converted at $1 = GBP 0.80 approximately.

2. Embeddings (OpenAI)

  • What it is: Converting property documents (house rules, manuals, lease info) into vectors for AI search.
  • How it scales: One-time cost per document upload + near-zero per query.
  • Current pricing: 0.0001.
  • Per-query cost: ~$0.0001 (negligible).
  • At scale: Even at 3,000 properties with 20 documents each = 60,000 documents. Initial embedding cost ~ GBP 5-10 total. Ongoing query costs negligible.

Verdict: Not a meaningful cost driver. Effectively free.

3. Twilio — WhatsApp

  • What it is: Sending and receiving WhatsApp messages to/from tenants.
  • How it scales: Per-message. Both inbound and outbound are charged.
  • Current pricing: ~0.01-0.03 per message depending on template vs free-form.
  • Estimate per conversation (6 messages avg): ~$0.06-0.18.
ScaleAssumed messages/moMonthly WhatsApp cost
100 properties1,200GBP 10-17
500 properties6,000GBP 48-86
1,000 properties12,000GBP 96-173
3,000 properties36,000GBP 288-518

Assumption: 12 messages per property per month (both directions combined). WhatsApp is the primary channel.

4. Twilio — SMS

  • What it is: SMS notifications to landlords, vendors, and tenants (e.g., issue updates, vendor assignments).
  • How it scales: Per-message.
  • Current pricing: ~$0.046 per outbound SMS (UK).
  • Estimate: 3-5 SMS per issue (landlord notification, vendor assignment, tenant update).
ScaleAssumed SMS/moMonthly SMS cost
100 properties300GBP 11
500 properties1,500GBP 55
1,000 properties3,000GBP 110
3,000 properties9,000GBP 331

Assumption: ~1 issue per property per month with 3 SMS notifications per issue.

5. VAPI — Voice AI

  • What it is: AI-powered phone line for tenants to call and report issues verbally.
  • How it scales: Per-minute of call time.
  • Current pricing: $0.13-0.31 per minute all-in (VAPI platform + STT + LLM + TTS + telephony).
  • Estimate per call: 3-5 minutes average = $0.39-1.55 per call.
ScaleAssumed calls/moMonthly voice cost
100 properties20GBP 6-25
500 properties100GBP 31-124
1,000 properties200GBP 62-248
3,000 properties600GBP 187-744

Assumption: ~20% of properties generate 1 voice call per month. Voice is a secondary channel behind WhatsApp.

6. Hosting & Database

  • What it is: The platform itself — web app hosting and database.
  • How it scales: Mostly fixed costs with step-ups at certain thresholds.
  • Supabase Pro: 110/mo for dedicated 2-core at 1,000+ properties).
  • Vercel Pro: $20/mo per team member. Usage-based beyond included credits.
ScaleSupabaseVercelTotal hosting
100 propertiesGBP 20GBP 16GBP 36
500 propertiesGBP 20-40GBP 16-32GBP 36-72
1,000 propertiesGBP 88GBP 24-48GBP 112-136
3,000 propertiesGBP 88-200GBP 40-80GBP 128-280

Note: These are the costs that scale most slowly. They are largely fixed until we hit database compute limits (~8GB RAM threshold).

7. SendGrid — Email

  • What it is: Email notifications and potentially email-based issue intake.
  • How it scales: Per-email. Free tier retired May 2025.
  • Current pricing: Essentials plan from $19.95/mo for up to 50K emails.
  • At scale: Even at 3,000 properties, monthly email volume is likely under 50K. Stays on Essentials.
ScaleMonthly email cost
All scales (up to 3,000)GBP 16

Verdict: Flat cost, not a scaling concern.


Cost-Per-Property Estimate

This table combines all cost centres into a per-property monthly estimate. All figures in GBP.

Cost CentrePer-Property (100 props)Per-Property (500 props)Per-Property (3,000 props)Scales WithConfidence
LLM (Claude + OpenAI)0.12-0.360.12-0.360.12-0.36MessagesMedium — depends heavily on conversation volume
WhatsApp (Twilio)0.10-0.170.10-0.170.10-0.17MessagesMedium — depends on channel mix
SMS (Twilio)0.110.110.11IssuesMedium — depends on notification design
Voice (VAPI)0.06-0.250.06-0.250.06-0.25Call minutesLow — voice adoption is uncertain
Hosting (Vercel)0.160.03-0.060.01-0.03Fixed/steppedHigh — known pricing
Database (Supabase)0.200.04-0.080.03-0.07Fixed/steppedHigh — known pricing
Email (SendGrid)0.160.030.005FixedHigh — known pricing
Embeddings (OpenAI)~0~0~0DocumentsHigh — negligible
TOTAL0.91-1.410.49-1.060.43-0.99

Key Takeaway

At 3,000 properties, the estimated platform cost is GBP 0.43-0.99 per property per month before any margin. The fixed costs (hosting, database) become negligible per-property at scale. The variable costs (LLM, messaging, voice) dominate and scale linearly.

Important caveats:

  • These estimates assume moderate tenant engagement (~2 conversations/property/month). HMOs with 6+ tenants per property could be 3-5x higher.
  • Voice costs are the most uncertain — if voice adoption is high, it becomes the single largest cost.
  • All per-message costs are approximate and subject to provider pricing changes.
  • No cost is included for team salaries, support overhead, or Envo’s own operational costs.

Scaling Limits & Bottlenecks

What breaks first?

PriorityBottleneckTrigger PointFixCost
1Database compute~500-1,000 properties (complex queries with RLS joins)Upgrade Supabase compute tierGBP 88-200/mo
2pgvector search latency~50,000+ document chunks (semantic search slows)HNSW index tuning, or migrate to dedicated vector DB (Qdrant/Pinecone)GBP 50-200/mo
3WhatsApp throughputMeta rate limits on shared Twilio numberBYOAK (customer uses own Twilio) or multiple Twilio numbersCustomer-funded
4LLM rate limitsHigh concurrent conversationsMulti-provider fallback already designed (Claude OpenAI Kimi GLM)No extra cost
5Single-DB multi-tenancyCompliance requirements from enterprise clientsSchema-per-tenant migration (ADR-001 acknowledges this risk)Significant engineering

What does NOT break?

  • Vercel — Serverless, auto-scales. No action needed.
  • Supabase Auth — 100K MAU included. We will not hit this with 3,000 properties (landlords + staff only; tenants do not authenticate).
  • SendGrid — 50K emails/mo on Essentials is plenty.
  • Embedding storage — pgvector handles millions of vectors with proper indexing.

Pre-scaling investments needed

  1. Database indexing strategy — Need proper indexes on org_id, property_id, status columns before scaling past ~500 properties. (Designed but should be load-tested.)
  2. Connection pooling — Supabase’s built-in PgBouncer, but may need tuning for concurrent serverless function calls.
  3. Cost monitoring — No spend tracking is currently in place (noted as a gap in Costs & Usage doc). Need alerts before scaling.
  4. Load testing — System has not been deployed to production yet. Need baseline performance data.

BYOAK Opportunity

ADR-014 defines a three-tier white-label model (Basic / Premium / Partner) where larger customers bring their own API keys.

Which costs can be shifted?

Cost CentreShiftable via BYOAK?Available FromImpact
LLM (Claude/OpenAI)YesPremium tierShifts the largest variable cost (~35% of total)
SendGrid (email)YesPremium tierMinor savings but adds customer control
Twilio (WhatsApp + SMS)YesPartner tierShifts second-largest variable cost (~25% of total)
VAPI (voice)YesPartner tierShifts most uncertain cost
Supabase (database)NoShared infrastructure, cannot split
Vercel (hosting)NoShared infrastructure, cannot split

What this means for pricing

At the Premium tier (BYOAK for LLM + SendGrid), Envo’s cost-per-property drops to roughly GBP 0.25-0.55 because the LLM spend — our biggest variable cost — moves to the customer’s own Anthropic/OpenAI account.

At the Partner tier (BYOAK for everything), Envo’s cost-per-property drops to approximately GBP 0.03-0.10 — essentially just our share of hosting and database.

The BYOAK pricing implication

BYOAK customers cost Envo significantly less to serve, but they also expect a lower platform fee since they are paying their own API bills. The pricing model needs to reflect this:

  • Basic tier: Envo absorbs all costs. Higher per-property fee. Simpler for small landlords.
  • Premium/Partner tier: Customer pays own API bills. Lower platform fee. But Envo still captures value through the software itself.

This is a strong scaling story: as customers get larger, the most expensive costs shift to them, and Envo’s margin on infrastructure improves.


Open Questions

These need answers before we can confidently set pricing:

Must-answer for pricing

  1. What is the actual conversation volume per property per month? Our estimates assume ~2 conversations/property/month. HMOs with 6+ tenants could be much higher. We need real data from a pilot.
  2. What is the channel mix? The cost difference between WhatsApp-only and WhatsApp+Voice is significant. Voice is 5-10x more expensive per interaction than chat.
  3. What does “included” mean? If we do a hybrid model (base fee + usage), what is a reasonable “included” volume before overage kicks in?
  4. SendGrid free tier is gone. The Costs & Usage doc assumed a free tier for email. SendGrid retired it in May 2025. Minimum cost is now ~GBP 16/mo (Essentials). Minor, but needs updating.

Should-answer before scaling

  1. No production deployment yet. All performance assumptions are theoretical. We need to deploy and load-test before committing to scale targets.
  2. No cost tracking in place. We cannot currently measure actual per-conversation or per-property costs. This should be instrumented before pilot.
  3. Database compute upgrade threshold. At what property count does Supabase Pro base compute become insufficient? Need load testing with realistic data volumes.
  4. VAPI vs Retell decision. The docs reference both. Pricing and capability differ. Need a final decision on voice provider before costing.
  5. Multi-region. All current architecture assumes a single Supabase region. If we expand beyond the UK, we need to consider data residency and latency.
  6. Tenant density per property. An HMO with 8 tenants generates fundamentally different load than a single-let. Pricing per-property may need a “per-unit” modifier.

Nice-to-know

  1. Competitive pricing. What do Fixflo, Arthur Online, and Goodlord charge per property? This caps what we can charge regardless of our costs.
  2. LLM price trajectory. Claude and OpenAI prices have been falling. Our per-query cost could halve within 12 months. Should we price aggressively now?

Summary Table: Cost at Scale

100 properties500 properties1,000 properties3,000 properties
Total monthly platform cost (GBP)91-141245-530530-1,1301,290-2,970
Per-property (GBP/mo)0.91-1.410.49-1.060.53-1.130.43-0.99
Per-property with BYOAK Premium (GBP/mo)0.30-0.550.25-0.55
Per-property with BYOAK Partner (GBP/mo)0.05-0.150.03-0.10
Biggest cost driverHosting (fixed)LLM + TwilioLLM + TwilioLLM + Twilio

Bottom line: The infrastructure costs are low. Even at the high end, GBP 1/property/month gives us excellent margin room if the per-property price is GBP 5-15+. The real question is not “can we afford to scale?” but “what conversation volume should we include in the base price?”


Prepared for Session 1: Product Capability & Packaging. All estimates based on published provider pricing as of February 2026 and assumptions documented inline. No production usage data is available yet.