La dette abonnés : caractéristiques clefs des business models d’abonnements

Quelle définition donner de la dette abonnés ?

Notion comptable cruciale dont la seule évocation rebute, la dette abonnés pèse lourd dans les comptes d’exploitation d’un business d’abonnement. De quoi s’agit-il ? Tout simplement des « produits constatés d’avance », autrement dit de l’argent – des produits et services – que vous « devez » à vos abonnés.

Dans la balance comptable des exploitants d'abonnements, la dette abonnés peut peser lourd.

Dans la balance comptable des exploitants d’abonnements, la dette abonnés peut peser lourd.

3 catégories d’abonnements et 3 traitements de la dette abonnés

En matière de dette abonnés, nous distinguons 3 catégories d’abonnements. Dans les deux premiers cas, l’abonné paye d’avance pour une consommation qui n’a pas été encore réalisée. L’opérateur d’abonnements a une dette vis-à-vis de son client ; il devra servir l’abonnement après le paiement.

  •  Les abonnements à durée déterminée, payés d’avance par les abonnés, génèrent une forte dette. Un abonnement Vélib, payé en une fois pour les 12 prochains mois, induit une dette conséquente vis-à-vis de l’utilisateur du service.
  •  Les abonnements à durée libre payés périodiquement à priori (avant consommation) génèrent eux aussi une dette abonnés. Toutefois, celle-ci est généralement plus faible car, le plus souvent, la fréquence de paiement est mensuelle. Certains services en SaaS (Software As A Service) rentrent dans cette famille.
  • Seuls les abonnements à durée libre payés à terme échu ne génèrent pas de dette abonnés : l’abonné paye ce qu’il a consommé a posteriori, et rien de plus. La facture mobile est ajustée en fin de période en fonction de la consommation de communications et de données.

Principes de calcul de la dette abonnés

La dette abonné s’exprime en euros et également en « unités de produits vendus ». On la calcule au global et à l’abonné. Ainsi, chaque abonné a sa propre dette abonné, qui évolue en fonction de ses consommations dans le temps et des éventuels gestes commerciaux qui peuvent être accordés. Par exemple, je m’abonne pour 1 an à un service qui m’envoie chaque semaine un produit. Le 1er janvier, je paye 52€ et je dois recevoir 52 produits. Le prix moyen de chaque produit est le montant de la dette en euro divisé par la dette en nombre d’unités à servir, soit un euro par produit. A chaque service d’un produit, la dette abonné individuelle se décrémente d’un produit et de son équivalent en euro. A la fin du 1er mois, l’entreprise a donc une dette de 48 unités et 48 euros. Le prix moyen par unité n’a pas bougé. Le chiffre d’affaires généré sur le premier mois est de 4 euros. Les « produits constatés d’avance » passent en alors en « chiffre d’affaires réalisé ».

Ne pas confondre dette abonné et trésorerie

Lorsque que l’on génère des abonnés avec une forte dette, il ne faut pas confondre « trésorerie générée » (qui est conséquente) et « chiffre d’affaires réalisé » et encore moins « marge ». Quand l’encaissement se fait, le chiffre d’affaires n’est pas réalisé : il est en « reste à livrer ».  Aucun coût de service n’est encore décaissé. Le chiffre d’affaires associé se réalisera au fur et à mesure des livraisons et les coûts associés viendront peser sur le résultat au fil de l’eau. La dette abonné à un instant T est le montant total dû aux abonnés en cas de cessation d’activité.

Variation du prix moyen et impact sur la dette abonnés

Le prix moyen des abonnements encaissés à l’avance est susceptible de varier au fil du temps en fonction d’éventuels gestes commerciaux qui interviennent sur le compte client. Je n’ai pas reçu mon produit / service, ou j’ai rencontré un problème, on m’octroie un avoir de x euros. Cet avoir décrémente aussitôt la dette abonné en euro, sans toutefois modifier la dette abonné en nombre d’unités : le prix moyen se trouve directement impacté à la baisse. Ainsi, les chiffres d’affaires me concernant, qui seront constatés au fil des mois suivants, seront minorés et le prix moyen aura baissé.

Impact des impayés sur la dette abonnés

