Ce qui est réel et ce qui est simulé. Le risque (fréquence, coût, bonus-malus) vient d’une base publique réelle de 678 000 contrats auto français, et le tarif suit la règle légale du bonus-malus. Aucune base publique ne contient les prix proposés au renouvellement, les décisions de résiliation ou les devis concurrents : ces données appartiennent aux assureurs. Le comportement des clients est donc simulé (Monte Carlo, hypothèses explicites), et l’étude indique les données à obtenir pour la rejouer sur des chiffres réels.

Résumé

  • Ce que coûtent les départs (x). Sur 5 ans et par contrat, la marge cumulée serait de 88 (63 à 114) € pour l’assureur et de 280 (278 à 282) € pour Lovys si personne ne partait ; avec les départs sélectifs simulés, elle tombe à -10 (-47 à 28) € et 212 (192 à 228) €. La perte est d’environ 100 € pour l’assureur et 68 € pour Lovys.
  • Une baisse de prime justifiée existe. Sous la règle légale du bonus-malus, les contrats au bonus maximal (63 % de l’exposition, 87 € de sinistres par an contre 195 € pour les coefficients 0,61 à 0,80) ont un S/P de 48,8 % pour une cible de 55 % : leur prime pourrait baisser d’environ 11 % sans dégrader le résultat de l’assureur.
  • Une remise générale ne rapporte pas. Offerte à tous les profils éligibles, elle subventionne aussi ceux qui seraient restés : le bilan global est négatif dans 98 % des simulations.
  • Une offre faite seulement à ceux qui demandent à résilier, plafonnée à 8 % (et jamais au-delà du prix technique) avec un coût partagé, fonctionne. Les deux parties gagnent dans 89 % des simulations : +5,4 (0,1 à 12,1) € pour l’assureur et +4,2 (1,3 à 8,2) € pour Lovys, par contrat sur 5 ans. Le gain est réel mais modeste, environ 5 % de la marge perdue : l’essentiel de la perte vient de la sélection que seul un tarif plus proche du risque corrige.
  • Si le porteur de risque refuse (plan B). Une campagne de rétention financée par Lovys seul reste rentable tant que son coût par contact ne dépasse pas 22 (19 à 24) € (hypothèse : 20 % des partants convaincus).

1. L’objectif : gagner plus (y) qu’on ne perd (x)

Un client à peu de sinistres trouve sa prime élevée et résilie. Depuis le 1er janvier 2015 (loi Hamon), il peut partir à tout moment après un an de contrat, et les comparateurs rendent l’écart de prix immédiat. Lovys perd un client ; le porteur de risque perd un contrat que son tarif rendait pourtant rentable. Je pose deux grandeurs :

  • x : la marge perdue du fait de ces départs ;
  • y : la marge récupérée en proposant un prix plus bas à ces clients, nette du coût de cette baisse.

L’argument à porter au porteur de risque tient en une phrase : y est positif pour lui comme pour Lovys. Il ne vaut que si la baisse est justifiée par le risque (sinon le résultat de l’assureur se dégrade), et seulement si elle ne coûte pas plus qu’elle ne rapporte. L’étude teste ces deux conditions.

2. Données et démarche

Élément Statut Usage
Fréquence, coût des sinistres, exposition, bonus-malus, caractéristiques du conducteur et du véhicule Réel : base publique freMTPL2 (CASdatasets), 677 991 contrats Partie A : mesure du risque ; alimente la simulation
Règle de tarification du bonus-malus Réel : règle légale (article A.121-1 du Code des assurances) Tarif de l’assureur : prime de référence x coefficient (0,50 à 3,50)
Prix concurrents, prime proposée au renouvellement, décision de résilier Simulé : non disponible publiquement Partie B : Monte Carlo avec paramètres incertains

Partie A mesure le risque réel par niveau de bonus-malus et en déduit la marge de manoeuvre justifiée : de combien la prime peut baisser avant que le S/P d’un segment n’atteigne la cible de l’assureur.

Partie B simule 20 000 contrats tirés dans la base réelle sur 5 ans. Chaque contrat a le risque estimé dans la partie A, multiplié par un facteur non observé (loi Gamma de forme 0,99, estimée sur les données). Chaque année, un client demande à résilier avec une probabilité qui augmente avec l’écart entre le prix de l’assureur et un prix concurrent plus proche du risque. La sensibilité au prix est inconnue : je la tire au hasard avec les autres paramètres incertains et je ne retiens que les 300 simulations dont le churn serait plausible pour Lovys (churn moyen de 10 à 22 % par an ; churn des bons profils 1,2 à 2,2 fois celui des autres). Les sinistres et les aléas sont les mêmes pour toutes les options comparées.

