Se rendre au contenu

Comptabilité analytique Odoo CE : plans, distribution, marges projet

Saison 11 · Article 4/5 · Hub Projet & Services
13 mai 2026 par
Comptabilité analytique Odoo CE : plans, distribution, marges projet
B.Mustapha
| Aucun commentaire pour l'instant

Saison 11 · Article 4/5 · Gestion de Projet & Analytique CE

Comptabilité analytique Odoo CE : plans, distribution, marges projet

L'analytique terrorise beaucoup d'utilisateurs. Pourtant, dès qu'il faut mesurer la rentabilité d'un projet, d'un département ou d'une catégorie de produits, c'est elle qui fait tout le travail. Cet article démystifie les plans analytiques refondus depuis la v17, la distribution multi-plans sur factures et achats, l'auto-distribution depuis le projet et les règles d'applicabilité. En Odoo Community, sans aucun module additionnel. La pièce maîtresse qui boucle le pilotage projet de la série S11.

1. Calculer la marge réelle des missions en cours

L'analytique répond à une question simple que toute direction se pose tôt ou tard : « Quelle marge brute pour chaque mission ? ». Prenons une ESN qui pilote trois missions en parallèle — « Audit Réseau », « App Métier », « Déploiement WiFi ». Sur une seule semaine, le pivot Feuilles de temps préparé par la responsable opérationnelle — voir Feuilles de temps en Odoo CE — affiche 42 heures consommées : 16h sur « Audit Réseau », 16h sur « App Métier », 10h additionnelles sur « Audit Réseau ». Le pivot timesheet livre les heures, mais ni les coûts associés, ni la double lecture demandée par le pilotage : marge par projet et charge par département IT.

Les 42h saisies en feuille de temps doivent être ventilées : combien sur « Audit Réseau », combien sur « App Métier », combien d'heures internes du département IT-Réseaux ? L'analytique répond à cette question. Pour l'agence, l'étape suivante consiste à configurer un second axe de pilotage en parallèle du plan Projet natif. Direction Comptabilité > Configuration > Comptabilité analytique > Plans analytiques.

📖 Définition — Plan vs compte analytique

Un plan analytique = un axe d'analyse (Projet, Département, Produit…). Un compte analytique = une valeur prise par cet axe. Exemple : Audit Réseau est un compte du plan Projet ; IT-Réseaux est un compte du plan Département. Chaque ligne ventilée porte une combinaison de comptes appartenant à plusieurs plans.

2. Pourquoi l'analytique : trois axes naturels

Trois axes structurent toute analyse de gestion en ingénierie de services : par projet, par département, par produit ou catégorie. Chaque projet créé en Démarrer ses projets dans Odoo CE dispose déjà d'un compte analytique sur le plan natif Projet — il suffit de le compléter par les autres axes de pilotage.

Axe Projet

Répond à « Cette mission est-elle rentable ? ». Agrège revenus facturés, coûts directs (timesheets, factures fournisseurs ventilées) et fait apparaître une marge brute. Axe pilote dans une ESN — chaque devis client se retrouve en compte analytique projet.

Axe Département

Répond à « Quel pôle interne consomme le plus de charges fixes et de licences ? ». Croise plusieurs missions sur un même département (IT-Réseaux porte autant « Audit Réseau » que « Déploiement WiFi ») et chiffre un coût de structure indépendant du carnet de commandes.

Axe Produit / catégorie

Répond à « Quels produits ou prestations génèrent quelle marge ? ». Moins utilisé en service pur, mais clé pour les hybrides produit + projet (revente matériel + intégration).

L'ESN active les deux premiers axes. Le plan Projet existe nativement depuis l'installation du module Projet. Le plan Département, lui, se crée manuellement.

3. Plans analytiques refondus depuis v17

Le menu cible est Comptabilité > Configuration > Comptabilité analytique > Plans analytiques. Clique Nouveau, renseigne name="Département", default_applicability="Optional", color=4 (vert sauge), puis ouvre l'onglet Comptes analytiques et ajoute quatre lignes : IT-Audit, IT-Dev, IT-Réseaux, Commercial. Sauvegarde. Le plan est créé.

Liste des 4 comptes analytiques du plan Département : Commercial, IT-Audit, IT-Dev (4 800 DA), IT-Réseaux (15 200 DA)
Figure 1 — Les 4 comptes du plan Département — accessibles depuis Configuration > Comptabilité analytique > Plans analytiques > Département > Comptes analytiques. Les soldes débit/crédit s'alimentent automatiquement depuis les écritures analytiques (timesheets + lignes de factures ventilées).
📖 Définition — Refonte v17

