diff --git a/models/mucs_contract.py b/models/mucs_contract.py
index bcd89e2952e608c2d2f72795e79b5c5e51de79fd..9f8640d3c84ed9c779b3863e90174b99b3223ba0 100644
--- a/models/mucs_contract.py
+++ b/models/mucs_contract.py
@@ -11,12 +11,9 @@ class Contract(models.Model):
     name = fields.Char(compute="_compute_name")
     date_start = fields.Date("Début du contrat", required=True)
     date_end = fields.Date("Fin du contrat")
-    number = fields.Char("Numéro de contrat", required=True)
-    # On attend d'avoir des données
-    # product_id = fields.Many2one("Type de couverture")
-    type = fields.Char("Type de couverture")  # will be computed on product_id
+    code = fields.Char("Code contrat")
+    is_portabilite = fields.Boolean("Portabilité")
     member_count = fields.Integer("Effectifs adhérents")
-    maybe_member_count = fields.Integer("Potentiel adhérents")
 
     # relations
     partner_id = fields.Many2one(comodel_name="res.partner", required=True)
@@ -36,7 +33,7 @@ class Contract(models.Model):
     # ------------------------------------------------------
     def _compute_name(self):
         for contract in self:
-            contract.name = f"{contract.number} - {contract.partner_id.name}"
+            contract.name = f"{contract.code} - {contract.partner_id.name}"
 
     # ------------------------------------------------------
     # Onchange / Constraints
diff --git a/models/res_partner.py b/models/res_partner.py
index 7538d3f3c3e8b02a9a7e46c1e6fcfb74e4126625..acb095b3f2f1b8cb4c184fbca0b72c41e9d44618 100644
--- a/models/res_partner.py
+++ b/models/res_partner.py
@@ -37,8 +37,9 @@ class ResPartner(models.Model):
         readonly=False,
         copy=False,
         tracking=True,
+        index=True,
     )
-    num_orga = fields.Char("Numéro orga")
+    num_orga = fields.Char("Numéro orga", index=True)
 
     social_object = fields.Text("Objet Social")
     activity_desc = fields.Text("Description de l'activité")
@@ -127,10 +128,27 @@ class ResPartner(models.Model):
     support_count = fields.Integer(
         "Nombre d'événements de gestion", compute="_compute_support_count", store=True
     )
+
+    # contracts
     contract_count = fields.Integer(
         "Nombre de contrats", compute="_compute_contract_count", store=True
     )
+    member_count = fields.Integer(
+        "Effectif adhérent",
+        compute="_compute_member_count",
+        store=True,
+        help="L'effectif adhérent est la somme des effectifs "
+        "des contrats en cours hors portabilité.",
+    )
+    maybe_member_count = fields.Integer(
+        "Potentiel adhérents",
+        compute="_compute_maybe_member_count",
+        store=True,
+        help="L'effectif potentiel est la différence entre "
+        "l'effectif communiqué et l'effectif adhérent.",
+    )
 
+    # dates
     date_last_support = fields.Date(
         "Date du dernier support", compute="_compute_date_last_support", store=True
     )
@@ -176,6 +194,21 @@ class ResPartner(models.Model):
         for i in self:
             i.contract_count = len(i.contract_ids)
 
+    @api.depends("contract_ids", "contract_ids.member_count")
+    def _compute_member_count(self):
+        for i in self:
+            i.member_count = sum(
+                i.contract_ids.filtered(
+                    lambda c: not c.date_end and not c.is_portabilite
+                ).mapped("member_count")
+            )
+
+    @api.depends("company_size", "member_count")
+    def _compute_maybe_member_count(self):
+        for i in self:
+            if i.company_size and i.member_count:
+                i.maybe_member_count = i.company_size - i.member_count
+
     @api.depends("support_ids", "support_ids.date")
     def _compute_date_last_support(self):
         for i in self:
diff --git a/views/mucs_contract.xml b/views/mucs_contract.xml
index 8d88749e4ce3a66c0bd0193f1ae4b329deec0fd6..dbaf8667cc6a65f353dfaecba66e2f55284efab3 100644
--- a/views/mucs_contract.xml
+++ b/views/mucs_contract.xml
@@ -9,15 +9,20 @@
         <field name="arch" type="xml">
             <search>
                 <field name="partner_id" />
