diff --git a/dagflow/bundles/load_parameters.py b/dagflow/bundles/load_parameters.py
index f0b496af620c2b73c650b1bca1d25b19f785db3a..f5e2bf3869f58d7f1a8c6e6687a890b3abb8f31f 100644
--- a/dagflow/bundles/load_parameters.py
+++ b/dagflow/bundles/load_parameters.py
@@ -202,17 +202,21 @@ def load_parameters(acfg):
 
     subkeys = cfg['replicate']
 
-    normpars = []
+    normpars = {}
     for key_general, varcfg in iterate_varcfgs(cfg):
+        key_general_str = '.'.join(key_general)
+        varcfg.setdefault(state, True)
+
+        normpars_i = normpars.setdefault(key_general[0], [])
         for subkey in subkeys:
             key = key_general + subkey
             key_str = '.'.join(key)
-            label = varcfg['label']
+            subkey_str = '.'.join(subkey)
+
+            label = varcfg['label'].copy()
             label['key'] = key_str
             label.setdefault('text', key_str)
 
-            varcfg.setdefault(state, True)
-
             par = Parameters.from_numbers(**varcfg)
             if par.is_constrained:
                 target = ('constrained', path)
@@ -221,22 +225,23 @@ def load_parameters(acfg):
             else:
                 target = ('free', path)
 
-        ret[('parameter_node',)+target+key] = par
+            ret[('parameter_node',)+target+key] = par
 
-        ptarget = ('parameter', target)
-        for subpar in par.parameters:
-            ret[ptarget+key] = subpar
+            ptarget = ('parameter', target)
+            for subpar in par.parameters:
+                ret[ptarget+key] = subpar
 
-        ntarget = ('parameter', 'normalized', path)
-        for subpar in par.norm_parameters:
-            ret[ntarget+key] = subpar
+            ntarget = ('parameter', 'normalized', path)
+            for subpar in par.norm_parameters:
+                ret[ntarget+key] = subpar
 
-            normpars.append(subpar)
+                normpars_i.append(subpar)
 
-    if normpars:
-        ssq = SumSq(f'nuisance for {pathstr}')
-        (n.output for n in normpars) >> ssq
-        ssq.close()
-        ret[('stat', 'nuisance_parts', path)] = ssq
+        for name, np in normpars.items():
+            if np:
+                ssq = SumSq(f'nuisance for {pathstr}.{name}')
+                (n.output for n in np) >> ssq
+                ssq.close()
+                ret[('stat', 'nuisance_parts', path, name)] = ssq
 
     return ret