# Pricing eleva-speed — proposition v1

> Draft basé sur l'analyse concurrentielle (`pricing-comparison.md`). Date : 2026-05-24.
> Prix EUR primaires (cible FR/EU) + grille multi-devise (cf. §Multi-devise). Update 2026-05-28 : ajout USD / GBP / JPY / CAD via Stripe `currency_options`.

## Stratégie en 3 lignes

- **Positionnement** : alternative FR/EU moderne à GTmetrix et Calibre, self-serve, prix EUR, support et facturation francophones. Cible primaire : agences SEO/dev, e-commerce mid-market, PME tech FR/EU laissées orphelines depuis la mort de DareBoost.
- **Différenciation** : (a) free tier réellement utilisable (vs GTmetrix Basic verrouillé), (b) multi-région FR/EU/US/APAC opérée dès l'entry payant (vs 2 locations sur GTmetrix Free, 7 sur Micro), (c) UI moderne style Stitch / GTmetrix Enhanced Report, (d) pricing 20–30 % sous GTmetrix à features équivalentes pour gagner le marché FR.
- **Cible primaire** : agences SEO/dev francophones gérant 5–50 sites clients (le profil du founder lui-même). Cible secondaire : équipes produit e-commerce mid-market FR/EU.

## Tiers proposés

### Free — 0 €/mois

