diff --git a/brian_dashboard_manager/grafana/provision.py b/brian_dashboard_manager/grafana/provision.py
index ac7b1beaf3bf13d862fc11a1bff4baffdfcb6ec8..55faf80ed1dd47562b06d1b44667f3379b80d8fb 100644
--- a/brian_dashboard_manager/grafana/provision.py
+++ b/brian_dashboard_manager/grafana/provision.py
@@ -195,6 +195,11 @@ AGG_DASHBOARDS = {
         'dashboard_name': 'ANA',
         'interfaces': []
     },
+    'EAP': {
+        'tag': 'eap',
+        'dashboard_name': 'EAP Aggregate',
+        'interfaces': []
+    }
 }
 
 NREN_CATEGORIES = {
@@ -470,6 +475,17 @@ def _provision_interfaces(config, org_config, ds_name, token):
                 ifaces = AGG_DASHBOARDS[dash_name]['interfaces']
                 ifaces.append(iface)
 
+        # aggregate dashboards based on dashboards_info
+        # there is no way for inventory provider to identify an interface as
+        # belonging to an EAP NREN at the level 'dashboards' is set
+        # (based on description and without access to service data)
+        # so we have to do this as an extra check on 'dashboards_info'
+        for dashboard in iface['dashboards_info']:
+            dash_name = dashboard['name']
+            if dash_name in AGG_DASHBOARDS:
+                ifaces = AGG_DASHBOARDS[dash_name]['interfaces']
+                ifaces.append(iface)
+
     # provision dashboards and their folders
     with ThreadPoolExecutor(max_workers=MAX_WORKERS) as executor:
         provisioned = []