Paramètre Valeur ou plage
Part du tarif déjà proportionnelle au risque, au-delà du bonus-malus 0 à 50 %
Part du risque non observé que voit le concurrent 5 à 30 %
Sensibilité du départ à l’écart de prix 1 à 12, retenue si cohérente avec le churn
Churn moyen annuel 10 à 22 %
Part des clients qui demandent à résilier sans vouloir partir (« bluff ») 0 à 15 % par an
Commission de Lovys (le « % » du cas posé, hypothèse) 30 % de la prime
Frais de gestion : Lovys / assureur 8 % / 8 % de la prime
S/P cible de l’assureur, horizon 55 %, 5 ans

Les résultats sont en euros par contrat initial, cumulés sur 5 ans, au niveau de prix de la base (historique). Je compare ces options au statu quo :

  1. Remise générale : tous les profils éligibles (marge de manoeuvre positive) reçoivent la remise dès le départ ;
  2. Offre à la résiliation : la remise n’est accordée qu’au client qui demande à résilier, à hauteur du plafond choisi (jusqu’au prix technique, jamais au-delà) ;
  3. Campagne sans prix (plan B) : Lovys convainc une part des partants sans toucher au tarif.

3. Partie A : le risque réel et la marge de manoeuvre justifiée

La base freMTPL2 couvre un portefeuille automobile français d’un assureur non identifié : 677 991 contrats, 358 343 années d’exposition et 26 444 sinistres. Je plafonne les sinistres à 50 000 € (88 sinistres concernés, soit 23 % du montant total, qu’il faudrait traiter à part dans un vrai tarif). Fréquence = sinistres / années d’exposition ; coût moyen = coût / sinistres ; coût pur = coût total / années d’exposition.

Risque par niveau de bonus-malus (données réelles)

Coefficient bonus-malus Part de l’exposition Fréquence Coût moyen Coût pur annuel Fréquence, toutes choses égales
0,50 (bonus max) 63 % 5,1 % (5,1 % à 5,2 %) 1 690 € 87 € référence
0,51 à 0,60 13 % 7,5 % (7,2 % à 7,7 %) 1 752 € 131 € x 1,62 (1,56 à 1,69)
0,61 à 0,80 15 % 11,2 % (10,9 % à 11,4 %) 1 744 € 195 € x 2,50 (2,42 à 2,59)
0,81 à 1,00 8 % 14,3 % (13,9 % à 14,8 %) 1 929 € 277 € x 3,20 (3,07 à 3,34)
> 1,00 1 % 35,2 % (33,3 % à 37,2 %) 1 827 € 643 € x 7,64 (7,18 à 8,14)

Le coût pur augmente nettement avec le coefficient, et ce n’est pas un effet des autres variables : la dernière colonne (modèle de Poisson avec âge, véhicule, zone et densité) donne les mêmes ordres de grandeur. Le coût moyen d’un sinistre varie peu d’une classe à l’autre : le bonus-malus informe sur la fréquence, pas sur la gravité.

En France, la cotisation d’un contrat auto est la prime de référence multipliée par le coefficient de réduction-majoration (0,50 à 3,50). Je reconstitue ce tarif : prime de référence = coût pur estimé sans bonus-malus (âge, véhicule, zone), puis coefficient, le tout calé pour un S/P global égal à la cible de 55 %. C’est un tarif stylisé : le vrai tarif contient d’autres variables et des remises commerciales.

tabA$lab <- factor(c("0,50\n(bonus max)", "0,51-0,60", "0,61-0,80", "0,81-1,00", "> 1,00"), c("0,50\n(bonus max)", "0,51-0,60", "0,61-0,80", "0,81-1,00", "> 1,00"))
tabA$col <- ifelse(tabA$SP < s_cible, "sous la cible : surtarifé", "au-dessus de la cible : sous-tarifé")
ggplot(tabA, aes(lab, SP, fill = col)) + geom_col(width = .6) +
  geom_errorbar(aes(ymin = sp_lo, ymax = sp_hi), width = .12) +
  geom_hline(yintercept = s_cible, linetype = "dashed", colour = pal["marine"]) +
  scale_fill_manual(values = c("sous la cible : surtarifé" = unname(pal["teal"]), "au-dessus de la cible : sous-tarifé" = unname(pal["corail"]))) +
  scale_y_continuous(labels = function(x) fr_pct(x), limits = c(0, NA)) +
  labs(title = "S/P observé par niveau de bonus-malus sous un tarif « référence x coefficient »",
       subtitle = paste0("Données réelles, intervalle de confiance à 95 % (bootstrap) ; trait pointillé : S/P cible de ", fr_pct(s_cible)),
       x = "Coefficient de réduction-majoration", y = "Sinistres / primes", fill = NULL)