Souvent négligé, un nettoyage régulier est à faire sur la dette abonnés. En effet, on installe un nouvel abonné pour 1 an, 52 unités, 52€. Celui-ci paye par chèque ou carte bleue. Dans la base de gestion, nous avons donc augmenté notre dette de 52€ et 52 unités. Après quelque temps, un avis de la banque nous indique un rejet du paiement de l’abonné que nous ne réussirons pas à récupérer. En base, nous allons devoir :

  1. Annuler l’abonnement.
  2. Passer en perte le montant facturé et non encaissé avec une partie qui est servie (perte sèche) et une partie non servie (perte fictive).

Bien souvent, l’abonnement est annulé mais la régularisation financière n’a pas lieu. On se trouve alors avec des dettes abonnés erronées, du chiffre d’affaires qui ne se réalise pas et un stock croissant de dette fictive qui pèse lourdement dans les comptes d’exploitation, au moment où on la déclarera perdue. Il est donc essentiel d’avoir un process de traitement des impayés bien huilé et qui s’opère au fil de l’eau. En raison de de son impact important sur les comptes d’exploitation, ce process est à valider avec les directions financières, l’expert-comptable ou le commissaire aux comptes. Les directions financières sont très attentives aux dettes abonnés et doivent être tenues informées de toute action corrective, ou autre, touchant à la dette en euros ou en nombre d’unités.

La dette abonnés est un élément clef du bilan des opérateurs d’abonnements

La dette abonné peut atteindre des montant très élevés. Pour exemple, les comptes annuels du groupe Bayard, éditeur de presse, faisaient apparaître au 30/06/2015 une dette abonné d’un montant de 80,6  M€ sur les activités abonnement presse, quand le chiffre d’affaires des activités presse (abonnements et vente au numéro) s’élevait à 242.9M€ sur l’année fiscale 2014-2015. On a là un exemple du poids très élevé de dette abonnés rapportée au chiffre d’affaires. Il est évidemment proportionnel à l’importance de l’activité d’abonnements dans la vie de l’entreprise. En théorie, l’entreprise doit avoir en trésorerie l’équivalent de sa dette abonnés de façon à pouvoir assurer le remboursement des sommes encaissées en cas de cessation d’activité. Dans les faits, c’est rarement le cas, au regard des montants que cela représente.

Migration de bases, changement de prestataire abonnements et dette abonnés

En cas de migration d’une base abonnés d’un système de gestion abonnés à un autre, le contrôle de la dette abonnés, avant et après migration, est primordial. Le montant en euros et en nombre d’unité doit rester stable. Il en est de même pour toute migration de base interne. Ce point est fondamental pour s’assurer de l’intégrité des données et rester en cohérence avec les comptes d’exploitation.

Contrôler sa dette abonnés pour maîtriser son exploitation opérationnelle et financière

Le contrôle de la dette abonnés est clef de performance et de suivi de l’activité d’abonnement. A ce titre, dès le début de l’exploitation, elle doit être un enjeu partagé par les équipes abonnements et financières.

CustUp accompagne les opérateurs d’abonnements dans la maîtrise de leur dette abonnés

CustUp est un cabinet de conseil opérationnel en abonnements. Notre équipe de consultants en abonnements accompagne nos clients dans la mise en place des process de contrôle et « nettoyage » essentiels à un équilibre des comptes. Le concept de dette abonnés est simple à maîtriser. Il est une des particularités des business models d’abonnement. Il exige, dans l’exploitation de l’activité, la mise en place d’une série d’actions et d’indicateurs dédiés. En particulier, lors du paramétrage d’un logiciel de gestion abonnés ou de la migration de bases abonnés, l’intégrité de la dette abonnés doit être placée sous contrôle.

Besoin d'accompagnement ? Rencontrons-nous !
Partager :
Consultant en abonnement chez CustUp, Caroline Hauss structure et met en œuvre les dispositifs de gestion et d’exploitation de ces

Consultant en abonnement chez CustUp, Caroline Hauss structure et met en œuvre les dispositifs de gestion et d’exploitation de ces activités.

