La marge est le chiffre le plus demandé et le plus mal calculé d'un ERP : calculée sur la commande et non sur le livré, figée au moment de la vente alors que le coût a changé, et affichée à des utilisateurs qui n'ont pas à connaître les prix d'achat.
Vingt-huit modules communautaires traitent ces trois défauts, les budgets et les tableaux de bord. Ils terminent six dépôts.
Résumé
Six modules traitent la marge sur le livré : la marge calculée sur ce qui est sorti et non commandé, sa variante en dépôt direct, sa resynchronisation quand le coût d'un mouvement change, le calcul depuis les listes de prix, la marge des élaborations, et un rapport de marge.
Quatre modules traitent la confidentialité de la marge : la restriction d'accès sur les ventes, sur le produit, et deux colles reliant ces restrictions à la marge sur le livré.
Quatre modules traitent la marge ailleurs : la marge sur les factures avec sa reprise depuis la commande, le coût de réapprovisionnement comme méthode surchargeable, et le calcul de marge des promotions.
Cinq modules traitent les budgets : des budgets analytiques avec leurs postes, un moteur de tableaux de bord MIS avec ses modèles et ses styles, ses budgets prévisionnels par indicateur et par compte, et un module de démonstration.
Neuf modules enfin traitent les rapports : cinq pour les nomenclatures — explosion avec le stock disponible, matrice, export tableur à tous niveaux et au premier niveau, nomenclature aplatie —, cinq pour les achats — commentaires types, colonne de taxes masquée, conditionnements, format de date, adresse de livraison — et un rapport de tâches de projet.
L'essentiel
- La marge calculée sur le livré, non sur la commande.
- La marge resynchronisée quand le coût d'un mouvement change.
- La marge masquée aux utilisateurs sans droit.
- La marge sur les factures, reprise de la commande.
- Des budgets analytiques avec leurs postes budgétaires.
- Des tableaux de bord MIS avec modèles et styles.
- Des budgets prévisionnels par indicateur et par compte.
- Les nomenclatures exportées en tableur, à tous niveaux ou au premier.
Ce que ces modules ajoutent à l'instance
| Dépôt | Modules | Nombre |
|---|---|---|
margin-analysis | sale_margin_delivered, sale_margin_delivered_dropshipping, sale_margin_sync, sale_margin_pricelist_computation, sale_elaboration_margin, sale_report_margin, sale_margin_security, sale_margin_delivered_security, product_standard_margin, product_standard_margin_security, account_invoice_margin, account_invoice_margin_sale, product_replenishment_cost, loyalty_margin_computation | 14 |
mis-builder | mis_builder, mis_builder_budget, mis_builder_demo | 3 |
account-budgeting | account_budget_oca | 1 |
manufacture-reporting | mrp_bom_current_stock, mrp_bom_matrix_report, mrp_bom_structure_xlsx, mrp_bom_structure_xlsx_level_1, mrp_flattened_bom_xlsx | 5 |
purchase-reporting | purchase_comment_template, purchase_order_report_hide_tax, purchase_packaging_report, purchase_report_date_format, purchase_report_shipping_address | 5 |
project-reporting | project_task_report | 1 |
Les menus : Facturation ▸ Analyse ▸ MIS Reporting et ses sous-menus, Facturation ▸ Configuration ▸ MIS Reporting ▸ Modèles et Styles, Facturation ▸ Comptabilité ▸ Budgets et Postes budgétaires, Fabrication ▸ Analyse ▸ BoM Current Stock Explosion et Matrice de nomenclature, Achats ▸ Configuration ▸ Document Comments.
La marge, sur le livré et à jour
La marge standard d'Odoo se calcule sur la commande, avec le coût connu au moment de la vente. Deux défauts en découlent : une commande annulée compte dans la marge, et un coût qui change après la vente ne la corrige pas. Sur une activité à faible marge, l'écart dépasse facilement le résultat.
sale_margin_delivered calcule la marge sur ce qui est livré, et non commandé. sale_margin_delivered_dropshipping en est la variante pour le dépôt direct, où la marchandise ne passe pas par le stock.
sale_margin_sync recalcule la marge quand le prix de revient d'un mouvement de stock change — le cas d'une facture fournisseur arrivée après la livraison, qui corrige le coût.
sale_margin_pricelist_computationcalcule les marges depuis les listes de prix.sale_elaboration_margincalcule la marge des élaborations — les transformations légères à la commande.sale_report_marginajoute un rapport de marge.
Trois de ces modules ont un README réduit à leur catégorie ; leur objet se lit dans leur nom et leur dépendance.
Qui a le droit de voir la marge
Afficher une marge, c'est afficher un prix d'achat. Un commercial qui voit la marge voit la remise que son fournisseur accorde à l'entreprise — information qu'il emporte en partant, et que certains contrats d'achat interdisent de divulguer.
Quatre modules restreignent l'accès à la marge :
sale_margin_securityrestreint la marge sur les commandes de vente, en s'appuyant sur une brique de sécurité du coût produit.product_standard_margin_securityrestreint la marge standard du produit.sale_margin_delivered_securityest la colle entre la restriction et la marge sur le livré.product_standard_marginfournit la marge standard elle-même. README réduit à sa catégorie.
La restriction suppose la brique product_cost_security, qui restreint l'accès au prix de revient : la marge n'est protégée que si le coût l'est.
La marge ailleurs
account_invoice_marginaffiche la marge sur les factures, etaccount_invoice_margin_salela reprend depuis la commande.product_replenishment_costfournit une méthode surchargeable de coût de réapprovisionnement — une brique pour développeurs.loyalty_margin_computationpermet une formule de calcul de marge sur les promotions.
Le dernier répond à la question posée par les promotions : une remise de 10 % sur un article à 30 % de marge et sur un article à 12 % n'a pas le même effet. Une formule explicite permet de l'arbitrer.
Les promotions et leurs garde-fous sont traités dans promotions et fidélité.
Les budgets et les tableaux de bord
account_budget_oca (LGPL-3) fournit des budgets avec leurs postes budgétaires, sous Facturation ▸ Comptabilité ▸ Budgets. README réduit à sa catégorie.
mis_builder (version 18.0.1.7.2) est le moteur de tableaux de bord de type système d'information de gestion : des rapports construits par configuration, avec leurs modèles et leurs styles, consultables sous Facturation ▸ Analyse ▸ MIS Reporting.
Ce moteur est la réponse communautaire au besoin de reporting financier paramétrable : construire un compte de résultat par activité, un tableau de flux ou un suivi budgétaire sans développer un rapport, et le rejouer chaque mois.
mis_builder_budget (version 18.0.2.0.0) y ajoute des budgets prévisionnels rattachés à un rapport, avec deux saisies — par indicateur et par compte. Plusieurs budgets peuvent coexister.
mis_builder_demo est un module de démonstration : il n'a rien à faire en production.
Les indicateurs calculés et les exports SQL sont traités dans exports SQL et indicateurs.
Les rapports de nomenclature, d'achat et de projet
Cinq modules traitent les nomenclatures :
mrp_bom_current_stockexplose la nomenclature et affiche le stock disponible dans l'emplacement source. Menu sous Fabrication ▸ Analyse ▸ BoM Current Stock Explosion.mrp_bom_matrix_report(LGPL-3) fournit une matrice de nomenclature. README réduit à sa catégorie.mrp_bom_structure_xlsxexporte la structure de nomenclature en tableur, et..._level_1sa variante limitée au premier niveau.mrp_flattened_bom_xlsxexporte une nomenclature aplatie. README réduit à sa catégorie.
L'explosion avec le stock disponible est l'écran que cherche un responsable de production avant de lancer un ordre : non pas la liste des composants, mais lesquels manquent. C'est la différence entre une nomenclature et une décision.
Cinq modules traitent les rapports d'achat : des commentaires types, la colonne de taxes masquée quand elle n'apporte rien, les données de conditionnement, le format de date, et l'adresse de livraison sur le rapport de commande.
project_task_report fournit enfin un rapport de tâches de projet.
L'adresse de livraison sur la commande d'achat répond à un cas précis : faire livrer un fournisseur directement sur un chantier ou chez un client.
Limites connues
- Huit modules ont un README réduit à leur catégorie : quatre modules de marge, le budget, et trois rapports de nomenclature ou d'achat.
- La marge sur le livré ne remplace pas la marge sur commande : les deux coexistent, et leur écart porte les annulations et les livraisons partielles.
- La restriction de marge suppose la restriction du coût (
product_cost_security) : sans elle, la marge est masquée mais le prix de revient reste visible. sale_margin_syncrecalcule des marges passées : à éprouver, car cela modifie des chiffres déjà communiqués.mis_builderdépend de quatre modules dont les plages de dates et la génération de tableurs : c'est un projet de reporting, pas un module d'affichage.mis_builder_demone doit pas être installé en production.- Les exports de nomenclature en tableur dépendent de
report_xlsx: une brique de génération de fichiers. - Le budget analytique et les budgets MIS sont deux mécanismes distincts : choisir lequel porte le suivi budgétaire.
Identité technique
Les vingt-huit modules viennent de six dépôts OCA, branche 18.0 — margin-analysis, mis-builder, account-budgeting, manufacture-reporting, purchase-reporting et project-reporting —, désormais tous documentés ici. Vingt-cinq sont en AGPL-3, trois en LGPL-3. Les dépendances externes : sale_margin, sale_stock, product_cost_security, stock_dropshipping, sale_elaboration, loyalty, date_range, board, report_xlsx, base_comment_template, mrp, purchase_stock et project.
Voir aussi exports SQL et indicateurs et l'analyse des ventes sur le livré.
Questions fréquentes
Pourquoi la marge d'Odoo est-elle fausse ?
Deux raisons : elle se calcule sur la commande — une commande annulée y compte — et avec le coût connu au moment de la vente, qu'un coût corrigé plus tard ne met pas à jour. sale_margin_delivered la calcule sur le livré, sale_margin_sync la recalcule quand le coût d'un mouvement change. Sur une activité à faible marge, l'écart dépasse le résultat.
Peut-on masquer la marge aux commerciaux ?
Oui, par quatre modules de restriction — sur les ventes, sur le produit, et deux colles vers la marge sur le livré. Attention : ils supposent la brique product_cost_security, qui restreint le prix de revient. Sans elle, la marge est masquée mais le coût reste visible — et afficher une marge, c'est afficher un prix d'achat.
Odoo Community permet-il un reporting financier paramétrable ?
Oui, avec mis_builder : des tableaux de bord de gestion construits par configuration, avec modèles et styles — compte de résultat par activité, tableau de flux, suivi budgétaire — rejouables chaque mois. mis_builder_budget y ajoute des budgets prévisionnels par indicateur et par compte. C'est un projet de reporting, pas un module d'affichage.
Peut-on voir quels composants manquent avant de lancer une fabrication ?
Oui : mrp_bom_current_stock explose la nomenclature et affiche le stock disponible dans l'emplacement source, sous Fabrication ▸ Analyse ▸ BoM Current Stock Explosion. C'est la différence entre une nomenclature et une décision — non pas la liste des composants, mais lesquels manquent.
Peut-on mesurer l'effet d'une promotion sur la marge ?
loyalty_margin_computation permet une formule de calcul de marge sur les promotions. Une remise de 10 % sur un article à 30 % de marge et sur un article à 12 % n'a pas le même effet — une formule explicite permet de l'arbitrer avant d'accorder l'offre.
Se faire accompagner
La marge est le chiffre sur lequel se prennent les décisions commerciales, et il est faux dans la plupart des instances : calculé sur la commande, figé au coût de la vente, et visible de personnes qui n'ont pas à connaître les prix d'achat. Trois modules corrigent les trois défauts.
Nous commençons donc par la marge sur le livré et sa resynchronisation — en prévenant que cela modifie des chiffres déjà communiqués —, puis nous posons les restrictions d'accès avec la brique de coût, sans laquelle elles ne protègent rien. Voir les prestations d'Atalios Consulting ou demander un rappel.
Pour aller plus loin
En résumé
La marge est le chiffre le plus demandé et le plus mal calculé d'un ERP : calculée sur la commande et non sur le livré, figée au coût de la vente, et affichée à des utilisateurs qui n'ont pas à connaître les prix d'achat. Vingt-huit modules traitent ces défauts. Parlons de vos marges.