Sous cette règle, les contrats au bonus maximal ont un S/P de 48,8 % (IC 95 % : 46,8 % à 51,1 %) : leur prime pourrait baisser d’environ 11 % avant que le S/P n’atteigne la cible. Les classes 0,51 à 0,80 et au-dessus de 1,00 paient moins que leur risque (S/P supérieur à la cible). C’est la justification actuarielle de la baisse : sur la simulation, 54 % des contrats ont une marge de manoeuvre positive, de 15,2 % en moyenne. Lovys peut produire ce calcul sur son propre portefeuille.

4. Partie B : combien coûtent les départs, et que peut-on récupérer ?

4.1 La perte x

Quand les bons profils partent plus vite que les autres, le S/P du portefeuille conservé passe de la cible à 70,9 % en cinq ans (contre 55,4 % si les départs étaient aléatoires). La marge cumulée de l’assureur est de -10 (-47 à 28) € par contrat, contre 88 (63 à 114) € sans départ : x = 100 € pour lui, et 68 € pour Lovys (de 212 (192 à 228) € à 280 (278 à 282) €). Comme la marge de l’assureur ne représente qu’environ 7 points de prime, quelques points de S/P suffisent à l’effacer : c’est un ordre de grandeur, pas une prévision.

4.2 Pourquoi une remise générale échoue

cmp <- rbind(
  data.frame(option = "Remise générale", partie = "Assureur", t(q3(g("lc", dref, phiref)))), data.frame(option = "Remise générale", partie = "Lovys", t(q3(g("ll", dref, phiref)))),
  data.frame(option = "Offre à la résiliation", partie = "Assureur", t(q3(g("oc", dref, phiref)))), data.frame(option = "Offre à la résiliation", partie = "Lovys", t(q3(g("ol", dref, phiref)))))
names(cmp)[3:5] <- c("lo", "med", "hi"); cmp$option <- factor(cmp$option, c("Offre à la résiliation", "Remise générale"))
ggplot(cmp, aes(med, option, colour = partie)) + geom_vline(xintercept = 0, colour = "grey40") +
  geom_pointrange(aes(xmin = lo, xmax = hi), position = position_dodge(width = .5), linewidth = .9) +
  scale_colour_manual(values = unname(pal[c("marine", "corail")])) +
  labs(title = paste0("Même remise (plafond de ", fr_pct(dref), "), deux façons de l'offrir"),
       subtitle = "Gain vs statu quo, € par contrat sur 5 ans, coût partagé 50/50 ; médiane et intervalle 10-90 %",
       x = "Variation de la marge cumulée (€ par contrat)", y = NULL, colour = NULL)

La remise générale est versée à tous les profils éligibles (54 % du portefeuille), dont la plupart seraient restés sans elle. Son coût s’applique à tous les contrats, chaque année, alors que le gain ne vient que de la minorité qui allait partir. Résultat : le total des deux parties est négatif dans 98 % des simulations. L’argument « on perd x, on gagne y » ne tient donc pas pour une baisse de prime généralisée : le coût est payé par ceux qui n’en avaient pas besoin.

4.3 L’offre à la résiliation : y est positif pour les deux parties

L’offre n’est faite qu’au client qui demande à résilier, et seulement s’il est éligible (marge de manoeuvre positive). Le coût de la remise ne porte que sur les clients conservés, qui seraient autrement perdus : elle ne subventionne personne d’autre. La remise est plafonnée, et ne dépasse jamais le prix technique (le prix qui ramène le S/P du client à la cible), ce qui la justifie actuariellement.

lab_p <- c("2 %", "4 %", "6 %", "8 %", "10 %", "prix technique")
lab_f <- c("1" = "Lovys finance seul", "0.5" = "Coût partagé 50/50", "0" = "L'assureur finance")
sw <- do.call(rbind, lapply(plafonds, function(dc) do.call(rbind, lapply(c(1, .5, 0), function(phi) rbind(
  data.frame(dc = dc, phi = phi, partie = "Assureur", t(q3(g("oc", dc, phi)))), data.frame(dc = dc, phi = phi, partie = "Lovys", t(q3(g("ol", dc, phi)))))))))
