Cahier des charges des calculs
Tarificateur · Situation financière · Trésorerie
Ce document décrit exactement ce que calcule
la plateforme, dans l'ordre où elle le calcule, avec les formules telles qu'elles sont écrites dans le code.
Il sert de référence commune : si un chiffre surprend, c'est ici qu'on vérifie d'où il vient.
MOBI CONCEPT · Plateforme de gestion · Version V106 · Mis à jour le 21/09/2026 · Usage interne
Partie A — Le Tarificateur
Le tarificateur part des caractéristiques d'un hébergement et produit un prix de vente client.
Tout passe par une fonction, calc(modèle), appliquée à chaque modèle du projet, puis par
totals() qui consolide.
A.1 · Les grandeurs de départ
| Grandeur | Comment elle est obtenue |
| surf — surface | Longueur × largeur, ou saisie manuelle si elle est renseignée.
Un hébergement composé de plusieurs modules additionne la surface de chaque module. |
| nb — nombre d'unités | Saisi dans le modèle (nbunit). C'est lui qui multiplie tout. |
| module — prix de la caisse | Si un prix forfaitaire est saisi, il l'emporte.
Sinon : surface × prix au m². |
// prix de la caisse, par unité
module = (prixForfait > 0) ? prixForfait : surf × prixM2
A.2 · Le coût d'un hébergement, unité par unité
Le coût de construction d'une unité rassemble la caisse, les meubles, les postes de finition,
un éventuel supplément producteur, et déduit le bardage s'il n'est pas posé.
// coût de construction, par unité
constrU = module + meubles + finitions + supplémentMSP − remiseSansBardage
// coût du lodge tel qu'il entre dans le prix
coutLodge = constrU + commission + commissionAmbassadeurParUnité
- finitions = somme de tous les postes de finition saisis (sanitaire, électricité, menuiseries,
bardage, portes, carrelage, peinture, kit déco…).
- commission = commission forfaitaire + commission architecte.
- commissionAmbassadeurParUnité = commission totale ÷ nombre total d'unités du projet.
Voir la section A.6.
A.3 · Les services : revient et facturé
Chaque service a deux montants, tous deux saisis à l'unité : ce qu'il nous coûte (revient)
et ce qu'on le facture. L'écart entre les deux est de la marge.
// par unité
servRevU = transport + installation + grutage + pieux + terrasses + scénographie
+ raccordements + aménagements + mobilier + PAC + pack déco + options libres (revient)
servFactU = les mêmes postes en version « facturé » + options libres (facturé)
// pour le modèle entier
servRevTot = servRevU × nb
servFactTot = servFactU × nb
Le transport peut être automatique. S'il est calculé par la grille (départ → destination),
c'est ce montant qui sert de revient ; sinon c'est la valeur saisie. L'écran indique lequel des deux s'applique.
La terrasse 16 m² est un cas particulier : elle ajoute 7 000 € au prix facturé par unité,
sans revient associé — elle est donc intégralement de la marge.
A.4 · Le prix de vente d'un modèle
// par unité
pvU = coutLodge + servFactU + terrasse16 + meublesÉquipementsFacturés
// pour le modèle
pvMod = pvU × nb
prMod = constrU × nb + servRevTot + meublesÉquipementsRevient × nb
// marge du modèle
margeCommission = commission × nb
margeServices = (servFactU − servRevU) × nb + terrasse16 × nb
+ (meqpFacturé − meqpRevient) × nb
margeModèle = margeCommission + margeServices
Ce que la marge du modèle ne contient pas : la commission ambassadeur.
Elle est dans le prix de vente (via coutLodge) et dans le prix de revient, donc son effet sur la marge est nul.
A.5 · Du modèle au projet : les totaux
// somme sur tous les modèles utilisés
pr = Σ prMod + AMO_revient + meublesMobiConcept
pvBrut = Σ pvMod + AMO_facturé
margeBrute = Σ margeCommission + Σ margeServices + (AMO_facturé − AMO_revient)
// après réduction commerciale
pvNet = pvBrut − remise
marge = margeBrute − remise − meublesMobiConcept
taux = marge ÷ pvNet × 100
| Poste du projet | Effet |
| AMO & conseils | Revient et facturé saisis séparément. L'écart est de la marge. |
| Meubles & Équip. Mobi Concept | Prix de revient à notre charge : il augmente le prix de revient
et diminue la marge, sans apparaître au prix de vente. |
| Réduction commerciale | Se déduit du prix de vente et de la marge, euro pour euro. |
| Commission ambassadeur | Neutre sur la marge. Voir A.6. |
Conséquence à connaître. Une remise de 10 000 € ne coûte pas 10 000 € de chiffre
d'affaires : elle coûte 10 000 € de marge. Sur une offre à 15 % de marge, une remise de 10 000 €
efface la marge de près de 67 000 € de vente.
A.6 · La commission ambassadeur
Elle est saisie dans la zone MOBI CONCEPT du projet global (ou dans l'assistant), après avoir
choisi l'ambassadeur dans la liste (Alban, Jeremy, Jean Louis, Eric, Julien), selon deux modes :
- Forfaitaire : on saisit le montant total à reverser.
- À l'unité : on saisit un montant par unité ; le total = montant par unité × nombre total
d'unités (somme des unités de chaque modèle, ex. M1 3 u + M2 2 u = 5 u). Le total se recalcule tout seul
quand une quantité change.
Dans les deux cas, c'est ce total qui est utilisé partout. Il est ensuite :
commissionParUnité = commissionTotale ÷ nombre total d'unités du projet
- intégrée au coût du lodge, donc au prix facturé au client — elle n'apparaît jamais en tant que
ligne sur le devis client ;
- comptée aussi dans le prix de revient, puisqu'elle sera reversée ;
- donc neutre sur la marge de Mobi Concept : elle transite.
Contrôle intégré. L'écran de vérification teste l'égalité
prix de vente = prix de revient + marge + ambassadeur. Un écart signale une saisie incohérente.
A.7 · TVA, remise et arrondis
- Le taux de TVA est choisi au projet (0 % en autoliquidation, 6, 10, 12, 17, 20 ou 21 %). Changer la société
émettrice bascule automatiquement le taux (France 20 %, Belgique 21 %) — il reste modifiable.
- Tous les calculs sont conduits hors TVA. La TVA n'est appliquée qu'à l'édition des documents.
- Les montants sont arrondis à l'euro à l'affichage seulement : les calculs gardent les décimales.
Un total peut donc différer d'un euro de la somme des lignes affichées.
A.8 · PAC en option et synthèse revient | facturé
- PAC incluse : ses montants revient et facturé entrent dans les services, donc dans le prix et la marge.
- PAC proposée en option (non incluse) : ses montants sont chiffrés à part ; ils n'entrent
ni dans le prix de vente ni dans la marge. La synthèse les affiche sous « Hors prix ».
- Marge unitaire et totale : partout où revient et facturé sont saisis, marge / unité = facturé − revient,
et marge totale = marge / unité × nombre d'unités du modèle.
- Synthèse & vérif. : deux colonnes, prix de revient à gauche, prix facturé à droite, modèle par modèle,
chaque ligne avec son calcul (ex. 30 m² × 1 350 €/m² × 3 u). Total revient = Σ revient des modèles + ambassadeur
+ AMO revient + meubles Mobi ; total facturé = Σ facturé des modèles + AMO facturé − remise.
Marge = total facturé − total revient ; elle doit être égale à la marge du tableau de bord (contrôle affiché).
Partie B — Situation financière
Cet écran ne saisit rien : il rapproche des données déjà entrées ailleurs. C'est important pour
comprendre d'où vient un écart — il vient toujours de la saisie, jamais du rapprochement.
B.1 · La trésorerie disponible
trésorerieDisponible = Σ soldes des comptes bancaires − réserve TVA
Les six comptes de référence sont affichés dans cet ordre, avec leur entité et leur pays :
| Ordre | Compte | Entité |
| 1 | Belfius | 🇧🇪 Mobi Belgique |
| 2 | Belfius | 🇫🇷 Mobi France |
| 3 | Belfius | 🇱🇺 CBS |
| 4 | Qonto | 🇫🇷 Mobi France |
| 5 | Vivid Money | 🇱🇺 CBS |
| 6 | Crelan | 🇧🇪 Mobi Belgique |
Pourquoi déduire la TVA. Les soldes bancaires sont TVA comprise : ils contiennent de la TVA
déjà encaissée sur des dossiers passés, qui sera reversée à l'État. La réserve TVA la retire pour ne garder
que ce qui nous appartient réellement. Elle n'est donc jamais recomptée du côté des engagements —
ce serait la compter deux fois.
Un compte non reconnu n'est jamais masqué. Une ligne bancaire dont le libellé ne
correspond à aucun des six comptes est affichée à part et comptée dans le total. Le contrôle de
cohérence la signale pour qu'on la renomme au format « Banque — Entité ».
B.2 · Les créances — rentrées par chantier
Un chantier est soit facturé globalement, soit découpé en tranches (acompte, livraison, solde).
// montant d'une tranche
montantTranche = montant saisi, sinon contrat × pourcentage de la tranche
// ce qui est encaissé
encaissé = Σ des paiements enregistrés sur la tranche
(à défaut : le montant entier si la tranche est cochée « payée »)
resteÀPercevoir = max(contrat − encaissé, 0)
Les honoraires & commissions du pipe commercial s'ajoutent aux créances.
B.3 · Les engagements
// par chantier, en regroupant par fournisseur
coût = Σ montants des tranches fournisseurs
payé = Σ paiements enregistrés
resteÀPayer = max(coût − payé, 0)
// dettes hors chantier
soldeDette = max((CBS + MOBI BE + MOBI FR) − Σ paiements, 0)
ENGAGEMENTS = Σ resteÀPayer + Σ soldeDette
Le lien entre les deux colonnes se fait par le NOM du chantier. C'est le seul lien.
Si un chantier s'appelle « Camping du Lac » côté recettes et « Camping-du-Lac » côté charges, les deux
ne se rejoignent pas : les charges tombent à zéro et la marge paraît totale. Le contrôle de cohérence le dit.
B.4 · Position nette
RESSOURCES = trésorerie disponible + créances (chantiers + honoraires)
ENGAGEMENTS = restes à payer chantiers + solde des dettes fournisseurs
positionNette = RESSOURCES − ENGAGEMENTS
La position nette n'est pas de la trésorerie. Elle suppose que 100 % des créances
seront encaissées, et n'a donc de sens que si les chantiers vont à leur terme. Le chiffre à regarder pour
savoir si l'on peut payer cette semaine, c'est la trésorerie disponible.
B.5 · La marge par chantier
margeChantier = contrat − coût engagé
tauxDeMarge = margeChantier ÷ contrat
Règle de prudence appliquée depuis la V106 : si un chantier a un contrat mais
aucune charge saisie, sa marge n'est ni affichée ni comptée dans le total. Elle vaudrait mécaniquement 100 %
et fausserait la marge globale. L'écran affiche « charges non saisies » et le contrôle de cohérence
nomme le chantier concerné.
Partie C — Le plan de trésorerie
Il projette 18 mois, mois par mois, de juillet 2026 à décembre 2027.
C.1 · Le solde de départ
soldeInitial = Σ soldes des comptes bancaires − réserve TVA
C'est exactement la même base que la trésorerie disponible de la Partie B. Les deux écrans ne peuvent
donc pas diverger.
C.2 · Les entrées
- Les tranches de chantier, placées au mois de leur échéance. Une tranche sans date part dans un
mois « non daté » défini dans la configuration.
- Les rentrées ponctuelles saisies à la main (subventions, apports, cessions…).
C.3 · Les sorties
| Ligne | Méthode |
| Charges mensuelles | Déduites chaque mois. Deux modes : « Plan » (le montant du
budget) ou « Simulation » (un montant que l'on fixe). Un mois précis peut être corrigé à la main —
c'est ainsi qu'on réajuste les charges déjà réglées. |
| Remboursement d'emprunt | Capital mensuel de la configuration, corrigeable mois par mois. |
| Dettes fournisseurs | Solde restant dû, placé au mois de son échéance. |
| Provisions achats équipements | Pour les projets à livrer. |
| Décaissements de chantier | Tranches fournisseurs, au mois prévu. |
| Sorties ponctuelles | Saisies à la main. |
C.4 · Le cumul et le point bas
soldeDuMois(m) = entrées(m) − sorties(m)
cumul(m) = soldeInitial + Σ soldeDuMois(1…m)
trésorerieFin2026 = cumul(décembre 2026)
pointBas = le plus petit cumul de la période, et le mois où il tombe
Le point bas est l'indicateur qui compte. Une trésorerie confortable en fin d'année
n'empêche pas un mois à découvert en cours de route. C'est ce mois-là qu'il faut préparer.
Partie D — Qui peut modifier quoi
| Profil | Voit | Modifie | Soldes bancaires |
| Direction | Tout | Tout sauf charges et salaires (réservés nominativement) | ✅ Oui |
| Gestion | Tout sauf budget et salaires | Oui | ❌ Non |
Comptabilité comptabilite@ · isabelle.janssen@ |
Situation financière, Trésorerie, Contrôle de cohérence, Synthèse CA |
Oui — dont les charges passées | ❌ Non |
| Commercial | Pipe commercial et Doublons | Oui, sans aucune marge à l'écran | ❌ Non |
| Analyste · CA | Consultation du pilotage | Non | ❌ Non |
Correction apportée en V106. Jusqu'à la V105, les soldes bancaires étaient visibles
par tout profil ayant le droit de modifier — gestion et commercial compris — alors qu'ils avaient été
annoncés comme réservés à la direction. C'est désormais le cas.
Le profil Comptabilité a été créé pour que Geoffroy, Isabelle et Domoina puissent faire évoluer les
charges passées et fiabiliser les perspectives de trésorerie, sans accéder aux soldes bancaires ni au
business plan.
Partie E — Le contrôle de cohérence
Il tourne à chaque affichage de la Situation financière. Il ne corrige rien : il dit d'où vient un écart.
| Ce qu'il vérifie | Ce que ça veut dire |
| Un chantier a un contrat mais aucune charge | Sa marge serait de 100 %. Le plus souvent, les deux
côtés ne portent pas le même nom. |
| Un chantier a des charges sans recette | Il consomme de la trésorerie sans contrepartie enregistrée. |
| Encaissé supérieur au contrat | Un avenant non reporté, ou un encaissement saisi deux fois. |
| Payé supérieur au coût | Une tranche fournisseur manque, ou un paiement est en double. |
| Un compte de référence sans solde | Le total bancaire est incomplet. |
| Une ligne bancaire non reconnue | Elle est comptée, mais elle mérite d'être renommée. |
| Deux chantiers du même nom | Ils seront fusionnés ou comptés deux fois selon l'écran. |
La règle à retenir. Tant que le contrôle affiche un point à vérifier, les totaux ne sont
pas faux : ils sont incomplets. La différence compte — un total incomplet bouge dès qu'on complète
la saisie, et c'est ce qui donne l'impression que « les chiffres changent d'une version à l'autre ».