diff --git a/brian_dashboard_manager/config.py b/brian_dashboard_manager/config.py
index 2fccc79a566613f34d29bbd075e60257c7d9e9f9..499065511f86aac230180f1e65dff6aa97a87804 100644
--- a/brian_dashboard_manager/config.py
+++ b/brian_dashboard_manager/config.py
@@ -58,7 +58,8 @@ DEFAULT_ORGANIZATIONS = [
         ],
         "excluded_folders": {
             "Aggregates": ["CAE1"],
-            "EUMETSAT Multicast": True
+            "EUMETSAT Multicast": True,
+            "NREN Access BETA": True
         }
     },
     {
@@ -88,7 +89,8 @@ DEFAULT_ORGANIZATIONS = [
             "GWS PHY Upstream": True,
             "GWS Direct": True,
             "GWS Indirect": True,
-            "EUMETSAT Multicast": True
+            "EUMETSAT Multicast": True,
+            "NREN Access BETA": True
         }
     },
     {
@@ -107,7 +109,8 @@ DEFAULT_ORGANIZATIONS = [
             "EUMETSAT"
         ],
         "excluded_folders": {
-            "EUMETSAT Multicast": True
+            "EUMETSAT Multicast": True,
+            "NREN Access BETA": True
         }
     },
     {
@@ -135,7 +138,8 @@ DEFAULT_ORGANIZATIONS = [
             "IAS PUBLIC": True,
             "IAS UPSTREAM": True,
             "GWS PHY Upstream": True,
-            "EUMETSAT Multicast": True
+            "EUMETSAT Multicast": True,
+            "NREN Access BETA": True
         }
     }
 ]
diff --git a/brian_dashboard_manager/grafana/provision.py b/brian_dashboard_manager/grafana/provision.py
index 72fdfdb6ce360b120363a13c540b82b152b7b2ea..6e784d7a4f8f3f0b3c62ce13c21cb0021c86e997 100644
--- a/brian_dashboard_manager/grafana/provision.py
+++ b/brian_dashboard_manager/grafana/provision.py
@@ -32,7 +32,8 @@ from brian_dashboard_manager.inventory_provider.interfaces import \
 from brian_dashboard_manager.templating.helpers import \
     get_aggregate_dashboard_data, get_interface_data, \
     get_nren_interface_data, get_dashboard_data, \
-    get_nren_dashboard_data, get_aggregate_interface_data
+    get_nren_dashboard_data, get_aggregate_interface_data, \
+    get_nren_interface_data_old
 
 from brian_dashboard_manager.templating.gws import generate_gws, \
     generate_indirect