- **Pour qui** : dev/SEO solo, découverte, audit ponctuel d'un site personnel.
- **Inclus** :
  - 15 tests on-demand par mois (rolling, pas de cap 6 mois comme GTmetrix)
  - 1 site monitoré, fréquence daily
  - 1 location (Paris)
  - Lighthouse complet (sans restriction d'audit)
  - HAR + filmstrip + waterfall
  - Rétention 7 jours
  - Email + mot de passe (lead-capture rules : emails pro uniquement, voir memory)
- **Restrictions** :
  - Pas d'API
  - Pas d'alertes
  - Pas de scheduling > daily
  - Pas de team members
  - Watermark "Powered by eleva-speed" sur PDF
  - 1 test simultané max (queue position visible)

### Starter — 19 €/mois (190 €/an, -17 %)

- **Pour qui** : dev/SEO solo qui veut du monitoring continu sur quelques sites perso ou clients.
- **Inclus** :
  - 100 tests on-demand / mois
  - 3 sites monitorés, fréquence hourly
  - 3 locations (Paris, Frankfurt, NYC)
  - Lighthouse complet
  - HAR + filmstrip + waterfall + vidéo
  - Alertes email + webhook
  - Rétention 1 mois
  - API REST (50 calls/jour)
  - 1 user
  - 2 tests simultanés
- **Restrictions** :
  - Pas de Slack/PagerDuty
  - Pas de white-label
  - Pas de team

### Pro — 49 €/mois (490 €/an, -17 %)

- **Pour qui** : agence SEO/dev mono à multi-client (5–15 sites), freelance avancé.
- **Inclus** :
  - 500 tests on-demand / mois
  - 15 sites monitorés, fréquence hourly
  - 6 locations (Paris, Frankfurt, London, NYC, San Francisco, Singapore)
  - Lighthouse complet
  - HAR + filmstrip + vidéo + **video on alert**
  - Alertes email + Slack + webhook + PagerDuty
  - Rétention 6 mois
  - API REST (500 calls/jour)
  - 3 team members
  - 5 tests simultanés
  - Performance budgets
  - GitHub/GitLab CI integration
- **Restrictions** :
  - Pas de white-label PDF
  - Pas de SSO

### Business — 149 €/mois (1 490 €/an, -17 %)

- **Pour qui** : agence multi-clients (15–50 sites), équipe perf e-commerce mid-market.
- **Inclus** :
  - 2 000 tests on-demand / mois
  - 50 sites monitorés, fréquence hourly (cron 15 min disponible)
  - 8 locations (FR/EU/US/APAC complet)
  - Lighthouse complet + presets custom
  - HAR + filmstrip + vidéo + video on alert
  - Alertes complètes (email, Slack, PagerDuty, webhook, MS Teams)
  - Rétention 12 mois
  - API REST (2 000 calls/jour)
  - 10 team members + RBAC
  - 10 tests simultanés
  - **White-label PDF reports** (logo + branding agence)
  - Performance budgets + competitive benchmarking
  - Support prioritaire (réponse < 24h)
- **Restrictions** :
  - Pas de SSO SAML (réservé Enterprise)
  - Pas de private agents

### Enterprise — sur devis (à partir de 499 €/mois)

- **Sur mesure** :
  - Tests illimités (fair use)
  - Sites illimités
  - Toutes locations + private agents possibles
  - Rétention 24 mois (ou plus, négociable)
  - API illimitée (rate limit haut)
  - Team members illimités
  - SSO SAML + SCIM provisioning
  - White-label complet (domain custom possible)
  - SLA contractuel (99.9 % uptime garanti)
  - Support dédié (Slack Connect, < 4h)
  - Option on-prem (self-hosted sitespeed.io stack)
  - Onboarding + 1h formation perf
  - Facturation annuelle, virement bancaire, PO accepté

## Tableau récapitulatif

| Feature                  | Free       | Starter     | Pro                  | Business                | Enterprise              |
| ------------------------ | ---------- | ----------- | -------------------- | ----------------------- | ----------------------- |
| Prix /mois               | 0 €        | 19 €        | 49 €                 | 149 €                   | À partir de 499 €       |
| Prix /an (-17 %)         | 0 €        | 190 €       | 490 €                | 1 490 €                 | Custom                  |
| Tests on-demand / mois   | 15         | 100         | 500                  | 2 000                   | Illimité (fair use)     |
| Tests simultanés         | 1          | 2           | 5                    | 10                      | Custom                  |
| Sites monitorés          | 1          | 3           | 15                   | 50                      | Illimité                |
| Fréquence monitoring     | Daily      | Hourly      | Hourly               | Hourly (15 min option)  | Custom                  |
| Locations                | 1 (Paris)  | 3           | 6                    | 8 (FR/EU/US/APAC)       | Toutes + private agents |
| Devices (mobile/desktop) | Oui        | Oui         | Oui                  | Oui                     | Oui                     |
| Lighthouse audits        | Oui        | Oui         | Oui                  | Oui + presets           | Oui + presets           |
| Alertes email            | Non        | Oui         | Oui                  | Oui                     | Oui                     |
| Alertes Slack/webhook    | Non        | Webhook     | Slack + webhook      | + PagerDuty + MS Teams  | Tous                    |
| HAR + filmstrip          | Oui        | Oui         | Oui                  | Oui                     | Oui                     |
| Vidéo replay             | Non        | Oui         | Oui + video on alert | Oui + video on alert    | Oui                     |
| Historique (rétention)   | 7 jours    | 1 mois      | 6 mois               | 12 mois                 | 24 mois                 |
| API (calls/jour)         | Non        | 50          | 500                  | 2 000                   | Illimitée               |
| Team members             | 1          | 1           | 3                    | 10 + RBAC               | Illimités               |
| Performance budgets      | Non        | Non         | Oui                  | Oui                     | Oui                     |
| CI integration (GH/GL)   | Non        | Non         | Oui                  | Oui                     | Oui                     |
| White-label PDF          | Non        | Non         | Non                  | Oui                     | Oui + custom domain     |
| SSO SAML                 | Non        | Non         | Non                  | Non                     | Oui                     |
| Multi-région opérée      | 1 loc      | 3 loc       | 6 loc                | 8 loc                   | Custom + private        |
| Support                  | Communauté | Email (72h) | Email (48h)          | Email prioritaire (24h) | Slack dédié (4h) + SLA  |

## Multi-devise

Stripe sert les 5 devises via `currency_options` sur un seul `Price` par (tier × intervalle) — 1 Product/tier, ≤ 6 Prices catalogue total (+ 2 pour le Seat add-on). La devise affichée sur `/pricing` est détectée via `x-vercel-ip-country` puis surchargeable via un `<Select>` (cookie `eleva_pricing_currency`, 30 j).

**Stratégie de pricing par devise** : on ne fait pas un FX direct. On applique du **psychological pricing local** (chiffres « ronds » dans la langue de l'acheteur) qui reste cohérent avec la grille des concurrents locaux (GTmetrix en USD, SpeedCurve en GBP, Treo en USD, etc.).

| Tier        | EUR /mo / yr | USD /mo / yr | GBP /mo / yr | JPY /mo / yr     | CAD /mo / yr |
| ----------- | ------------ | ------------ | ------------ | ---------------- | ------------ |
| Starter     | 19 / 190     | 19 / 190     | 15 / 150     | 2 900 / 29 000   | 28 / 280     |
| Pro         | 49 / 490     | 49 / 490     | 39 / 390     | 7 500 / 75 000   | 69 / 690     |
| Business    | 149 / 1 490  | 149 / 1 490  | 125 / 1 250  | 22 000 / 220 000 | 199 / 1 990  |
| Seat add-on | 9 / 90       | 9 / 90       | 7 / 70       | 1 400 / 14 000   | 13 / 130     |

Notes :

- **JPY zero-decimal** : Stripe attend les montants en unités majeures (`unit_amount = 2900` = ¥2 900, pas en sen). Le helper `toMinorUnits(amount, currency)` dans `lib/billing/plans.ts` gère le cas.
- **USD ≈ EUR** : on profite de la parité ~1:1 pour aligner les prix tête de gondole, c'est plus lisible côté marketing FR/EU/US et évite un débat « pourquoi c'est plus cher en USD ».
- **GBP -20 %** : le marché UK est habitué à des prix légèrement sous l'USD (cf. SpeedCurve £99 ≈ $129) ; on tient cette habitude.
- **JPY** : conversion ronde sur les multiples de 100 ¥, alignée sur les prix Treo / Calibre Asia (¥2 900 = entry typique).
- **CAD +40 %** vs USD : reflet du CAD réel (~0.72 USD) mais arrondi en chiffres ronds (28, 69, 199).
- Toute modif de cette grille = nouvelle Price Stripe (Prices immutables) → archiver l'ancienne, lancer `pnpm tsx scripts/stripe-bootstrap.ts`, repasser les `STRIPE_PRICE_*` dans `.env.local`.
- **Seat add-on** = Stripe Subscription Item séparé, quantity-based, mêmes 5 devises. Inclus dans tous les tiers payants (extras facturés au-delà du quota de sièges inclus).

## Add-ons (overage)

Si dépassement de quota plutôt que forcer l'upgrade :

| Add-on                                           | Prix                                                     |
| ------------------------------------------------ | -------------------------------------------------------- |
| Bloc de 100 tests supplémentaires                | 5 € (one-shot, valable 1 mois)                           |
| Site monitoré additionnel (Starter/Pro/Business) | 3 € / site / mois                                        |
| Team member additionnel (Starter/Pro/Business)   | 9 € / seat / mois (équiv. 5 devises — cf. §Multi-devise) |
| Location additionnelle (Pro/Business)            | 5 € / location / mois                                    |
| Rétention étendue (12 mois → 24 mois)            | +25 % du prix du tier                                    |
| White-label PDF (sur Pro)                        | 19 € / mois                                              |

## Hypothèses faites

Liste honnête de ce qui peut bouger après validation user/marché :

1. **Prix EUR à -25–30 % vs GTmetrix USD équivalent** : pari sur (a) marché FR moins payeur que US, (b) trou DareBoost à combler vite, (c) volume > marge à court terme. Si LTV trop faible → remonter à parité GTmetrix.
2. **Annual discount à 17 %** (cohérent avec marché 15–25 %, médiane 20 %). Peut monter à 20 % si conversion annual trop basse.
3. **Free tier généreux (15 tests/mois)** : pari TOFU vs CAC payant. À monitorer — si conversion < 2 % Free → Starter sur 90 jours, restreindre à 10 tests/mois.
4. **Pas de RUM à v1** : eleva-speed est synthetic-only via sitespeed.io. Pas de moteur RUM propriétaire. Calibre/SpeedCurve/DebugBear ont ce différenciant qu'on n'attaque pas. À assumer ou roadmap v2.
5. **Coût compute multi-région** : 8 locations sur Business à 149 € implique coût infra worker non négligeable. Modèle économique à valider — peut-être limiter Business à 5 locations + 3 supplémentaires en add-on.
6. **TVA intra-com gérée nativement** : Stripe Tax + Better Auth — facturation conforme FR/EU obligatoire.
7. **Lead-capture pro emails only** (memory rule) : impact direct sur free tier signup → réduit le top of funnel mais améliore la qualité LTV.
8. **Pas de trial Pro/Business** : la stratégie est freemium → Starter upgrade. Si conversion trop basse, ajouter 14 jours de trial Pro sans CB.
9. **Pricing power FR** : agences FR sont plus price-sensitive que US ; mais e-commerce mid-market FR peut payer 149 € sans friction. À segmenter.
10. **Tests on-demand vs scheduled** : on compte tout dans le même quota. À reconsidérer si abus côté scheduled (peut séparer en deux quotas distincts).

## TODO avant lancement

- [ ] **Validation pricing user** : valider chaque tier + add-ons avec founder + 3–5 prospects agences FR
- [ ] **Pricing page Next.js** : route `/pricing` statique avec toggle monthly/annual, comparator table, FAQ
- [ ] **Stripe integration** : Stripe Checkout + Stripe Customer Portal + Stripe Tax (TVA intra-com)
- [ ] **Better Auth + Stripe** : plugin Stripe officiel pour mapping user ↔ subscription, gestion proration/upgrade/downgrade
- [ ] **Quotas enforcement côté worker BullMQ** :
  - Rate-limit `/api/speed/test` par user/tier (tests on-demand)
  - Compteur sites monitorés par tier (vérif avant ajout)
  - Compteur API calls/jour (Redis incr avec TTL daily)
  - Quota tests simultanés (concurrency par user dans BullMQ)
- [ ] **Quota dashboard** : afficher consommation actuelle (X/Y tests utilisés ce mois) sur la page settings
- [ ] **Email transactionnels** : 80/90/100 % quota → email warning + CTA upgrade
- [ ] **Add-on purchase flow** : Stripe one-time pour bloc tests ; subscription items pour sites/seats/locations
- [ ] **White-label PDF** : refonte du PDF generator (sitespeed.io PDF ou custom React-PDF) pour injecter logo/branding agence
- [ ] **SSO SAML** : implémentation via Better Auth (plugin SAML) — Enterprise only
- [ ] **Audit RGPD** : DPA template, sous-traitants documentés (Vercel, Stripe, Postgres host)
- [ ] **Facturation EUR** : factures conformes FR (numéro séquentiel, TVA, mentions légales) générées par Stripe Tax
- [ ] **Page comparator** : `/pricing/vs-gtmetrix` SEO-optimisée pour capter trafic compétitif
- [ ] **Conditions d'usage du free tier** : CGU explicites sur fair use (anti-abus, pas de scraping/monitoring tiers sans consentement)
