Pricing Feature Audit

Last updated: 2026-04-06 Purpose: Map what’s actually built in envo-dashboard/ against the three-tier pricing structure. Honest assessment — no aspirational features, no “coming soon” hand-waving.


The Three Tiers (As Sold)

Tier 1 — AI Tenant EngineTier 2 — AI Operations LayerTier 3 — AI + Managed Ops
Setup£995£2,500£5,000
Monthly£299£899£2,500
BuyerSmall landlordsLettings agencies, HMO operatorsSerious operators scaling portfolios

Part 1: Feature-by-Feature Reality Check

Tier 1 — AI Tenant Engine

AI WhatsApp Responses — BUILT

The WhatsApp integration is production-grade with two provider paths:

  • Twilio Business API (/api/tenant/webhooks/whatsapp) — receives inbound messages, validates Twilio signature, processes through tenant engine, sends replies via Twilio REST API.
  • Meta Cloud API (/api/tenant/webhooks/whatsapp-meta) — alternative provider path using Meta’s direct WhatsApp Cloud API.

The tenant engine itself uses Claude tool-use orchestration (ADR-017), not keyword matching. The AI has five tools at its disposal:

ToolPurpose
ask_for_detailsRequest more info about an issue
ask_for_photoRequest photo evidence after details gathered
create_issueCreate maintenance issue with urgency, category, description
respondSend conversational response
escalateEscalate to human staff (includes GDPR disclosure)

Model routing is cost-optimised: Claude Sonnet on first turn, issue creation, and when tools are available; Claude Haiku for routine follow-up gathering turns.

Verdict: Fully shippable. This is genuinely impressive for Tier 1.


AI Web Chat — BUILT

Full tenant-facing chat portal at /chat:

  • JWT-based tenant authentication (no Supabase auth dependency)
  • Conversation list with status filtering
  • Real-time messaging with the same AI engine as WhatsApp
  • File upload support (photos, documents)
  • Message history persistence
  • Dev-mode tenant impersonation for testing

The chat shares the same tenant engine as WhatsApp and voice — same AI, same tools, same issue creation flow. Channel is just the transport layer.

Verdict: Fully shippable.


AI Voice Intake — BUILT

Twilio voice webhook (/api/tenant/webhooks/voice) handles inbound calls. The voice channel feeds into the same tenant engine orchestration pipeline.

Verdict: Built and functional. Quality depends on Twilio voice-to-text accuracy, which is external.


Issue Logging Dashboard — BUILT

The issues page (/issues) is one of the most polished features:

  • Three view modes: Kanban board (drag-and-drop status columns), data grid, and list view
  • Full CRUD: Create, view, edit issues with validation
  • Status workflow: Enforced transitions (NEW → IN_PROGRESS → VENDOR_ASSIGNED → COMPLETED, with CANCELLED/reopen)
  • Status transition dialog: Business rule enforcement with optional notes
  • Filtering: By status, urgency, category, property, tenant
  • Sorting: By urgency, date created
  • Search: Full-text across issues
  • Attachments: Photo/document upload per issue
  • Event audit trail: Every state change logged with user, timestamp, previous/new data

Verdict: Production-quality. This alone justifies dashboard access.


Basic Categorisation — BUILT

The tenant engine auto-categorises issues during creation. Categories are derived from conversation context by the LLM — not a fixed keyword map. The AI suggests a category based on the tenant’s description, and it’s stored on the issue record.

Categories include: plumbing, electrical, heating, structural, damp/mould, pest control, appliances, security, communal areas, and general.

Verdict: Works well. “Basic” undersells it — it’s LLM-powered categorisation.


Tenant Info Capture — BUILT

The tenant engine has a sophisticated identity resolution flow:

  1. Phone match — E.164 lookup against tenant records
  2. Email match — if phone fails
  3. Fuzzy match — name + postcode combination (for when tenants use different numbers)
  4. Multi-property handling — if a tenant has multiple linked properties, the AI asks which one

Identity states: UNIDENTIFIED → IDENTIFIED → CONFIRMED → ACTIVE

If the tenant can’t be identified, the AI challenges them (“I don’t have your number on file”) and gathers details for manual matching.

Verdict: More sophisticated than “capture” implies. This is identity resolution.


