# Quality Quote — Plans, Provisioning and Unit Economics

> Pricing snapshot: 20 August 2026. Figures are planning estimates, excluding VAT, refunds, chargebacks, salaries and marketing.

## 1. How a customer receives a plan

```text
Select plan
→ Stripe-hosted Checkout
→ successful payment
→ signed Stripe webhook
→ create/update subscription
→ write entitlements and usage limits
→ provision workspace features
→ send welcome/onboarding email
→ every backend request checks entitlement + current usage
```

Nothing is delivered manually. Stripe is the payment source of truth; our `subscriptions`, `entitlements` and `usage_ledger` tables control what the organisation can actually use.

When a subscription changes, the webhook recalculates limits. Upgrades unlock immediately. Downgrades take effect at the agreed billing boundary and preserve existing data in read-only form instead of deleting it.

## 2. Recommended commercial structure

### Option A — recommended

| Plan | Monthly | Annual | Locations | Users | Private cases | Main value |
|---|---:|---:|---:|---:|---:|---|
| Start | €12 | €120 | 1 | 3 | 100/month | Core manual quality loop |
| Improve | €29 | €290 | 1 | 10 | Fair-use unlimited | AI, verification, campaigns, rewards |
| Scale | €59 | €590 | 3 | 30 | Fair-use unlimited | Multi-location control, API and exports |

### Option B — if a €4 entry plan is essential

Call it **Lite**, not Start:

- €4/month or preferably €40/year.
- One location and one owner account.
- One QR link.
- 25 private cases/month.
- Inbox and acknowledgement email.
- No staff assignment, AI, recurring checks, campaigns, rewards or advanced analytics.
- 30-day history.

The purpose of Lite is acquisition. The complete owner-to-staff workflow begins at Start (€12). Annual billing is preferable because Stripe’s fixed fee is paid once per year instead of twelve times.

## 3. What is provisioned per plan

### Lite €4

After `checkout.session.completed` and `invoice.paid`:

```json
{
  "locations": 1,
  "users": 1,
  "cases_per_month": 25,
  "qr_campaigns": 1,
  "history_days": 30,
  "staff_tasks": false,
  "ai_triage": false,
  "recurring_checks": false,
  "campaigns": false,
  "customer_rewards": false,
  "api_access": false
}
```

The customer receives the workspace, onboarding wizard, location page, Google destination field, one branded link/QR, feedback inbox and basic emails.

### Start €12

```json
{
  "locations": 1,
  "users": 3,
  "cases_per_month": 100,
  "qr_campaigns": 1,
  "history_days": 90,
  "staff_tasks": true,
  "ai_triage": false,
  "recurring_checks": 3,
  "campaigns": false,
  "customer_rewards": false,
  "api_access": false
}
```

This is the lowest plan that demonstrates the real product: owner/manager plus two staff accounts, assignment, evidence, verification and three recurring checks.

### Improve €29

```json
{
  "locations": 1,
  "users": 10,
  "cases_per_month": "fair_use_unlimited",
  "qr_campaigns": 10,
  "history_months": 24,
  "staff_tasks": true,
  "ai_triage": true,
  "recurring_checks": 25,
  "campaigns": true,
  "customer_rewards": true,
  "api_access": false
}
```

### Scale €59

```json
{
  "locations": 3,
  "users": 30,
  "cases_per_month": "fair_use_unlimited",
  "qr_campaigns": "unlimited",
  "history": "unlimited",
  "staff_tasks": true,
  "ai_triage": true,
  "recurring_checks": "unlimited",
  "campaigns": "advanced",
  "customer_rewards": true,
  "cross_location_analytics": true,
  "api_access": true,
  "webhooks": true,
  "exports": true,
  "priority_support": true
}
```

Scale customers receive three separate location links/QR systems, manager permissions per location, consolidated reporting, comparisons, shared campaigns, external webhooks/API keys and exports.

## 4. APIs and infrastructure

| Need | Recommended service/API | Why |
|---|---|---|
| Web frontend and backend | Cloudflare Workers | One edge runtime; low fixed cost and large included usage |
| Relational database | Cloudflare D1 initially | Organisations, memberships, cases, tasks, points and subscriptions are relational |
| Files | Cloudflare R2 | Private task evidence, logos and QR assets; no internet-egress charge |
| Background work | Cloudflare Queues + Cron Triggers | AI jobs, email delivery, reminders, digests and reconciliation |
| Bot defence | Cloudflare Turnstile/WAF/rate limits | Public feedback endpoints need abuse protection |
| Business/customer login | Google OAuth + email OTP | Verified identity plus universal fallback |
| AI classification | OpenAI Responses API | Structured category, urgency, root cause and task suggestions |
| Subscription payments | Stripe Checkout, Billing, Portal and Webhooks | Recurring payments without storing card data |
| Transactional email | Resend API initially | Simple API, domain authentication, delivery webhooks and templates |
| Optional SMS | Add later only if validated | Phone verification/SMS raises cost and data sensitivity |
| Monitoring | Sentry or equivalent + Cloudflare logs | Errors, traces, releases and alerting |
| Analytics | Privacy-conscious product analytics | Funnel, activation, cases, resolution and recovery metrics |