names(sw)[4:6] <- c("lo", "med", "hi"); sw$dcf <- factor(sw$dc, plafonds, lab_p); sw$fin <- factor(lab_f[as.character(sw$phi)], unname(lab_f))
ggplot(sw, aes(dcf, med, colour = partie, group = partie)) + geom_hline(yintercept = 0, colour = "grey40") +
  geom_pointrange(aes(ymin = lo, ymax = hi), position = position_dodge(width = .5), linewidth = .6, size = .35) +
  facet_wrap(~fin) + scale_colour_manual(values = unname(pal[c("marine", "corail")])) +
  labs(title = "Offre à la résiliation : gain selon le plafond de remise et le financement",
       subtitle = "€ par contrat sur 5 ans, par rapport au statu quo ; point = médiane, trait = intervalle 10-90 %",
       x = "Plafond de la remise", y = "Variation de la marge cumulée (€)", colour = NULL) +
  theme(axis.text.x = element_text(angle = 40, hjust = 1))

Part des simulations où l’assureur et Lovys gagnent tous les deux

Lovys finance seul Coût partagé 50/50 L’assureur finance
2 % 72 % 82 % 72 %
4 % 74 % 86 % 73 %
6 % 72 % 87 % 74 %
8 % 67 % 89 % 74 %
10 % 65 % 89 % 69 %
prix technique 0 % 77 % 22 %

Trois enseignements :

  • Le gain total augmente avec le plafond, car tant que la remise reste dans la marge de manoeuvre, garder le client coûte moins que le perdre. Mais la probabilité que les deux parties gagnent est maximale pour un plafond intermédiaire (8 à 10 %) : au-delà, avec un coût partagé 50/50, la remise pèse davantage sur la marge de Lovys, plus faible que celle de l’assureur. C’est pourquoi je retiens un plafond de 8 %.
  • Le partage du coût est ce qui permet aux deux parties de gagner : si Lovys finance seul, l’assureur gagne mais Lovys perd dans une partie des cas ; si l’assureur finance seul, c’est l’inverse. Avec un financement partagé, les deux gagnent dans 89 % des simulations.
  • Les gains sont modestes : 5,4 (0,1 à 12,1) € pour l’assureur et 4,2 (1,3 à 8,2) € pour Lovys par contrat sur 5 ans, soit 5 % et 6 % de la perte x. L’offre récupère une partie des départs, pas la sélection elle-même.

À titre de comparaison, un prix proportionnel au risque pour tous, à recettes constantes, apporte +21,3 (10,0 à 40,9) € à l’assureur et +11,1 (5,2 à 26,3) € à Lovys, soit davantage, mais il suppose de refondre le tarif (le coefficient de bonus-malus étant obligatoire, par d’autres variables que lui) : c’est un chantier de moyen terme, pas une offre.

4.4 Les limites de l’offre : le « bluff »

Une offre faite à ceux qui demandent à résilier a un défaut connu : certains clients vont demander sans vouloir partir, pour obtenir la remise. Je l’ai simulé (0 à 15 % de clients par an).

tot <- g("oc", dref, phiref) + g("ol", dref, phiref)
ggplot(data.frame(pi_b = res$pi_b, tot = tot), aes(pi_b, tot)) + geom_hline(yintercept = 0, colour = "grey40") +
  geom_point(alpha = .35, colour = pal["marine"], size = 1.5) +
  geom_smooth(method = "loess", formula = y ~ x, se = FALSE, colour = pal["corail"], linewidth = 1.2) +
  scale_x_continuous(labels = function(x) fr_pct(x)) +
  labs(title = "Le bluff érode le gain de l'offre",
       subtitle = paste0("Gain total (assureur + Lovys), plafond de ", fr_pct(dref), ", chaque point est une simulation"),
       x = "Part des clients qui demandent à résilier sans vouloir partir", y = "Gain total (€ par contrat)")

Le gain total est positif dans 94 % des simulations ; il l’est dans 99 % des cas avec moins de 5 % de bluff et 88 % au-delà de 10 %. Il dépend aussi de la sensibilité des clients au prix : il est positif dans 85 % des cas quand cette sensibilité est faible (inférieure à 3) et 100 % quand elle est forte (supérieure à 8). Ces deux paramètres ne se connaissent que par un test, d’où la recommandation d’un pilote.