-                <field name="number" />
+                <field name="code" />
                 <filter name="date_start" date="date_start" string="Début de contrat" />
                 <filter name="date_end" date="date_end" string="Fin de contrat" />
                 <group expand="0" name="group_by" string="Group By">
                     <filter
-                        name="group_type"
+                        name="filter_portabilite"
+                        string="Portabilité"
+                        domain="[('is_portabilite', '=', False)]"
+                    />
+                    <filter
+                        name="group_code"
                         string="Type"
                         domain="[]"
-                        context="{'group_by' : 'type'}"
+                        context="{'group_by' : 'code'}"
                     />
                     <filter
                         name="group_partner_id"
@@ -38,9 +43,9 @@
             <form>
                 <group>
                     <group>
-                        <field name="number" />
+                        <field name="code" />
                         <field name="partner_id" />
-                        <field name="type" />
+                        <field name="is_portabilite" />
                     </group>
                     <group>
                         <field name="date_start" />
@@ -48,7 +53,6 @@
                     </group>
                     <group>
                         <field name="member_count" />
-                        <field name="maybe_member_count" />
                     </group>
                 </group>
             </form>
@@ -61,11 +65,10 @@
         <field name="model">mucs.contract</field>
         <field name="arch" type="xml">
             <list>
-                <field name="number" />
                 <field name="partner_id" />
-                <field name="type" />
+                <field name="code" />
+                <field name="is_portabilite" />
                 <field name="member_count" />
-                <field name="maybe_member_count" />
                 <field name="date_start" />
                 <field name="date_end" />
                 <field name="write_date" optional="hide" />
diff --git a/views/res_partner.xml b/views/res_partner.xml
index cf9318191de6b5cf3dda2e33e97ba4eeaccf7cf6..052b6fe614e94855a0bc5575fd34e9d6391b6b59 100644
--- a/views/res_partner.xml
+++ b/views/res_partner.xml
@@ -101,7 +101,10 @@
                                 name="cooperative_form_id"
                                 invisible="not is_cooperative"
                             />
-                            <field name="date_coop"/>
+                            <field
+                                name="date_coop"
+                                invisible="not is_cooperative"
+                            />
                             <field name="date_registration"/>
                             <field name="date_dissolution"/>
                         </group>
@@ -131,6 +134,10 @@
                             <field name="is_member_mutex" />
                             <field name="type_rma_aid" />
                         </group>
+                        <group>
+                            <field name="member_count" />
+                            <field name="maybe_member_count" />
+                        </group>
                     </group>
                     <separator />
                     <group>
@@ -146,12 +153,11 @@
                     <group string="Contrats">
                         <field name="contract_ids" nolabel="1">
                             <list>
-                                <field name="number" />
-                                <field name="type" />
+                                <field name="code" />
+                                <field name="is_portabilite" />
                                 <field name="member_count" />
-                                <field name="maybe_member_count" />
-                                <field name="date_start" optional="hide" />
-                                <field name="date_end" optional="hide" />
+                                <field name="date_start" optional="show" />
+                                <field name="date_end" optional="show" />
                                 <field name="write_date" optional="hide" />
                                 <field name="write_uid" optional="hide" />
                             </list>
@@ -411,7 +417,7 @@
 
     <!-- Action -->
     <record id="contacts.action_contacts" model="ir.actions.act_window">
-        <field name="domain">[('is_cooperative', '!=', True)]</field>
+        <field name="domain">[('is_company', '!=', True)]</field>
     </record>
 
     <record id="coop_partner_action" model="ir.actions.act_window">
@@ -421,7 +427,7 @@
         <field name="view_mode">list,pivot,graph,form</field>
         <field name="view_id" ref="mucs_coop_partner_tree"/>
         <field name="search_view_id" ref="mucs_coop_partner_search" />
-        <field name="domain">[('is_cooperative', '=', True)]</field>
+        <field name="domain">[('is_company', '=', True)]</field>
         <field name="path">coop</field>
         <field name="context">
             {