PCG, IFRS, « comptabilité anglo-saxonne » : plutôt que d'empiler les définitions, ce dossier avance par les six questions qu'on se pose vraiment en projet — avec un fil directeur : un référentiel comptable est un circuit à quatre éléments — plan de comptes, valorisation, écritures, présentation. Chaque question suit le même chemin : une intuition, la mécanique — des écritures qu'on peut vérifier, arrêté compris —, puis ce qu'Odoo 19 en fait, et à quel prix.
Un référentiel n'est pas un objet à installer : c'est un circuit à décider
Ce dossier répond à la question que tout projet international finit par poser : « pouvez-vous nous faire de la comptabilité anglo-saxonne dans Odoo ? ». La réponse tient en quatre constats — chacun développé dans son chapitre.
Un référentiel y vit comme quatre éléments connectés — plan de comptes, valorisation, écritures, présentation. Toute exigence multi-référentielle se ramène à une question : lequel des quatre dédoubler, et à quel prix ? Se tromper d'élément est la première cause d'échec.
Les deux traditions rattachent produits et charges à l'exercice. Les vraies différences : le moment où le coût des ventes est reconnu, la structure du compte de résultat (nature ou destination), et le public auquel les comptes s'adressent.
Derrière le multi-ledger mis en avant depuis la v18 : un filtre qui exclut des journaux à la restitution. Les divergences entre référentiels s'écrivent donc noir sur blanc, en écritures d'ajustement — auditable, mais à dimensionner avant le démarrage.
La conformité tient moins aux fonctionnalités qu'aux procédures qui reviennent à chaque arrêté : chacune a un coût récurrent, un propriétaire à désigner et un risque d'oubli à contrôler.
Un terme vous échappe encore ? Normal : chaque chapitre le reprend à zéro.
De quelle comptabilité parle-t-on ?
Réponse courte« La comptabilité » n'existe pas au singulier : une entreprise en tient plusieurs en parallèle. Une seule fait foi légalement — et la moitié des malentendus de projet viennent de la confusion entre elles.
Une même maison, trois documents qui la décrivent : l'acte notarié (le seul opposable en justice), les plans de l'architecte (libres, faits pour décider des travaux), l'avis cadastral (l'administration calcule sa propre valeur, avec ses propres règles). Trois descriptions légitimes de la même maison — aucune ne remplace les autres.
Les comptabilités d'une entreprise fonctionnent pareil : la générale est l'acte notarié (probante, opposable), l'analytique est le plan de l'architecte (libre, orienté décision), la fiscale est l'avis cadastral (sa propre assiette). un bon ERP permet de passer d'un document à l'autre par un chemin vérifiable
Avant de comparer des référentiels, levons une confusion plus élémentaire : une entreprise tient simultanément plusieurs comptabilités, qui n'ont ni la même finalité, ni le même arbitre, ni le même niveau de détail. La plupart des malentendus entre une direction financière et une équipe projet ne portent pas sur le référentiel, mais sur le type de comptabilité dont on parle à ce moment-là.
| Type | Finalité | Obligatoire ? | Règles fixées par | Niveau de détail |
|---|---|---|---|---|
| Générale (financière) | Patrimoine et résultat, pour les tiers | Oui | Le référentiel légal (PCG, IFRS…) | Le compte |
| Auxiliaire | Détailler un poste tiers par tiers, bien par bien | Oui, en pratique | La technique comptable | Le tiers, le bien |
| Analytique | Coûts, marges, contributions | Non | L'entreprise elle-même | L'axe (produit, projet, fonction…) |
| Budgétaire | Autoriser et suivre la consommation de moyens | Non en privé | L'entreprise ou le cadre public | L'enveloppe |
| Fiscale | Assiette de l'impôt et des taxes | Oui | Le code des impôts | La case de la déclaration, le taux |
| Matières (quantités) | Existants physiques et leur valeur | Selon secteur | Technique + réglementation sectorielle | L'article, le lot |
| Extra-financière | Impacts non monétaires | Si assujetti | Normes de durabilité | L'indicateur |
- La générale est la seule probante — la seule qui fait foi. Les autres sont des vues, des détails ou des retraitements — d'où l'exigence que tout se rattache au grand livre par un chemin vérifiable.
- Une seule est facultative : l'analytique. Personne d'extérieur n'arbitrera à la place de l'entreprise ; les arbitrages non faits en conception se paient en incohérence des restitutions.
- Deux ne sont pas en partie double. L'analytique moderne et la budgétaire sont des systèmes d'étiquettes et de compteurs posés sur les écritures — pas des livres qui s'équilibrent en débit/crédit. Les traiter comme des grands livres crée des attentes que l'outil ne peut pas satisfaire.
Trois pièges d'homonymie qui coûtent cher
Le vocabulaire comptable français comporte trois homonymies redoutables. Chacune a produit, dans des projets réels, des semaines de travail perdu. Cliquez pour révéler les deux sens.
Le point aveugle : les comptabilités auxiliaires
La tradition française repose sur le couple compte collectif / comptes individuels (411000 + 411CLI001, 411CLI002…), avec obligation d'équilibre. La plupart des ERP contemporains — Odoo compris — procèdent autrement : un compte de tiers unique au grand livre, et une dimension partenaire sur la ligne d'écriture (account.move.line, champ pointant vers res.partner). Ce n'est pas une simplification, c'est un autre modèle de données. Conséquences à énoncer en conception :
- Pas de contrôle collectif / auxiliaires possible : le contrôle de substitution est le rapprochement solde du compte de tiers ↔ balance âgée (les créances classées par ancienneté), à formaliser en clôture.
- La qualité de la base tiers devient un enjeu comptable : un doublon de partenaire fracture l'information auxiliaire d'un poste du bilan.
- Une ligne sans partenaire sur un compte de tiers est une anomalie invisible au grand livre et destructrice pour la balance âgée — contrôle à automatiser.
Corollaire : il n'y a pas un résultat, il y en a cinq
La formulation la plus utile pour ouvrir un atelier avec une direction financière — elle désamorce la question piège « pourquoi les chiffres ne sont-ils pas les mêmes ? ».
| Résultat | Produit par | Sert à | Écart avec le précédent |
|---|---|---|---|
| Comptable social | Comptabilité générale, référentiel local | Approbation des comptes, distribution | — |
| Fiscal | Retraitements extra-comptables | Calcul de l'impôt | Charges non déductibles, amortissements dérogatoires… |
| Analytique | Comptabilité de gestion | Piloter les marges | Charges non incorporables, coûts supplétifs |
| Consolidé | Consolidation, référentiel groupe | Communication financière | Retraitements, éliminations, minoritaires |
| De gestion | Tableaux de bord internes | Objectifs, primes, clauses bancaires | Éléments « non récurrents », normalisations |
Ces cinq résultats sont tous légitimes. Un système d’information sain permet de passer de l'un à l'autre par un chemin explicite — exactement ce qu'IFRS 18 imposera au cinquième : réconcilier les mesures de performance de la direction avec l'agrégat normé le plus proche.
- Une entreprise tient plusieurs comptabilités ; seule la générale est probante.
- L'analytique est la seule facultative — ses arbitrages ne seront faits par personne d'autre que vous.
- Il n'y a pas un résultat mais cinq, tous légitimes, reliés par des chemins explicites.
Un « schéma comptable », c'est quoi au juste ?
Réponse courteCe n'est pas un objet, c'est quatre éléments connectés : un vocabulaire, des montants, des enregistrements, des lectures. Toute la suite du dossier tient dans une question : lequel dédoubler, et à quel prix ?
Repeindre une pièce : un week-end. Déplacer une cloison : des travaux, mais on continue d'habiter. Refaire la plomberie : gros chantier, on ouvre les murs. Toucher aux fondations : on ne modifie pas, on reconstruit.
Un schéma comptable s'étage exactement ainsi — et tout le coût d'un projet multi-référentiel dépend du niveau qu'on touche. plus on descend, plus ça coûte cher !
Quand quelqu'un dit « schéma comptable », il parle en réalité d'un assemblage de quatre éléments. Chacun vit sa vie : un même plan de comptes accepte plusieurs façons d'écrire, et un même jeu d'écritures peut alimenter plusieurs présentations. Les voici, du plus superficiel au plus profond :
| L'élément | Ce qu'il fait | Le dédoubler, c'est… | |
|---|---|---|---|
| 4 | La présentation | La lecture : bilan, compte de résultat, vues IFRS. Rien n'y est stocké. | La peinture — presque gratuit : on relit les mêmes écritures autrement. |
| 3 | Les écritures | L'enregistrement : les lignes débit/crédit — y compris les écritures d'arrêté (factures non parvenues, factures à établir). | Les cloisons — un vrai travail : des ajustements explicites à passer à chaque clôture. |
| 2 | La valorisation | Les montants : l'algorithme (CMP — le coût moyen pondéré —, FIFO…) qui calcule le coût que chaque écriture transporte. | La plomberie — un développement, ou une seconde entité. |
| 1 | Le plan de comptes | Le vocabulaire : la liste des comptes où tout s'enregistre. | Les fondations — irréversible : on ne revient pas en arrière. |
Le plan de comptes et la valorisation alimentent les écritures ; la présentation ne fait que les relire. Dans Odoo, toute la comptabilité tient dans ces lignes équilibrées (Σ débits = Σ crédits) : il n'existe aucun objet « référentiel comptable » à côté. Et les écritures d'arrêté ne sont pas un module à part : ce sont des écritures comme les autres, passées au moment de la clôture.
Pourquoi la valorisation est-elle si rigide ? Parce qu'elle vit dans les modules logistiques, pas dans le module comptable : le coût d'une sortie de stock est calculé au moment du mouvement. Impossible donc de valoriser deux fois le même stock (CMP pour les comptes français, FIFO pour IFRS) sans développement ou seconde entité — la question 6 y revient.
- Un schéma comptable = quatre éléments connectés : plan de comptes, valorisation, écritures, présentation.
- Coût du dédoublement, du moins au plus cher : présentation (gratuit) → écritures (travail de clôture) → valorisation (développement) → plan de comptes (irréversible).
- Presque tous les échecs multi-référentiels viennent du dédoublement du mauvais élément.
Une charge : quand naît-elle, et comment la classer ?
Réponse courteDeux clivages traversent toutes les traditions comptables : le moment (la charge naît-elle à l'achat ou à la vente ?) et le classement (par ce qu'elle est, ou par ce à quoi elle a servi ?). Même résultat annuel dans tous les cas — mais ni la même lecture mensuelle, ni la même charge de clôture.
Premier clivage : à l'achat ou à la vente ?
Acheter des pâtes ne vous appauvrit pas : vous avez échangé de l'argent contre un placard plein. Les manger, si. Toute la différence entre les deux traditions tient au moment où l'on note cette consommation :
Fin du mois, les deux carnets donnent le même coût de nourriture. Mais le 12 du mois, seul le second sait déjà ce que le mois a coûté — au prix d'un pointage permanent. même placard, même dîner — deux moments de comptage !
Le point de bascule concret
Une seule question opérationnelle sépare visiblement les deux familles : à quel moment un achat de marchandise devient-il une charge ? Côté continental, dès la facture fournisseur (compte 607), corrigée à la clôture par la variation de stock. Côté anglo-saxon, jamais à l'achat : c'est une entrée d'actif, et la charge naît à la sortie du stock, sous le nom de cost of goods sold, en regard du produit. Les deux donnent exactement le même résultat annuel — mais ni le même résultat mensuel, ni la même charge de clôture. C'est un choix de schéma d'écriture (l'élément écritures), pas de référentiel : le PCG autorise parfaitement l'inventaire permanent.
Beaucoup de blogs d'intégrateurs décrivent la comptabilité continentale comme reconnaissant produits et charges « au paiement ». C'est une description de la comptabilité de trésorerie, qui n'a rien à voir. Conséquence concrète de cette erreur : des équipes croient que le paramètre de schéma de stock de leur ERP (le commutateur « comptabilité anglo-saxonne » d'hier, le réglage Periodic / Perpetual d'Odoo 19) arbitre entre engagement et trésorerie, alors qu'il ne fait que aiguiller des comptes de stock.
Second clivage : classer par nature ou par destination ?
Derrière le premier clivage s'en cache un plus général. Si la tradition anglo-saxonne attend la vente pour reconnaître la charge, c'est parce qu'elle classe les charges par destination — « ça a servi à quoi ? » : le coût des ventes s'affiche en face du chiffre d'affaires, et la marge brute apparaît. La tradition continentale classe par nature — « qu'est-ce que c'est ? » : achats, salaires, loyers, chacun sur son compte. Le débat continental / anglo-saxon n'est donc que ce clivage-là, appliqué au cycle des marchandises.
Fin du mois, la boulangère vide sa boîte : 1 000 € de tickets. Deux façons de les ranger sur la table :
Une pile farine, une pile salaires, une pile loyer. N'importe qui range pareil : le ticket dit lui-même sa pile.
Une pile fabriquer, une pile vendre, une pile administrer. Il faut décider : le salaire du vendeur qui aide au fournil le matin va où ?
Premier rangement : objectif, personne ne se trompe. Second : plus riche — il donne le coût du croissant — mais conventionnel. on peut toujours re-trier la nature vers la destination — jamais l'inverse !
Aucune des deux lectures n'est « la bonne » : elles ne donnent pas la même information. La marge brute n'existe que par destination ; la valeur ajoutée (l'assiette de la CVAE, l'impôt assis sur la valeur ajoutée) n'existe que par nature — et la déclaration fiscale française l'exige. Une entreprise française qui veut la lecture anglo-saxonne doit donc produire les deux.
De la nature, on peut toujours reconstruire la destination ; de la destination, on ne peut jamais retrouver la nature — une fois les tickets fondus dans la pile « fabriquer », la farine a disparu. Conséquence : le plan de comptes reste toujours par nature ; la destination s'ajoute, elle ne remplace pas.
Comment ajouter la vue par destination
Deux voies complémentaires : la dimension analytique (la nature reste sur le compte, la destination se pose sur un axe) pour le commercial et l'administratif ; l'incorporation aux stocks pour la production — sans elle, pas de vraie marge brute, seulement des libellés fonctionnels. Un seul piège sérieux : le double comptage — une même charge incorporée au stock et ventilée en analytique compte deux fois dans les états, sans que le grand livre ne bronche. Antidote : un montant, une seule route, et un contrôle de bouclage à chaque clôture.
- Un seul clivage de fond : nature ou destination — le débat continental / anglo-saxon n'en est que le cas particulier appliqué aux marchandises.
- Marge brute = destination ; valeur ajoutée (CVAE) = nature. Une entreprise française a besoin des deux lectures.
- Asymétrie : nature → destination toujours possible ; l'inverse jamais. Le plan de comptes reste par nature, la destination s'ajoute (analytique + incorporation aux stocks).
Le laboratoire : un achat, une vente, un arrêté au milieu
La preuveLe même cas dans les trois schémas — et cette fois, l'arrêté tombe avant les factures. Impossible de boucler sans écritures d'arrêté : elles font partie du schéma, au même titre que les écritures de flux.
Trois façons d'écrire le même cas : A — continental, stock compté en fin de période (inventaire intermittent) ; B — continental, stock suivi en continu (inventaire permanent) ; C — anglo-saxon perpétuel. Les trois donnent le même résultat au 30 juin, à condition de passer leurs écritures d'arrêté : la facture non parvenue (FNP, compte 408) côté achat, la facture à établir (compte 418) côté vente. Avancez étape par étape ; les étapes cerclées d'or sont l'arrêté.
Un T-compte, c'est un compte dessiné en T : les débits à gauche, les crédits à droite. Chaque écriture est équilibrée : total débits = total crédits. Le résultat = produits (comptes 7) − charges (comptes 6).
| Schéma A | Schéma B | Schéma C | |
|---|---|---|---|
| Marge lisible en cours de mois | Non | Oui | Oui |
| À ne pas oublier à l'arrêté | Inventaire + FNP (408) + facture à établir (418) | FNP (408) + facture à établir (418) | Facture à établir + rapprocher les comptes d'attente |
| Charge de clôture | Forte | Moyenne | Moyenne |
| Profil | Défaut fréquent | Cible recommandée en France | Rare, souvent involontaire |
Dans les trois schémas, le résultat du 30 juin n'est juste qu'après les écritures d'arrêté. Elles ne sont pas un raffinement optionnel : elles sont la moitié du schéma — celle que les démonstrations ne montrent jamais, parce qu'elles font toujours arriver les factures avant la clôture.
Dans neuf cas sur dix : le continental à inventaire permanent (B). Il garde l'information « achats de l'exercice » (compte 607) qu'exigent la liasse fiscale (les tableaux joints à la déclaration de résultat) et le calcul de la valeur ajoutée, tout en donnant une marge mensuelle. Le test inverse : une balance française où le 607 est vide alors qu'on achète des marchandises = un ERP resté en schéma anglo-saxon par défaut, jamais par décision.
- Même résultat au 30/06 dans les trois schémas — écritures d'arrêté comprises ; sans elles, les trois sont faux, chacun à sa manière.
- C'est un choix de schéma d'écriture, pas de référentiel : le PCG autorise parfaitement l'inventaire permanent.
- Cible française 9 fois sur 10 : le continental à inventaire permanent (B) — marge mensuelle ET conformité fiscale.
Et IFRS, ça change quoi ?
Réponse courteIFRS ne remplace jamais la comptabilité française : c'est une superstructure qui s'ajoute par-dessus. Et deux réformes, en 2025 et 2027, changent la présentation des comptes.
Votre vie financière est unique, mais vous la racontez deux fois : la déclaration d'impôt (format imposé par l'administration, obligatoire) et le dossier de prêt (format voulu par le banquier, qui veut votre capacité réelle de remboursement). Le dossier de prêt ne remplace pas la déclaration : il se construit à partir d'elle, en retraitant certains postes.
Comptes sociaux PCG = la déclaration (contrainte, source légale). IFRS = le dossier de prêt (destiné à l'investisseur, dérivé du premier). le référentiel tenu est la source, IFRS est la dérivée
En Europe, IFRS s'applique obligatoirement aux comptes consolidés des sociétés cotées ; pour un groupe français non coté, c'est une option (règles françaises de consolidation ou IFRS) — une décision de cadrage qui détermine l'ampleur des retraitements à outiller. IFRS ne remplace jamais les comptes sociaux : un groupe coté vit structurellement en double référentiel permanent.
Le référentiel local est la source, IFRS est la dérivée. Ce n'est pas une préférence de conception, c'est une contrainte légale : la piste d'audit fiable, le FEC (le fichier des écritures comptables remis à l'administration) et la liasse portent sur les comptes sociaux. Il faut distinguer le référentiel tenu (contraint) du référentiel de pilotage (choisi) — et faire du premier la source.
Les divergences IFRS / PCG les plus fréquentes en projet
Les cinq divergences qui concentrent l'essentiel des projets. Les autres — impôts différés, retraites, goodwill, subventions… — se traitent toutes de la même façon : une écriture d'ajustement dans un journal dédié.
| Sujet | PCG (social) | IFRS | Impact ERP |
|---|---|---|---|
| Locations | Location simple et crédit-bail hors bilan | IFRS 16 : droit d'utilisation + dette, presque tous contrats | Fort |
| Amortissements | Durées souvent fiscales, dérogatoires | Durée d'utilité réelle, composants, valeur résiduelle | Fort : 2 plans pour un bien |
| Chiffre d'affaires | Livraison / achèvement | IFRS 15 : 5 étapes, obligations distinctes, actifs/passifs de contrat | Fort |
| Écarts de conversion | Pertes latentes provisionnées, gains non comptabilisés | IAS 21 : pertes et gains au résultat | Moyen |
| Créances douteuses | Approche individuelle | IFRS 9 : pertes attendues sur toute la population | Fort : données de balance âgée |
Deux réformes de présentation changent la donne
- Plan de comptes unique (~1 600 comptes au lieu de ~2 000)
- Résultat exceptionnel redéfini : limité à l'événement majeur et inhabituel ; cessions et subventions en sortent
- Transferts de charges supprimés (791/796/797 → 649, 7084, 7587)
- Nouveaux modèles d'états, annexe refondue
- Trois catégories imposées : operating / investing / financing
- Deux sous-totaux obligatoires (résultat opérationnel, résultat avant financement et impôt)
- Les mesures de performance de la direction (EBITDA ajusté…) réconciliées en note unique — elles entrent dans le périmètre audité
Conséquence système : la classification operating/investing/financing doit être portée par une caractéristique persistante des lignes (compte, groupe, étiquette), pas recalculée à la main chaque trimestre — et l'EBITDA ajusté doit être reproductible depuis le grand livre. Exactement ce que fait un moteur d’états paramétrable, et pas un tableur de clôture.
- IFRS = comptes consolidés des groupes cotés ; les comptes sociaux restent en PCG. Double référentiel permanent.
- Le local est la source, IFRS la dérivée — contrainte légale (FEC, liasse), pas préférence de conception.
- ANC 2022-06 (2025) et IFRS 18 (2027, comparatif dès 2026) : étiqueter les comptes dès maintenant.
Qu'est-ce qu'Odoo fait vraiment ?
Réponse courteUn seul grand livre, un réglage Periodic / Perpetual (l'ex-commutateur anglo-saxon, refondu en v19), un excellent moteur d'états — et un « multi-ledger » qui est un filtre de restitution, pas une seconde comptabilité.
Odoo tient un seul cahier où tout s'écrit à l'encre, ligne après ligne. Pour produire une « autre » comptabilité, il ne sort pas un second cahier : il surligne certaines lignes et relit le cahier en ignorant les autres. Les ajustements IFRS sont des lignes supplémentaires, à l'encre elles aussi, dans des pages dédiées — jamais une réécriture.
tout ce qui suit découle de cette image : un cahier, des pages dédiées, des lectures filtrées
Le modèle comptable en une page
- Un seul grand livre. Toute la comptabilité tient dans la pièce et ses lignes équilibrées. Une ligne porte société, journal, compte, partenaire, analytique… mais aucune notion de référentiel : la seule façon de qualifier une écriture, c'est son journal ou l'étiquette de son compte.
- Le module comptable est un récepteur, pas un décideur. Les écritures des flux physiques sont produites par les modules logistiques ; le paramétrage comptable des stocks vit dans la catégorie d'article, pas dans le plan de comptes.
- La restitution est un moteur à part entière : états paramétrables, colonnes, variantes. De loin l'élément le plus souple — l'essentiel d'une stratégie multi-référentiel raisonnable repose sur lui.
Le modèle de données comptable, en mouvement
Suivez une facture client de 1 200 € TTC, de sa naissance à sa restitution — et notez ce qui manque au schéma : aucun objet « référentiel », aucun second grand livre. Avancez pas à pas, ou laissez dérouler.
Le réglage « Inventory Valuation » : Periodic ou Perpetual
Jusqu'à la v18, un commutateur « Anglo-Saxon Accounting » arbitrait le schéma de stock. Il n'existe plus en v19 : un réglage unique le remplace, par société — Periodic ou Perpetual (at invoicing). Perpetual est le schéma anglo-saxon.
- Periodic : la facture fournisseur est une charge par nature (607) ; le stock s'ajuste par écriture de variation de stock — le véhicule du schéma continental
- Perpetual (at invoicing) : la facture fournisseur débite le stock ; la charge naît en coût des ventes à la facture client — le schéma anglo-saxon
- Réglage par société, à figer avant la reprise de balance (le chargement des soldes au démarrage) : en v19, les écritures de stock naissent à la facturation, plus au mouvement physique
- Ne choisit pas entre engagement et trésorerie
- Ne change ni le plan de comptes ni la méthode de coût (standard, CMP, FIFO)
- Ne dispense d’aucune écriture d’arrêté : réceptions et livraisons non facturées se revoient dans le menu Review
La v19 déplace le fait générateur — l'événement qui déclenche l'écriture — vers la facture : la réception ne génère plus d'écriture, et les comptes d'attente v18 laissent place au couple valorisation / variation de stock sur la catégorie d'article. Les recettes v18 qui circulent sur les forums sont donc sans objet — et le réglage reste non réversible en pratique : à décider, tester et documenter avant la reprise de balance.
Les écritures d’arrêté : le menu Review
Le menu Review liste à tout moment ce qui est décroché — réceptions non facturées, livraisons non facturées — et génère les écritures correspondantes sur sélection (les FNP 408 et factures à établir 418 du laboratoire). Semi-automatique seulement : Odoo prépare l'écriture, mais la revue reste une procédure d'arrêté à instituer, avec un propriétaire et une échéance. C'est l'omission la plus fréquente des clôtures bâties autour d'un ERP généraliste.
Valorisation des stocks : les principes
Trois méthodes de coût au niveau de la catégorie d'article — standard, CMP, FIFO (pas de LIFO, interdit en IFRS). Le point que presque tout le monde a faux : en schéma anglo-saxon, Odoo rattache le coût des ventes à la facture client, pas à la livraison. La politique de facturation devient donc une décision comptable, et l'écart livré / facturé chiffre exactement la marge fictive de la période — listé par l'état Invoiced Not Delivered du menu Review. Le détail des séquences (facture avant réception, écarts de prix, retours) fera l'objet d'un article dédié.
Ce qui marche bien : différés, immos, reporting
- Différés : charges et produits constatés d'avance étalés depuis la ligne de facture. Couvre l'abonnement facturé d'avance — pas l'allocation IFRS 15.
- Immobilisations : modèles par catégorie, recalcul prospectif, cession. Manque surtout le double plan d'amortissement — l'écriture dérogatoire en journal dédié reste la solution la plus propre en France.
- Les états : le vrai point fort. À partir d'un jeu d'écritures unique : états PCG, états IFRS par étiquetage, préfiguration IFRS 18. Étiqueter les comptes : dix jours en début de projet, trois mois en rattrapage. Limite française : Odoo ne produit pas la liasse fiscale (cabinet, outil dédié via FEC ou connecteur EDI).
- Analytique : plans + distribution en % — le bon véhicule de l'axe destination, sur un plan dédié. Vigilance : la propagation sur les écritures automatiques est inégale, à tester flux par flux.
Multi-ledger : la réponse d'Odoo au multi-référentiel
Le point où la communication commerciale est la plus ambiguë. Un ledger (apparu en v18) est un grand livre logique défini par la liste des journaux qu'il exclut — un filtre de restitution, pas un second jeu d'écritures :
Chaque divergence devient une écriture récurrente ou périodique dans le journal IFRS : locations, amortissements, écarts de change, pertes attendues, impôts différés… Montage viable — c'est celui de la plupart des ERP de milieu de gamme — à condition d'une discipline absolue de journalisation et d'un tableau de passage statutaire → IFRS conçu d'avance. Ses limites : aucune divergence de valorisation transactionnelle (deux méthodes de coût), aucun recalcul automatique.
Ce qui n'existe pas nativement — la table des arbitrages
Elle transforme la question vague « Odoo est-il IFRS ? » en une liste finie d'arbitrages budgétés.
01IFRS 16 — locations
Absent. Modules tiers de l'App Store, ou échéancier hors système + écritures récurrentes (la gestion d'emprunts v19 peut porter l'échéancier de dette). Le vrai sujet de jugement : taux d'actualisation, durée exécutoire, modifications de contrat.
02IFRS 15 — allocation multi-obligations
Absent. Développement spécifique risqué (il touche un objet central : la ligne de facture doit porter prix contractuel et prix d'allocation), ou calcul externe + ajustements.
03Dépréciations — IAS 36, stocks (VNR), IFRS 9
IAS 36 : hors système. Stocks : état de rotation paramétré + écriture manuelle. IFRS 9 : la balance âgée d'Odoo fournit la donnée, la matrice de taux se calcule dehors, l'écriture revient dedans.
04IAS 23, IAS 19, IAS 12
Coûts d'emprunt incorporables : calcul externe + écriture. Engagements de retraite : évaluation actuarielle externe. Impôts différés : écritures d'ajustement en journal dédié.
05Écarts sur coûts standards industriels
Partiel : pas de comptabilisation automatique en comptes d'écart dédiés (matière / main-d'œuvre / absorption). Développement spécifique — le plus fréquent en industrie.
06Liasse fiscale française & éliminations intra-groupe complexes
Liasse : non produite (ni formulaires 2050-2059, ni EDI-TDFC — comme presque tous les ERP généralistes, la liasse étant un objet normé EDIFICAS à millésime annuel) — cabinet, outil dédié via FEC, ou connecteur partenaire EDI (Teledec), périmètre à contractualiser. Éliminations complexes : journaux d'élimination ou outil de consolidation dédié.
07Engagement budgétaire bloquant
Pas de réservation de crédit bloquante sur engagement : module tiers ou développement spécifique. À distinguer du suivi budget/réalisé, couvert sur axes analytiques.
08Structure IFRS 18
Constructible : étiquetage des comptes + états paramétrés. La seule ligne de cette table qui soit une bonne nouvelle — à condition d'étiqueter dès la création du plan.
- Plus de commutateur anglo-saxon en v19 : un réglage Periodic / Perpetual qui aiguille des comptes de stock — irréversible en pratique.
- Un seul grand livre, aucun objet « référentiel » : la seule « couleur » d'une écriture est son journal.
- Le coût des ventes naît à la facture client : la politique de facturation devient une décision comptable.
- Multi-ledger = filtre de restitution ; chaque divergence = une écriture d'ajustement explicite.
- Le vrai point fort : le moteur d'états — étiqueter les comptes coûte 10 jours au départ, 3 mois en rattrapage.
Comment organiser plusieurs référentiels — et où ça casse ?
Réponse courteQuatre montages possibles, du plus simple au plus lourd. Le bon choix tient à une seule question : vos divergences sont-elles transactionnelles (deux valorisations du même flux) ou non ?
| Critère | M1 | M2 | M3 | M4 |
|---|---|---|---|---|
| Nombre d'entités | 1 | 2 à 10 | 1 à 3 | > 10 |
| Divergences transactionnelles | Non | Non | Oui | Oui |
| Éliminations intra-groupe | Non | Simples | Simples | Complexes |
| Charge de clôture | Faible | Moyenne | Élevée | Moyenne |
| Coût de mise en œuvre | Nul | Faible | Élevé | Élevé |
| Robustesse à l'audit | n/a | Bonne si documentée | Bonne | Très bonne |
| Réversibilité | n/a | Bonne | Faible | Bonne |
Les huit erreurs les plus coûteuses
En clairLes erreurs les plus chères vues en projet — toutes des décisions prises par défaut — et les contrôles qui les détectent avant qu'elles ne coûtent.
01Laisser le réglage Periodic / Perpetual par défaut, sans décision
Symptôme : compte de résultat français sans 607, incompatible avec la liasse fiscale. Correction : reprise complète de la valorisation.
02Fixer la méthode de coût sans arbitrage finance
FIFO / CMP / standard est une décision de politique comptable, pas un paramètre technique — à valider par le directeur comptable et à documenter.
03Ignorer les réceptions et livraisons non facturées
L'erreur à double face : une réception non facturée surévalue le résultat (il manque la FNP 408) ; une livraison non facturée fausse la marge. Le menu Review les liste et prépare les écritures — encore faut-il le revoir à chaque arrêté, avec un propriétaire désigné.
04Croire que le multi-ledger fait de la double comptabilité
C'est un filtre de restitution par exclusion de journaux. Toute divergence = une écriture d'ajustement explicite.
05Un plan analytique unique pour trois usages
Centre de coûts + projet + fonction sur le même axe = états incohérents. Un plan dédié par usage.
06Sous-estimer la clôture industrielle
L'en-cours de production n'est pas automatique : écriture manuelle à chaque arrêté, contrôle en-cours ↔ ordres non achevés, sous-activité à traiter.
07Aucune procédure de dépréciation des stocks
Aucun mécanisme natif ne la produit : un état support (rotation, articles dormants) + une écriture, avec des critères documentés.
08Oublier la liasse fiscale et la mise à niveau ANC 2022-06
Odoo ne produit pas la liasse (cabinet, outil dédié via FEC ou connecteur EDI — à contractualiser en cadrage). Et un plan de comptes non aligné ANC 2022-06 produit des états non conformes depuis 2025.
Cinq contrôles à automatiser en priorité
Écarts réception ↔ facturation : revue mensuelle des états du menu Review, alerte sur tout écart de plus de 45 jours.
Triple égalité matières : quantités en stock = valorisation = solde du compte, à zéro tolérance. Détecte le plus tôt un paramétrage cassé.
Intégrité des auxiliaires : aucune ligne sans partenaire sur les comptes de tiers ; solde du compte = balance âgée.
Bouclage des vues : charges par nature = coût des ventes + ventilé + variation des coûts au bilan, au centime ; part non ventilée sous un seuil.
Complétude des ajustements : les écritures du journal d'ajustement IFRS rapprochées du registre des divergences attendues.
- Montage 2 (local + ajustements en journaux dédiés) par défaut ; une divergence transactionnelle le disqualifie.
- Ces huit erreurs ont un point commun : une décision prise par défaut au lieu d'être arbitrée et documentée.
- Cinq contrôles automatisés détectent l'essentiel avant que cela ne coûte.
Ce qu'il faut retenir
Odoo tient très bien une comptabilité, et sait en restituer plusieurs lectures par ajustements explicites. Ce qu'il ne sait pas faire sans développement : valoriser deux fois le même flux. Et le vrai coût d'un projet n'est pas dans les fonctionnalités manquantes : il est dans les procédures d'arrêté récurrentes, à lister, chiffrer et affecter avant le démarrage — pas à la première clôture.
Ces arbitrages se prennent avant la reprise de balance.
Réglage de stock, méthode de coût, plans analytiques, journaux d'ajustement, procédures d'arrêté : notre audit Satori — l'audit (悟り) instruit exactement ces décisions et les consigne dans un dossier d'architecture engageant, écrit avant de construire.
Mini-glossaire de correspondance
FR ⇄ ENDéplier le glossaire
| Français / PCG | Anglais / IFRS | Remarque |
|---|---|---|
| Achats de marchandises (607) | Purchases | N'existe pas comme charge en schéma anglo-saxon |
| Variation des stocks (603x) | — | Absorbé dans le COGS |
| Coût des ventes | Cost of goods sold | Charge, pas un compte de stock |
| Factures non parvenues (408) | Accrued liabilities / GR-IR | Même fonction, place différente dans le schéma |
| Clients — factures à établir (418) | Accrued income / contract asset | Actif de contrat ≠ créance |
| Produits constatés d'avance (487) | Deferred revenue / contract liability | IFRS 15 élargit la notion |
| Production stockée (713) | — | Produit, en présentation par nature uniquement |
| Crédit-bail | Finance lease / right-of-use | Hors bilan en social, capitalisé en IFRS |
French GAAP (PCG), IFRS, "Anglo-Saxon accounting": rather than stacking definitions, this deep-dive moves through the six questions people actually ask on projects — with one guiding thread: an accounting framework is a circuit of four elements — chart of accounts, valuation, journal entries, presentation. Every question follows the same path: an intuition, the mechanics — entries you can verify, period-end included —, then what Odoo 19 does with it, and at what cost.
A framework is not an object you install: it is a circuit you decide
This deep-dive answers the question every international project ends up asking: "can you do Anglo-Saxon accounting in Odoo?". The answer fits in four findings — each developed in its own chapter.
A framework lives there as four connected elements — chart of accounts, valuation, journal entries, presentation. Every multi-GAAP requirement comes down to one question: which of the four do you duplicate, and at what cost? Duplicating the wrong one is the leading cause of failure.
Both traditions are accrual-based. The real differences: when cost of sales is recognised, how the income statement is structured (by nature or by function), and who the accounts are written for.
Behind the multi-ledger promoted since v18: a filter that excludes journals at reporting time. Differences between frameworks are therefore written down in black and white, as explicit adjustment entries — auditable, but to be sized before go-live.
Compliance depends less on features than on the procedures that come back at every period-end: each one has a recurring cost, an owner to name, and a risk of being forgotten.
Still fuzzy on a term? That's normal: every chapter starts it again from scratch.
Which accounting are we talking about?
Short answer"The accounting" does not exist in the singular: a company keeps several in parallel. Only one is legally authoritative — and half of all project misunderstandings come from confusing them.
The same house, three documents describing it: the notarised deed (the only one enforceable in court), the architect's plans (free-form, made for deciding on works), the property-tax assessment (the administration computes its own value, with its own rules). Three legitimate descriptions of the same house — none replaces the others.
A company's accounts work the same way: the general ledger is the notarised deed (authoritative, enforceable), management accounting is the architect's plan (free-form, decision-oriented), tax accounting is the assessment (its own base). a good ERP lets you move from one document to another along a verifiable path
Before comparing frameworks, let's clear up a more basic confusion: a company simultaneously keeps several kinds of accounting, which differ in purpose, in referee, and in level of detail. Most misunderstandings between a finance team and a project team are not about the framework, but about which kind of accounting is being discussed at that moment.
| Kind | Purpose | Mandatory? | Rules set by | Level of detail |
|---|---|---|---|---|
| General (financial) | Assets and result, for third parties | Yes | The legal framework (PCG, IFRS…) | The account |
| Subledgers | Detail a balance partner by partner, asset by asset | Yes, in practice | Accounting technique | The partner, the asset |
| Management (analytic) | Costs, margins, contributions | No | The company itself | The dimension (product, project, function…) |
| Budgetary | Authorise and track spending of funds | Not in the private sector | The company or the public framework | The envelope |
| Tax | Base for income tax and other taxes | Yes | The tax code | The return box, the rate |
| Quantity (materials) | Physical stock on hand and its value | Sector-dependent | Technique + sector regulation | The item, the lot |
| Non-financial | Non-monetary impacts | If in scope | Sustainability standards | The indicator |
- Only the general ledger is authoritative — the only one that counts as evidence. The others are views, details or restatements — hence the requirement that everything ties back to the general ledger along a verifiable path.
- Only one is optional: management accounting. Nobody outside the company will make those calls for it; trade-offs skipped at design time are paid back as inconsistent reporting.
- Two are not double-entry. Modern analytic accounting and budgeting are systems of tags and counters laid on top of entries — not books that balance debit against credit. Treating them as ledgers creates expectations the tool cannot meet.
Three expensive homonym traps
French accounting vocabulary contains three treacherous homonyms. Each has cost real projects weeks of lost work. Click to reveal the two meanings.
The blind spot: subledgers
The French tradition rests on the pair control account / individual accounts (411000 + 411CLI001, 411CLI002…), which must balance. Most contemporary ERPs — Odoo included — work differently: a single receivable/payable account in the general ledger, plus a partner dimension on each entry line (account.move.line, a field pointing to res.partner). That is not a simplification — it is a different data model. Consequences to state at design time:
- No control-account vs subledger check is possible: the substitute control is the reconciliation of the partner account balance against the aged balance (receivables ranked by age), to be formalised at close.
- The quality of the partner master data becomes an accounting issue: a duplicated partner fractures the subledger detail behind a balance-sheet line.
- A line without a partner on a receivable/payable account is an anomaly invisible in the general ledger and destructive for the aged balance — a control to automate.
Corollary: there is not one result — there are five
The most useful framing to open a workshop with a finance team — it defuses the trap question "why don't the numbers match?".
| Result | Produced by | Used for | Gap vs the previous one |
|---|---|---|---|
| Statutory | General ledger, local framework | Approving the accounts, distributions | — |
| Taxable | Off-ledger restatements | Computing income tax | Non-deductible expenses, tax-driven depreciation… |
| Management | Cost accounting | Steering margins | Excluded costs, imputed costs |
| Consolidated | Consolidation, group framework | Financial communication | Restatements, eliminations, minority interests |
| Performance | Internal dashboards | Targets, bonuses, bank covenants | "Non-recurring" items, normalisations |
All five results are legitimate. A healthy information system lets you go from one to another along an explicit path — exactly what IFRS 18 will impose on the fifth: reconciling management performance measures with the nearest standardised subtotal.
- A company keeps several kinds of accounting; only the general ledger is authoritative.
- Management accounting is the only optional one — nobody will make its trade-offs but you.
- There is not one result but five, all legitimate, linked by explicit paths.
What exactly is an "accounting scheme"?
Short answerIt is not an object — it is four elements connected: a vocabulary, amounts, records, readings. The rest of this deep-dive fits in one question: which one do you duplicate, and at what cost?
Repainting a room: a weekend. Moving a partition wall: real work, but you keep living there. Redoing the plumbing: a major job, you open up the walls. Touching the foundations: you don't modify — you rebuild.
An accounting scheme is layered exactly the same way — and the whole cost of a multi-GAAP project depends on which level you touch. the deeper you go, the more it costs!
When someone says "accounting scheme", they are really talking about an assembly of four elements. Each lives its own life: one chart of accounts accepts several ways of posting, and one set of entries can feed several presentations. Here they are, from the most superficial to the deepest:
| The element | What it does | Duplicating it is… | |
|---|---|---|---|
| 4 | Presentation | The reading: balance sheet, income statement, IFRS views. Nothing is stored there. | The paint — almost free: the same entries are simply re-read differently. |
| 3 | Journal entries | The record: the debit/credit lines — including period-end accruals (invoices not yet received, invoices to be issued). | The partition walls — real work: explicit adjustments to post at every close. |
| 2 | Valuation | The amounts: the algorithm (AVCO — the weighted average cost —, FIFO…) that computes the cost each entry carries. | The plumbing — a development, or a second entity. |
| 1 | Chart of accounts | The vocabulary: the list of accounts everything is recorded in. | The foundations — irreversible: there is no going back. |
The chart of accounts and valuation feed the entries; presentation only re-reads them. In Odoo, all of accounting lives in these balanced lines (Σ debits = Σ credits): there is no "accounting framework" object beside them. And period-end accruals are not a separate module: they are entries like any other, posted at closing time.
Why is valuation so rigid? Because it lives in the logistics modules, not in the accounting module: the cost of a stock issue is computed at the moment of the movement. It is therefore impossible to value the same stock twice (AVCO for the French statutory accounts, FIFO for IFRS) without a development or a second entity — question 6 comes back to this.
- An accounting scheme = four connected elements: chart of accounts, valuation, journal entries, presentation.
- Cost of duplication, cheapest to dearest: presentation (free) → entries (closing work) → valuation (development) → chart of accounts (irreversible).
- Almost every multi-GAAP failure comes from duplicating the wrong element.
An expense: when is it born, and how is it classified?
Short answerTwo divides run through every accounting tradition: the moment (is the expense born at purchase or at sale?) and the classification (by what it is, or by what it was used for?). Same annual result in every case — but neither the same monthly reading, nor the same closing workload.
First divide: at purchase or at sale?
Buying pasta doesn't make you poorer: you traded money for a full cupboard. Eating it does. The whole difference between the two traditions is the moment that consumption gets written down:
At month-end, both notebooks show the same food cost. But on the 12th, only the second already knows what the month has cost — at the price of constant logging. same cupboard, same dinner — two counting moments!
The concrete tipping point
One operational question visibly separates the two families: at what moment does a purchase of goods become an expense? Continental side: at the supplier invoice (account 607), corrected at close by the inventory variation. Anglo-Saxon side: never at purchase — it is an asset addition, and the expense is born when stock leaves, under the name cost of goods sold, matched against the revenue. Both give exactly the same annual result — but neither the same monthly result, nor the same closing workload. It is a choice of posting scheme (the entries element), not of framework: French GAAP perfectly allows perpetual inventory.
Many integrator blogs describe continental accounting as recognising revenue and expenses "at payment". That describes cash accounting, which has nothing to do with it. The concrete consequence of this error: teams believe the stock-scheme setting of their ERP (yesterday's "Anglo-Saxon accounting" switch, Odoo 19's Periodic / Perpetual setting) chooses between accrual and cash — when all it does is route stock accounts.
Second divide: classify by nature or by function?
Behind the first divide hides a more general one. If the Anglo-Saxon tradition waits for the sale to recognise the expense, it is because it classifies expenses by function — "what was it used for?": cost of sales is displayed against revenue, and gross margin appears. The continental tradition classifies by nature — "what is it?": purchases, salaries, rent, each on its own account. The continental / Anglo-Saxon debate is just that divide, applied to the merchandise cycle.
At month-end, the baker empties her box: €1,000 of receipts. Two ways of sorting them on the table:
A flour pile, a salaries pile, a rent pile. Anyone sorts them the same way: the receipt names its own pile.
A baking pile, a selling pile, an admin pile. You have to decide: where does the salary of the shop assistant who helps at the oven every morning go?
The first sorting: objective, nobody gets it wrong. The second: richer — it gives you the cost of a croissant — but conventional. you can always re-sort nature into function — never the other way round!
Neither reading is "the right one": they do not carry the same information. Gross margin only exists by function; value added (the base of the CVAE, the French tax levied on value added) only exists by nature — and the French tax return requires it. A French company that wants the Anglo-Saxon reading must therefore produce both.
From nature you can always rebuild function; from function you can never recover nature — once the receipts have melted into the "baking" pile, the flour is gone. Consequence: the chart of accounts always stays by nature; function is added on top, it never replaces.
How to add the functional view
Two complementary routes: the analytic dimension (nature stays on the account, function sits on a dimension) for selling and admin costs; absorption into inventory for production — without it, there is no real gross margin, only functional labels. One serious trap: double counting — the same cost absorbed into stock and distributed analytically counts twice in reports, without the general ledger blinking. Antidote: one amount, one route only, plus a tie-out control at every close.
- One underlying divide: nature or function — the continental / Anglo-Saxon debate is just its special case applied to merchandise.
- Gross margin = function; value added (CVAE) = nature. A French company needs both readings.
- Asymmetry: nature → function is always possible; the reverse never. The chart of accounts stays by nature; function is added (analytic + absorption into inventory).
The lab: one purchase, one sale, a close in the middle
The proofThe same case in all three schemes — and this time, the close falls before the invoices. Impossible to balance the books without accrual entries: they are part of the scheme, on a par with the flow entries.
Three ways of writing the same case: A — continental, stock counted at period-end (periodic inventory); B — continental, stock tracked continuously (perpetual inventory); C — Anglo-Saxon perpetual. All three give the same result at 30 June, provided their accrual entries are posted: the invoice not yet received (French account 408) on the purchase side, the invoice to be issued (account 418) on the sales side. Step through; the gold-ringed steps are the close.
A T-account is an account drawn as a T: debits on the left, credits on the right. Every entry balances: total debits = total credits. Result = revenue (French class-7 accounts) − expenses (class-6 accounts).
| Scheme A | Scheme B | Scheme C | |
|---|---|---|---|
| Margin readable mid-month | No | Yes | Yes |
| Not to forget at close | Physical count + accrued payable (408) + accrued receivable (418) | Accrued payable (408) + accrued receivable (418) | Accrued receivable + reconcile the interim accounts |
| Closing workload | Heavy | Medium | Medium |
| Profile | Frequent default | Recommended target in France | Rare, often unintentional |
In all three schemes, the 30 June result is only correct after the accrual entries. They are not an optional refinement: they are half the scheme — the half demos never show, because demos always let the invoices arrive before the close.
Nine times out of ten: continental with perpetual inventory (B). It keeps the "purchases of the period" information (account 607) required by the French tax bundle (the standardised tables filed with the tax return) and by the value-added computation, while still giving a monthly margin. The reverse test: a French trial balance where 607 is empty even though the company buys goods = an ERP left in the Anglo-Saxon scheme by default, never by decision.
- Same result at 30/06 in all three schemes — accrual entries included; without them, all three are wrong, each in its own way.
- It is a choice of posting scheme, not of framework: French GAAP perfectly allows perpetual inventory.
- French target 9 times out of 10: continental with perpetual inventory (B) — monthly margin AND tax compliance.
And IFRS — what does it change?
Short answerIFRS never replaces French statutory accounting: it is a superstructure added on top. And two reforms, in 2025 and 2027, are changing how the statements are presented.
Your financial life is unique, but you tell it twice: the tax return (format imposed by the administration, mandatory) and the loan application (format the banker wants, who cares about your real repayment capacity). The loan file does not replace the return: it is built from it, by restating certain items.
French statutory accounts = the tax return (constrained, the legal source). IFRS = the loan file (written for the investor, derived from the first). the framework you keep is the source; IFRS is the derivative
In Europe, IFRS is mandatory for the consolidated accounts of listed companies; for an unlisted French group, it is an option (French consolidation rules or IFRS) — a scoping decision that sizes the restatements to build. IFRS never replaces the statutory accounts: a listed group structurally lives in a permanent dual framework.
The local framework is the source; IFRS is the derivative. That is not a design preference — it is a legal constraint: the reliable audit trail, the FEC (the entries file handed to the French tax administration) and the tax bundle all rest on the statutory accounts. Distinguish the framework you keep (constrained) from the framework you steer by (chosen) — and make the first the source.
The most frequent IFRS / French GAAP differences on projects
The five differences that concentrate most of the work. The others — deferred tax, pensions, goodwill, grants… — are all handled the same way: an adjustment entry in a dedicated journal.
| Topic | French GAAP (statutory) | IFRS | ERP impact |
|---|---|---|---|
| Leases | Operating leases and finance leases off balance sheet | IFRS 16: right-of-use + liability, nearly all contracts | High |
| Depreciation | Often tax-driven useful lives, accelerated schemes | Actual useful life, components, residual value | High: 2 schedules per asset |
| Revenue | Delivery / completion | IFRS 15: 5 steps, distinct obligations, contract assets/liabilities | High |
| FX differences | Unrealised losses provisioned, gains not recognised | IAS 21: losses and gains through P&L | Medium |
| Doubtful receivables | Case-by-case approach | IFRS 9: expected losses on the whole population | High: aged-balance data |
Two presentation reforms change the game
- Single chart of accounts (~1,600 accounts instead of ~2,000)
- Extraordinary result redefined: limited to the major and unusual event; disposals and grants move out of it
- Expense transfers abolished (accounts 791/796/797 → 649, 7084, 7587)
- New statement layouts, revamped notes
- Three imposed categories: operating / investing / financing
- Two mandatory subtotals (operating profit, profit before financing and tax)
- Management performance measures (adjusted EBITDA…) reconciled in a single note — they enter the audited scope
System consequence: the operating/investing/financing classification must be carried by a persistent characteristic of the lines (account, group, tag), not recomputed by hand every quarter — and adjusted EBITDA must be reproducible from the general ledger. Exactly what a configurable reporting engine does, and a closing spreadsheet does not.
- IFRS = the consolidated accounts of listed groups; statutory accounts stay under French GAAP. A permanent dual framework.
- Local is the source, IFRS the derivative — a legal constraint (FEC, tax bundle), not a design preference.
- ANC 2022-06 (2025) and IFRS 18 (2027, comparatives from 2026): tag your accounts now.
What does Odoo actually do?
Short answerOne general ledger, a Periodic / Perpetual setting (the former Anglo-Saxon switch, reworked in v19), an excellent reporting engine — and a "multi-ledger" that is a reporting filter, not a second set of books.
Odoo keeps one notebook where everything is written in ink, line after line. To produce "another" set of accounts, it does not pull out a second notebook: it highlights certain lines and re-reads the notebook ignoring the others. IFRS adjustments are extra lines, in ink too, on dedicated pages — never a rewrite.
everything that follows flows from this image: one notebook, dedicated pages, filtered readings
The accounting model on one page
- One general ledger. All of accounting lives in the document and its balanced lines. A line carries company, journal, account, partner, analytics… but no notion of framework: the only way to qualify an entry is its journal or its account's tag.
- The accounting module is a receiver, not a decision-maker. Entries for physical flows are produced by the logistics modules; the accounting setup for stock lives on the product category, not in the chart of accounts.
- Reporting is an engine in its own right: configurable statements, columns, variants. By far the most flexible element — most of a reasonable multi-GAAP strategy rests on it.
The accounting data model, in motion
Follow a €1,200 customer invoice (incl. VAT) from birth to reporting — and note what is missing from the picture: no "framework" object, no second general ledger. Step through, or let it play.
The "Inventory Valuation" setting: Periodic or Perpetual
Until v18, an "Anglo-Saxon Accounting" switch decided the stock scheme. It no longer exists in v19: a single setting replaces it, per company — Periodic or Perpetual (at invoicing). Perpetual is the Anglo-Saxon scheme.
- Periodic: the supplier invoice is an expense by nature (account 607); stock is adjusted through an inventory-variation entry — the vehicle of the continental scheme
- Perpetual (at invoicing): the supplier invoice debits stock; the expense is born as cost of sales at the customer invoice — the Anglo-Saxon scheme
- A per-company setting, to freeze before the opening-balance load: in v19, stock entries are born at invoicing, no longer at the physical movement
- It does not choose between accrual and cash
- It changes neither the chart of accounts nor the cost method (standard, AVCO, FIFO)
- It waives no accrual entry: uninvoiced receipts and deliveries are still reviewed in the Review menu
V19 moves the triggering event — the event that fires the entry — to the invoice: a receipt no longer generates an entry, and the v18 interim accounts give way to the valuation / inventory-variation pair on the product category. The v18 recipes circulating on forums are therefore obsolete — and the setting remains effectively irreversible: decide, test and document it before the opening-balance load.
Accrual entries: the Review menu
The Review menu lists, at any moment, what is out of sync — uninvoiced receipts, uninvoiced deliveries — and generates the corresponding entries on selection (the lab's accrued payables 408 and accrued receivables 418). Semi-automatic only: Odoo prepares the entry, but the review remains a closing procedure to institute, with an owner and a deadline. It is the most frequent omission in closes built around a generalist ERP.
Inventory valuation: the principles
Three cost methods at product-category level — standard, AVCO, FIFO (no LIFO, prohibited under IFRS). The point almost everyone gets wrong: in the Anglo-Saxon scheme, Odoo attaches cost of sales to the customer invoice, not to the delivery. Invoicing policy therefore becomes an accounting decision, and the delivered-vs-invoiced gap measures exactly the period's fictitious margin — listed by the Review menu's Invoiced Not Delivered report. The detailed sequences (invoice before receipt, price differences, returns) will get their own article.
What works well: deferrals, fixed assets, reporting
- Deferrals: prepaid expenses and deferred revenue spread straight from the invoice line. Covers the subscription billed in advance — not IFRS 15 allocation.
- Fixed assets: models per category, prospective recalculation, disposals. The main gap is the dual depreciation schedule — the tax-driven entry in a dedicated journal remains the cleanest solution in France.
- Statements: the real strong point. From a single set of entries: French GAAP statements, IFRS statements by tagging, an IFRS 18 preview. Tagging the accounts: ten days at project start, three months as a catch-up. French limit: Odoo does not produce the tax bundle (accounting firm, dedicated tool fed by the FEC, or an EDI connector).
- Analytics: plans + percentage distribution — the right vehicle for the functional dimension, on a dedicated plan. Watch out: propagation onto automatic entries is uneven, to be tested flow by flow.
Multi-ledger: Odoo's answer to multi-GAAP
The point where the marketing is most ambiguous. A ledger (introduced in v18) is a logical general ledger defined by the list of journals it excludes — a reporting filter, not a second set of entries:
Each difference becomes a recurring or periodic entry in the IFRS journal: leases, depreciation, FX differences, expected losses, deferred tax… A viable setup — it is the one most mid-market ERPs use — provided absolute journal discipline and a statutory → IFRS bridge designed upfront. Its limits: no transaction-level valuation difference (two cost methods), no automatic recalculation.
What does not exist natively — the trade-off table
It turns the vague question "is Odoo IFRS-ready?" into a finite list of budgeted trade-offs.
01IFRS 16 — leases
Absent. Third-party App Store modules, or an off-system schedule + recurring entries (v19 loan management can carry the debt schedule). The real judgement call: discount rate, enforceable term, contract modifications.
02IFRS 15 — multi-obligation allocation
Absent. A risky custom development (it touches a central object: the invoice line must carry both contract price and allocated price), or external computation + adjustments.
03Impairments — IAS 36, inventory (NRV), IFRS 9
IAS 36: off-system. Inventory: a configured rotation report + a manual entry. IFRS 9: Odoo's aged balance provides the data, the rate matrix is computed outside, the entry comes back in.
04IAS 23, IAS 19, IAS 12
Capitalisable borrowing costs: external computation + entry. Pension obligations: external actuarial valuation. Deferred tax: adjustment entries in a dedicated journal.
05Industrial standard-cost variances
Partial: no automatic posting to dedicated variance accounts (material / labour / absorption). Custom development — the most frequent one in manufacturing.
06French tax bundle & complex intra-group eliminations
Tax bundle: not produced (neither forms 2050-2059 nor EDI-TDFC — like almost all generalist ERPs; the bundle is a standardised EDIFICAS object with a yearly vintage) — accounting firm, dedicated tool fed by the FEC, or an EDI partner connector (Teledec), scope to put in the contract. Complex eliminations: elimination journals or a dedicated consolidation tool.
07Blocking budget commitment
No blocking budget reservation on commitment: third-party module or custom development. Distinct from budget-vs-actual tracking, covered on analytic dimensions.
08IFRS 18 structure
Buildable: account tagging + configured statements. The only line in this table that is good news — provided you tag from the day the chart is created.
- No more Anglo-Saxon switch in v19: a Periodic / Perpetual setting that routes stock accounts — effectively irreversible.
- One general ledger, no "framework" object: the only "colour" of an entry is its journal.
- Cost of sales is born at the customer invoice: invoicing policy becomes an accounting decision.
- Multi-ledger = a reporting filter; each difference = an explicit adjustment entry.
- The real strong point: the reporting engine — tagging the accounts costs 10 days upfront, 3 months as a catch-up.
How do you organise several frameworks — and where does it break?
Short answerFour possible setups, from the simplest to the heaviest. The right choice hangs on one question: are your differences transactional (two valuations of the same flow) or not?
| Criterion | S1 | S2 | S3 | S4 |
|---|---|---|---|---|
| Number of entities | 1 | 2 to 10 | 1 to 3 | > 10 |
| Transactional differences | No | No | Yes | Yes |
| Intra-group eliminations | No | Simple | Simple | Complex |
| Closing workload | Low | Medium | High | Medium |
| Implementation cost | None | Low | High | High |
| Audit robustness | n/a | Good if documented | Good | Very good |
| Reversibility | n/a | Good | Low | Good |
The eight costliest mistakes
In plain termsThe most expensive mistakes seen on projects — all decisions made by default — and the controls that catch them before they cost money.
01Leaving the Periodic / Perpetual setting on its default, with no decision
Symptom: a French income statement with no account 607, incompatible with the tax bundle. Fix: a full valuation rebuild.
02Fixing the cost method without a finance decision
FIFO / AVCO / standard is an accounting-policy decision, not a technical parameter — to be validated by the chief accountant and documented.
03Ignoring uninvoiced receipts and deliveries
The two-sided mistake: an uninvoiced receipt overstates the result (the 408 accrual is missing); an uninvoiced delivery distorts the margin. The Review menu lists them and prepares the entries — but it still has to be reviewed at every close, with a named owner.
04Believing the multi-ledger does dual bookkeeping
It is a reporting filter by journal exclusion. Every difference = an explicit adjustment entry.
05One analytic plan for three uses
Cost centre + project + function on the same dimension = inconsistent reports. One dedicated plan per use.
06Underestimating the manufacturing close
Work in progress is not automatic: a manual entry at every close, a WIP ↔ open-orders control, idle capacity to handle.
07No inventory write-down procedure
No native mechanism produces it: a supporting report (rotation, dormant items) + an entry, with documented criteria.
08Forgetting the tax bundle and the ANC 2022-06 upgrade
Odoo does not produce the bundle (accounting firm, dedicated tool fed by the FEC, or an EDI connector — to put in the contract at scoping). And a chart of accounts not aligned with ANC 2022-06 has produced non-compliant statements since 2025.
Five controls to automate first
Receipt ↔ invoicing gaps: monthly review of the Review menu reports, alert on any gap older than 45 days.
Triple stock equality: quantities on hand = valuation = account balance, zero tolerance. The earliest detector of broken configuration.
Subledger integrity: no partner-less line on receivable/payable accounts; account balance = aged balance.
View tie-out: expenses by nature = cost of sales + distributed + change in capitalised costs, to the cent; unallocated share below a threshold.
Adjustment completeness: entries in the IFRS adjustment journal reconciled against the register of expected differences.
- Setup 2 (local + adjustments in dedicated journals) by default; a transactional difference disqualifies it.
- These eight mistakes share one trait: a decision made by default instead of being weighed and documented.
- Five automated controls catch most of it before it costs money.
What to remember
Odoo keeps one set of books very well, and can render several readings of it through explicit adjustments. What it cannot do without development: value the same flow twice. And the real cost of a project is not in the missing features: it is in the recurring closing procedures, to be listed, priced and assigned before go-live — not at the first close.
These decisions are made before the opening balance is loaded.
Stock setting, cost method, analytic plans, adjustment journals, closing procedures: our Satori — the audit (悟り) works through exactly these decisions and records them in a binding architecture document, written before anything is built.
Mini cross-reference glossary
FR ⇄ ENOpen the glossary
| French / PCG | English / IFRS | Note |
|---|---|---|
| Achats de marchandises (607) | Purchases | Does not exist as an expense in the Anglo-Saxon scheme |
| Variation des stocks (603x) | — | Absorbed into COGS |
| Coût des ventes | Cost of goods sold | An expense, not a stock account |
| Factures non parvenues (408) | Accrued liabilities / GR-IR | Same function, different place in the scheme |
| Clients — factures à établir (418) | Accrued income / contract asset | Contract asset ≠ receivable |
| Produits constatés d'avance (487) | Deferred revenue / contract liability | IFRS 15 broadens the notion |
| Production stockée (713) | — | Revenue item, by-nature presentation only |
| Crédit-bail | Finance lease / right-of-use | Off balance sheet in statutory accounts, capitalised under IFRS |
PCG, IFRS, « comptabilité anglo-saxonne » : plutôt que d'empiler les définitions, ce dossier avance par les six questions qu'on se pose vraiment en projet — avec un fil directeur : un référentiel comptable est un circuit à quatre éléments — plan de comptes, valorisation, écritures, présentation. Chaque question suit le même chemin : une intuition, la mécanique — des écritures qu'on peut vérifier, arrêté compris —, puis ce qu'Odoo 19 en fait, et à quel prix.
Un référentiel n'est pas un objet à installer : c'est un circuit à décider
Ce dossier répond à la question que tout projet international finit par poser : « pouvez-vous nous faire de la comptabilité anglo-saxonne dans Odoo ? ». La réponse tient en quatre constats — chacun développé dans son chapitre.
Un référentiel y vit comme quatre éléments connectés — plan de comptes, valorisation, écritures, présentation. Toute exigence multi-référentielle se ramène à une question : lequel des quatre dédoubler, et à quel prix ? Se tromper d'élément est la première cause d'échec.
Les deux traditions rattachent produits et charges à l'exercice. Les vraies différences : le moment où le coût des ventes est reconnu, la structure du compte de résultat (nature ou destination), et le public auquel les comptes s'adressent.
Derrière le multi-ledger mis en avant depuis la v18 : un filtre qui exclut des journaux à la restitution. Les divergences entre référentiels s'écrivent donc noir sur blanc, en écritures d'ajustement — auditable, mais à dimensionner avant le démarrage.
La conformité tient moins aux fonctionnalités qu'aux procédures qui reviennent à chaque arrêté : chacune a un coût récurrent, un propriétaire à désigner et un risque d'oubli à contrôler.
Un terme vous échappe encore ? Normal : chaque chapitre le reprend à zéro.
De quelle comptabilité parle-t-on ?
Réponse courte« La comptabilité » n'existe pas au singulier : une entreprise en tient plusieurs en parallèle. Une seule fait foi légalement — et la moitié des malentendus de projet viennent de la confusion entre elles.
Une même maison, trois documents qui la décrivent : l'acte notarié (le seul opposable en justice), les plans de l'architecte (libres, faits pour décider des travaux), l'avis cadastral (l'administration calcule sa propre valeur, avec ses propres règles). Trois descriptions légitimes de la même maison — aucune ne remplace les autres.
Les comptabilités d'une entreprise fonctionnent pareil : la générale est l'acte notarié (probante, opposable), l'analytique est le plan de l'architecte (libre, orienté décision), la fiscale est l'avis cadastral (sa propre assiette). un bon ERP permet de passer d'un document à l'autre par un chemin vérifiable
Avant de comparer des référentiels, levons une confusion plus élémentaire : une entreprise tient simultanément plusieurs comptabilités, qui n'ont ni la même finalité, ni le même arbitre, ni le même niveau de détail. La plupart des malentendus entre une direction financière et une équipe projet ne portent pas sur le référentiel, mais sur le type de comptabilité dont on parle à ce moment-là.
| Type | Finalité | Obligatoire ? | Règles fixées par | Niveau de détail |
|---|---|---|---|---|
| Générale (financière) | Patrimoine et résultat, pour les tiers | Oui | Le référentiel légal (PCG, IFRS…) | Le compte |
| Auxiliaire | Détailler un poste tiers par tiers, bien par bien | Oui, en pratique | La technique comptable | Le tiers, le bien |
| Analytique | Coûts, marges, contributions | Non | L'entreprise elle-même | L'axe (produit, projet, fonction…) |
| Budgétaire | Autoriser et suivre la consommation de moyens | Non en privé | L'entreprise ou le cadre public | L'enveloppe |
| Fiscale | Assiette de l'impôt et des taxes | Oui | Le code des impôts | La case de la déclaration, le taux |
| Matières (quantités) | Existants physiques et leur valeur | Selon secteur | Technique + réglementation sectorielle | L'article, le lot |
| Extra-financière | Impacts non monétaires | Si assujetti | Normes de durabilité | L'indicateur |
- La générale est la seule probante — la seule qui fait foi. Les autres sont des vues, des détails ou des retraitements — d'où l'exigence que tout se rattache au grand livre par un chemin vérifiable.
- Une seule est facultative : l'analytique. Personne d'extérieur n'arbitrera à la place de l'entreprise ; les arbitrages non faits en conception se paient en incohérence des restitutions.
- Deux ne sont pas en partie double. L'analytique moderne et la budgétaire sont des systèmes d'étiquettes et de compteurs posés sur les écritures — pas des livres qui s'équilibrent en débit/crédit. Les traiter comme des grands livres crée des attentes que l'outil ne peut pas satisfaire.
Trois pièges d'homonymie qui coûtent cher
Le vocabulaire comptable français comporte trois homonymies redoutables. Chacune a produit, dans des projets réels, des semaines de travail perdu. Cliquez pour révéler les deux sens.
Le point aveugle : les comptabilités auxiliaires
La tradition française repose sur le couple compte collectif / comptes individuels (411000 + 411CLI001, 411CLI002…), avec obligation d'équilibre. La plupart des ERP contemporains — Odoo compris — procèdent autrement : un compte de tiers unique au grand livre, et une dimension partenaire sur la ligne d'écriture (account.move.line, champ pointant vers res.partner). Ce n'est pas une simplification, c'est un autre modèle de données. Conséquences à énoncer en conception :
- Pas de contrôle collectif / auxiliaires possible : le contrôle de substitution est le rapprochement solde du compte de tiers ↔ balance âgée (les créances classées par ancienneté), à formaliser en clôture.
- La qualité de la base tiers devient un enjeu comptable : un doublon de partenaire fracture l'information auxiliaire d'un poste du bilan.
- Une ligne sans partenaire sur un compte de tiers est une anomalie invisible au grand livre et destructrice pour la balance âgée — contrôle à automatiser.
Corollaire : il n'y a pas un résultat, il y en a cinq
La formulation la plus utile pour ouvrir un atelier avec une direction financière — elle désamorce la question piège « pourquoi les chiffres ne sont-ils pas les mêmes ? ».
| Résultat | Produit par | Sert à | Écart avec le précédent |
|---|---|---|---|
| Comptable social | Comptabilité générale, référentiel local | Approbation des comptes, distribution | — |
| Fiscal | Retraitements extra-comptables | Calcul de l'impôt | Charges non déductibles, amortissements dérogatoires… |
| Analytique | Comptabilité de gestion | Piloter les marges | Charges non incorporables, coûts supplétifs |
| Consolidé | Consolidation, référentiel groupe | Communication financière | Retraitements, éliminations, minoritaires |
| De gestion | Tableaux de bord internes | Objectifs, primes, clauses bancaires | Éléments « non récurrents », normalisations |
Ces cinq résultats sont tous légitimes. Un système d’information sain permet de passer de l'un à l'autre par un chemin explicite — exactement ce qu'IFRS 18 imposera au cinquième : réconcilier les mesures de performance de la direction avec l'agrégat normé le plus proche.
- Une entreprise tient plusieurs comptabilités ; seule la générale est probante.
- L'analytique est la seule facultative — ses arbitrages ne seront faits par personne d'autre que vous.
- Il n'y a pas un résultat mais cinq, tous légitimes, reliés par des chemins explicites.
Un « schéma comptable », c'est quoi au juste ?
Réponse courteCe n'est pas un objet, c'est quatre éléments connectés : un vocabulaire, des montants, des enregistrements, des lectures. Toute la suite du dossier tient dans une question : lequel dédoubler, et à quel prix ?
Repeindre une pièce : un week-end. Déplacer une cloison : des travaux, mais on continue d'habiter. Refaire la plomberie : gros chantier, on ouvre les murs. Toucher aux fondations : on ne modifie pas, on reconstruit.
Un schéma comptable s'étage exactement ainsi — et tout le coût d'un projet multi-référentiel dépend du niveau qu'on touche. plus on descend, plus ça coûte cher !
Quand quelqu'un dit « schéma comptable », il parle en réalité d'un assemblage de quatre éléments. Chacun vit sa vie : un même plan de comptes accepte plusieurs façons d'écrire, et un même jeu d'écritures peut alimenter plusieurs présentations. Les voici, du plus superficiel au plus profond :
| L'élément | Ce qu'il fait | Le dédoubler, c'est… | |
|---|---|---|---|
| 4 | La présentation | La lecture : bilan, compte de résultat, vues IFRS. Rien n'y est stocké. | La peinture — presque gratuit : on relit les mêmes écritures autrement. |
| 3 | Les écritures | L'enregistrement : les lignes débit/crédit — y compris les écritures d'arrêté (factures non parvenues, factures à établir). | Les cloisons — un vrai travail : des ajustements explicites à passer à chaque clôture. |
| 2 | La valorisation | Les montants : l'algorithme (CMP — le coût moyen pondéré —, FIFO…) qui calcule le coût que chaque écriture transporte. | La plomberie — un développement, ou une seconde entité. |
| 1 | Le plan de comptes | Le vocabulaire : la liste des comptes où tout s'enregistre. | Les fondations — irréversible : on ne revient pas en arrière. |
Le plan de comptes et la valorisation alimentent les écritures ; la présentation ne fait que les relire. Dans Odoo, toute la comptabilité tient dans ces lignes équilibrées (Σ débits = Σ crédits) : il n'existe aucun objet « référentiel comptable » à côté. Et les écritures d'arrêté ne sont pas un module à part : ce sont des écritures comme les autres, passées au moment de la clôture.
Pourquoi la valorisation est-elle si rigide ? Parce qu'elle vit dans les modules logistiques, pas dans le module comptable : le coût d'une sortie de stock est calculé au moment du mouvement. Impossible donc de valoriser deux fois le même stock (CMP pour les comptes français, FIFO pour IFRS) sans développement ou seconde entité — la question 6 y revient.
- Un schéma comptable = quatre éléments connectés : plan de comptes, valorisation, écritures, présentation.
- Coût du dédoublement, du moins au plus cher : présentation (gratuit) → écritures (travail de clôture) → valorisation (développement) → plan de comptes (irréversible).
- Presque tous les échecs multi-référentiels viennent du dédoublement du mauvais élément.
Une charge : quand naît-elle, et comment la classer ?
Réponse courteDeux clivages traversent toutes les traditions comptables : le moment (la charge naît-elle à l'achat ou à la vente ?) et le classement (par ce qu'elle est, ou par ce à quoi elle a servi ?). Même résultat annuel dans tous les cas — mais ni la même lecture mensuelle, ni la même charge de clôture.
Premier clivage : à l'achat ou à la vente ?
Acheter des pâtes ne vous appauvrit pas : vous avez échangé de l'argent contre un placard plein. Les manger, si. Toute la différence entre les deux traditions tient au moment où l'on note cette consommation :
Fin du mois, les deux carnets donnent le même coût de nourriture. Mais le 12 du mois, seul le second sait déjà ce que le mois a coûté — au prix d'un pointage permanent. même placard, même dîner — deux moments de comptage !
Le point de bascule concret
Une seule question opérationnelle sépare visiblement les deux familles : à quel moment un achat de marchandise devient-il une charge ? Côté continental, dès la facture fournisseur (compte 607), corrigée à la clôture par la variation de stock. Côté anglo-saxon, jamais à l'achat : c'est une entrée d'actif, et la charge naît à la sortie du stock, sous le nom de cost of goods sold, en regard du produit. Les deux donnent exactement le même résultat annuel — mais ni le même résultat mensuel, ni la même charge de clôture. C'est un choix de schéma d'écriture (l'élément écritures), pas de référentiel : le PCG autorise parfaitement l'inventaire permanent.
Beaucoup de blogs d'intégrateurs décrivent la comptabilité continentale comme reconnaissant produits et charges « au paiement ». C'est une description de la comptabilité de trésorerie, qui n'a rien à voir. Conséquence concrète de cette erreur : des équipes croient que le paramètre de schéma de stock de leur ERP (le commutateur « comptabilité anglo-saxonne » d'hier, le réglage Periodic / Perpetual d'Odoo 19) arbitre entre engagement et trésorerie, alors qu'il ne fait que aiguiller des comptes de stock.
Second clivage : classer par nature ou par destination ?
Derrière le premier clivage s'en cache un plus général. Si la tradition anglo-saxonne attend la vente pour reconnaître la charge, c'est parce qu'elle classe les charges par destination — « ça a servi à quoi ? » : le coût des ventes s'affiche en face du chiffre d'affaires, et la marge brute apparaît. La tradition continentale classe par nature — « qu'est-ce que c'est ? » : achats, salaires, loyers, chacun sur son compte. Le débat continental / anglo-saxon n'est donc que ce clivage-là, appliqué au cycle des marchandises.
Fin du mois, la boulangère vide sa boîte : 1 000 € de tickets. Deux façons de les ranger sur la table :
Une pile farine, une pile salaires, une pile loyer. N'importe qui range pareil : le ticket dit lui-même sa pile.
Une pile fabriquer, une pile vendre, une pile administrer. Il faut décider : le salaire du vendeur qui aide au fournil le matin va où ?
Premier rangement : objectif, personne ne se trompe. Second : plus riche — il donne le coût du croissant — mais conventionnel. on peut toujours re-trier la nature vers la destination — jamais l'inverse !
Aucune des deux lectures n'est « la bonne » : elles ne donnent pas la même information. La marge brute n'existe que par destination ; la valeur ajoutée (l'assiette de la CVAE, l'impôt assis sur la valeur ajoutée) n'existe que par nature — et la déclaration fiscale française l'exige. Une entreprise française qui veut la lecture anglo-saxonne doit donc produire les deux.
De la nature, on peut toujours reconstruire la destination ; de la destination, on ne peut jamais retrouver la nature — une fois les tickets fondus dans la pile « fabriquer », la farine a disparu. Conséquence : le plan de comptes reste toujours par nature ; la destination s'ajoute, elle ne remplace pas.
Comment ajouter la vue par destination
Deux voies complémentaires : la dimension analytique (la nature reste sur le compte, la destination se pose sur un axe) pour le commercial et l'administratif ; l'incorporation aux stocks pour la production — sans elle, pas de vraie marge brute, seulement des libellés fonctionnels. Un seul piège sérieux : le double comptage — une même charge incorporée au stock et ventilée en analytique compte deux fois dans les états, sans que le grand livre ne bronche. Antidote : un montant, une seule route, et un contrôle de bouclage à chaque clôture.
- Un seul clivage de fond : nature ou destination — le débat continental / anglo-saxon n'en est que le cas particulier appliqué aux marchandises.
- Marge brute = destination ; valeur ajoutée (CVAE) = nature. Une entreprise française a besoin des deux lectures.
- Asymétrie : nature → destination toujours possible ; l'inverse jamais. Le plan de comptes reste par nature, la destination s'ajoute (analytique + incorporation aux stocks).
Le laboratoire : un achat, une vente, un arrêté au milieu
La preuveLe même cas dans les trois schémas — et cette fois, l'arrêté tombe avant les factures. Impossible de boucler sans écritures d'arrêté : elles font partie du schéma, au même titre que les écritures de flux.
Trois façons d'écrire le même cas : A — continental, stock compté en fin de période (inventaire intermittent) ; B — continental, stock suivi en continu (inventaire permanent) ; C — anglo-saxon perpétuel. Les trois donnent le même résultat au 30 juin, à condition de passer leurs écritures d'arrêté : la facture non parvenue (FNP, compte 408) côté achat, la facture à établir (compte 418) côté vente. Avancez étape par étape ; les étapes cerclées d'or sont l'arrêté.
Un T-compte, c'est un compte dessiné en T : les débits à gauche, les crédits à droite. Chaque écriture est équilibrée : total débits = total crédits. Le résultat = produits (comptes 7) − charges (comptes 6).
| Schéma A | Schéma B | Schéma C | |
|---|---|---|---|
| Marge lisible en cours de mois | Non | Oui | Oui |
| À ne pas oublier à l'arrêté | Inventaire + FNP (408) + facture à établir (418) | FNP (408) + facture à établir (418) | Facture à établir + rapprocher les comptes d'attente |
| Charge de clôture | Forte | Moyenne | Moyenne |
| Profil | Défaut fréquent | Cible recommandée en France | Rare, souvent involontaire |
Dans les trois schémas, le résultat du 30 juin n'est juste qu'après les écritures d'arrêté. Elles ne sont pas un raffinement optionnel : elles sont la moitié du schéma — celle que les démonstrations ne montrent jamais, parce qu'elles font toujours arriver les factures avant la clôture.
Dans neuf cas sur dix : le continental à inventaire permanent (B). Il garde l'information « achats de l'exercice » (compte 607) qu'exigent la liasse fiscale (les tableaux joints à la déclaration de résultat) et le calcul de la valeur ajoutée, tout en donnant une marge mensuelle. Le test inverse : une balance française où le 607 est vide alors qu'on achète des marchandises = un ERP resté en schéma anglo-saxon par défaut, jamais par décision.
- Même résultat au 30/06 dans les trois schémas — écritures d'arrêté comprises ; sans elles, les trois sont faux, chacun à sa manière.
- C'est un choix de schéma d'écriture, pas de référentiel : le PCG autorise parfaitement l'inventaire permanent.
- Cible française 9 fois sur 10 : le continental à inventaire permanent (B) — marge mensuelle ET conformité fiscale.
Et IFRS, ça change quoi ?
Réponse courteIFRS ne remplace jamais la comptabilité française : c'est une superstructure qui s'ajoute par-dessus. Et deux réformes, en 2025 et 2027, changent la présentation des comptes.
Votre vie financière est unique, mais vous la racontez deux fois : la déclaration d'impôt (format imposé par l'administration, obligatoire) et le dossier de prêt (format voulu par le banquier, qui veut votre capacité réelle de remboursement). Le dossier de prêt ne remplace pas la déclaration : il se construit à partir d'elle, en retraitant certains postes.
Comptes sociaux PCG = la déclaration (contrainte, source légale). IFRS = le dossier de prêt (destiné à l'investisseur, dérivé du premier). le référentiel tenu est la source, IFRS est la dérivée
En Europe, IFRS s'applique obligatoirement aux comptes consolidés des sociétés cotées ; pour un groupe français non coté, c'est une option (règles françaises de consolidation ou IFRS) — une décision de cadrage qui détermine l'ampleur des retraitements à outiller. IFRS ne remplace jamais les comptes sociaux : un groupe coté vit structurellement en double référentiel permanent.
Le référentiel local est la source, IFRS est la dérivée. Ce n'est pas une préférence de conception, c'est une contrainte légale : la piste d'audit fiable, le FEC (le fichier des écritures comptables remis à l'administration) et la liasse portent sur les comptes sociaux. Il faut distinguer le référentiel tenu (contraint) du référentiel de pilotage (choisi) — et faire du premier la source.
Les divergences IFRS / PCG les plus fréquentes en projet
Les cinq divergences qui concentrent l'essentiel des projets. Les autres — impôts différés, retraites, goodwill, subventions… — se traitent toutes de la même façon : une écriture d'ajustement dans un journal dédié.
| Sujet | PCG (social) | IFRS | Impact ERP |
|---|---|---|---|
| Locations | Location simple et crédit-bail hors bilan | IFRS 16 : droit d'utilisation + dette, presque tous contrats | Fort |
| Amortissements | Durées souvent fiscales, dérogatoires | Durée d'utilité réelle, composants, valeur résiduelle | Fort : 2 plans pour un bien |
| Chiffre d'affaires | Livraison / achèvement | IFRS 15 : 5 étapes, obligations distinctes, actifs/passifs de contrat | Fort |
| Écarts de conversion | Pertes latentes provisionnées, gains non comptabilisés | IAS 21 : pertes et gains au résultat | Moyen |
| Créances douteuses | Approche individuelle | IFRS 9 : pertes attendues sur toute la population | Fort : données de balance âgée |
Deux réformes de présentation changent la donne
- Plan de comptes unique (~1 600 comptes au lieu de ~2 000)
- Résultat exceptionnel redéfini : limité à l'événement majeur et inhabituel ; cessions et subventions en sortent
- Transferts de charges supprimés (791/796/797 → 649, 7084, 7587)
- Nouveaux modèles d'états, annexe refondue
- Trois catégories imposées : operating / investing / financing
- Deux sous-totaux obligatoires (résultat opérationnel, résultat avant financement et impôt)
- Les mesures de performance de la direction (EBITDA ajusté…) réconciliées en note unique — elles entrent dans le périmètre audité
Conséquence système : la classification operating/investing/financing doit être portée par une caractéristique persistante des lignes (compte, groupe, étiquette), pas recalculée à la main chaque trimestre — et l'EBITDA ajusté doit être reproductible depuis le grand livre. Exactement ce que fait un moteur d’états paramétrable, et pas un tableur de clôture.
- IFRS = comptes consolidés des groupes cotés ; les comptes sociaux restent en PCG. Double référentiel permanent.
- Le local est la source, IFRS la dérivée — contrainte légale (FEC, liasse), pas préférence de conception.
- ANC 2022-06 (2025) et IFRS 18 (2027, comparatif dès 2026) : étiqueter les comptes dès maintenant.
Qu'est-ce qu'Odoo fait vraiment ?
Réponse courteUn seul grand livre, un réglage Periodic / Perpetual (l'ex-commutateur anglo-saxon, refondu en v19), un excellent moteur d'états — et un « multi-ledger » qui est un filtre de restitution, pas une seconde comptabilité.
Odoo tient un seul cahier où tout s'écrit à l'encre, ligne après ligne. Pour produire une « autre » comptabilité, il ne sort pas un second cahier : il surligne certaines lignes et relit le cahier en ignorant les autres. Les ajustements IFRS sont des lignes supplémentaires, à l'encre elles aussi, dans des pages dédiées — jamais une réécriture.
tout ce qui suit découle de cette image : un cahier, des pages dédiées, des lectures filtrées
Le modèle comptable en une page
- Un seul grand livre. Toute la comptabilité tient dans la pièce et ses lignes équilibrées. Une ligne porte société, journal, compte, partenaire, analytique… mais aucune notion de référentiel : la seule façon de qualifier une écriture, c'est son journal ou l'étiquette de son compte.
- Le module comptable est un récepteur, pas un décideur. Les écritures des flux physiques sont produites par les modules logistiques ; le paramétrage comptable des stocks vit dans la catégorie d'article, pas dans le plan de comptes.
- La restitution est un moteur à part entière : états paramétrables, colonnes, variantes. De loin l'élément le plus souple — l'essentiel d'une stratégie multi-référentiel raisonnable repose sur lui.
Le modèle de données comptable, en mouvement
Suivez une facture client de 1 200 € TTC, de sa naissance à sa restitution — et notez ce qui manque au schéma : aucun objet « référentiel », aucun second grand livre. Avancez pas à pas, ou laissez dérouler.
Le réglage « Inventory Valuation » : Periodic ou Perpetual
Jusqu'à la v18, un commutateur « Anglo-Saxon Accounting » arbitrait le schéma de stock. Il n'existe plus en v19 : un réglage unique le remplace, par société — Periodic ou Perpetual (at invoicing). Perpetual est le schéma anglo-saxon.
- Periodic : la facture fournisseur est une charge par nature (607) ; le stock s'ajuste par écriture de variation de stock — le véhicule du schéma continental
- Perpetual (at invoicing) : la facture fournisseur débite le stock ; la charge naît en coût des ventes à la facture client — le schéma anglo-saxon
- Réglage par société, à figer avant la reprise de balance (le chargement des soldes au démarrage) : en v19, les écritures de stock naissent à la facturation, plus au mouvement physique
- Ne choisit pas entre engagement et trésorerie
- Ne change ni le plan de comptes ni la méthode de coût (standard, CMP, FIFO)
- Ne dispense d’aucune écriture d’arrêté : réceptions et livraisons non facturées se revoient dans le menu Review
La v19 déplace le fait générateur — l'événement qui déclenche l'écriture — vers la facture : la réception ne génère plus d'écriture, et les comptes d'attente v18 laissent place au couple valorisation / variation de stock sur la catégorie d'article. Les recettes v18 qui circulent sur les forums sont donc sans objet — et le réglage reste non réversible en pratique : à décider, tester et documenter avant la reprise de balance.
Les écritures d’arrêté : le menu Review
Le menu Review liste à tout moment ce qui est décroché — réceptions non facturées, livraisons non facturées — et génère les écritures correspondantes sur sélection (les FNP 408 et factures à établir 418 du laboratoire). Semi-automatique seulement : Odoo prépare l'écriture, mais la revue reste une procédure d'arrêté à instituer, avec un propriétaire et une échéance. C'est l'omission la plus fréquente des clôtures bâties autour d'un ERP généraliste.
Valorisation des stocks : les principes
Trois méthodes de coût au niveau de la catégorie d'article — standard, CMP, FIFO (pas de LIFO, interdit en IFRS). Le point que presque tout le monde a faux : en schéma anglo-saxon, Odoo rattache le coût des ventes à la facture client, pas à la livraison. La politique de facturation devient donc une décision comptable, et l'écart livré / facturé chiffre exactement la marge fictive de la période — listé par l'état Invoiced Not Delivered du menu Review. Le détail des séquences (facture avant réception, écarts de prix, retours) fera l'objet d'un article dédié.
Ce qui marche bien : différés, immos, reporting
- Différés : charges et produits constatés d'avance étalés depuis la ligne de facture. Couvre l'abonnement facturé d'avance — pas l'allocation IFRS 15.
- Immobilisations : modèles par catégorie, recalcul prospectif, cession. Manque surtout le double plan d'amortissement — l'écriture dérogatoire en journal dédié reste la solution la plus propre en France.
- Les états : le vrai point fort. À partir d'un jeu d'écritures unique : états PCG, états IFRS par étiquetage, préfiguration IFRS 18. Étiqueter les comptes : dix jours en début de projet, trois mois en rattrapage. Limite française : Odoo ne produit pas la liasse fiscale (cabinet, outil dédié via FEC ou connecteur EDI).
- Analytique : plans + distribution en % — le bon véhicule de l'axe destination, sur un plan dédié. Vigilance : la propagation sur les écritures automatiques est inégale, à tester flux par flux.
Multi-ledger : la réponse d'Odoo au multi-référentiel
Le point où la communication commerciale est la plus ambiguë. Un ledger (apparu en v18) est un grand livre logique défini par la liste des journaux qu'il exclut — un filtre de restitution, pas un second jeu d'écritures :
Chaque divergence devient une écriture récurrente ou périodique dans le journal IFRS : locations, amortissements, écarts de change, pertes attendues, impôts différés… Montage viable — c'est celui de la plupart des ERP de milieu de gamme — à condition d'une discipline absolue de journalisation et d'un tableau de passage statutaire → IFRS conçu d'avance. Ses limites : aucune divergence de valorisation transactionnelle (deux méthodes de coût), aucun recalcul automatique.
Ce qui n'existe pas nativement — la table des arbitrages
Elle transforme la question vague « Odoo est-il IFRS ? » en une liste finie d'arbitrages budgétés.
01IFRS 16 — locations
Absent. Modules tiers de l'App Store, ou échéancier hors système + écritures récurrentes (la gestion d'emprunts v19 peut porter l'échéancier de dette). Le vrai sujet de jugement : taux d'actualisation, durée exécutoire, modifications de contrat.
02IFRS 15 — allocation multi-obligations
Absent. Développement spécifique risqué (il touche un objet central : la ligne de facture doit porter prix contractuel et prix d'allocation), ou calcul externe + ajustements.
03Dépréciations — IAS 36, stocks (VNR), IFRS 9
IAS 36 : hors système. Stocks : état de rotation paramétré + écriture manuelle. IFRS 9 : la balance âgée d'Odoo fournit la donnée, la matrice de taux se calcule dehors, l'écriture revient dedans.
04IAS 23, IAS 19, IAS 12
Coûts d'emprunt incorporables : calcul externe + écriture. Engagements de retraite : évaluation actuarielle externe. Impôts différés : écritures d'ajustement en journal dédié.
05Écarts sur coûts standards industriels
Partiel : pas de comptabilisation automatique en comptes d'écart dédiés (matière / main-d'œuvre / absorption). Développement spécifique — le plus fréquent en industrie.
06Liasse fiscale française & éliminations intra-groupe complexes
Liasse : non produite (ni formulaires 2050-2059, ni EDI-TDFC — comme presque tous les ERP généralistes, la liasse étant un objet normé EDIFICAS à millésime annuel) — cabinet, outil dédié via FEC, ou connecteur partenaire EDI (Teledec), périmètre à contractualiser. Éliminations complexes : journaux d'élimination ou outil de consolidation dédié.
07Engagement budgétaire bloquant
Pas de réservation de crédit bloquante sur engagement : module tiers ou développement spécifique. À distinguer du suivi budget/réalisé, couvert sur axes analytiques.
08Structure IFRS 18
Constructible : étiquetage des comptes + états paramétrés. La seule ligne de cette table qui soit une bonne nouvelle — à condition d'étiqueter dès la création du plan.
- Plus de commutateur anglo-saxon en v19 : un réglage Periodic / Perpetual qui aiguille des comptes de stock — irréversible en pratique.
- Un seul grand livre, aucun objet « référentiel » : la seule « couleur » d'une écriture est son journal.
- Le coût des ventes naît à la facture client : la politique de facturation devient une décision comptable.
- Multi-ledger = filtre de restitution ; chaque divergence = une écriture d'ajustement explicite.
- Le vrai point fort : le moteur d'états — étiqueter les comptes coûte 10 jours au départ, 3 mois en rattrapage.
Comment organiser plusieurs référentiels — et où ça casse ?
Réponse courteQuatre montages possibles, du plus simple au plus lourd. Le bon choix tient à une seule question : vos divergences sont-elles transactionnelles (deux valorisations du même flux) ou non ?
| Critère | M1 | M2 | M3 | M4 |
|---|---|---|---|---|
| Nombre d'entités | 1 | 2 à 10 | 1 à 3 | > 10 |
| Divergences transactionnelles | Non | Non | Oui | Oui |
| Éliminations intra-groupe | Non | Simples | Simples | Complexes |
| Charge de clôture | Faible | Moyenne | Élevée | Moyenne |
| Coût de mise en œuvre | Nul | Faible | Élevé | Élevé |
| Robustesse à l'audit | n/a | Bonne si documentée | Bonne | Très bonne |
| Réversibilité | n/a | Bonne | Faible | Bonne |
Les huit erreurs les plus coûteuses
En clairLes erreurs les plus chères vues en projet — toutes des décisions prises par défaut — et les contrôles qui les détectent avant qu'elles ne coûtent.
01Laisser le réglage Periodic / Perpetual par défaut, sans décision
Symptôme : compte de résultat français sans 607, incompatible avec la liasse fiscale. Correction : reprise complète de la valorisation.
02Fixer la méthode de coût sans arbitrage finance
FIFO / CMP / standard est une décision de politique comptable, pas un paramètre technique — à valider par le directeur comptable et à documenter.
03Ignorer les réceptions et livraisons non facturées
L'erreur à double face : une réception non facturée surévalue le résultat (il manque la FNP 408) ; une livraison non facturée fausse la marge. Le menu Review les liste et prépare les écritures — encore faut-il le revoir à chaque arrêté, avec un propriétaire désigné.
04Croire que le multi-ledger fait de la double comptabilité
C'est un filtre de restitution par exclusion de journaux. Toute divergence = une écriture d'ajustement explicite.
05Un plan analytique unique pour trois usages
Centre de coûts + projet + fonction sur le même axe = états incohérents. Un plan dédié par usage.
06Sous-estimer la clôture industrielle
L'en-cours de production n'est pas automatique : écriture manuelle à chaque arrêté, contrôle en-cours ↔ ordres non achevés, sous-activité à traiter.
07Aucune procédure de dépréciation des stocks
Aucun mécanisme natif ne la produit : un état support (rotation, articles dormants) + une écriture, avec des critères documentés.
08Oublier la liasse fiscale et la mise à niveau ANC 2022-06
Odoo ne produit pas la liasse (cabinet, outil dédié via FEC ou connecteur EDI — à contractualiser en cadrage). Et un plan de comptes non aligné ANC 2022-06 produit des états non conformes depuis 2025.
Cinq contrôles à automatiser en priorité
Écarts réception ↔ facturation : revue mensuelle des états du menu Review, alerte sur tout écart de plus de 45 jours.
Triple égalité matières : quantités en stock = valorisation = solde du compte, à zéro tolérance. Détecte le plus tôt un paramétrage cassé.
Intégrité des auxiliaires : aucune ligne sans partenaire sur les comptes de tiers ; solde du compte = balance âgée.
Bouclage des vues : charges par nature = coût des ventes + ventilé + variation des coûts au bilan, au centime ; part non ventilée sous un seuil.
Complétude des ajustements : les écritures du journal d'ajustement IFRS rapprochées du registre des divergences attendues.
- Montage 2 (local + ajustements en journaux dédiés) par défaut ; une divergence transactionnelle le disqualifie.
- Ces huit erreurs ont un point commun : une décision prise par défaut au lieu d'être arbitrée et documentée.
- Cinq contrôles automatisés détectent l'essentiel avant que cela ne coûte.
Ce qu'il faut retenir
Odoo tient très bien une comptabilité, et sait en restituer plusieurs lectures par ajustements explicites. Ce qu'il ne sait pas faire sans développement : valoriser deux fois le même flux. Et le vrai coût d'un projet n'est pas dans les fonctionnalités manquantes : il est dans les procédures d'arrêté récurrentes, à lister, chiffrer et affecter avant le démarrage — pas à la première clôture.
Ces arbitrages se prennent avant la reprise de balance.
Réglage de stock, méthode de coût, plans analytiques, journaux d'ajustement, procédures d'arrêté : notre audit Satori — l'audit (悟り) instruit exactement ces décisions et les consigne dans un dossier d'architecture engageant, écrit avant de construire.
Mini-glossaire de correspondance
FR ⇄ ENDéplier le glossaire
| Français / PCG | Anglais / IFRS | Remarque |
|---|---|---|
| Achats de marchandises (607) | Purchases | N'existe pas comme charge en schéma anglo-saxon |
| Variation des stocks (603x) | — | Absorbé dans le COGS |
| Coût des ventes | Cost of goods sold | Charge, pas un compte de stock |
| Factures non parvenues (408) | Accrued liabilities / GR-IR | Même fonction, place différente dans le schéma |
| Clients — factures à établir (418) | Accrued income / contract asset | Actif de contrat ≠ créance |
| Produits constatés d'avance (487) | Deferred revenue / contract liability | IFRS 15 élargit la notion |
| Production stockée (713) | — | Produit, en présentation par nature uniquement |
| Crédit-bail | Finance lease / right-of-use | Hors bilan en social, capitalisé en IFRS |
French GAAP (PCG), IFRS, "Anglo-Saxon accounting": rather than stacking definitions, this deep-dive moves through the six questions people actually ask on projects — with one guiding thread: an accounting framework is a circuit of four elements — chart of accounts, valuation, journal entries, presentation. Every question follows the same path: an intuition, the mechanics — entries you can verify, period-end included —, then what Odoo 19 does with it, and at what cost.
A framework is not an object you install: it is a circuit you decide
This deep-dive answers the question every international project ends up asking: "can you do Anglo-Saxon accounting in Odoo?". The answer fits in four findings — each developed in its own chapter.
A framework lives there as four connected elements — chart of accounts, valuation, journal entries, presentation. Every multi-GAAP requirement comes down to one question: which of the four do you duplicate, and at what cost? Duplicating the wrong one is the leading cause of failure.
Both traditions are accrual-based. The real differences: when cost of sales is recognised, how the income statement is structured (by nature or by function), and who the accounts are written for.
Behind the multi-ledger promoted since v18: a filter that excludes journals at reporting time. Differences between frameworks are therefore written down in black and white, as explicit adjustment entries — auditable, but to be sized before go-live.
Compliance depends less on features than on the procedures that come back at every period-end: each one has a recurring cost, an owner to name, and a risk of being forgotten.
Still fuzzy on a term? That's normal: every chapter starts it again from scratch.
Which accounting are we talking about?
Short answer"The accounting" does not exist in the singular: a company keeps several in parallel. Only one is legally authoritative — and half of all project misunderstandings come from confusing them.
The same house, three documents describing it: the notarised deed (the only one enforceable in court), the architect's plans (free-form, made for deciding on works), the property-tax assessment (the administration computes its own value, with its own rules). Three legitimate descriptions of the same house — none replaces the others.
A company's accounts work the same way: the general ledger is the notarised deed (authoritative, enforceable), management accounting is the architect's plan (free-form, decision-oriented), tax accounting is the assessment (its own base). a good ERP lets you move from one document to another along a verifiable path
Before comparing frameworks, let's clear up a more basic confusion: a company simultaneously keeps several kinds of accounting, which differ in purpose, in referee, and in level of detail. Most misunderstandings between a finance team and a project team are not about the framework, but about which kind of accounting is being discussed at that moment.
| Kind | Purpose | Mandatory? | Rules set by | Level of detail |
|---|---|---|---|---|
| General (financial) | Assets and result, for third parties | Yes | The legal framework (PCG, IFRS…) | The account |
| Subledgers | Detail a balance partner by partner, asset by asset | Yes, in practice | Accounting technique | The partner, the asset |
| Management (analytic) | Costs, margins, contributions | No | The company itself | The dimension (product, project, function…) |
| Budgetary | Authorise and track spending of funds | Not in the private sector | The company or the public framework | The envelope |
| Tax | Base for income tax and other taxes | Yes | The tax code | The return box, the rate |
| Quantity (materials) | Physical stock on hand and its value | Sector-dependent | Technique + sector regulation | The item, the lot |
| Non-financial | Non-monetary impacts | If in scope | Sustainability standards | The indicator |
- Only the general ledger is authoritative — the only one that counts as evidence. The others are views, details or restatements — hence the requirement that everything ties back to the general ledger along a verifiable path.
- Only one is optional: management accounting. Nobody outside the company will make those calls for it; trade-offs skipped at design time are paid back as inconsistent reporting.
- Two are not double-entry. Modern analytic accounting and budgeting are systems of tags and counters laid on top of entries — not books that balance debit against credit. Treating them as ledgers creates expectations the tool cannot meet.
Three expensive homonym traps
French accounting vocabulary contains three treacherous homonyms. Each has cost real projects weeks of lost work. Click to reveal the two meanings.
The blind spot: subledgers
The French tradition rests on the pair control account / individual accounts (411000 + 411CLI001, 411CLI002…), which must balance. Most contemporary ERPs — Odoo included — work differently: a single receivable/payable account in the general ledger, plus a partner dimension on each entry line (account.move.line, a field pointing to res.partner). That is not a simplification — it is a different data model. Consequences to state at design time:
- No control-account vs subledger check is possible: the substitute control is the reconciliation of the partner account balance against the aged balance (receivables ranked by age), to be formalised at close.
- The quality of the partner master data becomes an accounting issue: a duplicated partner fractures the subledger detail behind a balance-sheet line.
- A line without a partner on a receivable/payable account is an anomaly invisible in the general ledger and destructive for the aged balance — a control to automate.
Corollary: there is not one result — there are five
The most useful framing to open a workshop with a finance team — it defuses the trap question "why don't the numbers match?".
| Result | Produced by | Used for | Gap vs the previous one |
|---|---|---|---|
| Statutory | General ledger, local framework | Approving the accounts, distributions | — |
| Taxable | Off-ledger restatements | Computing income tax | Non-deductible expenses, tax-driven depreciation… |
| Management | Cost accounting | Steering margins | Excluded costs, imputed costs |
| Consolidated | Consolidation, group framework | Financial communication | Restatements, eliminations, minority interests |
| Performance | Internal dashboards | Targets, bonuses, bank covenants | "Non-recurring" items, normalisations |
All five results are legitimate. A healthy information system lets you go from one to another along an explicit path — exactly what IFRS 18 will impose on the fifth: reconciling management performance measures with the nearest standardised subtotal.
- A company keeps several kinds of accounting; only the general ledger is authoritative.
- Management accounting is the only optional one — nobody will make its trade-offs but you.
- There is not one result but five, all legitimate, linked by explicit paths.
What exactly is an "accounting scheme"?
Short answerIt is not an object — it is four elements connected: a vocabulary, amounts, records, readings. The rest of this deep-dive fits in one question: which one do you duplicate, and at what cost?
Repainting a room: a weekend. Moving a partition wall: real work, but you keep living there. Redoing the plumbing: a major job, you open up the walls. Touching the foundations: you don't modify — you rebuild.
An accounting scheme is layered exactly the same way — and the whole cost of a multi-GAAP project depends on which level you touch. the deeper you go, the more it costs!
When someone says "accounting scheme", they are really talking about an assembly of four elements. Each lives its own life: one chart of accounts accepts several ways of posting, and one set of entries can feed several presentations. Here they are, from the most superficial to the deepest:
| The element | What it does | Duplicating it is… | |
|---|---|---|---|
| 4 | Presentation | The reading: balance sheet, income statement, IFRS views. Nothing is stored there. | The paint — almost free: the same entries are simply re-read differently. |
| 3 | Journal entries | The record: the debit/credit lines — including period-end accruals (invoices not yet received, invoices to be issued). | The partition walls — real work: explicit adjustments to post at every close. |
| 2 | Valuation | The amounts: the algorithm (AVCO — the weighted average cost —, FIFO…) that computes the cost each entry carries. | The plumbing — a development, or a second entity. |
| 1 | Chart of accounts | The vocabulary: the list of accounts everything is recorded in. | The foundations — irreversible: there is no going back. |
The chart of accounts and valuation feed the entries; presentation only re-reads them. In Odoo, all of accounting lives in these balanced lines (Σ debits = Σ credits): there is no "accounting framework" object beside them. And period-end accruals are not a separate module: they are entries like any other, posted at closing time.
Why is valuation so rigid? Because it lives in the logistics modules, not in the accounting module: the cost of a stock issue is computed at the moment of the movement. It is therefore impossible to value the same stock twice (AVCO for the French statutory accounts, FIFO for IFRS) without a development or a second entity — question 6 comes back to this.
- An accounting scheme = four connected elements: chart of accounts, valuation, journal entries, presentation.
- Cost of duplication, cheapest to dearest: presentation (free) → entries (closing work) → valuation (development) → chart of accounts (irreversible).
- Almost every multi-GAAP failure comes from duplicating the wrong element.
An expense: when is it born, and how is it classified?
Short answerTwo divides run through every accounting tradition: the moment (is the expense born at purchase or at sale?) and the classification (by what it is, or by what it was used for?). Same annual result in every case — but neither the same monthly reading, nor the same closing workload.
First divide: at purchase or at sale?
Buying pasta doesn't make you poorer: you traded money for a full cupboard. Eating it does. The whole difference between the two traditions is the moment that consumption gets written down:
At month-end, both notebooks show the same food cost. But on the 12th, only the second already knows what the month has cost — at the price of constant logging. same cupboard, same dinner — two counting moments!
The concrete tipping point
One operational question visibly separates the two families: at what moment does a purchase of goods become an expense? Continental side: at the supplier invoice (account 607), corrected at close by the inventory variation. Anglo-Saxon side: never at purchase — it is an asset addition, and the expense is born when stock leaves, under the name cost of goods sold, matched against the revenue. Both give exactly the same annual result — but neither the same monthly result, nor the same closing workload. It is a choice of posting scheme (the entries element), not of framework: French GAAP perfectly allows perpetual inventory.
Many integrator blogs describe continental accounting as recognising revenue and expenses "at payment". That describes cash accounting, which has nothing to do with it. The concrete consequence of this error: teams believe the stock-scheme setting of their ERP (yesterday's "Anglo-Saxon accounting" switch, Odoo 19's Periodic / Perpetual setting) chooses between accrual and cash — when all it does is route stock accounts.
Second divide: classify by nature or by function?
Behind the first divide hides a more general one. If the Anglo-Saxon tradition waits for the sale to recognise the expense, it is because it classifies expenses by function — "what was it used for?": cost of sales is displayed against revenue, and gross margin appears. The continental tradition classifies by nature — "what is it?": purchases, salaries, rent, each on its own account. The continental / Anglo-Saxon debate is just that divide, applied to the merchandise cycle.
At month-end, the baker empties her box: €1,000 of receipts. Two ways of sorting them on the table:
A flour pile, a salaries pile, a rent pile. Anyone sorts them the same way: the receipt names its own pile.
A baking pile, a selling pile, an admin pile. You have to decide: where does the salary of the shop assistant who helps at the oven every morning go?
The first sorting: objective, nobody gets it wrong. The second: richer — it gives you the cost of a croissant — but conventional. you can always re-sort nature into function — never the other way round!
Neither reading is "the right one": they do not carry the same information. Gross margin only exists by function; value added (the base of the CVAE, the French tax levied on value added) only exists by nature — and the French tax return requires it. A French company that wants the Anglo-Saxon reading must therefore produce both.
From nature you can always rebuild function; from function you can never recover nature — once the receipts have melted into the "baking" pile, the flour is gone. Consequence: the chart of accounts always stays by nature; function is added on top, it never replaces.
How to add the functional view
Two complementary routes: the analytic dimension (nature stays on the account, function sits on a dimension) for selling and admin costs; absorption into inventory for production — without it, there is no real gross margin, only functional labels. One serious trap: double counting — the same cost absorbed into stock and distributed analytically counts twice in reports, without the general ledger blinking. Antidote: one amount, one route only, plus a tie-out control at every close.
- One underlying divide: nature or function — the continental / Anglo-Saxon debate is just its special case applied to merchandise.
- Gross margin = function; value added (CVAE) = nature. A French company needs both readings.
- Asymmetry: nature → function is always possible; the reverse never. The chart of accounts stays by nature; function is added (analytic + absorption into inventory).
The lab: one purchase, one sale, a close in the middle
The proofThe same case in all three schemes — and this time, the close falls before the invoices. Impossible to balance the books without accrual entries: they are part of the scheme, on a par with the flow entries.
Three ways of writing the same case: A — continental, stock counted at period-end (periodic inventory); B — continental, stock tracked continuously (perpetual inventory); C — Anglo-Saxon perpetual. All three give the same result at 30 June, provided their accrual entries are posted: the invoice not yet received (French account 408) on the purchase side, the invoice to be issued (account 418) on the sales side. Step through; the gold-ringed steps are the close.
A T-account is an account drawn as a T: debits on the left, credits on the right. Every entry balances: total debits = total credits. Result = revenue (French class-7 accounts) − expenses (class-6 accounts).
| Scheme A | Scheme B | Scheme C | |
|---|---|---|---|
| Margin readable mid-month | No | Yes | Yes |
| Not to forget at close | Physical count + accrued payable (408) + accrued receivable (418) | Accrued payable (408) + accrued receivable (418) | Accrued receivable + reconcile the interim accounts |
| Closing workload | Heavy | Medium | Medium |
| Profile | Frequent default | Recommended target in France | Rare, often unintentional |
In all three schemes, the 30 June result is only correct after the accrual entries. They are not an optional refinement: they are half the scheme — the half demos never show, because demos always let the invoices arrive before the close.
Nine times out of ten: continental with perpetual inventory (B). It keeps the "purchases of the period" information (account 607) required by the French tax bundle (the standardised tables filed with the tax return) and by the value-added computation, while still giving a monthly margin. The reverse test: a French trial balance where 607 is empty even though the company buys goods = an ERP left in the Anglo-Saxon scheme by default, never by decision.
- Same result at 30/06 in all three schemes — accrual entries included; without them, all three are wrong, each in its own way.
- It is a choice of posting scheme, not of framework: French GAAP perfectly allows perpetual inventory.
- French target 9 times out of 10: continental with perpetual inventory (B) — monthly margin AND tax compliance.
And IFRS — what does it change?
Short answerIFRS never replaces French statutory accounting: it is a superstructure added on top. And two reforms, in 2025 and 2027, are changing how the statements are presented.
Your financial life is unique, but you tell it twice: the tax return (format imposed by the administration, mandatory) and the loan application (format the banker wants, who cares about your real repayment capacity). The loan file does not replace the return: it is built from it, by restating certain items.
French statutory accounts = the tax return (constrained, the legal source). IFRS = the loan file (written for the investor, derived from the first). the framework you keep is the source; IFRS is the derivative
In Europe, IFRS is mandatory for the consolidated accounts of listed companies; for an unlisted French group, it is an option (French consolidation rules or IFRS) — a scoping decision that sizes the restatements to build. IFRS never replaces the statutory accounts: a listed group structurally lives in a permanent dual framework.
The local framework is the source; IFRS is the derivative. That is not a design preference — it is a legal constraint: the reliable audit trail, the FEC (the entries file handed to the French tax administration) and the tax bundle all rest on the statutory accounts. Distinguish the framework you keep (constrained) from the framework you steer by (chosen) — and make the first the source.
The most frequent IFRS / French GAAP differences on projects
The five differences that concentrate most of the work. The others — deferred tax, pensions, goodwill, grants… — are all handled the same way: an adjustment entry in a dedicated journal.
| Topic | French GAAP (statutory) | IFRS | ERP impact |
|---|---|---|---|
| Leases | Operating leases and finance leases off balance sheet | IFRS 16: right-of-use + liability, nearly all contracts | High |
| Depreciation | Often tax-driven useful lives, accelerated schemes | Actual useful life, components, residual value | High: 2 schedules per asset |
| Revenue | Delivery / completion | IFRS 15: 5 steps, distinct obligations, contract assets/liabilities | High |
| FX differences | Unrealised losses provisioned, gains not recognised | IAS 21: losses and gains through P&L | Medium |
| Doubtful receivables | Case-by-case approach | IFRS 9: expected losses on the whole population | High: aged-balance data |
Two presentation reforms change the game
- Single chart of accounts (~1,600 accounts instead of ~2,000)
- Extraordinary result redefined: limited to the major and unusual event; disposals and grants move out of it
- Expense transfers abolished (accounts 791/796/797 → 649, 7084, 7587)
- New statement layouts, revamped notes
- Three imposed categories: operating / investing / financing
- Two mandatory subtotals (operating profit, profit before financing and tax)
- Management performance measures (adjusted EBITDA…) reconciled in a single note — they enter the audited scope
System consequence: the operating/investing/financing classification must be carried by a persistent characteristic of the lines (account, group, tag), not recomputed by hand every quarter — and adjusted EBITDA must be reproducible from the general ledger. Exactly what a configurable reporting engine does, and a closing spreadsheet does not.
- IFRS = the consolidated accounts of listed groups; statutory accounts stay under French GAAP. A permanent dual framework.
- Local is the source, IFRS the derivative — a legal constraint (FEC, tax bundle), not a design preference.
- ANC 2022-06 (2025) and IFRS 18 (2027, comparatives from 2026): tag your accounts now.
What does Odoo actually do?
Short answerOne general ledger, a Periodic / Perpetual setting (the former Anglo-Saxon switch, reworked in v19), an excellent reporting engine — and a "multi-ledger" that is a reporting filter, not a second set of books.
Odoo keeps one notebook where everything is written in ink, line after line. To produce "another" set of accounts, it does not pull out a second notebook: it highlights certain lines and re-reads the notebook ignoring the others. IFRS adjustments are extra lines, in ink too, on dedicated pages — never a rewrite.
everything that follows flows from this image: one notebook, dedicated pages, filtered readings
The accounting model on one page
- One general ledger. All of accounting lives in the document and its balanced lines. A line carries company, journal, account, partner, analytics… but no notion of framework: the only way to qualify an entry is its journal or its account's tag.
- The accounting module is a receiver, not a decision-maker. Entries for physical flows are produced by the logistics modules; the accounting setup for stock lives on the product category, not in the chart of accounts.
- Reporting is an engine in its own right: configurable statements, columns, variants. By far the most flexible element — most of a reasonable multi-GAAP strategy rests on it.
The accounting data model, in motion
Follow a €1,200 customer invoice (incl. VAT) from birth to reporting — and note what is missing from the picture: no "framework" object, no second general ledger. Step through, or let it play.
The "Inventory Valuation" setting: Periodic or Perpetual
Until v18, an "Anglo-Saxon Accounting" switch decided the stock scheme. It no longer exists in v19: a single setting replaces it, per company — Periodic or Perpetual (at invoicing). Perpetual is the Anglo-Saxon scheme.
- Periodic: the supplier invoice is an expense by nature (account 607); stock is adjusted through an inventory-variation entry — the vehicle of the continental scheme
- Perpetual (at invoicing): the supplier invoice debits stock; the expense is born as cost of sales at the customer invoice — the Anglo-Saxon scheme
- A per-company setting, to freeze before the opening-balance load: in v19, stock entries are born at invoicing, no longer at the physical movement
- It does not choose between accrual and cash
- It changes neither the chart of accounts nor the cost method (standard, AVCO, FIFO)
- It waives no accrual entry: uninvoiced receipts and deliveries are still reviewed in the Review menu
V19 moves the triggering event — the event that fires the entry — to the invoice: a receipt no longer generates an entry, and the v18 interim accounts give way to the valuation / inventory-variation pair on the product category. The v18 recipes circulating on forums are therefore obsolete — and the setting remains effectively irreversible: decide, test and document it before the opening-balance load.
Accrual entries: the Review menu
The Review menu lists, at any moment, what is out of sync — uninvoiced receipts, uninvoiced deliveries — and generates the corresponding entries on selection (the lab's accrued payables 408 and accrued receivables 418). Semi-automatic only: Odoo prepares the entry, but the review remains a closing procedure to institute, with an owner and a deadline. It is the most frequent omission in closes built around a generalist ERP.
Inventory valuation: the principles
Three cost methods at product-category level — standard, AVCO, FIFO (no LIFO, prohibited under IFRS). The point almost everyone gets wrong: in the Anglo-Saxon scheme, Odoo attaches cost of sales to the customer invoice, not to the delivery. Invoicing policy therefore becomes an accounting decision, and the delivered-vs-invoiced gap measures exactly the period's fictitious margin — listed by the Review menu's Invoiced Not Delivered report. The detailed sequences (invoice before receipt, price differences, returns) will get their own article.
What works well: deferrals, fixed assets, reporting
- Deferrals: prepaid expenses and deferred revenue spread straight from the invoice line. Covers the subscription billed in advance — not IFRS 15 allocation.
- Fixed assets: models per category, prospective recalculation, disposals. The main gap is the dual depreciation schedule — the tax-driven entry in a dedicated journal remains the cleanest solution in France.
- Statements: the real strong point. From a single set of entries: French GAAP statements, IFRS statements by tagging, an IFRS 18 preview. Tagging the accounts: ten days at project start, three months as a catch-up. French limit: Odoo does not produce the tax bundle (accounting firm, dedicated tool fed by the FEC, or an EDI connector).
- Analytics: plans + percentage distribution — the right vehicle for the functional dimension, on a dedicated plan. Watch out: propagation onto automatic entries is uneven, to be tested flow by flow.
Multi-ledger: Odoo's answer to multi-GAAP
The point where the marketing is most ambiguous. A ledger (introduced in v18) is a logical general ledger defined by the list of journals it excludes — a reporting filter, not a second set of entries:
Each difference becomes a recurring or periodic entry in the IFRS journal: leases, depreciation, FX differences, expected losses, deferred tax… A viable setup — it is the one most mid-market ERPs use — provided absolute journal discipline and a statutory → IFRS bridge designed upfront. Its limits: no transaction-level valuation difference (two cost methods), no automatic recalculation.
What does not exist natively — the trade-off table
It turns the vague question "is Odoo IFRS-ready?" into a finite list of budgeted trade-offs.
01IFRS 16 — leases
Absent. Third-party App Store modules, or an off-system schedule + recurring entries (v19 loan management can carry the debt schedule). The real judgement call: discount rate, enforceable term, contract modifications.
02IFRS 15 — multi-obligation allocation
Absent. A risky custom development (it touches a central object: the invoice line must carry both contract price and allocated price), or external computation + adjustments.
03Impairments — IAS 36, inventory (NRV), IFRS 9
IAS 36: off-system. Inventory: a configured rotation report + a manual entry. IFRS 9: Odoo's aged balance provides the data, the rate matrix is computed outside, the entry comes back in.
04IAS 23, IAS 19, IAS 12
Capitalisable borrowing costs: external computation + entry. Pension obligations: external actuarial valuation. Deferred tax: adjustment entries in a dedicated journal.
05Industrial standard-cost variances
Partial: no automatic posting to dedicated variance accounts (material / labour / absorption). Custom development — the most frequent one in manufacturing.
06French tax bundle & complex intra-group eliminations
Tax bundle: not produced (neither forms 2050-2059 nor EDI-TDFC — like almost all generalist ERPs; the bundle is a standardised EDIFICAS object with a yearly vintage) — accounting firm, dedicated tool fed by the FEC, or an EDI partner connector (Teledec), scope to put in the contract. Complex eliminations: elimination journals or a dedicated consolidation tool.
07Blocking budget commitment
No blocking budget reservation on commitment: third-party module or custom development. Distinct from budget-vs-actual tracking, covered on analytic dimensions.
08IFRS 18 structure
Buildable: account tagging + configured statements. The only line in this table that is good news — provided you tag from the day the chart is created.
- No more Anglo-Saxon switch in v19: a Periodic / Perpetual setting that routes stock accounts — effectively irreversible.
- One general ledger, no "framework" object: the only "colour" of an entry is its journal.
- Cost of sales is born at the customer invoice: invoicing policy becomes an accounting decision.
- Multi-ledger = a reporting filter; each difference = an explicit adjustment entry.
- The real strong point: the reporting engine — tagging the accounts costs 10 days upfront, 3 months as a catch-up.
How do you organise several frameworks — and where does it break?
Short answerFour possible setups, from the simplest to the heaviest. The right choice hangs on one question: are your differences transactional (two valuations of the same flow) or not?
| Criterion | S1 | S2 | S3 | S4 |
|---|---|---|---|---|
| Number of entities | 1 | 2 to 10 | 1 to 3 | > 10 |
| Transactional differences | No | No | Yes | Yes |
| Intra-group eliminations | No | Simple | Simple | Complex |
| Closing workload | Low | Medium | High | Medium |
| Implementation cost | None | Low | High | High |
| Audit robustness | n/a | Good if documented | Good | Very good |
| Reversibility | n/a | Good | Low | Good |
The eight costliest mistakes
In plain termsThe most expensive mistakes seen on projects — all decisions made by default — and the controls that catch them before they cost money.
01Leaving the Periodic / Perpetual setting on its default, with no decision
Symptom: a French income statement with no account 607, incompatible with the tax bundle. Fix: a full valuation rebuild.
02Fixing the cost method without a finance decision
FIFO / AVCO / standard is an accounting-policy decision, not a technical parameter — to be validated by the chief accountant and documented.
03Ignoring uninvoiced receipts and deliveries
The two-sided mistake: an uninvoiced receipt overstates the result (the 408 accrual is missing); an uninvoiced delivery distorts the margin. The Review menu lists them and prepares the entries — but it still has to be reviewed at every close, with a named owner.
04Believing the multi-ledger does dual bookkeeping
It is a reporting filter by journal exclusion. Every difference = an explicit adjustment entry.
05One analytic plan for three uses
Cost centre + project + function on the same dimension = inconsistent reports. One dedicated plan per use.
06Underestimating the manufacturing close
Work in progress is not automatic: a manual entry at every close, a WIP ↔ open-orders control, idle capacity to handle.
07No inventory write-down procedure
No native mechanism produces it: a supporting report (rotation, dormant items) + an entry, with documented criteria.
08Forgetting the tax bundle and the ANC 2022-06 upgrade
Odoo does not produce the bundle (accounting firm, dedicated tool fed by the FEC, or an EDI connector — to put in the contract at scoping). And a chart of accounts not aligned with ANC 2022-06 has produced non-compliant statements since 2025.
Five controls to automate first
Receipt ↔ invoicing gaps: monthly review of the Review menu reports, alert on any gap older than 45 days.
Triple stock equality: quantities on hand = valuation = account balance, zero tolerance. The earliest detector of broken configuration.
Subledger integrity: no partner-less line on receivable/payable accounts; account balance = aged balance.
View tie-out: expenses by nature = cost of sales + distributed + change in capitalised costs, to the cent; unallocated share below a threshold.
Adjustment completeness: entries in the IFRS adjustment journal reconciled against the register of expected differences.
- Setup 2 (local + adjustments in dedicated journals) by default; a transactional difference disqualifies it.
- These eight mistakes share one trait: a decision made by default instead of being weighed and documented.
- Five automated controls catch most of it before it costs money.
What to remember
Odoo keeps one set of books very well, and can render several readings of it through explicit adjustments. What it cannot do without development: value the same flow twice. And the real cost of a project is not in the missing features: it is in the recurring closing procedures, to be listed, priced and assigned before go-live — not at the first close.
These decisions are made before the opening balance is loaded.
Stock setting, cost method, analytic plans, adjustment journals, closing procedures: our Satori — the audit (悟り) works through exactly these decisions and records them in a binding architecture document, written before anything is built.
Mini cross-reference glossary
FR ⇄ ENOpen the glossary
| French / PCG | English / IFRS | Note |
|---|---|---|
| Achats de marchandises (607) | Purchases | Does not exist as an expense in the Anglo-Saxon scheme |
| Variation des stocks (603x) | — | Absorbed into COGS |
| Coût des ventes | Cost of goods sold | An expense, not a stock account |
| Factures non parvenues (408) | Accrued liabilities / GR-IR | Same function, different place in the scheme |
| Clients — factures à établir (418) | Accrued income / contract asset | Contract asset ≠ receivable |
| Produits constatés d'avance (487) | Deferred revenue / contract liability | IFRS 15 broadens the notion |
| Production stockée (713) | — | Revenue item, by-nature presentation only |
| Crédit-bail | Finance lease / right-of-use | Off balance sheet in statutory accounts, capitalised under IFRS |