Balance d'ouverture, postes ouverts, lettrage, big bang ou parallèle. Ce qu'il faut décider, dans quel ordre, et les six contrôles qui évitent 90 % des mauvaises surprises — l'erreur de reprise se découvre six mois plus tard, quand l'équipe projet est dissoute.
Équipe Architecture Hikarius · 12 min de lecture
À retenir
- Les erreurs de reprise ne font aucun bruit : elles attendent la TVA, la relance client ou la clôture.
- Deux jours de contrôles suffisent à les éliminer presque toutes.
- La sécurité ne vient pas du nombre de systèmes qui tournent, mais du nombre de répétitions.
- La plupart des demandes d'historique sont des besoins d'analyse : ils se servent mieux dans un outil décisionnel que dans un grand livre.
01 · Le problème
Une erreur qui n'a aucun symptôme
Dans un projet ERP, la plupart des défauts se signalent vite : un écran bloque, une facture est fausse, un utilisateur se plaint. La reprise comptable, non. Son délai de révélation dépend du cycle comptable — déclaration de TVA, campagne de relance, dotation aux amortissements, clôture. Les factures partent, les paiements rentrent, tout fonctionne : le projet est déclaré réussi. La question tombe six mois plus tard : « pouvez-vous me justifier ce solde ? »
Quand chaque erreur se révèle — jours après la bascule
Balance déséquilibrée
J+0
TVA mal reprise
J+30 à J+90
Lettrage faux
J+45 à J+120
Échéances absentes
J+60
Amortissements faux
J+180 à J+365
Comptes non lettrables
J+365
Vert — visible à l'import. Orange — révélé par la TVA ou la relance. Rouge — aucun symptôme avant la clôture : personne ne s'en plaint jamais.
En clair
Reprendre, c'est recopier dans le nouvel outil ce que l'entreprise possède, ce qu'elle doit et ce qu'on lui doit. Si la recopie est fausse, rien ne plante : les chiffres sont simplement faux, et ils le restent jusqu'à ce qu'un contrôle les regarde. D'où la règle : la reprise est un livrable comptable signé, pas une tâche d'import.
02 · Périmètre
Six objets à décider, un par un
« Reprend-on la comptabilité ? » est une question mal posée. Elle recouvre plusieurs objets qui ont chacun leur volume, leur risque et leur arbitrage. Chacun doit recevoir une décision écrite et visée par le DAF — une ligne sans décision est une décision prise par défaut par celui qui écrira le script d'import.
Ce que l'on reprend — cliquez un objet
Balance d'ouverture
La photographie des soldes de tous les comptes à la date de coupure, équilibrée débit = crédit. C'est le socle auquel tout le reste se raccroche.
Piège : confondre comptes de bilan (reportés d'un exercice sur l'autre) et comptes de gestion (soldés à chaque clôture). Une bascule en cours d'exercice oblige à trancher le sort des cumuls de charges et produits.
03 · Granularité
Postes ouverts : le détail par facture, jamais le solde net
Les postes ouverts, ce sont les factures clients non encaissées et les factures fournisseurs non payées à la date de coupure. La question n'est pas de savoir si on les reprend — oui, toujours — mais avec quel niveau de détail.
A · Solde net par tiers
DUPONT — 12 450,00 €
Sans échéance ni référence : pas de balance âgée, pas d'affectation des paiements, pas de relance.
Insuffisant
B · Détail par facture
F-2026-0412 · 30/09 · 10 000,00 €
Balance âgée juste dès J+1, lettrage et recouvrement opérationnels, avoir référençable.
Le standard
C · Document complet
Facture + lignes + taxes + PDF
Utile seulement si un portail client ou une réémission l'exige. Coûteux : jamais pour l'historique.
Si un usage l'exige
Facturation électronique
Depuis le 1er septembre 2026, la réception de factures électroniques est obligatoire pour toutes les entreprises assujetties à la TVA (émission : grandes entreprises et ETI, puis PME et TPE au 1er septembre 2027). Un avoir émis après la bascule sur une facture reprise doit référencer la facture d'origine : avec un solde net sans référence, il devient impossible à produire proprement. C'est l'argument le plus court en faveur du niveau B.
04 · Calendrier
Basculer en début d'exercice, chaque fois que c'est possible
La date de coupure est la date de la photographie : avant, c'est l'ancien système ; après, le nouveau. Elle décide de la capacité de l'entreprise à produire son reporting annuel.
Premier jour d'exercice · recommandé
Classes 6 et 7 à zéro, liasse produite intégralement par le nouvel outil. Seule contrainte : la balance définitive n'arrive qu'en mars-avril, il faudra donc intégrer un complément de reprise (écritures d'inventaire et corrections de l'expert-comptable) daté du premier jour de l'exercice — puis vérifier que l'ouverture égale la clôture validée à l'euro près, et verrouiller.
En cours d'exercice, en soldes
Aucune contrainte de calendrier projet, mais le compte de résultat est scindé en deux : pas de détail de la première période, liasse à reconstituer par agrégation, et deux fichiers d'écritures à produire pour un même exercice contrôlé.
En cours d'exercice, avec rejeu du détail
Tout l'exercice en détail, aucune amputation d'analyse — mais il faut rejouer les documents sous-jacents, et le coût est généralement multiplié par trois à cinq.
05 · Stratégie
Big bang ou parallèle ? La vraie question est ailleurs
Trois façons de basculer — cliquez une stratégie
L'ancien système s'arrête, le nouveau démarre. Aucune coexistence : une fenêtre de gel, un plan minuté, une procédure de repli écrite et une répétition générale.
À retenir quandPME et ETI capables de geler l'activité 48 à 72 h. C'est le choix par défaut — et, contrairement à l'intuition, le moins risqué.
Le vrai risqueToute anomalie découverte après le point de non-retour se corrige en production. D'où la répétition obligatoire.
La seule règle qui compte
La stratégie la plus dangereuse n'est ni le big bang ni le parallèle. C'est la reprise exécutée pour la première fois le jour J.
T-3 mois · passage à blanc — sur un extrait réel, pour découvrir les cas tordus. Le résultat sera mauvais : c'est le but.
T-1 mois · répétition générale — données réelles complètes, chronométrée, dossier de contrôle visé par le DAF.
Jour J · reprise définitive — rejeu à l'identique. Rien de nouveau ne doit s'y produire.
Si la répétition n'aboutit pas à un dossier de contrôle validé, le go-live est reporté. À écrire dans le plan projet dès le cadrage — et à ne jamais planifier sur une échéance déclarative ou une fin de mois chargée.
06 · Le point dur
Le lettrage, le sujet que tout le monde sous-estime
Lettrer, c'est dire : « cette facture est payée par ce règlement ». Le lettrage ne figure dans aucun état financier — la balance est identique avec ou sans lui — et c'est pourtant ce qui rend un compte client exploitable. Surtout, ce n'est pas une donnée mais une relation : on ne l'importe pas, on le reconstruit. D'où la règle : on ne peut lettrer que ce qui a été repris des deux côtés.
Lettrez un compte client
Compte 411 · client DUPONT. Sélectionnez des lignes de sens opposés, puis lettrez.
Essayez la facture F-2026-0455 avec le virement VIR-2210, puis la facture F-2026-0412 avec l'acompte.
Solde du compte
7 000,00 € inchangé
Le lettrage ne déplace pas un euro : une reprise peut être « équilibrée » et pourtant inexploitable.
Ce que voit le recouvrement
Quatre lignes ouvertes pour un solde de 7 000 €. Le recouvrement ne sait ni ce qui est dû, ni pour quand.
L'arbitrage recommandé
Pour la plupart des PME et ETI : ne pas reprendre l'historique, donc pas le lettrage, et se limiter aux postes ouverts. Deux mesures rendent cette décision confortable : un accès en lecture à l'ancien système pendant la durée du délai de reprise fiscale, et l'historique chargé dans un outil décisionnel pour les analyses N/N-1. Car le besoin derrière une demande d'historique est presque toujours un besoin d'analyse — et l'analyse se sert mieux dans un outil décisionnel que dans un grand livre.
07 · Le contrôle clé
Un seul compte technique, qui doit finir à zéro
Une reprise se charge par lots : comptes généraux, clients, fournisseurs, immobilisations, stocks. Chaque lot pris isolément est déséquilibré. Un compte de contrepartie unique absorbe ces déséquilibres — et doit, à la fin, présenter un solde nul.
Lot par lot, jusqu'à zéro
Compte de contrepartie
0,00 €
Avant chargement
S'il n'est pas à zéro, la reprise est fausse. Aucune nuance, aucune interprétation. Trois compléments simples : un journal de reprise dédié, la même date comptable pour toutes les écritures (mais les échéances d'origine conservées), et un compte de contrepartie non lettrable, inaccessible aux utilisateurs.
08 · Les erreurs
Six erreurs, six contrôles de quelques minutes
Les erreurs de reprise les plus coûteuses se détectent toutes par un contrôle court, à condition de savoir lequel. Mis bout à bout, ces contrôles représentent environ deux jours-homme — et c'est ce qui est sacrifié en premier quand le planning dérape.
Matrice de détection — cliquez un point
COÛT DU CONTRÔLE →
Dates d'échéance perdues
Ce qui se passe
Toutes les créances reprises tombent dans la même tranche de balance âgée. Le DSO est faux, le provisionnement sur antériorité aussi. Repéré en comité, quand le retard client chute de 60 % le mois de la bascule.
Le contrôle qui l'évite
Comparer la balance âgée source et cible, tranche par tranche.
Temps du contrôle : 5 min
Mis bout à bout, ces contrôles représentent environ deux jours-homme — et c'est ce qui est sacrifié en premier quand le planning dérape.
09 · Odoo
Trois particularités d'Odoo à connaître avant de chiffrer
Une facture est une écriture
Pas de module de comptabilité séparé de la facturation, donc aucun « transfert en comptabilité » à déclencher : créer une facture validée, c'est créer l'écriture.
Le lettrage s'exécute, il ne s'importe pas
Il n'existe pas de « code lettre » à charger : le rapprochement est une opération à lancer sur un groupe de lignes. C'est la première cause de sous-estimation de charge chez les équipes venant d'un progiciel français.
La TVA se déclare depuis les lignes, pas depuis les soldes
La déclaration se construit à partir des taxes portées par chaque ligne. Une écriture reprise sans taxe n'apparaîtra jamais dans une déclaration ; une écriture reprise avec une taxe standard y apparaîtra une seconde fois. D'où deux traitements distincts : solde simple pour la TVA déjà déclarée, taxes techniques neutres pour les documents repris.
Deux conséquences pratiques. D'abord, charger les écritures de reprise en brouillon, tout contrôler, puis valider en masse une fois le dossier visé : une fois validée, une écriture française est chaînée et ne peut plus être modifiée. Ensuite, prévoir des identifiants externes stables sur chaque ligne importée : c'est ce qui rend la reprise rejouable — trois exécutions identiques, exactement le même résultat.
Conclusion
La reprise est un livrable, pas une tâche
Trois décisions suffisent à sécuriser l'essentiel : reprendre les postes ouverts au détail par facture, basculer en début d'exercice, et répéter la reprise jusqu'à obtenir deux fois le même résultat. Le reste — historique, lettrage ancien, analytique — se discute : ce sont des options, pas des obligations.
Une reprise réussie ne se remarque pas. Elle se mesure à l'absence d'événement.
Pas de client relancé à tort, pas de déclaration rectificative, pas de dotation aberrante, pas de compte d'attente orphelin. C'est un livrable dont la qualité se manifeste par le silence — ce qui explique pourquoi il est si souvent sous-investi.
Opening balance, open items, reconciliation, big bang or parallel run. What you have to decide, in which order, and the six checks that prevent 90% of unpleasant surprises — a data migration error surfaces six months later, once the project team has been disbanded.
Hikarius Architecture Team · 12 min read
Key takeaways
- Migration errors make no noise: they wait for the VAT return, the dunning run or the year-end close.
- Two days of checks are enough to eliminate almost all of them.
- Safety does not come from how many systems run in parallel, but from how many times you rehearsed.
- Most requests for historical data are analysis needs: they are better served in a BI tool than in a general ledger.
01 · The problem
An error with no symptoms
In an ERP project, most defects announce themselves quickly: a screen blocks, an invoice is wrong, a user complains. Accounting migration does not work that way. Its detection delay follows the accounting cycle — VAT return, dunning campaign, depreciation charge, year-end close. Invoices go out, payments come in, everything works: the project is declared a success. The question lands six months later: "can you substantiate this balance?"
When each error surfaces — days after go-live
Trial balance out of balance
D+0
VAT migrated incorrectly
D+30 to D+90
Wrong reconciliation
D+45 to D+120
Missing due dates
D+60
Wrong depreciation schedule
D+180 to D+365
Non-reconcilable accounts
D+365
Green — visible at import time. Amber — revealed by the VAT return or dunning. Red — no symptom before the close: nobody ever complains about them.
In plain terms
Migrating means copying into the new system what the company owns, what it owes and what is owed to it. If the copy is wrong, nothing crashes: the figures are simply wrong, and they stay wrong until a control looks at them. Hence the rule: a migration is a signed accounting deliverable, not an import task.
02 · Scope
Six objects to decide on, one by one
"Are we migrating the accounting?" is the wrong question. It covers several objects, each with its own volume, risk and trade-off. Each one needs a written decision signed off by the CFO — a line with no decision is a decision taken by default by whoever writes the import script.
What gets migrated — click an object
Opening balance
A snapshot of every account balance at the cut-off date, with debits equal to credits. It is the foundation everything else hangs from.
Pitfall : confusing balance-sheet accounts (carried forward year to year) with P&L accounts (cleared at each close). A mid-year switchover forces a decision on the year-to-date income and expenses.
03 · Granularity
Open items: invoice-level detail, never a net balance
Open items are the customer invoices not yet collected and the vendor bills not yet paid at the cut-off date. The question is not whether to migrate them — always — but at what level of detail.
A · Net balance per partner
DUPONT — €12,450.00
No due date, no reference: no aged balance, no payment matching, no dunning.
Not enough
B · Invoice-level detail
F-2026-0412 · 30 Sep · €10,000.00
Correct aged balance from day one, reconciliation and collection operational, credit notes referenceable.
The standard
C · Full document
Invoice + lines + taxes + PDF
Only worth it when a customer portal or a re-issue process requires it. Expensive: never for history.
Only if a use case demands it
E-invoicing
Since 1 September 2026, receiving electronic invoices has been mandatory for all VAT-registered companies in France (issuing: large companies and mid-caps first, then SMEs and micro-businesses on 1 September 2027). A credit note issued after go-live against a migrated invoice must reference the original invoice: with a net balance and no reference, it becomes impossible to produce cleanly. That is the shortest argument for level B.
04 · Timing
Go live at the start of a fiscal year whenever you can
The cut-off date is the date of the snapshot: before it, the legacy system; after it, the new one. It determines the company's ability to produce its annual reporting.
First day of the fiscal year · recommended
P&L accounts start at zero and the statutory accounts are produced entirely by the new system. One constraint: the final closing balance only lands two to four months later, so you will need a top-up migration entry (year-end adjustments and the accountant's corrections) dated the first day of the year — then check that the opening balance equals the approved closing balance to the cent, and lock the period.
Mid-year, balances only
No constraint on the project calendar, but the P&L is split in two: no detail for the first period, statutory accounts to be rebuilt by aggregation, and two ledger extracts to produce for a single audited year.
Mid-year, replaying the detail
The whole year in detail, no analytical gap — but the underlying documents have to be replayed too, and the cost is usually three to five times higher.
05 · Strategy
Big bang or parallel run? The real question is elsewhere
Three ways to switch over — click a strategy
The legacy system stops, the new one starts. No coexistence: a freeze window, a timed cutover plan, a written rollback procedure and a full rehearsal.
Choose it whenSMEs and mid-caps able to freeze operations for 48 to 72 hours. It is the default choice — and, counter-intuitively, the least risky.
The real riskAny anomaly found after the point of no return has to be fixed in production. Hence the mandatory rehearsal.
The only rule that matters
The most dangerous strategy is neither big bang nor parallel run. It is the migration executed for the first time on go-live day.
T-3 months · dry run — on a real data extract, to surface the awkward cases. The result will be poor: that is the point.
T-1 month · full rehearsal — complete real data, timed end to end, control file signed off by the CFO.
Go-live · final migration — an identical replay. Nothing new should happen here.
If the rehearsal does not produce an approved control file, go-live is postponed. Write it into the project plan at kick-off — and never schedule the switchover on a filing deadline or a busy month-end.
06 · The hard part
Reconciliation, the topic everyone underestimates
Reconciling means stating: "this invoice is paid by that payment". It appears in no financial statement — the trial balance is identical with or without it — and yet it is what makes a customer account usable. Above all, it is not data but a relationship: you do not import it, you rebuild it. Hence the rule: you can only reconcile what has been migrated on both sides.
Reconcile a customer account
Receivable account · customer DUPONT. Select lines with opposite signs, then reconcile.
Try invoice F-2026-0455 with transfer VIR-2210, then invoice F-2026-0412 with the down payment.
Account balance
€7,000.00 unchanged
Reconciliation moves not a single euro: a migration can be "balanced" and still be unusable.
What collections sees
Four open lines for a €7,000.00 balance. Collections knows neither what is due nor when.
The recommended trade-off
For most SMEs and mid-caps: do not migrate history, therefore do not migrate reconciliation, and stick to open items. Two measures make that decision comfortable: read-only access to the legacy system for the statutory retention period, and history loaded into a BI tool for year-on-year analysis. Because the need behind a request for history is almost always an analysis need — and analysis is better served in a BI tool than in a general ledger.
07 · The key control
One technical account, which must end at zero
A migration is loaded in batches: general accounts, customers, vendors, fixed assets, inventory. Each batch on its own is unbalanced. A single suspense account absorbs those imbalances — and must show a nil balance at the end.
Batch by batch, down to zero
Suspense account
€0.00
Before loading
If it is not at zero, the migration is wrong. No nuance, no interpretation. Three simple companions: a dedicated migration journal, the same accounting date on every entry (but original due dates preserved), and a suspense account that is non-reconcilable and out of users' reach.
08 · The errors
Six errors, six checks of a few minutes each
The costliest migration errors can all be caught by a short check — provided you know which one. Put end to end, these checks amount to roughly two person-days — and they are the first thing sacrificed when the schedule slips.
Detection matrix — click a dot
COST OF THE CHECK →
Due dates lost
What happens
Every migrated receivable falls into the same aged-balance bucket. DSO is wrong, and so is any ageing-based provision. Spotted in a management meeting, when customer overdues drop 60% in the month of go-live.
The check that prevents it
Compare the source and target aged balance, bucket by bucket.
Time to check : 5 min
Put end to end, these checks amount to roughly two person-days — and they are the first thing sacrificed when the schedule slips.
09 · Odoo
Three Odoo specifics to know before you estimate
An invoice is a journal entry
There is no accounting module separate from invoicing, so there is no "post to accounting" step to trigger: creating a posted invoice creates the entry.
Reconciliation is executed, not imported
There is no "matching code" to load: reconciliation is an operation run on a group of lines. This is the number-one cause of underestimated effort for teams coming from a classic accounting package.
VAT is reported from the lines, not from balances
The return is built from the taxes carried by each line. An entry migrated without tax will never appear in a return; an entry migrated with a standard tax will appear a second time. Hence two distinct treatments: plain balances for VAT already declared, neutral technical taxes for migrated documents.
Two practical consequences. First, load migration entries as drafts, run every check, then post in bulk once the control file is signed off: once posted, a French entry is hash-chained and can no longer be amended. Second, plan for stable external identifiers on every imported line: that is what makes the migration replayable — three identical runs, exactly the same result.
Conclusion
A migration is a deliverable, not a task
Three decisions secure the essentials: migrate open items at invoice level, go live at the start of a fiscal year, and rehearse until two runs produce the same result. The rest — history, legacy reconciliation, analytic accounting — is open for discussion: these are options, not obligations.
A successful migration goes unnoticed. It is measured by the absence of events.
No customer chased in error, no amended return, no absurd depreciation charge, no orphan suspense balance. It is a deliverable whose quality shows up as silence — which is exactly why it is so often under-invested.
Balance d'ouverture, postes ouverts, lettrage, big bang ou parallèle. Ce qu'il faut décider, dans quel ordre, et les six contrôles qui évitent 90 % des mauvaises surprises — l'erreur de reprise se découvre six mois plus tard, quand l'équipe projet est dissoute.
Équipe Architecture Hikarius · 12 min de lecture
À retenir
- Les erreurs de reprise ne font aucun bruit : elles attendent la TVA, la relance client ou la clôture.
- Deux jours de contrôles suffisent à les éliminer presque toutes.
- La sécurité ne vient pas du nombre de systèmes qui tournent, mais du nombre de répétitions.
- La plupart des demandes d'historique sont des besoins d'analyse : ils se servent mieux dans un outil décisionnel que dans un grand livre.
01 · Le problème
Une erreur qui n'a aucun symptôme
Dans un projet ERP, la plupart des défauts se signalent vite : un écran bloque, une facture est fausse, un utilisateur se plaint. La reprise comptable, non. Son délai de révélation dépend du cycle comptable — déclaration de TVA, campagne de relance, dotation aux amortissements, clôture. Les factures partent, les paiements rentrent, tout fonctionne : le projet est déclaré réussi. La question tombe six mois plus tard : « pouvez-vous me justifier ce solde ? »
Quand chaque erreur se révèle — jours après la bascule
Balance déséquilibrée
J+0
TVA mal reprise
J+30 à J+90
Lettrage faux
J+45 à J+120
Échéances absentes
J+60
Amortissements faux
J+180 à J+365
Comptes non lettrables
J+365
Vert — visible à l'import. Orange — révélé par la TVA ou la relance. Rouge — aucun symptôme avant la clôture : personne ne s'en plaint jamais.
En clair
Reprendre, c'est recopier dans le nouvel outil ce que l'entreprise possède, ce qu'elle doit et ce qu'on lui doit. Si la recopie est fausse, rien ne plante : les chiffres sont simplement faux, et ils le restent jusqu'à ce qu'un contrôle les regarde. D'où la règle : la reprise est un livrable comptable signé, pas une tâche d'import.
02 · Périmètre
Six objets à décider, un par un
« Reprend-on la comptabilité ? » est une question mal posée. Elle recouvre plusieurs objets qui ont chacun leur volume, leur risque et leur arbitrage. Chacun doit recevoir une décision écrite et visée par le DAF — une ligne sans décision est une décision prise par défaut par celui qui écrira le script d'import.
Ce que l'on reprend — cliquez un objet
Balance d'ouverture
La photographie des soldes de tous les comptes à la date de coupure, équilibrée débit = crédit. C'est le socle auquel tout le reste se raccroche.
Piège : confondre comptes de bilan (reportés d'un exercice sur l'autre) et comptes de gestion (soldés à chaque clôture). Une bascule en cours d'exercice oblige à trancher le sort des cumuls de charges et produits.
03 · Granularité
Postes ouverts : le détail par facture, jamais le solde net
Les postes ouverts, ce sont les factures clients non encaissées et les factures fournisseurs non payées à la date de coupure. La question n'est pas de savoir si on les reprend — oui, toujours — mais avec quel niveau de détail.
A · Solde net par tiers
DUPONT — 12 450,00 €
Sans échéance ni référence : pas de balance âgée, pas d'affectation des paiements, pas de relance.
Insuffisant
B · Détail par facture
F-2026-0412 · 30/09 · 10 000,00 €
Balance âgée juste dès J+1, lettrage et recouvrement opérationnels, avoir référençable.
Le standard
C · Document complet
Facture + lignes + taxes + PDF
Utile seulement si un portail client ou une réémission l'exige. Coûteux : jamais pour l'historique.
Si un usage l'exige
Facturation électronique
Depuis le 1er septembre 2026, la réception de factures électroniques est obligatoire pour toutes les entreprises assujetties à la TVA (émission : grandes entreprises et ETI, puis PME et TPE au 1er septembre 2027). Un avoir émis après la bascule sur une facture reprise doit référencer la facture d'origine : avec un solde net sans référence, il devient impossible à produire proprement. C'est l'argument le plus court en faveur du niveau B.
04 · Calendrier
Basculer en début d'exercice, chaque fois que c'est possible
La date de coupure est la date de la photographie : avant, c'est l'ancien système ; après, le nouveau. Elle décide de la capacité de l'entreprise à produire son reporting annuel.
Premier jour d'exercice · recommandé
Classes 6 et 7 à zéro, liasse produite intégralement par le nouvel outil. Seule contrainte : la balance définitive n'arrive qu'en mars-avril, il faudra donc intégrer un complément de reprise (écritures d'inventaire et corrections de l'expert-comptable) daté du premier jour de l'exercice — puis vérifier que l'ouverture égale la clôture validée à l'euro près, et verrouiller.
En cours d'exercice, en soldes
Aucune contrainte de calendrier projet, mais le compte de résultat est scindé en deux : pas de détail de la première période, liasse à reconstituer par agrégation, et deux fichiers d'écritures à produire pour un même exercice contrôlé.
En cours d'exercice, avec rejeu du détail
Tout l'exercice en détail, aucune amputation d'analyse — mais il faut rejouer les documents sous-jacents, et le coût est généralement multiplié par trois à cinq.
05 · Stratégie
Big bang ou parallèle ? La vraie question est ailleurs
Trois façons de basculer — cliquez une stratégie
L'ancien système s'arrête, le nouveau démarre. Aucune coexistence : une fenêtre de gel, un plan minuté, une procédure de repli écrite et une répétition générale.
À retenir quandPME et ETI capables de geler l'activité 48 à 72 h. C'est le choix par défaut — et, contrairement à l'intuition, le moins risqué.
Le vrai risqueToute anomalie découverte après le point de non-retour se corrige en production. D'où la répétition obligatoire.
La seule règle qui compte
La stratégie la plus dangereuse n'est ni le big bang ni le parallèle. C'est la reprise exécutée pour la première fois le jour J.
T-3 mois · passage à blanc — sur un extrait réel, pour découvrir les cas tordus. Le résultat sera mauvais : c'est le but.
T-1 mois · répétition générale — données réelles complètes, chronométrée, dossier de contrôle visé par le DAF.
Jour J · reprise définitive — rejeu à l'identique. Rien de nouveau ne doit s'y produire.
Si la répétition n'aboutit pas à un dossier de contrôle validé, le go-live est reporté. À écrire dans le plan projet dès le cadrage — et à ne jamais planifier sur une échéance déclarative ou une fin de mois chargée.
06 · Le point dur
Le lettrage, le sujet que tout le monde sous-estime
Lettrer, c'est dire : « cette facture est payée par ce règlement ». Le lettrage ne figure dans aucun état financier — la balance est identique avec ou sans lui — et c'est pourtant ce qui rend un compte client exploitable. Surtout, ce n'est pas une donnée mais une relation : on ne l'importe pas, on le reconstruit. D'où la règle : on ne peut lettrer que ce qui a été repris des deux côtés.
Lettrez un compte client
Compte 411 · client DUPONT. Sélectionnez des lignes de sens opposés, puis lettrez.
Essayez la facture F-2026-0455 avec le virement VIR-2210, puis la facture F-2026-0412 avec l'acompte.
Solde du compte
7 000,00 € inchangé
Le lettrage ne déplace pas un euro : une reprise peut être « équilibrée » et pourtant inexploitable.
Ce que voit le recouvrement
Quatre lignes ouvertes pour un solde de 7 000 €. Le recouvrement ne sait ni ce qui est dû, ni pour quand.
L'arbitrage recommandé
Pour la plupart des PME et ETI : ne pas reprendre l'historique, donc pas le lettrage, et se limiter aux postes ouverts. Deux mesures rendent cette décision confortable : un accès en lecture à l'ancien système pendant la durée du délai de reprise fiscale, et l'historique chargé dans un outil décisionnel pour les analyses N/N-1. Car le besoin derrière une demande d'historique est presque toujours un besoin d'analyse — et l'analyse se sert mieux dans un outil décisionnel que dans un grand livre.
07 · Le contrôle clé
Un seul compte technique, qui doit finir à zéro
Une reprise se charge par lots : comptes généraux, clients, fournisseurs, immobilisations, stocks. Chaque lot pris isolément est déséquilibré. Un compte de contrepartie unique absorbe ces déséquilibres — et doit, à la fin, présenter un solde nul.
Lot par lot, jusqu'à zéro
Compte de contrepartie
0,00 €
Avant chargement
S'il n'est pas à zéro, la reprise est fausse. Aucune nuance, aucune interprétation. Trois compléments simples : un journal de reprise dédié, la même date comptable pour toutes les écritures (mais les échéances d'origine conservées), et un compte de contrepartie non lettrable, inaccessible aux utilisateurs.
08 · Les erreurs
Six erreurs, six contrôles de quelques minutes
Les erreurs de reprise les plus coûteuses se détectent toutes par un contrôle court, à condition de savoir lequel. Mis bout à bout, ces contrôles représentent environ deux jours-homme — et c'est ce qui est sacrifié en premier quand le planning dérape.
Matrice de détection — cliquez un point
COÛT DU CONTRÔLE →
Dates d'échéance perdues
Ce qui se passe
Toutes les créances reprises tombent dans la même tranche de balance âgée. Le DSO est faux, le provisionnement sur antériorité aussi. Repéré en comité, quand le retard client chute de 60 % le mois de la bascule.
Le contrôle qui l'évite
Comparer la balance âgée source et cible, tranche par tranche.
Temps du contrôle : 5 min
Mis bout à bout, ces contrôles représentent environ deux jours-homme — et c'est ce qui est sacrifié en premier quand le planning dérape.
09 · Odoo
Trois particularités d'Odoo à connaître avant de chiffrer
Une facture est une écriture
Pas de module de comptabilité séparé de la facturation, donc aucun « transfert en comptabilité » à déclencher : créer une facture validée, c'est créer l'écriture.
Le lettrage s'exécute, il ne s'importe pas
Il n'existe pas de « code lettre » à charger : le rapprochement est une opération à lancer sur un groupe de lignes. C'est la première cause de sous-estimation de charge chez les équipes venant d'un progiciel français.
La TVA se déclare depuis les lignes, pas depuis les soldes
La déclaration se construit à partir des taxes portées par chaque ligne. Une écriture reprise sans taxe n'apparaîtra jamais dans une déclaration ; une écriture reprise avec une taxe standard y apparaîtra une seconde fois. D'où deux traitements distincts : solde simple pour la TVA déjà déclarée, taxes techniques neutres pour les documents repris.
Deux conséquences pratiques. D'abord, charger les écritures de reprise en brouillon, tout contrôler, puis valider en masse une fois le dossier visé : une fois validée, une écriture française est chaînée et ne peut plus être modifiée. Ensuite, prévoir des identifiants externes stables sur chaque ligne importée : c'est ce qui rend la reprise rejouable — trois exécutions identiques, exactement le même résultat.
Conclusion
La reprise est un livrable, pas une tâche
Trois décisions suffisent à sécuriser l'essentiel : reprendre les postes ouverts au détail par facture, basculer en début d'exercice, et répéter la reprise jusqu'à obtenir deux fois le même résultat. Le reste — historique, lettrage ancien, analytique — se discute : ce sont des options, pas des obligations.
Une reprise réussie ne se remarque pas. Elle se mesure à l'absence d'événement.
Pas de client relancé à tort, pas de déclaration rectificative, pas de dotation aberrante, pas de compte d'attente orphelin. C'est un livrable dont la qualité se manifeste par le silence — ce qui explique pourquoi il est si souvent sous-investi.
Opening balance, open items, reconciliation, big bang or parallel run. What you have to decide, in which order, and the six checks that prevent 90% of unpleasant surprises — a data migration error surfaces six months later, once the project team has been disbanded.
Hikarius Architecture Team · 12 min read
Key takeaways
- Migration errors make no noise: they wait for the VAT return, the dunning run or the year-end close.
- Two days of checks are enough to eliminate almost all of them.
- Safety does not come from how many systems run in parallel, but from how many times you rehearsed.
- Most requests for historical data are analysis needs: they are better served in a BI tool than in a general ledger.
01 · The problem
An error with no symptoms
In an ERP project, most defects announce themselves quickly: a screen blocks, an invoice is wrong, a user complains. Accounting migration does not work that way. Its detection delay follows the accounting cycle — VAT return, dunning campaign, depreciation charge, year-end close. Invoices go out, payments come in, everything works: the project is declared a success. The question lands six months later: "can you substantiate this balance?"
When each error surfaces — days after go-live
Trial balance out of balance
D+0
VAT migrated incorrectly
D+30 to D+90
Wrong reconciliation
D+45 to D+120
Missing due dates
D+60
Wrong depreciation schedule
D+180 to D+365
Non-reconcilable accounts
D+365
Green — visible at import time. Amber — revealed by the VAT return or dunning. Red — no symptom before the close: nobody ever complains about them.
In plain terms
Migrating means copying into the new system what the company owns, what it owes and what is owed to it. If the copy is wrong, nothing crashes: the figures are simply wrong, and they stay wrong until a control looks at them. Hence the rule: a migration is a signed accounting deliverable, not an import task.
02 · Scope
Six objects to decide on, one by one
"Are we migrating the accounting?" is the wrong question. It covers several objects, each with its own volume, risk and trade-off. Each one needs a written decision signed off by the CFO — a line with no decision is a decision taken by default by whoever writes the import script.
What gets migrated — click an object
Opening balance
A snapshot of every account balance at the cut-off date, with debits equal to credits. It is the foundation everything else hangs from.
Pitfall : confusing balance-sheet accounts (carried forward year to year) with P&L accounts (cleared at each close). A mid-year switchover forces a decision on the year-to-date income and expenses.
03 · Granularity
Open items: invoice-level detail, never a net balance
Open items are the customer invoices not yet collected and the vendor bills not yet paid at the cut-off date. The question is not whether to migrate them — always — but at what level of detail.
A · Net balance per partner
DUPONT — €12,450.00
No due date, no reference: no aged balance, no payment matching, no dunning.
Not enough
B · Invoice-level detail
F-2026-0412 · 30 Sep · €10,000.00
Correct aged balance from day one, reconciliation and collection operational, credit notes referenceable.
The standard
C · Full document
Invoice + lines + taxes + PDF
Only worth it when a customer portal or a re-issue process requires it. Expensive: never for history.
Only if a use case demands it
E-invoicing
Since 1 September 2026, receiving electronic invoices has been mandatory for all VAT-registered companies in France (issuing: large companies and mid-caps first, then SMEs and micro-businesses on 1 September 2027). A credit note issued after go-live against a migrated invoice must reference the original invoice: with a net balance and no reference, it becomes impossible to produce cleanly. That is the shortest argument for level B.
04 · Timing
Go live at the start of a fiscal year whenever you can
The cut-off date is the date of the snapshot: before it, the legacy system; after it, the new one. It determines the company's ability to produce its annual reporting.
First day of the fiscal year · recommended
P&L accounts start at zero and the statutory accounts are produced entirely by the new system. One constraint: the final closing balance only lands two to four months later, so you will need a top-up migration entry (year-end adjustments and the accountant's corrections) dated the first day of the year — then check that the opening balance equals the approved closing balance to the cent, and lock the period.
Mid-year, balances only
No constraint on the project calendar, but the P&L is split in two: no detail for the first period, statutory accounts to be rebuilt by aggregation, and two ledger extracts to produce for a single audited year.
Mid-year, replaying the detail
The whole year in detail, no analytical gap — but the underlying documents have to be replayed too, and the cost is usually three to five times higher.
05 · Strategy
Big bang or parallel run? The real question is elsewhere
Three ways to switch over — click a strategy
The legacy system stops, the new one starts. No coexistence: a freeze window, a timed cutover plan, a written rollback procedure and a full rehearsal.
Choose it whenSMEs and mid-caps able to freeze operations for 48 to 72 hours. It is the default choice — and, counter-intuitively, the least risky.
The real riskAny anomaly found after the point of no return has to be fixed in production. Hence the mandatory rehearsal.
The only rule that matters
The most dangerous strategy is neither big bang nor parallel run. It is the migration executed for the first time on go-live day.
T-3 months · dry run — on a real data extract, to surface the awkward cases. The result will be poor: that is the point.
T-1 month · full rehearsal — complete real data, timed end to end, control file signed off by the CFO.
Go-live · final migration — an identical replay. Nothing new should happen here.
If the rehearsal does not produce an approved control file, go-live is postponed. Write it into the project plan at kick-off — and never schedule the switchover on a filing deadline or a busy month-end.
06 · The hard part
Reconciliation, the topic everyone underestimates
Reconciling means stating: "this invoice is paid by that payment". It appears in no financial statement — the trial balance is identical with or without it — and yet it is what makes a customer account usable. Above all, it is not data but a relationship: you do not import it, you rebuild it. Hence the rule: you can only reconcile what has been migrated on both sides.
Reconcile a customer account
Receivable account · customer DUPONT. Select lines with opposite signs, then reconcile.
Try invoice F-2026-0455 with transfer VIR-2210, then invoice F-2026-0412 with the down payment.
Account balance
€7,000.00 unchanged
Reconciliation moves not a single euro: a migration can be "balanced" and still be unusable.
What collections sees
Four open lines for a €7,000.00 balance. Collections knows neither what is due nor when.
The recommended trade-off
For most SMEs and mid-caps: do not migrate history, therefore do not migrate reconciliation, and stick to open items. Two measures make that decision comfortable: read-only access to the legacy system for the statutory retention period, and history loaded into a BI tool for year-on-year analysis. Because the need behind a request for history is almost always an analysis need — and analysis is better served in a BI tool than in a general ledger.
07 · The key control
One technical account, which must end at zero
A migration is loaded in batches: general accounts, customers, vendors, fixed assets, inventory. Each batch on its own is unbalanced. A single suspense account absorbs those imbalances — and must show a nil balance at the end.
Batch by batch, down to zero
Suspense account
€0.00
Before loading
If it is not at zero, the migration is wrong. No nuance, no interpretation. Three simple companions: a dedicated migration journal, the same accounting date on every entry (but original due dates preserved), and a suspense account that is non-reconcilable and out of users' reach.
08 · The errors
Six errors, six checks of a few minutes each
The costliest migration errors can all be caught by a short check — provided you know which one. Put end to end, these checks amount to roughly two person-days — and they are the first thing sacrificed when the schedule slips.
Detection matrix — click a dot
COST OF THE CHECK →
Due dates lost
What happens
Every migrated receivable falls into the same aged-balance bucket. DSO is wrong, and so is any ageing-based provision. Spotted in a management meeting, when customer overdues drop 60% in the month of go-live.
The check that prevents it
Compare the source and target aged balance, bucket by bucket.
Time to check : 5 min
Put end to end, these checks amount to roughly two person-days — and they are the first thing sacrificed when the schedule slips.
09 · Odoo
Three Odoo specifics to know before you estimate
An invoice is a journal entry
There is no accounting module separate from invoicing, so there is no "post to accounting" step to trigger: creating a posted invoice creates the entry.
Reconciliation is executed, not imported
There is no "matching code" to load: reconciliation is an operation run on a group of lines. This is the number-one cause of underestimated effort for teams coming from a classic accounting package.
VAT is reported from the lines, not from balances
The return is built from the taxes carried by each line. An entry migrated without tax will never appear in a return; an entry migrated with a standard tax will appear a second time. Hence two distinct treatments: plain balances for VAT already declared, neutral technical taxes for migrated documents.
Two practical consequences. First, load migration entries as drafts, run every check, then post in bulk once the control file is signed off: once posted, a French entry is hash-chained and can no longer be amended. Second, plan for stable external identifiers on every imported line: that is what makes the migration replayable — three identical runs, exactly the same result.
Conclusion
A migration is a deliverable, not a task
Three decisions secure the essentials: migrate open items at invoice level, go live at the start of a fiscal year, and rehearse until two runs produce the same result. The rest — history, legacy reconciliation, analytic accounting — is open for discussion: these are options, not obligations.
A successful migration goes unnoticed. It is measured by the absence of events.
No customer chased in error, no amended return, no absurd depreciation charge, no orphan suspense balance. It is a deliverable whose quality shows up as silence — which is exactly why it is so often under-invested.