4.5 Plan B : si le porteur de risque refuse, une campagne de rétention financée par Lovys

Sans accord sur le tarif, Lovys peut agir seul : à chaque demande de résiliation d’un client éligible, une action de rétention qui ne touche pas au prix (contact, avantage de fidélité, service). Elle coûte un montant K par contact. Le tableau donne, pour trois taux de conviction, le gain de Lovys avant coût et le coût par contact maximal pour rester rentable.

Partants convaincus Gain de Lovys avant coût (€ par contrat) Contacts par contrat sur 5 ans Coût maximal par contact (€) Gain de l’assureur, sans rien payer (€ par contrat)
10 % 3,7 (2,5 à 4,5) 0,32 (0,24 à 0,41) 11 (10 à 12) 4,6 (2,4 à 7,1)
20 % 7,5 (5,2 à 9,4) 0,34 (0,25 à 0,43) 22 (19 à 24) 9,8 (5,9 à 13,2)
30 % 11,6 (8,1 à 14,5) 0,36 (0,27 à 0,46) 32 (28 à 34) 15,9 (10,2 à 20,3)

L’assureur profite des clients conservés sans rien payer, ce qui est un argument pour lui demander de cofinancer. Le point de rupture dépend du taux de conviction, inconnu : c’est aussi ce qu’un test mesurerait.

5. Recommandations

Plan A, avec le porteur de risque

  1. Produire la mesure de la partie A sur le portefeuille de Lovys : S/P par niveau de bonus-malus sous le tarif réellement appliqué, avec intervalle de confiance. C’est la justification actuarielle ; si le segment n’est pas surtarifé chez eux, l’argument tombe et il vaut mieux le savoir avant de négocier.
  2. Proposer une offre à la résiliation plafonnée (de l’ordre de 8 %) et jamais au-delà du prix technique, réservée aux profils éligibles, une seule fois par contrat, via le parcours de résiliation de l’application.
  3. Négocier un financement partagé : c’est la configuration où les deux parties gagnent le plus souvent.
  4. Lancer un pilote randomisé, qui est le seul moyen de mesurer la sensibilité au prix et la part de bluff, avec trois indicateurs : taux de rétention, S/P des contrats remisés, marge de chaque partie. Règle d’arrêt : si le S/P des contrats remisés dépasse la cible de plus de 3 points, on suspend.
  5. Aligner la rémunération : une composante de la commission liée à la marge technique des cohortes conservées (aujourd’hui, Lovys est indifférent à la qualité du portefeuille).

Plan B, si le porteur de risque refuse : campagne de rétention sans prix, financée par la commission de Lovys, déclenchée par la demande de résiliation, avec un plafond de coût par contact issu du tableau de la section 4.5. Lovys y gagne seul, et cela fournit au porteur de risque la preuve chiffrée qui manquait pour revenir à la table.

6. Limites

  • Le comportement des clients est simulé. Je n’ai ni prix de renouvellement ni décisions de départ : les résultats de la partie B sont des ordres de grandeur conditionnels aux hypothèses (sensibilité au prix, bluff, part du risque vue par le concurrent). Les données à obtenir : prime proposée au renouvellement, décision du client avec motif, devis concurrents lorsque l’assureur en dispose.
  • Le tarif est stylisé (référence x coefficient légal, avec une part de prix au risque tirée au hasard) ; un vrai tarif contient d’autres variables et des remises commerciales.
  • La base est historique, d’un assureur non identifié : niveau de prix et sinistralité ne sont pas ceux d’aujourd’hui. L’étude est une démarche, pas un chiffrage du portefeuille de Lovys.
  • Les sinistres graves sont plafonnés ; l’hétérogénéité non observée est forte (forme Gamma proche de 1), ce qui amplifie la sélection simulée.
  • Pas de nouveaux clients, pas d’ajustements tarifaires de l’assureur en cours de période (en pratique, face à une dérive de S/P, il augmente ses tarifs, ce qui accélère les départs). Horizon de 5 ans, sans actualisation.
  • Une remise accordée à certains clients seulement est à valider vis-à-vis des règles d’équité et de transparence tarifaires, avec le porteur de risque.
Étude reproductible : set.seed(2026), 300 simulations retenues sur 382 tirages, 20 000 contrats tirés dans freMTPL2. R 4.3.3