We do not need Google Business Profile API for the MVP. The business supplies its own Google Review destination URL. Google OAuth is used for identity, not for writing reviews on behalf of customers.

## 5. Current provider cost anchors

- Cloudflare Workers Paid: $5/month minimum, including 10 million requests and 30 million CPU milliseconds per month.
- D1 on Workers Paid: first 25 billion rows read, 50 million rows written and 5 GB storage included monthly.
- R2 Standard: first 10 GB storage, 1 million Class A and 10 million Class B operations included; no egress fee.
- Queues on Workers Paid: first 1 million operations included; then $0.40/million operations.
- Resend: free up to 3,000 emails/month with a 100/day cap; Pro is $20/month for 50,000 emails, then $0.90/1,000.
- OpenAI GPT-5.4 nano: $0.20/million input tokens and $1.25/million output tokens. GPT-5.4 mini: $0.75/million input and $4.50/million output.
- Stripe standard EEA card: 1.5% + €0.25 per successful payment.

## 6. Simple cost model

Assumptions for one private case:

- 8 dynamic backend requests.
- 4 transactional emails on average.
- 1 AI triage call when the plan includes AI.
- AI call: 1,500 input + 350 output tokens.
- 2 MB average private evidence only when a task is created.

Approximate marginal costs after shared free/included allowances:

| Item | Approximate cost |
|---|---:|
| GPT-5.4 nano triage | $0.00074/case |
| GPT-5.4 mini triage | $0.00270/case |
| Four Resend emails at Pro-plan effective rate | $0.00160/case |
| R2 storage for 2 MB retained one month | $0.00003/case |
| Workers/D1/Queues at early scale | Usually inside included usage |

AI is not the expensive part. Support time, payment fees, customer acquisition, refunds and reward-funded promotions matter far more.

## 7. Stripe math per monthly payment

Using 1.5% + €0.25 for a standard EEA card:

| Price | Stripe fee | Net before VAT/other costs | Fee percentage |
|---:|---:|---:|---:|
| €4 | €0.31 | €3.69 | 7.75% |
| €12 | €0.43 | €11.57 | 3.58% |
| €29 | €0.69 | €28.32 | 2.36% |
| €59 | €1.14 | €57.87 | 1.92% |

For a €40 annual Lite payment, the approximate Stripe fee is €0.85, leaving €39.15 before VAT and other costs—much better than twelve €4 transactions, which would pay roughly €3.72 in total fees.

## 8. Example early-stage monthly platform bill

Assume 100 paying businesses:

- 50 Lite
- 30 Start
- 15 Improve
- 5 Scale
- 6,000 private cases/month
- 24,000 transactional emails/month
- 3,000 AI triage calls/month
- 12 GB evidence storage

Estimated shared platform/API cost:

| Cost | Estimate/month |
|---|---:|
| Cloudflare Workers base | $5 |
| D1 | $0 within included usage |
| R2 storage/operations | approximately $0–$1 |
| Queues | $0 within included usage |
| Resend Pro 50k | $20 |
| OpenAI blended nano/mini triage | approximately $3–$8 |
| Monitoring/analytics | $0–$30 depending on selected plan |
| Total technical platform | approximately $28–$64/month |

Revenue with the example mix:

```text
50 × €4  = €200
30 × €12 = €360
15 × €29 = €435
5 × €59  = €295
Total    = €1,290/month before VAT
```

Approximate Stripe fees for those 100 monthly payments are €44.35, leaving about €1,245.65 before platform costs, salaries, tax, support, refunds and marketing. After the estimated technical platform cost, the technical gross contribution is still roughly €1,182–€1,218/month (treating the small USD/EUR difference as immaterial for this rough model).

## 9. Important commercial conclusion

- €4 is viable only as a limited acquisition tier, preferably billed annually.
- €12 is the correct minimum for the real staff workflow.
- Improve should be the highlighted/default plan because it contains the differentiated value: AI, verification, campaigns and customer recovery.
- Scale has strong margin at €59, but three locations and 30 users need fair-use protections and paid add-ons.
- Add-ons can be: extra location €12/month, 10 extra users €8/month, SMS at usage cost plus margin, and higher-volume case packs.

Before launch, put hard monthly budgets and alerts on AI, email, storage and Workers to prevent accidental runaway costs.