Avant Odoo 17, l'analytique reposait sur des Tags + un compte unique. Depuis la v17, l'architecture est passée à deux modèles distincts : account.analytic.plan (l'axe) et account.analytic.account (la valeur). Chaque plan racine génère une colonne Many2one dynamique sur les écritures analytiques (account_id pour le plan Projet, x_plan{N}_id pour les autres). Confirmé en Odoo 19 CE.

Sur chaque compte, renseigne un code court (IT-AUD, IT-DEV, IT-NET, COM) pour les exports comptables. Le champ plan_id est obligatoire — impossible de créer un compte analytique sans plan, rupture avec les anciennes versions.

4. Comptes analytiques : créer, hiérarchiser, lier projet

Côté plan Projet (natif), trois comptes ont été créés automatiquement à la création des projets de l'agence — un par mission : Audit Réseau, App Métier, Déploiement WiFi. Chaque enregistrement project.project porte le champ account_id qui pointe vers son compte analytique. Tu peux le vérifier sur la fiche projet, onglet Paramètres.

L'étape suivante consiste à rattacher chaque projet à son département sur l'axe Département. Ouvre la fiche projet Audit Réseau, descends dans la section analytique de l'onglet Paramètres, et renseigne IT-Réseaux sur la colonne dynamique du plan Département. Même geste pour Déploiement WiFi (IT-Réseaux) et App Métier (IT-Dev). Le projet Interne hérite du département Commercial.

Conséquence directe : à chaque fois qu'une feuille de temps est saisie sur l'un de ces projets, la ligne analytique générée portera automatiquement deux comptes — un sur le plan Projet, un sur le plan Département. Pas de double saisie pour les consultants. La hiérarchie de plans (parent_id) reste optionnelle ici : l'agence ne crée pas de sous-plans. Les 4 comptes du département vivent à plat.

5. Distribution analytique : pourcentages, multi-plans, format JSON

Passons maintenant à la facturation fournisseurs. Une facture matérielle de 12 000 DA vient d'arriver — switchs réseau et câbles RJ45 pour la mission « Déploiement WiFi ». Sur la ligne facture, clique la cellule Distribution analytique : un pop-up apparaît avec deux colonnes (Projet et Département) et une zone de saisie de pourcentage.

Ligne de facture fournisseur matérielle affichant deux badges de distribution analytique simultanée : projet Déploiement WiFi et département IT-Réseaux
Figure 2 — Distribution multi-plans sur une seule ligne — la facture matériel WiFi (12 000 DA) ventile à 100 % à la fois sur le plan Projet (compte « Déploiement WiFi ») et sur le plan Département (compte IT-Réseaux). Format JSON stocké : {"5,2": 100}.
📖 Définition — Format JSON de la distribution

Le champ analytic_distribution est un dictionnaire JSON stocké sur la ligne facture ou achat. Trois patterns à retenir :

  • {"5": 100} = 100 % sur compte id=5 (un seul plan).
  • {"5,2": 100} = 100 % sur compte 5 ET compte 2 combinés (deux plans différents alimentés par la même ligne).
  • {"5": 60, "7": 40} = 60 % sur compte 5 + 40 % sur compte 7 (deux comptes du même plan, en split).

La virgule dans la clé "5,2" ne signifie pas deux lignes — elle signifie deux plans alimentés simultanément à 100 % chacun.

Pour la facture matériel WiFi, on saisit Déploiement WiFi (compte 5) à 100 % et IT-Réseaux (compte 2) à 100 %. Le widget enregistre {"5,2": 100}. Une seule entrée JSON, deux plans alimentés. La facture passe en Posted — Odoo crée alors deux lignes analytiques (une par compte combiné) avec amount=-12000 chacune.

6. Auto-distribution depuis le projet vers le timesheet

Le mécanisme clé qui fait gagner du temps en exploitation : chaque ligne de feuille de temps hérite automatiquement de la distribution analytique du projet. C'est ce mécanisme qui propage automatiquement vers les écritures analytiques chaque ligne timesheet validée en Feuilles de temps en Odoo CE — sans saisie manuelle de distribution.

Concrètement, quand le responsable IT saisit 10h sur la tâche Reconnaissance terrain du projet Audit Réseau, Odoo applique la logique suivante : lecture du project.account_id (compte du plan Projet = Audit Réseau), puis lecture des colonnes additionnelles du projet (compte du plan Département = IT-Réseaux). La ligne analytique générée porte donc deux références d'un coup : account_id=Audit Réseau et x_plan{N}_id=IT-Réseaux. Le consultant n'a rien à saisir côté analytique.

Même mécanisme pour le développeur senior sur App Métier (16h) — la ligne porte App Métier (Projet) et IT-Dev (Département). Et pour la technicienne réseaux sur Audit Réseau (10h) — la ligne porte Audit Réseau et IT-Réseaux. Au final, le département IT-Réseaux capture 26h (responsable IT 16h + technicienne réseaux 10h), IT-Dev en capture 16h. Sans aucune saisie analytique manuelle.

7. Distribution sur facture client / achat / timesheet — trois angles concrets

Trois angles concrets matérialisent la distribution analytique au quotidien dans une ESN. Sur une facture fournisseur saisie dans le plan comptable SCF (voir l'article La comptabilité dans Odoo 19 : plan comptable algérien, taxes et journaux), la ventilation se fait au niveau ligne par ligne — chaque ligne porte son propre dictionnaire JSON.

Angle 1 — Facture fournisseur matérielle (multi-plans)

Matériel réseau 12 000 DA, vu plus haut. Une ligne, deux plans alimentés en un seul JSON {"5,2": 100}. Charge imputée à la fois côté Projet (rentabilité mission WiFi) et côté Département (charge IT-Réseaux). Pattern idéal quand le coût est sans ambiguïté rattachable à une mission ET à un département.

Angle 2 — Facture fournisseur de structure (split département)

Licences éditeur 8 000 DA pour des outils de développement. La charge n'est attachable à aucun projet client précis : c'est une licence outillage répartie entre les pôles IT-Dev (60 %, utilisateurs principaux) et IT-Réseaux (40 %, postes complémentaires).

Angle 3 — Feuilles de temps (auto-distribution)

Aucune saisie manuelle, propagation auto via project.account_id + colonnes dynamiques (§6). La ligne account.analytic.line se crée avec account_id et x_plan{N}_id directement renseignés, amount=-cout_horaire * heures. Au total : 42h ventilées sur 3 projets et 2 départements, sans une seule saisie analytique côté consultants.

Ligne de facture fournisseur licences éditeur avec distribution 60% IT-Dev et 40% IT-Réseaux sur le plan Département uniquement
Figure 3 — Distribution split sur un seul plan — la facture licences éditeur (outils de développement 8 000 DA) ventile 60 % sur le département IT-Dev (responsable principal) et 40 % sur IT-Réseaux (postes complémentaires). Aucune affectation projet — le coût est interne. Format JSON : {"7": 60, "2": 40}.

Côté facture client (cas F11·5), le même widget se présente — chaque ligne de vente porte sa distribution, qui hérite du compte analytique projet lié à la commande.

8. Reporting analytique CE : Écritures analytiques et pivot

Pour préparer un tableau de pilotage, direction Comptabilité > Comptabilité > Écritures analytiques. Bascule sur la vue Pivot (icône ⊞ dans le coin haut droit) — la mesure par défaut est Montant.

Vue pivot par défaut des Écritures analytiques, mesure Montant, total -20 000 DA
Figure 4 — La vue Écritures analytiques en mode pivot — Comptabilité > Comptabilité > Écritures analytiques, basculer sur l'icône Pivot. Par défaut, le filtre « Du dernier exercice fiscal » applique l'année comptable, la mesure Montant additionne les charges (les deux factures fournisseurs postées totalisent -20 000 DA). Les groupements sur les axes Compte (plan Projet) et Département (plan Département) se configurent via le bouton ⊞ des en-têtes de ligne et de colonne.

La vue par défaut agrège la mesure Montant mais le groupement de colonnes initial est générique. Pour basculer sur l'axe Département analytique, ouvre le menu déroulant ⊞ de l'en-tête de colonne et sélectionne Département. La vue se rafraîchit : 4 colonnes (IT-Audit, IT-Dev, IT-Réseaux, Commercial) × 3 lignes projet. Les deux factures fournisseurs totalisent -20 000 DA — IT-Réseaux capture 15 200 DA (12 000 matériel + 3 200 licences à 40 %), IT-Dev capture 4 800 DA (licences à 60 %).

💡 Astuce — marge projet rapide en CE

Pour obtenir une marge projet sans rapport dédié, tu ouvres Comptabilité > Comptabilité > Écritures analytiques, tu filtres par compte projet (account_id = Audit Réseau par exemple), tu bascules en vue Pivot ou Graph, et tu mesures sur Montant. Les charges (timesheets valorisés, factures fournisseurs ventilées) apparaissent en négatif, les revenus de vente en positif. Le solde affiché = marge brute du projet. Pas besoin d'un rapport dédié.

9. Bonus : règles d'applicabilité

Une dernière brique pour fiabiliser la saisie : les règles d'applicabilité (account.analytic.applicability). Elles permettent de forcer la présence d'un plan sur certaines opérations métier, ou au contraire de le masquer.

Configure deux règles sur le plan Département. Direction Plans analytiques > Département > Applicabilité. Règle 1 : business_domain=general, applicability=optional — par défaut, le plan reste optionnel. Règle 2 : business_domain=timesheet, applicability=mandatory — sur chaque ligne timesheet, le département devient obligatoire. Conséquence : si un projet n'a pas son département renseigné, Odoo bloque la saisie de la feuille de temps tant que la lacune n'est pas corrigée. Garde-fou efficace contre les trous de ventilation.

Huit domaines business_domain sont disponibles en CE : general, invoice, bill, timesheet, purchase_order, sale_order, expense, stock_picking. Chacun activé par son module respectif. Sur chaque règle, tu peux additionner un préfixe de compte comptable (account_prefix="60" pour les charges) ou une catégorie produit pour un ciblage fin.

🔵 La rentabilité projet en CE vs Enterprise

En Odoo 19 CE, la section Profitabilité du projet existe (module project_account, auto-installé en CE) — mais elle ne s'affiche que dans la Vue Mise à jour du projet (bouton « Mise à jour » en haut à droite de la fiche projet), pas dans la vue form standard. Elle agrège Factures clients, Notes de frais, Autres coûts et Autres revenus à partir du compte analytique du projet. Pour aller plus loin (marge par phase, projection budgétaire, comparaison réel/prévisionnel), il faut soit construire ses propres vues pivot sur les Écritures analytiques (CE), soit basculer vers Odoo Enterprise.

Ce que débloque l'upgrade Enterprise sur la rentabilité projet :

  • Tableau de bord Rentabilité complet avec marge calculée, comparaison période, alertes de dépassement budget.
  • Budget analytique multi-période (planifié vs réel par plan analytique).
  • Rapport d'analyse multi-axe avec filtres croisés Projet × Département × Période × Produit.
  • Vue de profitabilité enrichie intégrée nativement à la fiche projet (sans détour par « Mise à jour »).

En CE, le contournement pragmatique consiste à utiliser le pivot Écritures analytiques avec les bons groupements (§8) et à exporter en tableur pour les rapports périodiques.

Conclusion

Tu sors avec un plan Département créé à 4 comptes, une distribution multi-plans maîtrisée (matériel WiFi 12 000 DA = {"5,2": 100}), un split département (licences éditeur 8 000 DA = {"7": 60, "2": 40}), l'auto-distribution timesheet câblée pour les 42h ventilées sur trois missions, et un pivot Écritures analytiques qui livre la marge projet par croisement. Sans aucun module additionnel. La bascule complète Heures saisies → marge projet calculée → facture client est traitée dans l'article suivant, qui clôt la saison S11 sur le volet comptabilité analytique appliqué à la facturation au temps passé.

Voir aussi dans ce hub Projet & Services

Publié
F11·1 — Démarrer ses projets dans Odoo CE

Structure, kanban, équipes — la fondation.

Publié
F11·2 — Tâches, dépendances & suivi en Odoo CE

Ce qui existe en CE, et ce qui demande EE.

Publié
F11·3 — Feuilles de temps en Odoo CE

hr_timesheet — saisie, suivi, facturation.

Article actuel
F11·4 — Comptabilité analytique Odoo CE

Plans, distribution, marges projet.

Publié
F11·5 — Facturer au temps & rentabilité projet

sale_timesheet, dashboard marge, KPI.

Articles complémentaires

#47 — La comptabilité dans Odoo 19

Plan comptable SCF DZ — derrière la distribution analytique sur factures.

#48 — Facturation et paiements dans Odoo 19

Pipeline facturation client — sortie naturelle d'une mission projet.

Se connecter pour laisser un commentaire.
Feuilles de temps en Odoo CE — du chrono à la facturation
Saison 11 · Article 3/5 · Hub Projet & Services