Tag Archives: rente

Evolution des Taux et Valeurs de Rentes

Dans mon billet, publié hier soir, sur Taux d’intérêt négatifs et explosion des valeurs de rentes, je montrais que les calculs de valeurs actuelles probables de rentes avec des taux de 5% (couramment utilisés il y a encore quelques années) ou -2% (les taux aujourd’hui sont faibles, voire négatifs) peut avoir un impact colossal. Mais qu’en est-il ‘pour de vrai’ ? Que se passe-t-il si j’actualise avec des taux ‘réellement’ observés, et pas des taux fixés arbitrairement.

Sur datamarket.com, on peut ainsi récupérer le taux à un an

Pourquoi un an? Je ne sais pas… Il me fallait en choisir un. C’est la plus courte maturité que j’ai pu trouver…. C’est un choix largement discutable… Il a un impact sur les valeurs numériques, probablement. Mais pas sur la tendance….

On commence par récupérer les données

> B=read.table("euro-yield-curves-daily-data.csv",sep=";",nrows=2925,header=TRUE)
> Y=as.numeric(as.character(B[,2]))
> Y[is.na(Y)]=as.numeric(paste("-",substr(as.character(B[is.na(Y),2]),2,nchar(as.character(B[is.na(Y),2]))),sep=""))
> D=as.Date(as.character(B[,1]),"%Y-%m-%d")
> YR=as.numeric(substr(as.character(B[,1]),1,4))
> plot(D,Y,type="l")
> abline(h=0,col="red")

Si on regarde uniquement la dernière année, depuis le 1er janvier 2015, les taux ont finalement très peu varié

en passant de 0.1% à -0.25% (soit une variation de l’ordre de 0.35 points, en 14 mois). Quel est l’impact sur les valeurs de rente ?

Reprenons le code d’hier (un peu modifié pour aller plus vite)

> file =paste("http://freakonometrics.free.fr/",
+ "HOM","-table-SPLx.csv",sep="")
> BH  = read.table(file,header=TRUE,sep=",")
> file =paste("http://freakonometrics.free.fr/",
+ "FEM","-table-SPLx.csv",sep="")
> BF  = read.table(file,header=TRUE,sep=",")
> PRIX=function(annee=2011,age,sexe="HOM",
+ taux=0.04, duree,C=1000){
+ if(sexe=="HOM") B=BH
+ if(sexe=="FEM") B=BF
+   an    = annee-age; if(an>2005){an=2005}
+   nom   = paste("X",an,sep="")
+   L     = B[,nom]
+   Q     = L[(age+1):length(L)]/L[(age+1)]
+   actualisation = (1+taux)^(0:min(duree,120-age))
+   prixsup = sum(Q[2:(min(duree,120-age)+1)]/
+   actualisation[2:(min(duree,120-age)+1)] )
+   prixinf = sum(Q[1:(min(duree,120-age))]/
+   actualisation[1:(min(duree,120-age))] )
+   return(C*c(prixsup,prixinf))}

On peut alors regarder l’évolution des rentes, avec les taux (et l’année, on va tenir compte aussi des gains d’espérance de vie)

Regardons pour un homme de 15 ans (l’idée était de regarder les rentes versées en cas d’accident corporel)

> F15=function(i) PRIX(annee=YEAR[i],age=15,sex="HOM",duree=150,taux=Y[i]/100)[1]
> rente15H=Vectorize(F15)(seq(1,length(Y),by=1))

ou pour une femme de 15 ans

> F15=function(i) PRIX(annee=YEAR[i],age=15,sex="FEM",duree=150,taux=Y[i]/100)[1]
> rente15F=Vectorize(F15)(seq(1,length(Y),by=1))

On peut aussi regarder un homme de 25 ans

> F25=function(i) PRIX(annee=YEAR[i],age=25,sex="HOM",duree=150,taux=Y[i]/100)[1]
> rente25H=Vectorize(F25)(seq(1,length(Y),by=1))

et une femme de 25 ans également

