Ressources
Hébergement sur mesure : faut-il accepter ce client SaaS ?
Hébergement dédié demandé par un client : avant de fixer la tarification SaaS, calculez contribution, point mort et trésorerie face à votre offre standard.
L'équipe CTN Solutions · publié le · 17 min de lecture
Base d'expérience : Méthode et documentation officielle (Bpifrance Création, FinOps Foundation, Microsoft Learn) et modèle chiffré d'un exemple fictif reproduit dans un laboratoire local, sans donnée client ni retour de mission.
Faits vérifiés sur les sources primaires le
Un grand compte demande une région précise, un environnement qui ne sert qu'à lui, ou une livraison sur son propre cloud. Le tarif standard ne décrit plus le travail à faire, ni les coûts qui restent après la signature. Avant de proposer un prix, l'éditeur doit répondre à une question plus large : cette exception rapporte-t-elle davantage que l'offre standard, ou que le refus du client, une fois payés le travail initial, le maintien, la sortie et le calendrier des encaissements ?
Cet article propose une méthode pour instruire cette demande. Elle repose sur une fiche d'exception, sur deux lectures séparées, la contribution de décision et le calendrier de trésorerie, et sur un exemple fictif. La procédure de livraison elle-même est décrite dans Livrer votre SaaS on-premise ou en air gap : ce que le client va exiger. Elle n'est pas répétée ici.
Transformer la demande en périmètre chiffrable avant signature
Une demande d'hébergement dédié n'est pas encore un prix. Elle devient chiffrable lorsque l'éditeur a écrit ce qu'il vend, pour combien de temps, à partir de quelle exigence et contre quelle alternative. Trois éléments se notent avant tout calcul : l'exigence confirmée et la preuve qui la fonde, le responsable qui valide l'exception, et l'offre standard que l'éditeur peut proposer à la place.
La distinction entre exigence écrite, préférence commerciale et hypothèse compte. Une clause de l'annexe de sécurité du contrat du client est une exigence écrite. Un souhait de région exprimé en réunion reste une préférence tant qu'il n'apparaît dans aucun document. Dans la fiche, une exigence non écrite ne justifie pas l'exception en l'état : elle doit être confirmée ou retirée. Cette méthode n'invente aucune obligation sectorielle que le client n'aurait pas écrite.
Dans l'exemple fictif, l'exigence est une clause d'annexe de sécurité qui impose un environnement dédié en région Paris. Le périmètre vendu comprend un cluster Kubernetes (plateforme d'orchestration de conteneurs) dédié, à trois nœuds, une base PostgreSQL en configuration Multi-AZ (réplication sur plusieurs zones de disponibilité d'une même région), une supervision dédiée, sur 36 mois. Les exclusions figurent dans la fiche au même niveau que le périmètre : elles portent sur les données sortantes et sur les exigences non écrites. Sans ces exclusions écrites dans la proposition, le périmètre facturé ne sera pas celui qui a été chiffré.
La fiche nomme aussi deux responsables de validation : l'un pour la faisabilité technique, l'autre pour l'économie. Dans l'exemple, ce sont la direction technique et la direction financière de l'éditeur fictif. Une exception sans propriétaire ne se rejuge pas correctement lorsque le client revient avec une nouvelle demande.
Pour cadrer le travail de livraison d'un hébergement dédié avant de figer votre proposition, la page Éditeurs SaaS : livrer on-premise et vendre via AWS Marketplace décrit ce que CTN Solutions conçoit et industrialise, à savoir les paquets, les registres et la chaîne de livraison. Elle indique aussi ce que l'éditeur garde : le code, la feuille de route, le support produit et la relation commerciale avec le client final.
Comparer l'exception, l'offre standard et le refus
La décision se prend entre trois issues. La première est l'exception, c'est-à-dire le périmètre dédié au tarif demandé. La deuxième est l'offre standard : le client accepte le produit multi-locataire et son tarif habituel. La troisième est le refus, qui n'entraîne aucun coût d'exécution, mais abandonne le revenu du client et peut priver l'éditeur d'une référence.
Chaque issue doit être calculée, y compris la référence. L'offre standard n'est pas gratuite : dans l'exemple, elle entraîne 120 EUR par mois d'infrastructure marginale et 5 heures de support par mois. Comparer l'exception à zéro revient à ignorer ce que le client aurait payé sans elle, et surestime donc l'apport de l'exception.
Le signe du résultat dépend de la référence retenue. Dans l'exemple, un client qui résilie au mois 10, sans clause de durée minimale, donne une contribution de 21 830 EUR face au refus, et de -66 550 EUR face à l'offre standard. Le même événement ne se lit pas de la même façon. La fiche doit donc dire quelle référence elle retient, et pourquoi.
Inventorier le coût de cycle de vie, pas seulement le travail initial
Un piège consiste à chiffrer l'adaptation initiale et à oublier le reste. Une exception dure plus longtemps que son installation : elle impose des versions à maintenir, un support dédié, des mises à jour planifiées avec le client, puis une sortie. La fiche sépare donc le travail initial, les coûts externes, les coûts dédiés récurrents et le coût de sortie.
Le cadre de la FinOps Foundation cite le coût par client parmi les unités métier possibles, et demande de documenter les définitions, les hypothèses et les coûts inclus dans chaque indicateur [2]. Pour le vocabulaire de la démarche, voir FinOps, c'est quoi ? Définition 2026, méthode et par où commencer.
Le guide Microsoft sur la gestion des coûts en multitenant distingue trois objectifs de mesure : un coût approché par client, un coût exact, ou la détection d'un client atypique. Un environnement dédié s'impute directement à son client. Une ressource partagée doit être répartie, soit également, soit selon une consommation mesurée. Le même guide met en garde contre une précision excessive, qui ajoute de la complexité et des processus fragiles [3]. Il rappelle aussi que les outils de supervision applicative ne servent pas au comptage de facturation.
Le tableau suivant reprend les postes de l'exemple fictif. Chaque poste a une nature différente, et il se chiffre différemment.
| Poste | Nature | Exemple fictif |
|---|---|---|
| Travail d'adaptation initial | Heures internes et sous-traitées, sur 3 mois | 120 h internes à 85 EUR/h et 60 h sous-traitées à 110 EUR/h |
| Coûts externes initiaux | Dépense ponctuelle | 5 000 EUR |
| Infrastructure dédiée | Coût récurrent | 758 EUR par mois, calcul au chapitre 4 |
| Outils dédiés | Coût récurrent | 150 EUR par mois |
| Support et mises à jour | Heures internes récurrentes | 14 h de support et 8 h de mises à jour par mois |
| Sortie | Coût de fin de contrat | 30 h internes, 10 h sous-traitées et 1 000 EUR |
Une dépense peut comporter une part fixe et une part variable, comme l'électricité, la sous-traitance ou le personnel [1]. Dans l'exemple, 40 % du coût d'infrastructure suit l'usage. La clé qui répartit les coûts communs doit aussi être écrite, car elle change le résultat selon qu'on l'inclut ou non.
Contribution de décision et trésorerie : deux lectures séparées
La marge sur coûts variables se calcule comme le chiffre d'affaires prévisionnel HT moins les charges variables. Le seuil de rentabilité ne remplace pas le compte de résultat, et une activité peut être rentable sur l'année tout en rencontrant un besoin de trésorerie [1]. Ces notions sont des cadres généraux d'entreprise. Elles ne disent pas quel coût imputer à un contrat spécifique.
Cette méthode retient donc deux conventions distinctes, à nommer comme telles dans la fiche. La contribution de décision est égale aux revenus additionnels nets retenus, moins les coûts supplémentaires causés par le scénario, y compris les coûts fixes spécifiques et les coûts de sortie retenus. Elle ne se confond pas avec la marge comptable. Le point mort est le premier mois à partir duquel la contribution cumulée reste positive ou nulle jusqu'à la fin du contrat, sortie incluse. Le calendrier de trésorerie suit, lui, les dates de facturation, de paiement et de décaissement.
Dans un laboratoire local du 8 octobre 2026 (script Python 3.14 en bibliothèque standard, sans compte cloud, à partir des prix publics AWS Paris), nous avons construit cet exemple fictif et calculé dix-huit scénarios.
Exemple fictif. L'éditeur fictif vend un tarif d'exception de 84 000 EUR HT par an sur 36 mois, facturé annuellement d'avance et payé à 45 jours. Il le compare à son offre standard, à 36 000 EUR par an facturés mensuellement, et au refus. Face à l'offre standard, l'exception rapporte donc 4 000 EUR de revenu additionnel par mois. Les coûts supplémentaires récurrents atteignent 2 233 EUR par mois, après déduction de l'infrastructure marginale et du support que l'offre standard implique déjà : 638 EUR d'infrastructure, 150 EUR d'outils et 17 heures internes (22 heures de support et de mises à jour, moins les 5 heures de l'offre standard). La contribution récurrente est donc de 1 767 EUR par mois.
Sur 36 mois, la contribution de décision atteint 43 221 EUR face à l'offre standard, et 131 601 EUR face au refus. Le point mort arrive au mois 9 face à l'offre standard. Ces deux montants ne se comparent pas à la marge d'un autre contrat. Une vue de coût complet, distincte, ajoute 9 000 EUR de charges communes fictives par mois, réparties à 8 % selon la capacité mobilisée, soit 25 920 EUR sur 36 mois. Elle ramène la lecture à 17 301 EUR sans modifier la contribution de décision.
Chiffrage fondé sur vos données
Le calendrier de trésorerie se lit à part. La facturation annuelle d'avance encaisse 84 000 EUR, mais le paiement arrive 45 jours après la facture, alors que l'infrastructure et la sous-traitance sont payées le mois suivant. Le creux atteint donc 10 838 EUR au mois 2, avant l'encaissement du mois 3, qui s'élève à 81 000 EUR net de la référence. Facturer d'avance ne suffit pas à supprimer le creux. Parmi les scénarios testés, seuls des frais initiaux facturés à la signature le suppriment, comme le montre le scénario S1 du tableau du chapitre suivant.
Les heures internes sont des capacités, pas des décaissements. La vue économique les valorise une seule fois, au taux horaire fictif. Une même capacité ne doit jamais être additionnée deux fois, sous la forme d'un salaire chargé, d'une sous-traitance et d'un coût d'opportunité.
Limites de l'exemple :
- Les prix d'infrastructure sont des prix catalogue à la demande, publiés entre le 28 septembre et le 7 octobre 2026 et lus le 8 octobre 2026. Aucune remise, aucun engagement et aucun crédit ne sont appliqués.
- Les heures, les taux horaires, les charges communes, la clé de répartition et le taux de recouvrement des clauses sont fictifs.
- Les montants sont hors taxes, et le taux de change de 0,92 EUR par dollar est fictif.
- Le modèle ne donne ni conseil juridique, ni conseil fiscal, ni conseil comptable. Les clauses ne sont que des paramètres de calcul.
- Le modèle est un outil de raisonnement. Ses conventions, en particulier la contribution de décision, doivent être validées par la fonction finance de l'entreprise avant tout usage.
- En cas d'arrêt anticipé, le modèle suppose que la référence (l'offre standard) aurait couru 36 mois : il ne modélise pas le départ du client sous l'offre standard.
Le tableau reproduit les prix publics retenus. Il est donné pour la traçabilité, pas comme un devis.
| Poste | Prix public (USD) | Quantité par mois | Coût mensuel (USD) |
|---|---|---|---|
| Nœuds de calcul Kubernetes, 3 instances m6i.large sous Linux | 0,112 par heure | 2 190 heures | 245,28 |
| Plan de contrôle Kubernetes | 0,10 par heure | 730 heures | 73,00 |
| Base PostgreSQL db.m6g.large en Multi-AZ | 0,368 par heure | 730 heures | 268,64 |
| Stockage de la base en Multi-AZ, 200 Go | 0,266 par Go et par mois | 200 Go | 53,20 |
| Volumes de stockage bloc gp3, 300 Go | 0,0928 par Go et par mois | 300 Go | 27,84 |
| Passerelle de sortie réseau (1) | 0,05 par heure | 730 heures | 36,50 |
| Stockage objet S3 Standard, premier palier | 0,024 par Go et par mois | 500 Go | 12,00 |
| Total | 716,46 |
Ces 716,46 USD par mois, majorés de 15 % fictifs pour les services non chiffrés, puis convertis à 0,92 EUR par dollar fictif, donnent 758 EUR par mois d'infrastructure dédiée.
Tester les scénarios qui font basculer la décision
Le modèle produit dix-huit scénarios. Le tableau reprend les quatorze qui éclairent le plus la décision. La contribution est totale sur l'horizon de décision. La capacité maximale est le pic mensuel de travail interne, à comparer aux 50 heures disponibles dans l'exemple.
| Scénario | Référence | Contribution (EUR) | Point mort | Besoin de trésorerie maximal (EUR) | Capacité maximale (h par mois) |
|---|---|---|---|---|---|
| S0A, base | A, offre standard | 43 221 | mois 9 | 10 838 | 47 |
| S0B, base | B, refus | 131 601 | mois 4 | 7 958 | 52 |
| S1, frais initiaux de 15 000 EUR à la signature | A | 58 221 | immédiat | 0 | 47 |
| S2, retard de mise en service de 3 mois, facturation dès la signature | A | 49 281 | mois 6 | 10 838 | 47 |
| S2b, même retard, facturation à la mise en service | A | 17 883 | mois 30 | 37 216 | 47 |
| S3, support doublé | A | 19 251 | mois 13 | 10 838 | 56 |
| S4, paiement à 60 jours | A | 43 221 | mois 9 | 22 514 | 47 |
| S5A, arrêt au mois 10 sans clause | A | -66 550 | pas de point mort | 56 010 | 47 |
| S5, arrêt au mois 10 sans clause | B | 21 830 | mois 4 | 7 958 | 52 |
| S6, arrêt au mois 10, clause de 50 % des loyers restants | B | 112 830 | mois 4 | 7 958 | 52 |
| S8, contrat de 12 mois | A | 814 | mois 9 | 10 838 | 47 |
| S8b, contrat de 6 mois | A | -9 788 | pas de point mort | 10 838 | 47 |
| S12, tarif de 60 000 EUR par an | A | -28 779 | pas de point mort | 10 838 | 47 |
| S13, travail initial de 270 h internes | A | 30 471 | mois 17 | 10 838 | 85 |
Quatre lectures se dégagent de ce tableau.
Le tarif. Au tarif de 60 000 EUR par an (S12), la contribution récurrente devient négative, de -233 EUR par mois : chaque mois d'exploitation aggrave la perte, et le modèle n'affiche aucun point mort. Pour atteindre 15 000 EUR de contribution, le tarif annuel minimal de l'exemple est de 74 593 EUR face à l'offre standard, et de 45 133 EUR face au refus. Ces valeurs sont des sorties du modèle fictif, pas des prix recommandés.
La durée. Un contrat de 12 mois dégage 814 EUR de contribution, et un contrat de 6 mois perd 9 788 EUR, parce que le point mort de l'exemple arrive au mois 9. Face à l'offre standard, il faut une durée d'au moins 21 mois pour atteindre à la fois un point mort et 15 000 EUR de contribution.
La mise en service et le paiement. Lorsque la facturation court dès la signature, le retard de trois mois ne réduit pas la contribution dans ce modèle (S2) : le client paie trois mois d'un service qui n'est pas encore livré, et la période d'exploitation est plus courte. Ce résultat ne recommande pas de facturer avant la mise en service. Il montre seulement que la date de début de facturation est un choix à documenter. Lorsque la facturation commence à la mise en service (S2b), le même retard ramène la contribution à 17 883 EUR (l'horizon passe alors à 42 mois : 36 mois de facturation à partir de la mise en service, au mois 6), repousse le point mort au mois 30 et porte le besoin de trésorerie à 37 216 EUR. Un paiement à 60 jours (S4) ne change pas la contribution, mais multiplie le besoin de trésorerie par deux environ.
La capacité et la sortie. Un support doublé (S3) ou un travail initial de 270 heures (S13) dépassent les 50 heures mensuelles. Un arrêt au mois 10 se lit au signe près selon la référence : +21 830 EUR face au refus (S5), -66 550 EUR face à l'offre standard (S5A). Une clause de durée minimale qui couvre 50 % des loyers restants porte la contribution de S5 à 112 830 EUR (S6).
Périmètre du droit
La réutilisation future de l'environnement n'est pas comptée. Le modèle ne lui attribue aucun revenu, car rien ne garantit qu'elle se produira.
Accepter, refuser ou rechiffrer
Le modèle ne décide pas. Il applique quatre critères que l'éditeur fictif a fixés pour lui-même : une contribution sur l'horizon d'au moins 15 000 EUR, un point mort au plus tard au mois 18, un besoin de trésorerie maximal d'au plus 25 000 EUR, et une capacité mobilisée d'au plus 50 heures par mois. Ces seuils sont des paramètres que chaque éditeur règle selon sa situation. Ils ne sont ni universels ni recommandés.
De la demande à la décision, selon les critères fixés par l'éditeur
Le schéma montre l'ordre de lecture d'une demande d'exception, de la référence retenue jusqu'à l'une des quatre issues : accepter, rechiffrer ou réduire le périmètre, différer ou étaler, ou refuser.
Schéma défilable horizontalement ; sa version textuelle complète suit.
Lire le schéma sous forme textuelle
- La demande est écrite et chiffrée avant tout calcul.
- Une référence explicite est choisie : l'offre standard ou le refus.
- Si la contribution de décision est sous le seuil, on rechiffre, on réduit le périmètre ou on refuse.
- Si elle atteint le seuil, on vérifie le point mort et le besoin de trésorerie. En cas d'écart, on agit sur les frais initiaux, la facturation, la durée minimale, ou on diffère.
- Si la capacité mobilisée dépasse le plafond, on étale, on sous-traite ou on diffère.
- Sinon, on accepte le périmètre écrit, daté, avec son responsable de validation.
Dans l'exemple, le scénario de base respecte les quatre critères face à l'offre standard. Le scénario S12 échoue sur la contribution et sur le point mort : la réponse est un tarif plus élevé ou un périmètre réduit. Face à l'offre standard, les scénarios S3 et S13 dépassent la capacité, et le cas défavorable cumulé S11 (retard de 3 mois, support multiplié par 1,5, paiement à 60 jours) atteint 51,5 heures. Face au refus, les trois lignes calculées (S0B, S5 et S6) atteignent 52 heures, car les 5 heures de support de l'offre standard ne sont plus déduites. Dans ces cas, il faut étaler, sous-traiter ou différer. Le scénario S2b échoue sur le point mort et sur le besoin de trésorerie : les frais initiaux, une facturation d'avance ou une durée minimale plus longue sont les leviers à examiner.
La décision reste un choix documenté entre accepter le périmètre tel quel, le réduire, le rechiffrer, le différer ou refuser. Ce qui ne se négocie pas, c'est la fiche : la référence retenue, l'exigence écrite, le responsable de validation et les conditions d'acceptation.
Sources officielles et limites de lecture
Faits datés
Les sources ci-dessous ont été lues le 8 octobre 2026. Elles ne fixent ni seuil de marge, ni prix de marché, ni règle d'acceptation.
Vérifié le
Le cadre Bpifrance décrit la marge sur coûts variables et le seuil de rentabilité [1]. Le cadre de la FinOps Foundation décrit les unités de coût par client et l'obligation de documenter les définitions [2]. Le guide Microsoft distingue les objectifs de mesure et met en garde contre la précision excessive [3]. Les prix d'infrastructure proviennent de l'index public AWS Price List, région eu-west-3 [4].
Limites de lecture : le cadre Bpifrance est général et ne s'applique pas mécaniquement au prix d'un contrat spécifique. Le cadre FinOps n'impose ni seuil ni prix conseillé, et la qualité des données reste déterminante. Le guide Microsoft concerne Azure et ne chiffre ni le support humain ni le contrat commercial.
Sources
- https://bpifrance-creation.fr/encyclopedie/previsions-financieres-business-plan/previsions-financieres/seuil-rentabilite : Bpifrance Création, « Le seuil de rentabilité », publiée en septembre 2026, lue le 8 octobre 2026.
- https://www.finops.org/framework/capabilities/unit-economics/ : FinOps Foundation, « Unit Economics », page sans date affichée, lue le 8 octobre 2026.
- https://learn.microsoft.com/en-us/azure/architecture/guide/multitenant/approaches/cost-management-allocation : Microsoft Learn, « Architectural Approaches for Cost Management and Allocation in a Multitenant Solution », ms.date 2026-08-21, lue le 8 octobre 2026.
- https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/index.json : AWS Price List, offres Amazon EC2, Amazon EKS, Amazon RDS, Amazon S3 et Amazon VPC, région eu-west-3, publications du 28 septembre au 7 octobre 2026, lues le 8 octobre 2026.