diff --git a/models/scop_bordereau_cg.py b/models/scop_bordereau_cg.py
index 73e8a112ce86ad67d3f7fbec026a87cce137509c..fbc1de3a5a8a60b77113da9c2669570f48554a55 100644
--- a/models/scop_bordereau_cg.py
+++ b/models/scop_bordereau_cg.py
@@ -228,6 +228,26 @@ class Bordereau(models.Model):
         compute="_compute_has_outstanding",
         store=True,
     )
+    is_cae = fields.Boolean(
+        string="CAE",
+        related="partner_id.cae",
+        search="_search_is_cae",
+    )
+    is_federation_com = fields.Boolean(
+        string="Fédération de la Communication",
+        related="partner_id.is_federation_com",
+        search="_search_is_federation_com",
+    )
+    is_federation_btp = fields.Boolean(
+        string="Fédération du BTP",
+        related="partner_id.is_federation_btp",
+        search="_search_is_federation_btp",
+    )
+    is_federation_indus = fields.Boolean(
+        string="Fédération de l'Industrie",
+        related="partner_id.is_federation_indus",
+        search="_search_is_federation_indus",
+    )
 
     # ------------------------------------------------------
     # Compute
@@ -424,6 +444,34 @@ class Bordereau(models.Model):
 
             r.details = detail
 
+    def _search_is_cae(self, operator, value):
+        if operator not in ("=", "!="):
+            return []
+        else:
+            partner_ids = self.env["res.partner"].search([("cae", operator, value)])
+            return [("partner_id", "in", partner_ids.ids)]
+
+    def _search_is_federation_com(self, operator, value):
+        if operator not in ("=", "!="):
+            return []
+        else:
+            partner_ids = self.env["res.partner"].search([("is_federation_com", operator, value)])
+            return [("partner_id", "in", partner_ids.ids)]
+
+    def _search_is_federation_btp(self, operator, value):
+        if operator not in ("=", "!="):
+            return []
+        else:
+            partner_ids = self.env["res.partner"].search([("is_federation_btp", operator, value)])
+            return [("partner_id", "in", partner_ids.ids)]
+
+    def _search_is_federation_indus(self, operator, value):
+        if operator not in ("=", "!="):
+            return []
+        else:
+            partner_ids = self.env["res.partner"].search([("is_federation_indus", operator, value)])
+            return [("partner_id", "in", partner_ids.ids)]
+
     # ------------------------------------------------------
     # Button functions
     # ------------------------------------------------------
diff --git a/views/scop_bordereau_cg.xml b/views/scop_bordereau_cg.xml
index 366c5dc2b65913c708504d14098bee80a6c43619..7c99dae7bd0315bf1181bc49be6d1f68f855993d 100644
--- a/views/scop_bordereau_cg.xml
+++ b/views/scop_bordereau_cg.xml
@@ -467,6 +467,27 @@
                         string="Assiette VA"
                         domain="[('type_assiette', '=', 'va')]"
                     />
+                    <separator />
+                    <filter
+                        name="is_cae"
+                        string="CAE"
+                        domain="[('is_cae', '=', True)]"
+                    />
+                    <filter
+                        name="is_cae"
+                        string="Fédération Communication"
+                        domain="[('is_federation_com', '=', True)]"
+                    />
+                    <filter
+                        name="is_cae"
+                        string="Fédération BTP"
+                        domain="[('is_federation_btp', '=', True)]"
+                    />
+                    <filter
+                        name="is_federation_indus"
+                        string="Fédération Industrie"
+                        domain="[('is_cae', '=', True)]"
+                    />
                     <group string="Group By">
                         <filter
                             name="by_year"