[custup_nom_silo]
[custup_form_optinmonster]
[custup_form_optinmonster]
[custup_form_blog_inline_optinmonster]
<script type="text/javascript"> jQuery(document).ready(function( $ ) { var dj_envoyer_inscription = true; jQuery(document).delegate( '#dj_envoyer_inscription-MzfVZ', 'click', function(){ if(dj_envoyer_inscription){ dj_envoyer_inscription = false; var email = jQuery('#dj_form_optinmonster-MzfVZ input[name="email"]').val(); var data = new FormData(); data.append( "action", "inscription_mailchimp"); data.append( "email", email); var recaptcha_response = ""; grecaptcha.ready(function () { grecaptcha.execute('6Lc5kLoUAAAAAD3ltaKWkySZa3ss4UzqzFYmCBxn', { action: 'inscription_mailchimp' }).then(function (token) { data.append( "recaptcha_response", token); jQuery("#dj_form_optinmonster-MzfVZ .panel").css('display', 'none'); jQuery("#dj_form_optinmonster-MzfVZ .panel-primary").css('display', 'block'); jQuery("#dj_form_optinmonster-MzfVZ .panel-primary span").html( site.message_030 ); $.ajax({ url: site.ajax_url, type: 'post', dataType: 'JSON', processData: false, contentType: false, cache: false, data: data, success: function(result) { if(result.alerte){ jQuery("#dj_form_optinmonster-MzfVZ .panel").css('display', 'none'); jQuery("#dj_form_optinmonster-MzfVZ .panel-danger span").html(result.alerte); jQuery("#dj_form_optinmonster-MzfVZ .panel-danger").css('display', 'block'); }else if(result.message){ jQuery("#dj_form_optinmonster-MzfVZ .panel").css('display', 'none'); jQuery("#dj_form_optinmonster-MzfVZ .panel-success span").html(result.message); jQuery("#dj_form_optinmonster-MzfVZ .panel-success").css('display', 'block'); } if(result.status){ dataLayer.push({ "event": "gaEvent", "eventCategory": "Blog-Inline", "eventAction": "clic", "eventLabel": "https://www.custup.com/dette-abonnes/", "eventValue": "", "eventNoninteraction": "true" }); } dj_envoyer_inscription = true; }, error: function(errorThrown){ dj_envoyer_inscription = true; } }); }); }); } return false; }); }); </script> <div id="dj_form_optinmonster-MzfVZ" class="form_inline"> <div class="form-group col-md-12 col-sm-12 col-xs-12 no-padding m-5"> <div class="panel panel-primary m-0" style="display:none;"> <div class="panel-heading"> <span class="m-5"></span> </div> </div> <div class="panel panel-success m-0" style="display:none;"> <div class="panel-heading"> <span class="m-5"></span> </div> </div> <div class="panel panel-danger m-0" style="display:none;"> <div class="panel-heading"> <span class="m-5"></span> </div> </div> </div> <div class="col-md-7 col-sm-12 col-xs-12 no-padding form-group"> <input class="form-control form-inline" type="text" id="dj_email" name="email" placeholder="E-mail" /> </div> <div class="col-md-5 col-sm-12 col-xs-12 no-padding form-group envoyer text-center "> <button id="dj_envoyer_inscription-MzfVZ" class="dj_envoyer_inscription" type="submit">Je m'abonne !</button> </div> </div>
[le Nom du Silo]
[le Nom du Silo]
[custup_icon]
<img src="https://www.custup.com/wp-content/themes/custup/public/img/icon.png" alt="Merci pour votre visite" class="skip-lazy" width="28" height="27"/>
[custup_form_exit]
<script type="text/javascript"> jQuery(document).ready(function( $ ) { var dj_envoyer_inscription = true; var email = ""; jQuery(document).delegate( '#emailXYtM7', 'change', function(){ email = jQuery(this).val(); }); jQuery(document).delegate( '#dj_envoyer_inscription-exit-XYtM7', 'click', function(){ if(dj_envoyer_inscription){ dj_envoyer_inscription = false; var data = new FormData(); data.append( "action", "inscription_mailchimp"); data.append( "email", email); data.append( "exit", 1 ); var recaptcha_response = ""; grecaptcha.ready(function () { grecaptcha.execute('6Lc5kLoUAAAAAD3ltaKWkySZa3ss4UzqzFYmCBxn', { action: 'inscription_mailchimp' }).then(function (token) { data.append( "recaptcha_response", token); jQuery("#dj_form_optinmonster-exit-XYtM7 .panel").css('display', 'none'); jQuery("#dj_form_optinmonster-exit-XYtM7 .panel-primary").css('display', 'block'); jQuery("#dj_form_optinmonster-exit-XYtM7 .panel-primary span").html( site.message_030 ); $.ajax({ url: site.ajax_url, type: 'post', dataType: 'JSON', processData: false, contentType: false, cache: false, data: data, success: function(result) { if(result.alerte){ jQuery("#dj_form_optinmonster-exit-XYtM7 .panel").css('display', 'none'); jQuery("#dj_form_optinmonster-exit-XYtM7 .panel-danger span").html(result.alerte); jQuery("#dj_form_optinmonster-exit-XYtM7 .panel-danger").css('display', 'block'); }else if(result.message){ jQuery("#dj_form_optinmonster-exit-XYtM7 .panel").css('display', 'none'); jQuery("#dj_form_optinmonster-exit-XYtM7 .panel-success span").html(result.message); jQuery("#dj_form_optinmonster-exit-XYtM7 .panel-success").css('display', 'block'); } if(result.status){ dataLayer.push({ "event": "gaEvent", "eventCategory": "Exit", "eventAction": "clic", "eventLabel": "https://www.custup.com/dette-abonnes/", "eventValue": "", "eventNoninteraction": "true" }); } dj_envoyer_inscription = true; }, error: function(errorThrown){ dj_envoyer_inscription = true; } }); }); }); } return false; }); }); </script> <div id="dj_form_optinmonster-exit-XYtM7" class="form_inline popin-exit"> <div class="form-group col-md-12 col-sm-12 col-xs-12 no-padding m-5"> <div class="panel panel-primary m-0" style="display:none;"> <div class="panel-heading"> <span class="m-5"></span> </div> </div> <div class="panel panel-success m-0" style="display:none;"> <div class="panel-heading"> <span class="m-5"></span> </div> </div> <div class="panel panel-danger m-0" style="display:none;"> <div class="panel-heading"> <span class="m-5"></span> </div> </div> </div> <div class="col-md-12 col-sm-12 col-xs-12 no-padding form-group"> <input class="form-control" type="text" id="emailXYtM7" name="email" placeholder="E-mail" /> </div> <div class="col-md-12 col-sm-12 col-xs-12 no-padding form-group envoyer text-center "> <button id="dj_envoyer_inscription-exit-XYtM7" class="dj_envoyer_inscription" type="submit">S'inscrire !</button> </div> </div>
[custup_scroll_nom_silo]
[custup_form_silo_scroll_optinmonster]
<script type="text/javascript"> var email = ""; jQuery(document).ready(function( $ ) { var dj_envoyer_inscription = true; jQuery(document).delegate( '#emailqkVCd', 'change', function(){ email = jQuery(this).val(); }); jQuery(document).delegate( '#dj_envoyer_inscription-qkVCd', 'click', function(e){ if(dj_envoyer_inscription){ dj_envoyer_inscription = false; var data = new FormData(); data.append( "action", "inscription_mailchimp"); data.append( "email", email); data.append( "id_article", 3633); var recaptcha_response = ""; grecaptcha.ready(function () { grecaptcha.execute('6Lc5kLoUAAAAAD3ltaKWkySZa3ss4UzqzFYmCBxn', { action: 'inscription_mailchimp' }).then(function (token) { data.append( "recaptcha_response", token); jQuery("#dj_form_optinmonster-qkVCd .panel").css('display', 'none'); jQuery("#dj_form_optinmonster-qkVCd .panel-primary").css('display', 'block'); jQuery("#dj_form_optinmonster-qkVCd .panel-primary span").html( site.message_030 ); $.ajax({ url: site.ajax_url, type: 'post', dataType: 'JSON', processData: false, contentType: false, cache: false, data: data, success: function(result) { if(result.alerte){ jQuery("#dj_form_optinmonster-qkVCd .panel").css('display', 'none'); jQuery("#dj_form_optinmonster-qkVCd .panel-danger span").html(result.alerte); jQuery("#dj_form_optinmonster-qkVCd .panel-danger").css('display', 'block'); }else if(result.message){ jQuery("#dj_form_optinmonster-qkVCd .panel").css('display', 'none'); jQuery("#dj_form_optinmonster-qkVCd .panel-success span").html(result.message); jQuery("#dj_form_optinmonster-qkVCd .panel-success").css('display', 'block'); } if(result.status){ dataLayer.push({ "event": "gaEvent", "eventCategory": "Silo-XXX-Scroll", "eventAction": "clic", "eventLabel": "https://www.custup.com/dette-abonnes/", "eventValue": "", "eventNoninteraction": "true" }); } dj_envoyer_inscription = true; }, error: function(errorThrown){ dj_envoyer_inscription = true; } }); }); }); } return false; }); }); </script> <div id="dj_form_optinmonster-qkVCd"> <form> <div class="form-group col-md-12 col-sm-12 col-xs-12 no-padding m-5"> <div class="panel panel-primary m-0" style="display:none;"> <div class="panel-heading"> <span class="m-5"></span> </div> </div> <div class="panel panel-success m-0" style="display:none;"> <div class="panel-heading"> <span class="m-5"></span> </div> </div> <div class="panel panel-danger m-0" style="display:none;"> <div class="panel-heading"> <span class="m-5"></span> </div> </div> </div> <div class="col-md-12 col-sm-12 col-xs-12 no-padding form-group"> <input class="form-control" type="text" id="emailqkVCd" name="email" placeholder="E-mail" /> </div> <div class="col-md-12 col-sm-12 col-xs-12 no-padding form-group envoyer text-center "> <button id="dj_envoyer_inscription-qkVCd" class="dj_envoyer_inscription" value="xx" type="submit">S'inscrire</button> </div> </form> </div>
[custup_count_abonnes_liste_mailchimp]
3691
[custup_form_horizontal_optinmonster]
<script type="text/javascript"> var email = ""; jQuery(document).ready(function( $ ) { var dj_envoyer_inscription = true; jQuery(document).delegate( '#emailIyCQS', 'change', function(){ email = jQuery(this).val(); }); jQuery(document).delegate( '#dj_envoyer_inscription-IyCQS', 'click', function(){ if(dj_envoyer_inscription){ dj_envoyer_inscription = false; var data = new FormData(); data.append( "action", "inscription_mailchimp"); data.append( "email", email); grecaptcha.ready(function () { grecaptcha.execute('6Lc5kLoUAAAAAD3ltaKWkySZa3ss4UzqzFYmCBxn', { action: 'inscription_mailchimp' }).then(function (token) { data.append( "recaptcha_response", token); jQuery("#dj_form_horizontal_optinmonster-IyCQS .panel").css('display', 'none'); jQuery("#dj_form_horizontal_optinmonster-IyCQS .panel-primary").css('display', 'block'); jQuery("#dj_form_horizontal_optinmonster-IyCQS .panel-primary span").html( site.message_030 ); $.ajax({ url: site.ajax_url, type: 'post', dataType: 'JSON', processData: false, contentType: false, cache: false, data: data, success: function(result) { if(result.alerte){ jQuery("#dj_form_horizontal_optinmonster-IyCQS .panel").css('display', 'none'); jQuery("#dj_form_horizontal_optinmonster-IyCQS .panel-danger span").html(result.alerte); jQuery("#dj_form_horizontal_optinmonster-IyCQS .panel-danger").css('display', 'block'); }else if(result.message){ jQuery("#dj_form_horizontal_optinmonster-IyCQS .panel").css('display', 'none'); jQuery("#dj_form_horizontal_optinmonster-IyCQS .panel-success span").html(result.message); jQuery("#dj_form_horizontal_optinmonster-IyCQS .panel-success").css('display', 'block'); } if(result.status){ dataLayer.push({ "event": "gaEvent", "eventCategory": "Blog-Floating-Bar", "eventAction": "clic", "eventLabel": "https://www.custup.com/dette-abonnes/", "eventValue": "", "eventNoninteraction": "true" }); } dj_envoyer_inscription = true; }, error: function(errorThrown){ dj_envoyer_inscription = true; } }); }); }); } return false; }); }); </script> <div id="dj_form_horizontal_optinmonster-IyCQS" class="dj_form_horizontal_optinmonster"> <input type="hidden" name="recaptcha_response" value=""> <div class="col-md-12 col-sm-12 col-xs-12 no-padding form-group dj_email_content"> <input class="form-control" type="text" id="emailIyCQS" name="email" placeholder="E-mail" /> </div> <div class="col-md-12 col-sm-12 col-xs-12 no-padding form-group text-center dj_email_envoyer"> <button id="dj_envoyer_inscription-IyCQS" class="dj_envoyer_inscription" type="submit">Valider</button> </div> <div class="form-group col-md-12 col-sm-12 col-xs-12 no-padding m-5"> <div class="panel panel-primary m-0" style="display:none;"> <div class="panel-heading"> <span class="m-5"></span> </div> </div> <div class="panel panel-success m-0" style="display:none;"> <div class="panel-heading"> <span class="m-5"></span> </div> </div> <div class="panel panel-danger m-0" style="display:none;"> <div class="panel-heading"> <span class="m-5"></span> </div> </div> </div> </div>