@@ -45,6 +46,11 @@ logger = logging.getLogger(__name__)
 
 MAX_WORKERS = 4
 DASHBOARDS = {
+    'NRENBETA': {  # needed for POL1-642 BETA
+        'tag': ['customersbeta'],
+        'folder_name': 'NREN Access BETA',
+        'interfaces': []
+    },
     'NREN': {
         'tag': ['customers'],
         'folder_name': 'NREN Access',
@@ -188,8 +194,15 @@ def provision_folder(token_request, folder_name, dash,
     # dashboard should include error panels
     errors = dash.get('errors', False)
 
+    # needed for POL1-642 BETA
+    is_nren_beta = folder_name == 'NREN Access BETA'
+
     is_nren = folder_name == 'NREN Access'
     if is_nren:
+        data = get_nren_interface_data_old(interfaces)
+        dash_data = get_nren_dashboard_data(data, ds_name, tag)
+    elif is_nren_beta:
+        # needed for POL1-642 BETA
         services = fetch_services(config['reporting_provider'])
         data = get_nren_interface_data(
             services, interfaces, excluded_dashboards)
@@ -206,7 +219,8 @@ def provision_folder(token_request, folder_name, dash,
 
     with ThreadPoolExecutor(max_workers=MAX_WORKERS) as executor:
         for dashboard in dash_data:
-            rendered = render_dashboard(dashboard, nren=is_nren)
+            rendered = render_dashboard(
+                dashboard, nren=is_nren or is_nren_beta)
             if rendered.get('title').lower() in excluded_dashboards:
                 executor.submit(delete_dashboard, token_request,
                                 rendered, folder['id'])
@@ -266,7 +280,9 @@ def is_excluded_folder(org_config, folder_name):
 def excluded_folder_dashboards(org_config, folder_name):
     excluded_folders = org_config.get('excluded_folders', {})
     excluded = excluded_folders.get(folder_name, [])
-    if folder_name == 'NREN Access':
+    # in is needed for POL1-642 BETA ('NREN Access BETA' folder)
+    # revert to == 'NREN Access' when beta is over
+    if 'NREN Access' in folder_name:
         excluded_nrens = org_config.get('excluded_nrens', [])
         excluded = list(set(excluded).union(set(excluded_nrens)))
     return excluded if isinstance(excluded, list) else []
@@ -322,6 +338,12 @@ def _provision_interfaces(config, org_config, ds_name, token):
                 ifaces = DASHBOARDS[dash_name]['interfaces']
                 ifaces.append(iface)
 
+                # TODO: remove all references to NRENBETA
+                # when NREN service BETA is over (homedashboard/helpers)
+                if dash_name == 'NREN':
+                    ifaces = DASHBOARDS['NRENBETA']['interfaces']
+                    ifaces.append(iface)
+
             # add to matched aggregate dashboard
             if dash_name in AGG_DASHBOARDS:
                 ifaces = AGG_DASHBOARDS[dash_name]['interfaces']
@@ -534,7 +556,6 @@ def _delete_unknown_folders(config, token):
         # General is a base folder present in Grafana
         'General',
         # other folders, created outside of the DASHBOARDS list
-        'Service POC',
         'GWS Indirect',
         'GWS Direct',
         'Aggregates',
diff --git a/brian_dashboard_manager/templating/helpers.py b/brian_dashboard_manager/templating/helpers.py
index adff696f552c4e25c1f1b6219f26e97310d2d933..dd71709b4c400d5d667b09843feb545c39131a45 100644
--- a/brian_dashboard_manager/templating/helpers.py
+++ b/brian_dashboard_manager/templating/helpers.py
@@ -67,6 +67,69 @@ def letter_generator():
         yield result
 
 
+def get_nren_interface_data_old(interfaces):
+    """
+    Helper for grouping interfaces into groups of NRENs
+    Extracts information from interfaces to be used in panels.
+    NREN dashboards have aggregate panels at the top and
+    dropdowns for services / physical interfaces.
+    """
+    result = {}
+
+    for interface in interfaces:
+
+        description = interface['description'].strip()
+        interface_name = interface['name']
+        host = interface['router']
+
+        router = host.replace('.geant.net', '')
+        location = host.split('.')[1].upper()
+        panel_title = f"{router} - {{}} - {interface_name} - {description}"
+
+        dashboards_info = interface['dashboards_info']
+
+        for info in dashboards_info:
+            dashboard_name = info['name']
+
+            dashboard = result.get(dashboard_name, {
+                'AGGREGATES': [],
+                'SERVICES': [],
+                'PHYSICAL': []
+            })
+
+            if info['interface_type'] == 'AGGREGATE':
+                dashboard['AGGREGATES'].append({
+                    'interface': interface_name,
+                    'hostname': host,
+                    'alias':
+                        f"{location} - {dashboard_name} ({interface_name})"
+                })
+
+                # link aggregates are also shown
+                # under the physical dropdown
+                dashboard['PHYSICAL'].append({
+                    'title': panel_title,
+                    'hostname': host,
+                    'interface': interface_name
+                })
+
+            elif info['interface_type'] == 'LOGICAL':
+                dashboard['SERVICES'].append({
+                    'title': panel_title,
+                    'hostname': host,
+                    'interface': interface_name
+                })
+            elif info['interface_type'] == 'PHYSICAL':
+                dashboard['PHYSICAL'].append({
+                    'title': panel_title,
+                    'hostname': host,
+                    'interface': interface_name
+                })
+
+            result[dashboard_name] = dashboard
+    return result
+
+
 def get_nren_interface_data(services, interfaces, excluded_dashboards):
     """
     Helper for grouping interfaces into groups of NRENs
@@ -101,10 +164,11 @@ def get_nren_interface_data(services, interfaces, excluded_dashboards):
             name = service.get('name')
             sid = service.get('sid')
             scid = service.get('scid')
+            service_type = service.get('service_type')
 
             measurement = 'scid_rates'
 
-            lag_service = service['service_type'] == 'ETHERNET'
+            lag_service = 'GA-' in sid and service_type == 'ETHERNET'
 
             if lag_service:
                 if len(_interfaces) == 0:
@@ -144,6 +208,7 @@ def get_nren_interface_data(services, interfaces, excluded_dashboards):
         description = interface['description'].strip()
         interface_name = interface['name']
         host = interface['router']
+        port_type = interface.get('port_type', 'unknown').lower()
 
         router = host.replace('.geant.net', '')
         location = host.split('.')[1].upper()
@@ -160,6 +225,14 @@ def get_nren_interface_data(services, interfaces, excluded_dashboards):
                 'PHYSICAL': []
             })
 
+            if port_type == 'access':
+                dashboard['AGGREGATES'].append({
+                    'interface': interface_name,
+                    'hostname': host,
+                    'alias':
+                    f"{location} - {dashboard_name} ({interface_name})"
+                })
+
             if info['interface_type'] == 'AGGREGATE':
                 # link aggregates are also shown
                 # under the physical dropdown
diff --git a/brian_dashboard_manager/templating/templates/homedashboard.json.j2 b/brian_dashboard_manager/templating/templates/homedashboard.json.j2
index 5ed832a9a1aef586f0f986c1b8929e6ed9171bf2..c55c5e7f44e8c219b0e23af47a2e45607bd87a31 100644
--- a/brian_dashboard_manager/templating/templates/homedashboard.json.j2
+++ b/brian_dashboard_manager/templating/templates/homedashboard.json.j2
@@ -49,6 +49,18 @@
       "title": "NREN Access",
       "type": "dashboards"
     },
+    {% if staff %}
+    {
+      "asDropdown": true,
+      "icon": "external link",
+      "tags": [
+        "customersbeta"
+      ],
+      "targetBlank": true,
+      "title": "NREN Access BETA",
+      "type": "dashboards"
+    },
+    {% endif %}
     {
       "asDropdown": true,
       "icon": "external link",
diff --git a/changelog.md b/changelog.md
index a5fb046f48fec5788a000db3bfc86bab4a31d193..f9571d90f7ed601977bd63294712578bc10d51ed 100644
--- a/changelog.md
+++ b/changelog.md
@@ -2,6 +2,10 @@
 
 All notable changes to this project will be documented in this file.
 
+## [0.45] - 2022-12-7
+- POL1-642: Added new service-based NREN dashboard as a separate beta for staff
+- POL1-645: Changed how interfaces/services are addeed to Aggregate panels
+
 ## [0.44] - 2022-09-22
 - POL1-533: Changed LAG services to be added under service list for NREN access dashboards
 
diff --git a/test/test_update.py b/test/test_update.py
index cd09f5771803c7845d5f6a4f64ed9ef906656af3..f3f6b6f1b8d272a801f51a1c62e02837946bd70e 100644
--- a/test/test_update.py
+++ b/test/test_update.py
@@ -659,19 +659,42 @@ def test_provision_folder(data_config, mocker):
         None, 'NREN Access', dashboards['NREN'],
         data_config, 'testdatasource', excluded_dashboards)
 
-    assert len(nren_result) == 6
-    assert nren_result[0]['title'] == 'ASNET-AM'
-    assert nren_result[1]['title'] == 'LITNET'
-    assert nren_result[2]['title'] == 'CESNET'
+    assert len(nren_result) == 3
+    assert nren_result[0]['title'] == 'GEANT'
+    assert nren_result[1]['title'] == 'KIAE'
+    assert nren_result[2]['title'] == 'SWITCH'
 
-    excluded_dashboards = ['ASNET-AM', 'GEANT']
+    excluded_dashboards = ['KIAE', 'GEANT']
     nren_excluded = provision_folder(
         None, 'NREN Access', dashboards['NREN'],
         data_config, 'testdatasource', excluded_dashboards)
 
-    assert len(nren_excluded) == 4
-    assert nren_excluded[0]['title'] == 'LITNET'
-    assert nren_excluded[1]['title'] == 'CESNET'
+    assert len(nren_excluded) == 1
+    assert nren_excluded[0]['title'] == 'SWITCH'
+
+    excluded_dashboards = []
+    nren_result_beta = provision_folder(
+        None, 'NREN Access BETA', dashboards['NREN'],
+        data_config, 'testdatasource', excluded_dashboards)
+
+    assert len(nren_result_beta) == 6
+    assert nren_result_beta[0]['title'] == 'ASNET-AM'
+    assert nren_result_beta[1]['title'] == 'LITNET'
+    assert nren_result_beta[2]['title'] == 'CESNET'
+    assert nren_result_beta[3]['title'] == 'GEANT'
+    assert nren_result_beta[4]['title'] == 'KIAE'
+    assert nren_result_beta[5]['title'] == 'SWITCH'
+
+    excluded_dashboards = ['ASNET-AM', 'GEANT']
+    nren_excluded_beta = provision_folder(
+        None, 'NREN Access BETA', dashboards['NREN'],
+        data_config, 'testdatasource', excluded_dashboards)
+
+    assert len(nren_excluded_beta) == 4
+    assert nren_excluded_beta[0]['title'] == 'LITNET'
+    assert nren_excluded_beta[1]['title'] == 'CESNET'
+    assert nren_excluded_beta[2]['title'] == 'KIAE'
+    assert nren_excluded_beta[3]['title'] == 'SWITCH'
 
     cust_result = provision_folder(None, 'testfolder', dashboards['RE_CUST'],
                                    data_config, 'testdatasource', ['GEANT'])