Groupements4 août 20268 min de lecture

RFA, BFA, ristournes : ce qu'un logiciel doit calculer

La différence comptable entre une RFA et une BFA s'explique en deux paragraphes. Les mécaniques que votre logiciel doit modéliser — tranches, assiettes, prorata, millésimes de barèmes — prennent un projet.

Cherchez ce qu'est une RFA et vous trouverez cinquante pages d'écritures comptables. Utile, une fois. Ce qu'aucune ne vous dit, c'est ce qui décide réellement si votre campagne de ristournes prend trois jours ou trois semaines : quelles mécaniques le logiciel doit savoir modéliser, et lesquelles un progiciel générique refuse discrètement de traiter.

La distinction, et passons à autre chose

Deux sigles désignent la même famille de remises différées. La RFA — remise de fin d'année — est le terme employé côté comptable et côté fournisseur : une remise accordée après coup, en fonction du volume réalisé sur une période. La BFA — bonification de fin d'année — est le mot que la plupart des groupements emploient pour la part reversée à leurs adhérents. « Ristourne » est le terme générique des deux. Le traitement comptable diffère, la position de négociation diffère, et votre commissaire aux comptes tient à savoir laquelle est laquelle.

Du point de vue du logiciel, la distinction ne change presque rien. Dans les trois cas il y a une assiette, un barème, une période, un bénéficiaire et quelqu'un qui vérifiera le montant. Ce qui décide si un système tient, ce n'est pas le vocabulaire : c'est sa capacité à exprimer vos mécaniques sans que vous ayez à les réécrire. Le reste de cet article ne parle que de ça.

Le barème à tranches, et la question qui change tout

Tout barème a des tranches. La question structurante, et celle que le contrat laisse le plus souvent implicite, est de savoir si le taux s'applique à la tranche ou à l'ensemble du volume une fois le seuil franchi.

Prenons un barème à 0 % jusqu'à 500 000 €, 2 % de 500 000 € à 1 M€, et 3 % au-delà. Un adhérent qui déclare 1,2 M€ gagne 16 000 € en lecture par tranche : rien sur la première, 10 000 € sur la deuxième, 6 000 € sur la dernière. En lecture sur le volume total, le même adhérent gagne 36 000 € — les 3 % pleins appliqués à 1,2 M€. Même barème, même déclaration, plus du double.

Les deux lectures existent dans de vrais contrats, parfois dans le même groupement, parfois chez le même fournisseur selon la famille de produits. Un outil qui n'en connaît qu'une vous oblige à calculer l'autre à la main, c'est-à-dire exactement par où entrent les corrections sans trace. À côté de ce choix, le moteur a besoin d'un seuil de déclenchement en dessous duquel rien n'est dû, d'un plafond optionnel, et d'une règle d'arrondi explicite — celle qui décide, à la cinquième décimale, si soixante adhérents retrouvent chacun le montant de leur propre tableur.

L'assiette est le vrai sujet

Les désaccords sur les ristournes ne portent presque jamais sur le taux. Ils portent sur ce à quoi le taux s'applique. Un moteur sérieux laisse plusieurs assiettes coexister et conserve, pour chaque ligne calculée, laquelle a été retenue :

  • Le chiffre d'affaires déclaré par l'adhérent, assiette habituelle du dispositif de bonification du groupement.
  • Le chiffre d'affaires facturé par le fournisseur, celui que le fournisseur défendra, et rarement le même montant.
  • Les volumes en quantité — tonnes, palettes, machines — pour les barèmes qui ignorent le prix.
  • Un chiffre d'affaires restreint à une famille, une marque ou une gamme, parce qu'un seul contrat fournisseur contient souvent trois périmètres différents.
  • Un chiffre d'affaires net des remises sur facture, net du transport ou net de l'éco-participation, selon ce que dit le contrat et, plus souvent, selon ce qu'il ne dit pas.

Deux autres choses cassent à cet endroit. Les avoirs et les retours, qui doivent diminuer l'assiette de la période à laquelle ils se rattachent, et non de celle où ils arrivent. Et la coupure de fin d'exercice : une facture datée du 29 décembre et reçue le 6 janvier appartient à une campagne ou à l'autre, et le moteur doit appliquer la même réponse chaque année sans que personne ait à s'en souvenir.

Les primes conditionnelles ne sont pas des remises

Bonus de croissance, prime de logistique, prime de paiement anticipé, prime de participation à une opération commerciale : ce ne sont pas des barèmes, ce sont des conditions évaluées à une date. Elles échouent différemment, et elles se modélisent différemment.

Un bonus de croissance par rapport à l'année précédente pose une question que personne ne songe à poser avant la première contestation : croissance par rapport à quelle année précédente — celle réellement enregistrée, ou celle retraitée à périmètre constant après qu'un adhérent a racheté un concurrent ? Une prime de logistique conditionnée à des palettes complètes suppose une donnée que votre formulaire de déclaration ne collecte probablement pas. Et une prime de paiement anticipé dépend d'une date de règlement dont le groupement ne dispose pas toujours.

