diff --git a/app/comp/bonus_spo.py b/app/comp/bonus_spo.py
index 88eb36fc9..c54d0d520 100644
--- a/app/comp/bonus_spo.py
+++ b/app/comp/bonus_spo.py
@@ -607,6 +607,28 @@ class BonusCachan1(BonusSportAdditif):
self.bonus_ues[ue.id] = 0.0 # annule
+class BonusCaen(BonusSportAdditif):
+ """Calcul bonus modules optionnels (sport, culture), règle IUT de Caen Normandie.
+
+ Les étudiants de l'IUT de Caen Normandie peuvent suivre des enseignements
+ optionnels non rattachés à une unité d'enseignement:
+
+ - Sport.
+
- Engagement étudiant
+
+ Les points au-dessus de 10 sur 20 obtenus dans chacune de ces matières
+ optionnelles sont cumulés et donnent lieu à un bonus sur chaque UE de 5%
+ des points au dessus de 10 (soit +0,1 point pour chaque tranche de 2 points au
+ dessus de 10).
+ """
+
+ name = "bonus_caen"
+ displayed_name = "IUT de Caen Normandie"
+ bonus_max = 1.0
+ seuil_moy_gen = 10.0 # au dessus de 10
+ proportion_point = 0.05 # 5%
+
+
class BonusCalais(BonusSportAdditif):
"""Calcul bonus modules optionnels (sport, culture), règle IUT LCO.