> F25=function(i) PRIX(annee=YEAR[i],age=25,sex="FEM",duree=150,taux=Y[i]/100)[1]
> rente25F=Vectorize(F25)(seq(1,length(Y),by=1))

Pour visualiser l’évolution des rentes, plaçons nous en base 100 en janvier 2008 (correspondant à l’époque où je rédigeais les annexes techniques)

> b15h=rente15H/rente15H[D==as.Date("2008-01-02","%Y-%m-%d")]
> b15f=rente15F/rente15F[D==as.Date("2008-01-02","%Y-%m-%d")]
> plot(D,b15f*100,col="red",type="l")
> lines(D,b15h*100,col="blue")

Aussi, une rente qui valait 100 en 2008 vaut aujourd’hui 350. Avec des taux passant de 3.5% à 0%. Et une croissance presque linéaire depuis 4 ans. Si on se limite aux 14 derniers mois (baisse de 0.35 points des taux), la valeur de la rente augmente, elle, de 10%

Si on regarde pour des jeunes de 25 ans (et plus 15 ans), les résultats sont relativement comparabless

> b25h=rente25H/rente25H[D==as.Date("2008-01-02","%Y-%m-%d")]
> b25f=rente25F/rente25F[D==as.Date("2008-01-02","%Y-%m-%d")]
> plot(D,b25f*100,col="red",type="l")
> lines(D,b25h*100,col="blue")

Une rente qui valait 100 en 2008 va aujourd’hui un peu moins de 350. Autrement dit, même en actualisant avec des taux de marché, on voit que la baisse des taux va avoir un impact très important sur les rentes. Même si la fréquence d’accidents graves baisse (ou disons reste stable), le coût des accidents corporels devrait continuer à augmenter dans les mois à venir… juste à cause des faibles taux d’intérêt (et de la valeur des rentes qui va exploser).

Taux d’intérêt négatifs et explosion des valeurs de rentes

Il y a quelques années, j’avais été sollicité pour rédiger les Annexes de l’ouvrage évaluation du préjudice corporel, de Max le Roy. Comme l’indiquait le descriptif du livre (à l’époque) j’ai un peu la pression car pas mal de jugements rendus sont basés sur mes calculs,

“La résolution 75-7 du comité des ministres du Conseil de l’Europe est intervenue pour faciliter l’harmonisation des législations et des jurisprudences en matière de réparation des dommages en cas de lésion corporelle ou de décès. Elle a proposé un certain nombre de principes qui, bien que non obligatoires pour les États membres, sont très largement suivis par les juridictions françaises. Ce sont ces principes et leur application en droit français qui sont exposés et commentés dans cet ouvrage qui rend compte, notamment, de la très importante réforme apportée en matière de recours subrogatoire des caisses de sécurité sociale contre les tiers par la loi n° 2006-1640 du 21 décembre 2006. Le barème de capitalisation de rentes tient compte des plus récentes tables de mortalité et prend pour base un taux d’intérêt de 5 % conforme aux données économiques et financières actuelles. Accompagné d’un barème fonctionnel indicatif des incapacités en droit commun, de tableaux de jurisprudence et de formules de jugement, l’ouvrage fait le point sur toutes les questions auxquelles sont confrontés les magistrats, avocats, experts, médecins, assureurs.”

En 2011, pour une mise à jour du livre, j’avais refait les calculs avec des tables mises à jours. Oui, à l’époque je trouvais que la priorité était d’arrêter d’utiliser les tables TD et TV qui dataient de 1988. Mais on était resté avec des taux à 5%. J’avais d’ailleurs été surpris (je peux le dire maintenant, il y a prescription) lorsque j’avais tenté de discuter le choix du taux d’intérêt, et qu’il m’avait été répondu “ah, ça change quelque chose ?“.

Oui, les taux d’actualisation impactent les valeurs des rentes. Et je n’avais pas idée à quel point. Le code utilisé pour construire les valeurs de rentes est assez simple.

