Vous avez sans doute déjà comparé deux placements en regardant leur rendement annoncé. 5% pour le fonds euros, 8% pour un ETF World, peut-être 12% pour du staking USDC. Mais voilà le problème : ces chiffres ne disent rien du timing des flux, des frais réels, ni de la valeur temps de l'argent. Un placement qui verse 10% à la fin de la cinquième année n'a pas la même valeur qu'un placement qui verse 2% chaque année. Pour trancher, il faut deux indicateurs que tout analyste financier connaît : la NPV (Net Present Value, ou valeur actualisée nette) et l'IRR (Internal Rate of Return, ou taux de rendement interne).
Le problème, c'est qu'Excel ou Google Sheets ne suffisent pas toujours. Soit parce que vous voulez automatiser vos calculs sur des dizaines de scénarios, soit parce que vous préférez garder vos données sensibles hors du cloud. La bonne nouvelle, c'est qu'avec une cinquantaine de lignes de Python et zéro bibliothèque externe, vous pouvez calculer ces deux métriques vous-même. Je vais vous montrer comment utiliser NPV et IRR en Python avec des exemples concrets tirés de situations patrimoniales réelles.
Pourquoi le calcul NPV IRR Python est indispensable pour comparer vos placements
Imaginez deux opportunités d'investissement. La première : vous placez 50 000€ dans un contrat d'assurance-vie en unités de compte qui promet un versement unique de 68 000€ dans cinq ans. La seconde : vous placez la même somme dans un protocole de staking qui vous verse 4 000€ par an pendant cinq ans, puis vous récupérez votre capital. Lequel choisir ?


