diff --git a/models/financial_contract_guarantee.py b/models/financial_contract_guarantee.py
index f30e447d977f82f220fa7a522fbc9cfdeb4cb31b..042ffb11aff0bccae7273fd9e970e22398f04583 100644
--- a/models/financial_contract_guarantee.py
+++ b/models/financial_contract_guarantee.py
@@ -71,6 +71,7 @@ class FinancialContractGuarantee(models.Model):
         string="En cours de garantie",
         store=True,
         tracking=1,
+        help="Calculé comme le produit du CRDU par la quotité garantie.",
     )
     is_counter_guarantee = fields.Boolean("Contre Garantie", default=False)
     counter_guarantee_rate = fields.Float("Quotité contre garantie")
@@ -82,6 +83,9 @@ class FinancialContractGuarantee(models.Model):
         compute="_compute_final_risk_guarantee",
         store=True,
         tracking=1,
+        help="Le risque final est l'encours de garantie moins les FMG "
+        "et les parts sociales. Dans le cas d'une co-garantie, "
+        "on retire également son montant.",
     )
 
     # --- FMG ---
@@ -89,11 +93,13 @@ class FinancialContractGuarantee(models.Model):
         string="FMG calculé",
         compute="_compute_fmg_amount",
         store=True,
+        help="Calculé à partir du montant garanti initial et du taux de FMG.",
     )
     fmg_paid = fields.Monetary(
         string="FMG payé",
         compute="_compute_fmg_paid",
         store=True,
+        help="Calculé sur la somme des lignes de FMG.",
     )
     fmg_ids = fields.One2many(
         comodel_name="mutual.guarantee.fund.line",
@@ -103,7 +109,11 @@ class FinancialContractGuarantee(models.Model):
 
     # --- Social share ---
     social_share_number = fields.Integer(
-        string="Nbre parts sociales", compute="_compute_social_share_number", store=True
+        string="Nbre parts sociales",
+        compute="_compute_social_share_number",
+        store=True,
+        help="Nombre de parts sociales calculé à partir "
+        "du montant total et du prix unitaire.",
     )
     social_share_amount = fields.Monetary(
         string="Montant parts sociales décidé",
@@ -112,6 +122,8 @@ class FinancialContractGuarantee(models.Model):
         string="Montant parts sociales calculé",
         compute="_compute_social_share",
         store=True,
+        help="Montant des parts sociales calculé à partir du taux "
+        "et de la quantité maximale de parts sociales.",
     )
     social_share_ids = fields.One2many(
         comodel_name="company.share.line",
@@ -122,6 +134,7 @@ class FinancialContractGuarantee(models.Model):
         string="Montant parts sociales payé",
         compute="_compute_social_share_paid",
         store=True,
+        help="Montant calculé sur la somme des lignes de mouvements de parts sociales.",
     )
 
     # --- Commission ---
@@ -158,6 +171,7 @@ class FinancialContractGuarantee(models.Model):
         compute="_compute_amount_initial",
         store=True,
         readonly=False,
+        help="Montant du prêt."
     )
     amount_received = fields.Monetary("Montant reçu")
     expiration_date_computed = fields.Date(
@@ -217,31 +231,30 @@ class FinancialContractGuarantee(models.Model):
     commission_ids_count = fields.Integer(
         compute="_compute_commission_ids_count", store=True
     )
+
     @api.depends("commission_ids")
     def _compute_commission_ids_count(self):
         for g in self:
             g.commission_ids_count = len(g.commission_ids)
 
-    
-    line_ids_count = fields.Integer(
-        compute="_compute_line_ids_count", store=True
-    )
+    line_ids_count = fields.Integer(compute="_compute_line_ids_count", store=True)
+
     @api.depends("line_ids")
     def _compute_line_ids_count(self):
         for g in self:
             g.line_ids_count = len(g.line_ids)
-    
-    fmg_ids_count = fields.Integer(
-        compute="_compute_fmg_ids_count", store=True
-    )
+
+    fmg_ids_count = fields.Integer(compute="_compute_fmg_ids_count", store=True)
+
     @api.depends("fmg_ids")
     def _compute_fmg_ids_count(self):
         for g in self:
             g.fmg_ids_count = len(g.fmg_ids)
-    
+
     social_share_ids_count = fields.Integer(
         compute="_compute_social_share_ids_count", store=True
     )
+
     @api.depends("social_share_ids")
     def _compute_social_share_ids_count(self):
         for g in self:
@@ -302,16 +315,24 @@ class FinancialContractGuarantee(models.Model):
 
     @api.depends("guarantee_amount", "is_counter_guarantee", "counter_guarantee_rate")
     def _compute_final_risk_guarantee(self):
+        """encours garanti - FMG - PS
+        si contre garantie, on retire également son montant
+        """
         for guarantee in self:
-            if not guarantee.is_counter_guarantee:
-                guarantee.final_risk_guarantee = guarantee.guarantee_amount
-            else:
-                guarantee.final_risk_guarantee = (
-                    1 - guarantee.counter_guarantee_rate
-                ) * guarantee.guarantee_amount
+            # FIXME doit-on vraiment retrancher le montant des parts sociales ?
+            frg = (
+                guarantee.guarantee_amount
+                - guarantee.fmg_amount
+                - guarantee.social_share_amount
+            )
+            # la contre garantie diminue d'autant le risque final
+            if guarantee.is_counter_guarantee:
+                frg *= 1 - guarantee.counter_guarantee_rate
+            guarantee.final_risk_guarantee = frg
 
     @api.depends("remaining_capital", "guarantee_rate")
     def _compute_guarantee_amount(self):
+        "CRDU × quotité"
         for guarantee in self:
             guarantee.guarantee_amount = (
                 guarantee.remaining_capital * guarantee.guarantee_rate