> PRIX=function(annee=2011,age,sex="HOM",
+ taux=0.04, duree,C=1000){
+  file  = paste("http://freakonometrics.free.fr/",
+  sex,"-table-SPLx.csv",sep="")
+  B  = read.table(file,header=TRUE,sep=",")
+  an    = annee-age; if(an>2005){an=2005}
+  nom   = paste("X",an,sep="")
+  L     = B[,nom]
+  Q     = L[(age+1):length(L)]/L[(age+1)]
+  actualisation = (1+taux)^(0:min(duree,120-age))
+  prixsup = sum(Q[2:(min(duree,120-age)+1)]/
+  actualisation[2:(min(duree,120-age)+1)] )
+   prixinf = sum(Q[1:(min(duree,120-age))]/
+  actualisation[1:(min(duree,120-age))] )
+  return(C*c(prixsup,prixinf))}

Je renvois ici deux “prix” de rente, suivant que la rente est versée en fin ou en début d’année. Par exemple, avec un taux d’actualisation de 5% (comme dans le livre), pour un homme de 50 ans, si on considère une rente versée jusqu’à sa mort (j’ai mis ici une durée maximal de 150 années), la valeur actualisée espérée d’une rente (en tenant compte des probabilités de décès) de 1000 euros par an (encore une fois, tant que la personne est en vie) est de l’ordre de 17,000 euros.

> PRIX(age=50,sex="HOM",duree=150,taux=.05)
[1] 16435.31 17435.30

Avec un taux d’actualisation de 0%, on atteinte plus du double.

> PRIX(age=50,sex="HOM",duree=150,taux=0)
[1] 38822.48 39822.46

Et c’est encore pire pour les jeunes. Si on calcule pour plusieurs âges des rentes versées jusqu’au décès, avec différents niveaux de taux (5%, 2%, 0% et -2%, oui, je prends un taux négatif)

> vage=seq(15,65,by=5)
> vp5=Vectorize(function(a) PRIX(age=a,sex="HOM",duree=150,taux=0.05)[1])(vage)
> vp2=Vectorize(function(a) PRIX(age=a,sex="HOM",duree=150,taux=0.02)[1])(vage)
> vp0=Vectorize(function(a) PRIX(age=a,sex="HOM",duree=150,taux=0)[1])(vage)
> vpn2=Vectorize(function(a) PRIX(age=a,sex="HOM",duree=150,taux=-0.02)[1])(vage)
> plot(vage,vpn2,type="b",col="red")
> lines(vage,vp0,type="b")
> lines(vage,vp2,type="b",col="blue")
> legend("topright",c("taux -2%","taux 0%","taux 2%"),col=c("red","black","blue"))

on observe une explosion des rentes pour les jeunes (ce qui n’est pas non plus surprenant)

Pour un jeune de 20 ans, la valeur actualisée probable d’une rente est presque 10 fois plus élevée, si on passe d’un taux de 5% à -2%

> PRIX(age=15,sex="HOM",duree=150,taux=.05)
[1] 19427.94 20427.93
> PRIX(age=15,sex="HOM",duree=150,taux=-.02)
[1] 200778.3 201770.3

Ce qu’on peut visualiser sur le graphique ci-dessous (avec, par âge, 100 qui correspond à la valeur obtenue avec un taux de 5%)

> plot(vage,vpn2/vp5*100,type="b",col="red")
> lines(vage,vp0/vp5*100,type="b")
> lines(vage,vp2/vp5*100,type="b",col="blue")
> abline(h=100,lty=2)
> legend("topright",c("taux -2%","taux 0%","taux 2%"),col=c("red","black","blue"),pch=1)

Passer de 5% à 2% donnait des rentes plus important, en passant de 100 à 200. En passant à 0% on passe de 100 à 400 pour les jeunes. Mais en passant à des taux négatifs, on passe de 100 à 1000 !

Dans un scénarios où les taux restent encore bas longtemps, on peut imaginer que les indemnités versées aux victimes de préjudices corporels vont exploser dans les mois à venir…