Financial Model — Margins & Projections (v4.0)
Statut d'implémentation (2026-10-02). Ce document décrit un modèle cible, pas ce que la plateforme fait. Ce que le code fait aujourd'hui : frais marketplace vendeur 3 % (BOOSTECOM_MARKETPLACE_FEE_RATE…
Statut d'implémentation (2026-10-02). Ce document décrit un modèle cible, pas ce que la plateforme fait. Ce que le code fait aujourd'hui : frais marketplace vendeur 3 % (
BOOSTECOM_MARKETPLACE_FEE_RATE,src/types/marketplace.ts), parrainage 30 % sur 12 factures versé en argent sans minimum (affiliate.md), boutiques illimitées sur les plans payants (ADR 0037), add-on boutique retiré. Non implémentés : take rate marketplace 25 %, split agents/workflows 80/20, bounty 70/30, cash-out 75 $ et minimum vendeur 50 $, Partner tier 35 % sur 6 mois, commission sur achats de crédits (10 % ou 15 %), remise de 10 % sur le premier mois d'un filleul. Les lignes concernées ci-dessous sont marquées « non implémenté » ou « historique ».
Modélisation des marges du modèle v4.0 : catalogue B2B per-Org avec le prix d'abonnement découplé du grant de credits (Pro $79/mo, $49 credits/mo ; Max 5x $199/mo, $149 credits/mo ; Max 20x $399/mo, $299 credits/mo ; boutiques illimitées sur les plans payants depuis l'ADR 0037, les nombres de stores des versions précédentes sont historiques), daily bonus per-Org inchangé ($1/$3/$5) + markup AI Gateway 1.5×, sur les credits d'abonnement comme sur les credits achetés. Architecture 1 User → N Orgs → N Stores.
Cibles : ~68% gross margin consolidé, ~34% net net après IS. Ces deux chiffres sont la somme pondérée du mix ci-dessous et le bas de la projection $130k, pas une ambition posée à côté.
Révision du 2026-09-10 — repricing v4.0 : le prix quitte le 1:1. Owner decision (2026-09-06) : le sticker price monte (Pro $49→$79, Max 5x $149→$199, Max 20x $299→$399), le grant de credits reste EXACTEMENT ce qu'il était sous v3.0 ($49 / $149 / $299). Rien ne bouge côté ledger, côté balance existante ou côté coût provider — seul ce que l'abonnement facture change. Mécaniquement, ça crée une marge fixe sur la partie subscription qui n'existait pas en v3.0 (où 100% du prix repartait en credits, donc zéro marge fixe : toute la marge subs venait du seul sous-usage du pool). Chaque tableau ci-dessous est recalculé avec les nouveaux prix ; rien d'autre dans les hypothèses n'a changé. Voir ADR 0012 pour le raisonnement complet et la comparaison concurrentielle.
Révision du 2026-09-06. Deux corrections, et la seconde n'était pas dans l'item qui a déclenché celle-ci.
- Ce document modélisait les achats de credits à 2.0× et en tirait une marge de ~46-47%. Ce markup n'a jamais existé dans le code :
CREDIT_PURCHASE_MARKUPn'avait aucun lecteur et la consommation a toujours appliqué le markup de plan, 1.5× (ADR 0010,billing/0362). La marge d'achat réelle est ~30%. Aucun client ne paie ni ne consomme différemment : c'est le modèle qui rejoint la facturation, pas l'inverse.- Cet en-tête annonçait « ~72% gross, ~42% net net » alors que le tableau de mix de cette même page pondérait à 65.6% et que sa projection $130k terminait à 66% gross / 32% net net. Les deux chiffres de tête n'étaient dérivés de rien. Ils sont maintenant recalculés depuis les tableaux : 62% et 30% après la correction du markup — et à nouveau recalculés au 2026-09-10 pour le repricing v4.0 : 68% et 34%.
Hypothèses de base
| Variable | Valeur v3.0 | Justification |
|---|---|---|
| Markup AI Gateway sur subs | 1.5× | Préservé v2.0 |
| Markup AI Gateway sur achats | 1.5× | Identique aux subs : le markup est porté par le plan, pas par l'origine du credit (ADR 0010) |
| Credits inclus dans sub | 1.0× du prix (était 0.5× en v2.0) | Alignement v0-style |
| Daily bonus Pro | $1/jour/Org | Engagement modeste |
| Daily bonus Max 5x | $3/jour/Org | Engagement renforcé |
| Daily bonus Max 20x | $5/jour/Org | Premium engagement |
| Utilisation crédits sub Pro | 50% | Plus large que v2.0 (caps supprimés mais sub plus généreux) |
| Utilisation crédits sub Max 5x | 40% | Multi-store, pool partagé |
| Utilisation crédits sub Max 20x | 25% | Pool large, sous-consommation |
| Engagement daily bonus (login rate) | 50% Pro, 40% Max 5x, 35% Max 20x | Décroissant avec multi-user |
| Consommation daily bonus (consume rate) | 50% uniforme | Bonus sur-dimensionné par design |
| Stripe fees | 2.9% + $0.30 | Standard USD |
| Stripe Connect payout fee | $0.25 par payout | Stripe Connect Express |
| Coût infra par Org active | $0.50/mo | Vercel + Neon + Upstash + Resend agrégés |
| Conversion Free → Pro | 6% | Légèrement inférieur v2.0 — Free MCP relay suffit à beaucoup |
| Conversion Pro → Max 5x | 18% | Multi-store pull |
| Conversion Max 5x → Max 20x | 15% | Agency/scale pull |
| Churn mensuel | 5% | Standard SaaS B2B early stage |
| LTV moyen | 20 mois | Inverse du churn |
| Marketplace volume per active Org (M9+) | $25/mo | Hypothèse à valider |
Margin par subscription tier
v4.0 : le prix et le grant de credits sont deux nombres distincts (ADR 0012).
AI cost subsse calcule desormais sur le GRANT (includedCredits— inchange depuis v3.0), pas sur le prix facture (monthlyPrice— qui monte). C'est le seul changement de formule dans ce document : les taux d'utilisation, le daily bonus et le markup restent ceux de la table d'hypotheses ci-dessus.
Pro $79/mo — $49 credits/mo, daily bonus $1/jour
Revenue $79.00
AI cost subs (50% × $49 credits / 1.5) -$16.33
AI cost daily bonus -$5.00
($30/mo max × 50% login × 50% consume / 1.5)
Stripe fees -$2.59
Infra -$0.50
──────────────────────────────────────────────────
Net sub margin $54.58 (69% margin)
Max 5x $199/mo : 5 stores, $149 credits/mo, daily bonus $3/jour
Revenue $199.00
AI cost subs (40% × $149 credits / 1.5) -$39.73
AI cost daily bonus -$12.00
($90/mo max × 40% login × 50% consume / 1.5)
Stripe fees -$6.07
Infra -$0.50
──────────────────────────────────────────────────
Net sub margin $140.70 (71% margin)
Max 20x $399/mo : 20 stores, $299 credits/mo, daily bonus $5/jour
Revenue $399.00
AI cost subs (25% × $299 credits / 1.5) -$49.83
AI cost daily bonus -$17.50
($150/mo max × 35% login × 50% consume / 1.5)
Stripe fees -$11.87
Infra -$0.50
──────────────────────────────────────────────────
Net sub margin $319.30 (80% margin)
Plus le tier est haut, plus la marge augmente, pour DEUX raisons desormais superposees. La premiere est inchangee depuis v3.0 : les Orgs sur Max 20x ont un pool de credits large + 20 stores → utilisation moyenne par store basse → marge de sous-usage elevee. La seconde est nouvelle en v4.0 : l'ecart prix − grant croit en absolu avec le tier ($30 sur Pro, $50 sur Max 5x, $100 sur Max 20x), donc la marge FIXE croit avec lui. Les deux moteurs tirent dans le meme sens.
v3.0 → v4.0, meme grant, prix different : Pro 52% → 69% (+17pp), Max 5x 62% → 71% (+9pp), Max 20x 74% → 80% (+6pp). L'ecart se resserre en haut de gamme parce que Max 20x avait deja la plus grosse marge de sous-usage sous v3.0 — la marge fixe ajoute moins de pourcentage relatif la ou elle etait deja haute.
Margin par credit purchase (markup 1.5×)
| Montant payé | Credits reçus | AI cost | Stripe | Net | % |
|---|---|---|---|---|---|
| $10 | $10 | -$6.67 | -$0.59 | $2.74 | 27% |
| $25 | $25 | -$16.67 | -$1.03 | $7.30 | 29% |
| $50 | $50 | -$33.33 | -$1.75 | $14.92 | 30% |
| $100 | $100 | -$66.67 | -$3.20 | $30.13 | 30% |
| $250 | $250 | -$166.67 | -$7.55 | $75.78 | 30% |
| $500 | $500 | -$333.33 | -$14.80 | $151.87 | 30% |
| $1000 | $1000 | -$666.67 | -$29.30 | $304.03 | 30% |
| $5000 | $5000 | -$3333.33 | -$145.30 | $1521.37 | 30% |
Marge stable ~30% sur achat, 27% au plancher $10 où le flat fee Stripe pèse encore 5.9%.
Le tableau est dérivé, pas saisi : AI cost = montant / markup avec le
markup de plan lu dans ADMIN_PRICING_CONFIG.markupByPlan, et
Stripe = 2.9% + $0.30.
src/test/financial-model-margins.test.ts
recalcule chaque ligne et échoue si le markup du code bouge sans que ce
tableau suive. C'est ce contrôle qui manquait : les lignes ci-dessus ont
annoncé ~47% pendant des mois sur un markup de 2.0× qu'aucun chemin de
code n'appliquait.
Deux hypothèses restent explicites et non gardées : la consommation intégrale des credits achetés (100%, donc le pire cas de marge) et le tarif Stripe standard USD.
Mix de revenu cible
| Source | % du revenue total | Margin moyenne |
|---|---|---|
| Subscriptions | 60% (mix 60% Pro / 25% Max 5x / 15% Max 20x) | 71% pondéré |
| Credit purchases (40% des Orgs overshoot) | 20% | 30% |
| Stores extras ($9) (historique : add-on retiré, ADR 0037, ligne non réalisée) | 5% | 95% |
| Marketplace own products (M0-M9) | 7% | 100% |
| Marketplace tiers M9+ (take rate 25% = cible non implémentée ; le code facture 3 %) | 3% | 100% |
| Agent/workflow runs (20% take, non implémenté) | 2% | 100% |
| Sponsored (M12+) | 3% | 95% |
| Total | 100% | ~68% consolidated gross |
Le consolidé monte de 71% subs à 68% gross — la ligne credit purchases (30%) et le reste du mix le tirent vers le bas plutôt que vers le haut, même avec des subscriptions mieux margées qu'avant : à 30% elle reste moins margée que les abonnements, comme sous v3.0.
Sous v3.0, cette ligne affichait 61% pondéré / 62% gross (prix = credits 1:1, toute la marge sub venait du sous-usage). Le repricing v4.0 (ADR 0012, prix découplé du grant) ajoute une marge fixe sur chaque tier payé sans toucher au reste du mix : 71% pondéré / 68% gross, +6pp de gross consolidé pour un changement qui ne touche ni le ledger de credits ni le coût provider.
Cette ligne de total a affiché « ~72% » pendant toute la v3.0 sans jamais l'être : la somme pondérée de ses propres lignes valait 65.6% avant la correction du markup d'achat (ADR 0010) et 62.2% après. Le 68% actuel EST calculé depuis les lignes ci-dessus, contrairement au 72% historique.
Projection $130k MRR (mix v4.0)
Subscriptions (60% du MRR) = $78,000
Sub margin = $55,380 (71% sub gross)
Credit purchases (20%) = $26,000
Purchase margin = $7,800 (30%)
Stores extras (5%) = $6,500
Margin = $6,175 (95%)
Marketplace own (M0-M9) (7%) = $9,100
Margin = $9,100 (100%)
Marketplace tiers + commissions (5%) = $6,500
Margin = $6,500 (100%)
Sponsored (3%) = $3,900
Margin = $3,705 (95%)
────────────────────────────────────────
Revenue total = $130,000/mo
Marge brute totale = $88,660/mo (68% gross)
OpEx (équipe + marketing + infra) -$25,000
Stripe fees agg (~3.5%) -$4,550
Net avant IS = $59,110/mo (45% net avant tax)
IS France ~25% (post-JEI/CIR) -$14,778
NET après IS = $44,332/mo (34% net net)
À $130k MRR : ~$44k net/mo dans la trésorerie, contre ~$38k sous v3.0 au même MRR — +$5.9k/mo de trésorerie pour un changement qui ne touche ni le nombre d'Orgs payantes ni leur consommation reelle, seulement le prix facture (ADR 0012). C'était ~$42k tant que les achats de credits étaient modélisés à 2.0× (correction ADR 0010) : les deux révisions se lisent dans le sens opposé sur ce chiffre, l'une corrigeait une fiction, l'autre change un vrai prix.
Projection $300k MRR (mature)
Subscriptions (55%) = $165,000
Sub margin = $122,100 (74% gross — Max 20x prend plus de poids)
Credit purchases (22%) = $66,000
Purchase margin = $19,800 (30%)
Stores extras (5%) = $15,000
Margin = $14,250 (95%)
Marketplace own (M0-M9) (8%) = $24,000
Margin = $24,000 (100%)
Marketplace tiers + commissions (7%) = $21,000
Margin = $21,000 (100%)
Sponsored (3%) = $9,000
Margin = $8,550 (95%)
────────────────────────────────────────
Revenue total = $300,000/mo
Marge brute = $209,700/mo (70% gross)
OpEx structuré (équipe 8p, marketing $20k/mo) -$70,000
Stripe fees agg (~3.5%) -$10,500
Net avant IS = $129,200/mo (43% net avant tax)
IS France ~22% (post-JEI/CIR/dividende) -$28,424
NET après IS = $100,776/mo (34% net net)
À $300k MRR : ~$101k net/mo, contre ~$88k sous v3.0 — franchit le seuil symbolique des six chiffres/mois de trésorerie nette au même volume de vente, sans changement de mix ni d'équipe. Capacité hire 3-4 personnes + marketing $30k/mo + saving $50k/mo.
Projection $800k MRR (scale)
Subscriptions (50%) = $400,000
Sub margin = $312,000 (78% gross — mix bascule vers Max 20x)
Credit purchases (25%) = $200,000
Purchase margin = $60,000 (30%)
Stores extras (7%) = $56,000
Margin = $53,200 (95%)
Marketplace own (M0-M9) (8%) = $64,000
Margin = $64,000 (100%)
Marketplace tiers + commissions (7%) = $56,000
Margin = $56,000 (100%)
Sponsored (3%) = $24,000
Margin = $22,800 (95%)
────────────────────────────────────────
Revenue total = $800,000/mo
Marge brute = $568,000/mo (71% gross)
OpEx structuré (équipe 15p, marketing $50k/mo) -$160,000
Stripe fees agg (~3.5%) -$28,000
Net avant IS = $380,000/mo (48% net avant tax)
IS France ~22% (post-JEI/CIR/dividende) -$83,600
NET après IS = $296,400/mo (37% net net)
À $800k MRR : ~$296k net/mo, contre ~$265k sous v3.0 (+$31k/mo). Capacité scale international, levée optionnelle — et un runway plus long avant d'en avoir besoin.
Comparaison v2.0 vs v3.0
| Métrique | v2.0 (caps + 50% credits + markup 1.5×) | v3.0 (no-caps + 100% credits + daily bonus per-Org) | Delta |
|---|---|---|---|
| Gross margin subs (mix) | 73% | 61% | -12pp |
| Gross margin consolidé ($300k MRR) | 72% | 64% | -8pp |
| Net net après IS ($300k MRR) | 43% | 29% | -14pp |
| Subscription tier nommage | Pro / Max 5x / Max 20x | Idem (préservé) | ✅ |
| Stores extras prix | $19 | $9 (Shopify-aligned) | -$10 |
| Architecture billing | Per-Org (implicite) | Per-Org explicite + users illimités | ✅ |
| Free positioning | "MCP only" | "Infrastructure layer" — MCP relay 50/min | ✅ |
| Caps msg/5h | 50/250/1000 | Supprimés | UX simplifiée |
| Daily bonus | Pas activé | Activé per-Org ($1/$3/$5) | UX engagement |
| Rollover credits | Zero | 65 jours (style v0) | UX flexibilité |
| Marketplace M9+ take rate | 30% | 25% (cible historique, non implémentée ; code : 3 %) | -5pp |
| Affiliate credits | 15% | 10% (non implémenté) | -5pp |
| Agent runs split | 75/25 | 80/20 (non implémenté) | +5pp creator |
| User experience | Caps frustrants | Lisible v0-style | ✅ |
| Friction conversion | Élevée | Réduite (Free MCP relay funnel) | ✅ |
Tradeoff assumé : ~8pp de gross consolidé et ~14pp de net net en moins en échange de :
- Expérience produit moderne v0-style
- Écosystème dynamique (creator-friendly)
- Funnel acquisition élargi (Free MCP relay)
À volume mature ($800k MRR), la marge nette absolue ($296k/mo sous v4.0, voir la projection ci-dessus) reste très confortable.
Comparaison v3.0 vs v4.0 — le repricing (ADR 0012)
| Métrique | v3.0 (prix = credits 1:1) | v4.0 (prix découplé du grant) | Delta |
|---|---|---|---|
| Prix Pro / Max 5x / Max 20x | $49 / $149 / $299 | $79 / $199 / $399 | +$30 / +$50 / +$100 |
| Credits inclus Pro / Max 5x / Max 20x | $49 / $149 / $299 | Idem, inchangé | ✅ |
| Marge sub Pro | 52% | 69% | +17pp |
| Marge sub Max 5x | 62% | 71% | +9pp |
| Marge sub Max 20x | 74% | 80% | +6pp |
| Gross margin consolidé | 62% | 68% | +6pp |
| Net net après IS ($300k MRR) | 29% | 34% | +5pp |
| Net net absolu ($800k MRR) | $265k/mo | $296k/mo | +$31k/mo |
| Balance / grant d'un abonné existant | — | Inchangé, zéro migration | ✅ |
| Positionnement vs l'outil spy mono-feature de référence (Pro $89/mo) | Sous le prix d'un outil mono-feature | Sous son palier Pro, au-dessus de son palier Starter, pour un operateur complet | ✅ |
Ce que ça coûte : rien côté produit ou côté client existant — c'est uniquement ce qu'un nouvel abonné paie qui change. Le risque réel est sur la conversion Free → Pro, pas sur la marge : $79/mo est un prix plus facile à justifier auprès d'un acheteur qui compare à un outil spy du marché ($89 pour une fraction du produit) qu'à justifier auprès de lui-même sans référence de marché — d'où le benchmark dans l'ADR plutôt qu'un chiffre choisi à l'instinct.
Leviers d'ajustement (si margin sous-performe en prod)
Si à M6 la marge consolidée est < 67% (vs cible 70% à $300k) :
- Daily bonus cap Pro à $0.50/jour → +2pp margin Pro
- Réduire utilization Free MCP : 30/min, 1k/jour → push upgrade plus fort
- Markup de plan 1.5× → 1.75×, ou pack de credits vendu à un ratio inférieur à 1:1 → ce sont les deux seuls leviers qui touchent la marge d'achat, et les deux sont des hausses de prix, pas des réglages (ADR 0010,
billing/0411). Un markup propre aux credits achetés n'existe pas et n'est pas re-créable sans comptabilité par lot - Daily bonus Pro retiré → +4pp margin Pro (revenir à mon plan initial Ultra/Scale only)
Pricing Pro $59 / Max 5x $169 / Max 20x $329 → testable A/B— obsolète depuis ADR 0012 : ce levier baissait le prix ET le grant ensemble (hypothèse v3.0, prix = credits). Sous v4.0 les deux sont découplés ; le levier equivalent est remonter le prix seul, sans toucher au grant — c'est le mouvement qu'on vient de faire, réutilisable dans le même sens si la marge reste sous cible, jamais dans l'autre sans une nouvelle ADR- Push upgrade Pro → Max 5x agressif via UI banners
- Marketplace M9+ remonter à 28% si pas assez de marge écosystème
- Baisser le grant de credits sans toucher au prix → l'autre moitié du levier ADR 0012 : grossit la marge fixe sans nouvelle hausse de prix, mais c'est un downgrade silencieux de ce qu'un abonné existant reçoit déjà payé — la même alternative écartée dans l'ADR, à ne réactiver que pour un NOUVEAU cohort, jamais rétroactivement
Tester en A/B avant d'appliquer. Documenter dans PR + ADR.
Sensibilité aux paramètres
v4.0 : chaque scénario ci-dessous perd MOINS de points de marge qu'en v3.0, à hausse de coût absolue identique — c'est l'effet direct de la marge fixe (ADR 0012) : le même dollar d'AI cost supplémentaire pèse un pourcentage plus faible d'un abonnement plus cher. Deltas v3.0 entre parenthèses pour comparaison directe.
Si utilisation crédits subs +20pp
- Pro 50% → 70% : marge tombe à 61% (-8pp, contre -10pp sous v3.0)
- Max 5x 40% → 60% : marge tombe à 61% (-10pp, contre -12pp)
- Max 20x 25% → 45% : marge tombe à 70% (-10pp, contre -14pp)
- Mitigation : ajuster markup à 1.75× OU caper daily bonus
Si engagement daily bonus +30pp
- Pro engagement 50% → 80% : marge tombe à 65% (-4pp, contre -5pp)
- Max 5x : marge tombe à 66% (-5pp, contre -6pp)
- Max 20x : marge tombe à 76% (-4pp, contre -7pp)
- Mitigation : baisser bonus calibration
Si AI Gateway raise pricing +20%
- Pro : marge tombe à 64% (-5pp), Max 5x à 66% (-5pp), Max 20x à 77% (-3pp) — contre ~7pp uniforme sous v3.0
- Mitigation : la marge fixe absorbe une partie du choc sans réagir ; au-delà, remonter le grant de credits à la baisse (voir levier 8 ci-dessus) plutôt que le prix, qui vient d'être révisé
Si écosystème M9+ tarde (marketplace tiers à 0%)
- Consolidé tombe de 70% → 68% (-2pp, contre -3pp sous v3.0 — même ligne retirée, mais elle pèse un peu moins sur un total plus haut)
- Mitigation : push marketplace own products M0-M9 plus fort
Conclusions
- Le modèle v4.0 est viable, et plus solide que v3.0 au même volume de vente. À $130k MRR : $44k net/mo (v3.0 : $38k). À $300k MRR : $101k net/mo (v3.0 : $88k). À $800k MRR : $296k net/mo (v3.0 : $265k). Rien de ça ne suppose plus d'Orgs payantes ou plus de consommation — seulement le repricing ADR 0012.
- v3.0 avait compressé la marge de 8-14pp vs v2.0 (UX v0-style + écosystème creator-friendly), dont ~4pp qui n'étaient pas un tradeoff mais une erreur de modèle corrigée le 2026-09-06 (markup d'achat à 2.0× jamais appliqué). v4.0 récupère la majorité de cet écart (+6pp gross consolidé, +5pp net net) sans revenir sur aucune des décisions UX de v3.0 — le repricing agit sur un axe que le tradeoff v2.0→v3.0 ne touchait pas.
- Les leviers existent pour récupérer encore de la marge si la prod le demande (cap bonus Pro, markup plus haut, push upgrade, ou remonter le prix une seconde fois) : ce sont tous des hausses de prix ou des réductions de grant, à décider et à annoncer via une ADR, jamais à livrer dans une PR de correction.
- Le moteur économique reste l'écosystème : marketplace own products (100% margin) + take rates M9+. La marge fixe de v4.0 relève le plancher, elle ne remplace pas ce moteur — sans lui, on stagne autour de 60-65% gross au lieu de 68-71%, et la ligne credit purchases (30%) dilue toujours plus qu'elle ne concentre.
- Le prix Pro ($79) reste sous celui d'un concurrent mono-feature ($89/mo en Pro pour un outil spy seul — benchmark 2026-09-10, ADR 0012) pour un operateur complet. La marge de manœuvre pour remonter encore existe si la conversion Free → Pro le confirme ; à surveiller sur
billing_checkout_open, pas à décider à l'avance. - Bumper les hypothèses tous les mois dès qu'on a de la data réelle (utilisation, engagement bonus, conversion, et maintenant : impact du repricing sur la conversion Free → Pro).