diff --git a/cfg_checker/reports/reporter.py b/cfg_checker/reports/reporter.py
index 3d3ede3..e0a746e 100644
--- a/cfg_checker/reports/reporter.py
+++ b/cfg_checker/reports/reporter.py
@@ -25,6 +25,7 @@
 
 UP = const.NODE_UP
 DOWN = const.NODE_DOWN
+SKIP = const.NODE_SKIP
 
 
 def line_breaks(text):
@@ -265,7 +266,7 @@
             # parse them and put into dict
             for node, dt in _dict.items():
                 dt[_key] = {}
-                if dt['status'] == DOWN:
+                if dt['status'] == DOWN or dt['status'] == SKIP:
                     continue
                 if not dt[_key_r]:
                     # no stats collected, put negatives
@@ -295,7 +296,7 @@
             # parse them and put into dict
             for node, dt in _dict.items():
                 dt[_key] = {}
-                if dt['status'] == DOWN:
+                if dt['status'] == DOWN or dt['status'] == SKIP:
                     continue
                 if not dt[_key_r]:
                     # no stats collected, put negatives
@@ -327,7 +328,7 @@
             _f_cmd(_cmd, _key_r, target_dict=_dict)
             for node, dt in _dict.items():
                 dt[_key] = {}
-                if dt['status'] == DOWN:
+                if dt['status'] == DOWN or dt['status'] == SKIP:
                     continue
                 if not dt[_key_r]:
                     # no stats collected, put negatives
@@ -359,7 +360,7 @@
             for node in _kvm:
                 dt = _dict[node]
                 dt[_key] = {}
-                if dt['status'] == DOWN:
+                if dt['status'] == DOWN or dt['status'] == SKIP:
                     continue
                 if not dt[_key_r]:
                     # no stats collected, put negatives
@@ -394,7 +395,7 @@
                 # totals for start mark
                 _ts = [0, 0, 0, 0]
                 # skip if node is down
-                if dt['status'] == DOWN:
+                if dt['status'] == DOWN or dt['status'] == SKIP:
                     dt[_key] = {
                         "total": [-1, -1, -1, -1]
                     }
@@ -492,6 +493,10 @@
                 dt["disk"]["unknown"] = {}
                 dt["disk_max_dev"] = "unknown"
                 continue
+            if dt['status'] == SKIP:
+                dt["disk"]["skipped"] = {}
+                dt["disk_max_dev"] = "skipped"
+                continue
             if not dt[_key_r]:
                 # no stats collected, put negatives
                 dt.pop(_key_r)