Si vous comparez uniquement les montants bruts, la première option rapporte 18 000€, la seconde 20 000€. Mais cette comparaison ignore un principe fondamental : un euro aujourd'hui vaut plus qu'un euro demain. Pourquoi ? Parce que l'euro d'aujourd'hui peut être placé et générer des intérêts. C'est là qu'intervient le calcul de la NPV en Python.
La valeur actualisée nette ramène tous les flux futurs à leur valeur d'aujourd'hui, en appliquant un taux d'actualisation. Ce taux représente le rendement minimum que vous exigez pour accepter de bloquer votre capital. Si votre alternative est un livret A à 3%, votre taux d'actualisation ne peut pas être inférieur. Si vous visez du 6% net, c'est votre taux de référence.
Prenons un exemple concret. Vous investissez 100 000€ dans un placement qui vous verse 5 000€ par an pendant quatre ans, puis vous récupérez 110 000€ la cinquième année. Si votre taux d'actualisation est de 4%, la NPV de cet investissement est de 11 267€. Cela signifie que, ramené à aujourd'hui, ce placement vaut 111 267€. Autrement dit, il crée de la valeur par rapport à votre exigence de rendement.
L'IRR, de son côté, répond à une autre question : quel est le taux de rendement effectif de cet investissement ? C'est le taux qui annule la NPV, celui pour lequel la valeur actualisée des flux futurs est exactement égale à votre mise initiale. Dans l'exemple ci-dessus, l'IRR est de 6,4%. Vous pouvez donc comparer directement ce 6,4% au rendement d'autres placements : si votre alternative rapporte 5%, l'investissement est attractif. Si elle rapporte 8%, il faut reconsidérer.
Coder NPV et IRR en Python : les fondamentaux mathématiques
La formule de la NPV est simple sur le papier. Pour chaque flux futur, on le divise par (1 + taux)^n, où n est le nombre d'années. On additionne tous ces flux actualisés, et on retire l'investissement initial. Le calcul NPV en Python se résume à une fonction de quelques lignes.
Voici une implémentation minimale :
def npv(rate, cash_flows):
total = 0
for i, flow in enumerate(cash_flows):
total += flow / ((1 + rate) ** i)
return totalCette fonction prend deux paramètres : rate, le taux d'actualisation (exprimé en décimal, donc 0,05 pour 5%), et cash_flows, une liste qui commence par l'investissement initial (montant négatif) puis contient tous les flux futurs. Par exemple, pour un placement de 50 000€ qui rapporte 3 000€ par an pendant trois ans puis rembourse le capital, vous passeriez [-50000, 3000, 3000, 53000].
L'IRR est plus délicat. Il n'existe pas de formule algébrique directe pour le calculer, il faut procéder par itérations successives. L'idée : on cherche le taux pour lequel la NPV est égale à zéro. On commence avec une estimation (par exemple 10%), on calcule la NPV, puis on ajuste le taux en fonction du résultat. C'est la méthode de Newton-Raphson, qui converge rapidement dans la plupart des cas.
Voici une implémentation fonctionnelle pour calculer IRR en Python :
def irr(cash_flows, iterations=100, tolerance=1e-6):
rate = 0.1
for _ in range(iterations):
npv_value = npv(rate, cash_flows)
if abs(npv_value) < tolerance:
return rate
derivative = sum(-i * flow / ((1 + rate) ** (i + 1)) for i, flow in enumerate(cash_flows))
rate -= npv_value / derivative
return rateCette fonction calcule la dérivée de la NPV (nécessaire pour Newton-Raphson), puis ajuste le taux jusqu'à ce que la NPV soit suffisamment proche de zéro. En pratique, cela prend rarement plus de dix itérations. Le paramètre tolerance définit la précision souhaitée : 1e-6 signifie qu'on accepte une marge d'erreur d'un millionième, ce qui est largement suffisant pour des décisions patrimoniales.
Exemples concrets d'analyse financière Python : crypto, immobilier et assurance-vie
Prenons trois situations patrimoniales classiques et voyons comment NPV et IRR permettent de trancher.
Calcul rentabilité investissement : staking USDC vs fonds euros
Vous hésitez entre placer 100 000€ sur un fonds euros à 3% garanti, ou sur un protocole de staking USDC à 8% (rendement variable, risque de smart contract). Sur le fonds euros, vous récupérez 103 000€ chaque année, que vous replacez. Sur le staking, vous retirez 8 000€ annuels que vous convertissez en euros et consommez, puis vous récupérez le capital au bout de cinq ans.
Flux du fonds euros (capitalisé) : [-100000, 0, 0, 0, 0, 115927]
Flux du staking USDC : [-100000, 8000, 8000, 8000, 8000, 108000]
Avec un taux d'actualisation de 4% (votre exigence minimale), la NPV du fonds euros est de 14 231€. Celle du staking est de 20 467€. L'IRR du fonds euros est de 3% (logique, c'est le rendement garanti), celle du staking est de 8%. Sur le papier, le staking l'emporte. Mais attention : ces 8% sont exprimés en USDC, pas en euros. Si l'USDC perd son ancrage ou si le protocole subit un exploit, votre IRR réel s'effondre. C'est là que le jugement patrimonial reprend ses droits.
Achat immobilier avec revente anticipée
Vous achetez un appartement locatif 250 000€, frais de notaire inclus. Vous louez 1 200€ par mois (14 400€ par an après charges), et vous anticipez une revente à 280 000€ dans sept ans. Vous voulez savoir si ce projet bat un placement en SCPI à 4,5% net.
Flux : [-250000, 14400, 14400, 14400, 14400, 14400, 14400, 294400]
Avec un taux d'actualisation de 4,5%, la NPV est de 12 863€. L'IRR est de 5,1%. C'est légèrement supérieur à la SCPI, mais il faut intégrer la fiscalité (IR sur les loyers, plus-value), la gestion, et le risque locatif. Si vous actualisez à 6% pour tenir compte de ces contraintes, la NPV devient négative. L'immobilier en direct n'est alors plus compétitif.
Évaluation portefeuille : arbitrage entre assurance-vie et PEA avec versements programmés
Vous hésitez entre verser 500€ par mois pendant dix ans dans une assurance-vie (rendement attendu : 4% net après frais de gestion) ou sur un PEA investi en ETF (rendement attendu : 6% avant fiscalité, soit environ 5,3% après flat tax à la sortie).
Sur l'assurance-vie, vous investissez 60 000€ au total (500€ × 12 × 10). Avec un rendement de 4%, vous récupérez environ 73 400€ au bout de dix ans.
Sur le PEA, avec 5,3% net, vous récupérez environ 77 600€.
Flux assurance-vie : [-500 par mois capitalisé] → simplifions en flux annuels : [-6000, -6000, ..., 73400]
Flux PEA : idem, avec 77600 en sortie.
L'IRR du PEA est de 5,3%, celle de l'assurance-vie de 4%. Mais l'assurance-vie offre une option de sortie en rente, une fiscalité successorale avantageuse après 70 ans, et la possibilité de rachats partiels sans perdre l'antériorité. Ce sont des avantages que l'IRR ne capture pas. Voilà pourquoi ces outils sont des aides à la décision, pas des oracles.
Les limites de NPV et IRR : ce qu'ils ne vous disent pas
Ces métriques sont puissantes, mais elles ont leurs angles morts. La NPV suppose que vous pouvez réinvestir les flux intermédiaires au taux d'actualisation choisi. Si vous retirez 5 000€ par an d'un placement et que vous les dépensez, la NPV surestime la création de valeur. L'IRR, elle, suppose que vous réinvestissez au taux de l'IRR lui-même, ce qui est souvent irréaliste.
Autre limite : ces calculs ignorent la volatilité. Un placement crypto qui affiche un IRR de 15% mais dont la valeur fluctue de 40% en cours d'année n'a pas le même profil de risque qu'une obligation à 5% stable. La NPV ne capture pas votre tolérance au risque, ni votre besoin de liquidité. Si vous devez vendre en urgence à -30% parce que vous avez un imprévu, votre IRR théorique ne servira à rien.
Enfin, méfiez-vous des projections trop optimistes. Un staking à 20% qui suppose une stabilité du protocole sur cinq ans, c'est une hypothèse fragile. Un bien immobilier revendu 30% plus cher dans dix ans, c'est possible, mais ce n'est pas garanti. La NPV et l'IRR ne valent que ce que valent vos hypothèses de départ. Garbage in, garbage out.
Ce que cela signifie pour votre patrimoine
Calculer la NPV et l'IRR vous-même avec Python, sans dépendre d'Excel ou d'un conseiller, c'est reprendre la main sur vos décisions. Vous pouvez tester dix scénarios en deux minutes, ajuster les hypothèses, comparer des placements hétérogènes (crypto, immobilier, produits structurés) sur une base commune. Vous sortez du marketing commercial et des rendements annoncés pour entrer dans la réalité actuarielle.
Mais ces outils ne remplacent pas le jugement. Un IRR de 8% sur un placement illiquide et risqué n'est pas équivalent à un IRR de 6% sur un fonds garanti. La fiscalité, la liquidité, la volatilité, votre horizon de placement : tout cela doit peser dans la balance. Le calcul NPV IRR Python vous dit combien de valeur un placement crée. À vous de décider si cette valeur justifie le risque pris.
Votre patrimoine mérite mieux qu'un livret A. Je vous montre le chemin, chiffres à l'appui.