Simple Workflow Visibility — BUILT

Issue status flow is visible throughout the dashboard:

  • Status badges on all issue views
  • Event timeline on issue detail pages
  • Status transition history with timestamps and actors
  • Kanban board gives visual workflow overview

Verdict: Delivered.


Standard Onboarding — PARTIAL

What exists:

  • Bulk CSV import for properties and tenants (/api/import/batch/*) with intelligent deduplication, normalised address matching, and per-row error reporting
  • AI column mapping (/api/import/map-columns) — suggests CSV column → field mappings
  • Welcome email template with 4-step setup checklist
  • Empty-state CTAs on dashboard directing new users to import

What’s missing:

  • No guided step-by-step onboarding wizard
  • No progress tracking (“you’ve completed 2 of 5 setup steps”)
  • No interactive property/tenant creation flow for non-CSV users

Verdict: The import tooling is solid for agencies with existing spreadsheets. Solo landlords adding 2-3 properties would benefit from a simpler guided flow.


Tier 1 Overall: 90% Delivered

The AI tenant engine across all three channels is real, tested, and differentiated. The issue dashboard is comprehensive. The main gap is onboarding UX for smaller landlords who don’t have CSV exports.

Can you charge £299/mo for this today? Yes. The 24/7 AI response capability alone replaces a part-time admin role.


Tier 2 — AI Operations Layer

AI Triage & Urgency Routing — BUILT

The tenant engine includes:

  • Emergency keyword detection — fast path (bypasses LLM, ~80ms) for keywords like gas, fire, flood, heating failure, security breach
  • Urgency classification — LOW, MEDIUM, HIGH, EMERGENCY assigned by AI during issue creation
  • Emergency auto-escalation — creates EMERGENCY urgency issue AND sends immediate notification to landlord (email + SMS if Twilio configured)
  • Escalation tool — AI can escalate any conversation to human staff with reason

The emergency path includes UK GDPR disclosure and immediate landlord notification.

Verdict: Fully built. The emergency detection is particularly strong — keyword-triggered fast path means no LLM latency on genuine emergencies.


Automated Reminders — BUILT (with caveats)

Rent chase automation (runs daily at 06:00 UTC):

LevelTriggers AtChannelTargetStatus
11+ days overdueSMSTenantLogic built, Twilio SMS integration TODO
23+ days overdueSMS + EmailTenantLogic built, integrations TODO
37+ days overdueEmail (formal notice)TenantLogic built, email template TODO
414+ days overdueEmailLandlordFully working via Resend

Key implementation details:

  • Max 1 chase per day per tenant (deduplication)
  • Creates RentChaseEvent records for audit trail
  • Level 4 sends rentOverdueLandlordEmail to all org admins/owners
  • Levels 1-3 have the logic and escalation rules but log to console ([STUB-SMS], [STUB-EMAIL]) pending Twilio/Resend integration for tenant-facing messages

Document expiry alerts (runs daily at 07:00 UTC):

  • Monitors 8 compliance document types: Gas Safety, EPC, EICR, HMO License, Fire Risk, Insurance, Legionella, PAT
  • Finds documents expiring within 30 days OR expired in last 90 days
  • Sends one consolidated email per org to all admins/owners
  • Includes table of all expiring/expired docs with days remaining

Weekly digest (runs Mondays at 08:00 UTC):

  • Collects: new issues this week, total open issues, urgent open issues, expiring docs, expired docs
  • Only sends if at least one stat > 0 (no empty digest spam)
  • Email to all admin/owner users per org

Verdict: The automation infrastructure is solid and the cron scheduling is production-ready. Level 4 rent chase and document expiry alerts are fully operational. Levels 1-3 rent chase need the tenant-facing messaging integration completed — the logic, escalation rules, and deduplication are all there, just needs the send path wired up.


Workflow Coordination Logic — PARTIAL

What exists:

  • Enforced status transitions with business rules
  • Event audit trail on every state change
  • Issue assignment (status: VENDOR_ASSIGNED)
  • Status transition dialog requiring notes

What’s missing:

  • No multi-step vendor workflow (assign → quote → approve → schedule → complete)
  • No automated follow-ups after vendor assignment
  • No SLA timers with alerts (“vendor hasn’t responded in 48h”)
  • No vendor self-service portal

Verdict: The issue lifecycle is well-modelled, but “workflow coordination” implies more than status tracking. The gap between “issue assigned to vendor” and “issue completed” is currently a black box.


Advanced Dashboard Visibility — BUILT

The analytics page (/analytics) runs 30 parallel Prisma queries computing real metrics:

Overview metrics (with prior-period deltas):

  • Property count, active tenants, open issues, new/resolved issues in period
  • Rent collection rate (%) with trend
  • Arrears value (£)
  • Compliance score (% properties with zero expired docs)
  • AI deflection rate (% conversations handled without human)

Rent & arrears analytics:

  • Monthly collection rate time series
  • Monthly arrears £ time series
  • Arrears by property (top 5)
  • Overdue payment count

Compliance analytics:

  • Compliance score with property count
  • Document expiry breakdown by type (expired / expiring / valid)
  • Risk by property (top 10, scored: expired×3 + expiring×1)
  • 12-month expiry calendar

Maintenance analytics:

  • Weekly created/resolved time series
  • Backlog by status (NEW, IN_PROGRESS, VENDOR_ASSIGNED)
  • SLA breaches (issues stuck in NEW > 7 days)
  • Resolution time by urgency (median per level)
  • Category breakdown
  • Emergency rate %

AI performance analytics:

  • Deflection rate, escalation rate
  • Weekly deflection trend
  • Channel split (WhatsApp %, Voice %, Chat %)
  • Escalation by channel
  • Average messages to resolution
  • Currently active conversations

All computed server-side in the database — no JS-side aggregation. Time range selector: 7d, 30d, 90d, 12m. CSV export per section.

Verdict: This is genuinely comprehensive. “Advanced dashboard” undersells it — this is an operational intelligence layer. Every metric is real, computed from actual data, with prior-period comparison.


Deeper Categorisation Intelligence — BUILT

Same LLM-powered categorisation as Tier 1 (there’s no separate “deeper” version). The categorisation is already AI-powered across all tiers.

Verdict: This shouldn’t be a separate line item. It’s the same feature as Tier 1’s “basic categorisation” — the AI doesn’t get smarter per tier. Consider reframing this as “category-based analytics and reporting” which IS a Tier 2 differentiator (maintenance analytics break down by category).


Operational Analytics — BUILT

See “Advanced Dashboard Visibility” above. The analytics are the same feature — having both as separate line items is redundant.

Verdict: Merge with “Advanced Dashboard Visibility” in marketing. Internally it’s one feature.


Light Customisation — FEATURE-FLAGGED BUT NOT BUILT

The feature flag customisation exists in the gating system but:

  • No custom AI greeting configuration UI
  • No branding/logo upload
  • No custom colour schemes
  • No configurable auto-responses

The flag gates… nothing visible yet.

Verdict: Gap. This is the easiest quick win for Tier 2 differentiation — even just “set your organisation’s AI greeting message” would tick this box.


Priority Onboarding — NOT BUILT

No differentiated onboarding experience between tiers. Every customer gets the same import flow + welcome email.

Verdict: This is a services differentiator, not a software feature. Fine to promise, but it’s a process commitment, not a product capability.


Tier 2 Overall: 75% Delivered

The analytics and AI triage are strong — arguably the best parts of the product. Rent chase automation is structurally complete but needs tenant-facing messaging wired up. The main gaps are workflow coordination (vendor management) and customisation.

Can you charge £899/mo for this today? Yes, if you lean into the analytics and AI triage as the differentiators. The 3x price jump from Tier 1 is justified by operational intelligence (analytics) + automated follow-up (rent chase, document alerts, weekly digest). Frame it as “you get the AI engine PLUS the system watches your portfolio and alerts you to problems.”


Tier 3 — AI + Managed Ops Layer

VA Account Manager Layer — NOT SOFTWARE

This is a human services layer delivered through envo-ops. The ops console exists as a separate app for Envo’s internal team.

Verdict: Not a dashboard feature. This is correct — Tier 3’s value is people, not software.


Tenant Follow-Ups — PARTIAL

What exists:

  • Rent chase automation (4-level escalation as described above)
  • Document expiry alerts
  • Weekly digest emails

What’s missing:

  • General-purpose tenant follow-up system (e.g., “check in with tenant 7 days after issue resolved”)
  • Scheduled follow-up reminders
  • Custom follow-up sequences

Verdict: Rent-specific follow-ups are built. General tenant follow-ups are not.


Rent Chasing Reminders — BUILT

Covered in detail under Tier 2’s “Automated Reminders” section. The full 4-level escalation system with deduplication and audit trail.

Verdict: This is the same feature as Tier 2’s automated reminders. If rent chasing is a Tier 3 feature, it shouldn’t be included in Tier 2. Decide which tier owns this.


Contractor Coordination Assistance — NOT BUILT

The vendors page and appointments page are both placeholders:

  • /vendors — exists in navigation, minimal/stub implementation
  • /appointments — exists in navigation, minimal/stub implementation

No vendor:

  • Directory with contact details and trade specialities
  • Assignment workflow
  • Quote request/approval flow
  • Scheduling
  • Rating/review system
  • Self-service portal

Verdict: This is the largest software gap across all three tiers. Vendor management is referenced in Tier 2 (workflow coordination) and Tier 3 (contractor coordination) — neither is built.


Inbox Assistance — NOT IN DASHBOARD

No shared inbox feature exists. The communications hub shows conversations but:

  • Staff reply is behind a feature flag (NEXT_PUBLIC_ENABLE_STAFF_REPLY) and is nascent
  • No assignment to team members
  • No internal notes/comments on conversations
  • No SLA tracking per conversation
  • No canned responses

For Tier 3, “inbox assistance” implies the VA team uses envo-ops to handle messages — which is a services process, not a dashboard feature.

Verdict: The communications hub is read-heavy. Landlords can view and escalate, but active management tooling is thin.


Premium Onboarding Support — NOT SOFTWARE

Same as Tier 2’s priority onboarding — a services commitment, not a product feature.


Priority Support Response — NOT SOFTWARE

SLA commitment, not a dashboard feature.


Tier 3 Overall: 25% Software-Delivered

This is by design — Tier 3’s value proposition is “outsourced operations, not software.” The rent chase automation is the main software differentiator, and it arguably belongs in Tier 2.

Can you charge £2,500/mo for this today? Only if the VA layer via envo-ops is genuinely staffed and delivering value. The software delta between Tier 2 and Tier 3 is almost zero. The price jump must be justified by human operational support.


Part 2: Email & Notification System (Detailed)

The email system is more comprehensive than it might appear. Here’s every email the platform sends:

#EmailTriggerRecipientsTemplate
1WelcomePost-signup/onboardingNew user4-step setup checklist
2New IssueIssue created (any channel)All org admins/ownersUrgency badge, property, tenant, description
3Emergency AlertEmergency keyword detectedAll org admins/ownersRed alert, immediate action required
4EscalationAI escalates to humanAll org admins/ownersEscalation reason, conversation link
5Tenant MessageNew message from tenantAll org admins/ownersMessage preview, conversation link
6Issue Status ChangeStatus transitionAll org admins/ownersOld → New status badges, issue details
7Document ExpiryDaily cron (07:00 UTC)All org admins/ownersTable of expiring/expired docs
8Weekly DigestMonday cron (08:00 UTC)All org admins/ownersPortfolio stats summary
9Payment FailedStripe webhookBilling contactPayment retry instructions
10Rent Overdue (Landlord)14+ days overdue (cron)All org admins/ownersTenant name, amount, days overdue

Provider: Resend (with [STUB-EMAIL] console fallback if API key missing).

SMS notifications (via Twilio) trigger on EMERGENCY/HIGH urgency issues — conditional on Twilio credentials being configured.

This is a real notification system. It’s not just “we send emails” — it’s event-driven notifications across the full operational lifecycle.


Part 3: Feature Flag Gating (What Gates What)

The feature flag system is database-backed with three resolution layers:

  1. Org-level overrides (can be time-limited — e.g., trial access)
  2. Plan defaults (JSONB on the plans table)
  3. Global fallback (feature_definitions table)

Starter Plan (Tier 1) — Default Enabled Features

Feature FlagWhat It Enables
ai_whatsappWhatsApp channel
ai_webchatWeb chat portal
ai_voiceVoice call handling
issue_dashboardIssue CRUD and views
basic_categorisationAI category assignment
tenant_captureIdentity resolution from conversations
workflow_visibilityIssue status tracking

Pro Plan (Tier 2) — Additional Features

Feature FlagWhat It Enables
ai_triageAI prioritisation and urgency routing
automated_remindersRent chase escalation + doc expiry alerts
workflow_coordinationMulti-step vendor workflows (partially built)
advanced_dashboardFull analytics suite
customisationCustom AI greetings + branding (not yet built)
operational_analyticsOperational metrics and export

Premium Plan (Tier 3) — Additional Features

Feature FlagWhat It Enables
va_supportVirtual assistant from Envo ops team
rent_chasingAutomated rent follow-up
contractor_coordinationEnd-to-end vendor management (not yet built)

Note: The flags exist and are checked server-side via hasFeature(ctx, 'feature_key'). The gating infrastructure is ready — even features that aren’t fully built have their flags wired in, so enabling them is a config change, not a code change.


Part 4: What’s Actually Differentiating Each Tier

Strip away the marketing language. Here’s what each tier upgrade actually gives the customer in terms of real, working software:

Tier 1 → Tier 2 Upgrade (£299 → £899)

The customer gets:

  1. Analytics dashboard — 30+ metrics across finance, maintenance, compliance, and AI performance with time-range selection and CSV export
  2. Rent chase automation — 4-level escalating reminders (Level 4 fully working, Levels 1-3 structurally complete)
  3. Document expiry monitoring — daily compliance checks across 8 document types with email alerts
  4. Weekly portfolio digest — automated Monday summary email
  5. AI emergency fast-path — keyword-triggered instant escalation (bypasses LLM latency)
  6. Priority flagging — tenant and property priority levels (NORMAL → CRITICAL)

Is the 3x price justified? The analytics alone are substantial — this is operational intelligence that replaces manual spreadsheet tracking. The automated reminders replace a daily admin task. Together, they shift the product from “AI receptionist” to “AI operations system.”

Tier 2 → Tier 3 Upgrade (£899 → £2,500)

The customer gets (in software):

  1. Rent chasing — same automation as Tier 2 (this needs repositioning)

Everything else is human-delivered via the VA layer. The software delta is essentially zero.

Is the 2.8x price justified? Only through the VA hours. If you’re delivering 10-20 hours of operational support monthly, that’s £125-250/hour effective rate. The customer is paying for “I don’t need to hire an operations person” — which at UK salary rates (£25-35k for a property admin) is defensible if you deliver genuine workload reduction.


Part 5: Pricing Integrity Issues

Issue 1: Feature Overlap Between Tiers

  • “Deeper categorisation intelligence” (Tier 2) = same feature as “basic categorisation” (Tier 1). The AI doesn’t get smarter per tier.
  • “Operational analytics” (Tier 2) = same feature as “advanced dashboard” (Tier 2). Two line items, one feature.
  • “Rent chasing” (Tier 3) overlaps heavily with “automated reminders” (Tier 2).

Recommendation: Clean up the feature list. Each tier should have clearly distinct capabilities, not reworded versions of the same thing.

Issue 2: Thin Software Delta Between Tier 2 and Tier 3

The only software feature exclusive to Tier 3 is rent_chasing — which is architecturally identical to the automated_reminders in Tier 2. Every other Tier 3 promise is human-delivered.

Recommendation: Either:

  • A) Build contractor coordination as a genuine Tier 3 software differentiator (vendor portal, assignment workflow, scheduling)
  • B) Explicitly position Tier 3 as “Tier 2 + managed services” and stop listing software features — list service commitments instead (response times, VA hours, dedicated account manager)

Issue 3: Customisation Is Promised But Not Built

“Light customisation” is a Tier 2 feature that doesn’t exist yet. If a Tier 2 customer asks “where do I customise my AI greeting?”, there’s no answer.

Recommendation: Build a minimal customisation page — even just:

  • Custom AI greeting message
  • Organisation logo upload
  • Custom auto-reply for out-of-hours

This is low effort, high perceived value, and closes the most visible gap.

Issue 4: Settings Pages Are Mostly Stubs

Team management, notifications, billing, and integrations tabs in settings are placeholder UIs. A paying customer clicking through settings will find 4 of 6 tabs non-functional.

Recommendation: Either build these out or remove the tabs. Empty tabs are worse than no tabs — they signal an unfinished product.


Must-Build for Tier 2 Credibility

FeatureEffortImpactWhy
Custom AI greeting message1-2 daysHighCloses “customisation” gap, easy win
Wire up rent chase Levels 1-3 (tenant SMS/email)2-3 daysHighCompletes the automation story
Settings: team management (real)3-5 daysMediumPaying customers expect team features
Settings: billing (show plan, invoices)2-3 daysMediumSelf-service reduces support load

Must-Build for Tier 3 Credibility

FeatureEffortImpactWhy
Vendor directory + assignment1-2 weeksCritical”Contractor coordination” is a headline feature
Staff reply in conversations (remove flag)1-2 daysHighVA team needs to reply to tenants
Internal notes on conversations2-3 daysMediumVA team needs to annotate context
Conversation assignment to team members3-5 daysMediumVA workload distribution

Nice-to-Have (All Tiers)

FeatureEffortImpactWhy
Guided onboarding wizard3-5 daysMediumImproves activation for small landlords
Notification preferences UI2-3 daysLowReduces email fatigue complaints
Tenant follow-up scheduler (general)1 weekMedium”Check in 7 days after resolution”
Appointment scheduling1-2 weeksMediumCompletes vendor workflow

Part 7: Honest Tier Summary

Tier 1 — AI Tenant Engine: SELL IT

Everything promised is built. The AI tenant engine across WhatsApp, voice, and chat is a genuine product. Issue logging is comprehensive. Identity resolution is sophisticated. This tier stands on its own.

Confidence to sell: 9/10

Tier 2 — AI Operations Layer: SELL IT (with targeted fixes)

Analytics and emergency triage are the strongest parts of the entire product. Rent chase and document expiry automation are real. The gaps (customisation UI, full rent chase integration, settings) are closable in 1-2 weeks of focused work.

Confidence to sell: 7/10 today, 9/10 after closing gaps

Tier 3 — AI + Managed Ops: SELL THE SERVICE, NOT THE SOFTWARE

The software delta from Tier 2 is near-zero. That’s fine — this tier’s value is human operational support. But:

  • The VA team needs tools (staff reply, internal notes, conversation assignment)
  • “Contractor coordination” needs at least a vendor directory to be credible
  • Position this as “your outsourced operations team” not “premium software”

Confidence to sell: 5/10 today (service readiness dependent), 8/10 after vendor tooling + ops console


Appendix: Complete Email Catalogue

#TemplateEvent TriggerChannelRecipients
1welcomeEmailUser signupEmailNew user
2newIssueEmailIssue createdEmailOrg admins/owners
3emergencyEmailEmergency detectedEmail + SMSOrg admins/owners
4escalationEmailAI escalatesEmailOrg admins/owners
5messageEmailTenant messageEmailOrg admins/owners
6issueStatusChangedEmailStatus transitionEmailOrg admins/owners
7documentExpiryEmailDaily cronEmailOrg admins/owners
8weeklyDigestEmailMonday cronEmailOrg admins/owners
9paymentFailedEmailStripe webhookEmailBilling contact
10rentOverdueLandlordEmail14+ days overdueEmailOrg admins/owners

Appendix: Cron Job Schedule

JobScheduleWhat It Does
rent-chaseDaily 06:00 UTCProcess overdue rent escalation (Levels 1-4)
document-expiryDaily 07:00 UTCCheck expiring/expired compliance docs, send alerts
weekly-digestMonday 08:00 UTCCompile and email portfolio summary

Appendix: Feature Flag Reference

FlagCategoryDefaultTier
ai_whatsappCommunicationEnabled1
ai_webchatCommunicationEnabled1
ai_voiceCommunicationEnabled1
issue_dashboardCoreEnabled1
basic_categorisationCoreEnabled1
tenant_captureCoreEnabled1
workflow_visibilityCoreEnabled1
ai_triageOperationsDisabled2
automated_remindersOperationsDisabled2
workflow_coordinationOperationsDisabled2
advanced_dashboardOperationsDisabled2
customisationOperationsDisabled2
operational_analyticsAnalyticsDisabled2
va_supportManagedDisabled3
rent_chasingManagedDisabled3
contractor_coordinationManagedDisabled3