Prorata et répartition entre le groupement et l'adhérent

Des adhérents entrent en avril et sortent en septembre. Des contrats de référencement sont signés en cours de campagne. Le prorata temporis règle cela, mais il cache une décision : le prorata s'applique-t-il au montant ou au seuil ? Un adhérent entré en juillet avec 400 000 € déclarés rate un seuil de 500 000 € et ne touche rien, ou franchit un seuil proratisé à 250 000 € et touche une tranche entière. Les deux politiques sont légitimes. Une seule est la vôtre, et elle doit être écrite avant d'être codée.

Vient ensuite la répartition. La ristourne perçue du fournisseur n'est pas la bonification versée à l'adhérent : le groupement conserve une part pour financer son fonctionnement, et cette part est rarement un pourcentage unique. Elle varie selon le fournisseur, parfois selon la famille de produits, parfois selon l'ancienneté de l'adhérent, et elle change en assemblée générale. La clé de répartition est une règle à part entière, avec son propre historique, et elle mérite la même traçabilité que le barème.

Versionner les barèmes, tracer les arbitrages

Un barème n'est pas un paramètre. C'est un objet daté, doté d'une période de validité, et un avenant signé en juin ne modifie pas le barème existant : il crée un millésime qui s'applique à partir de sa date d'effet. Les systèmes qui traitent les barèmes comme des paramètres modifiables perdent toute capacité à expliquer un montant passé, puisque les valeurs qui l'ont produit n'existent plus nulle part. Cette seule décision de conception sépare un moteur de ristournes d'un tableur avec un écran de connexion.

Il en va de même des arbitrages manuels. Le cas particulier qu'aucune règle ne couvre existera toujours — un geste commercial, une ligne litigieuse réglée par la négociation, un adhérent dédommagé d'une erreur de saisie. Il doit être saisissable, et il doit être un objet : auteur, date, motif, montant calculé d'origine, montant retenu. Ce qui ne doit jamais exister, c'est la possibilité d'écraser sur place une valeur calculée. Dès que c'est possible, la piste d'audit devient décorative.

MécaniqueLa question à poser avant de signerCe qui casse si la réponse est non
Barèmes à tranchesLe taux peut-il s'appliquer à la tranche ou au volume total, fournisseur par fournisseur ?La moitié de vos contrats se calcule à la main, hors du système
Seuils et plafondsDéclenchement, plafond et règle d'arrondi sont-ils configurables par barème ?Les montants s'écartent de quelques euros de ceux des adhérents, et la confiance part avec
Assiettes multiplesCA déclaré et CA facturé fournisseur peuvent-ils coexister et être rapprochés ?Chaque contestation fournisseur devient une reconstitution manuelle
Primes conditionnellesLe moteur sait-il expliquer pourquoi une condition n'a pas été remplie ?Les adhérents lisent une prime absente comme une erreur, chaque année
Prorata temporisLe prorata s'applique-t-il au montant ou au seuil ?Les entrées en cours d'année sont traitées différemment d'une campagne à l'autre
Répartition groupement / adhérentLes clés peuvent-elles varier par fournisseur et par famille, avec un historique ?La part conservée redevient une négociation annuelle sans référence
VersionnementUn avenant crée-t-il un millésime plutôt que de modifier le barème ?Plus aucun arrêté passé ne peut être expliqué
Sept questions à poser à n'importe quel prestataire — progiciel ou sur mesure — avant la première ligne de code.

Le seul critère de recette qui vaille

Un test tranche la question : reprendre la campagne complète de l'an dernier, injecter les mêmes déclarations dans le nouveau moteur, et comparer ligne à ligne avec ce qui a réellement été versé. Mêmes montants, à l'euro près, sur chaque adhérent et chaque fournisseur. Rien d'autre ne démontre qu'un moteur tient.

C'est un test exigeant, et il ne passe presque jamais du premier coup. C'est précisément son intérêt. Les écarts qu'il révèle sont rarement des erreurs de développement : ce sont des règles appliquées à la main, année après année, que personne n'avait écrites. Sur la plateforme livrée pour un groupement lyonnais de plus de soixante sociétés associées, cette comparaison a servi de mécanisme de recette, et chaque divergence a été instruite jusqu'à être expliquée ou corrigée. Trouver ces règles pendant la recette coûte quelques jours. Les trouver pendant une campagne réelle coûte la confiance des adhérents, qui ne revient pas dans le même exercice.

D'où la position qui mérite d'être défendue : un moteur de ristournes ne se juge pas sur son calcul. Calculer un pourcentage est trivial, et tous les outils du marché le font correctement. Il se juge sur sa capacité à justifier un montant, des mois plus tard, devant quelqu'un persuadé qu'il est faux. Un système qui produit le bon chiffre sans savoir montrer d'où il vient n'a pas résolu votre problème : il l'a déplacé là où plus personne ne peut l'atteindre.