diff --git a/pbsnodes/polaris/polaris_nodes_states.sh b/pbsnodes/polaris/polaris_nodes_states.sh
index fbe019e35702a109b16912c4ed6084b9ca35e591..624a2fe1bb29a44cb6997cdb1a9a34ba20789924 100755
--- a/pbsnodes/polaris/polaris_nodes_states.sh
+++ b/pbsnodes/polaris/polaris_nodes_states.sh
@@ -2,4 +2,4 @@
 
 # goal: print list of current unique values for node state
 
-pbsnodes -a -F json | jq '[.nodes[].state] | unique'
+pbsnodes -a -F json | jq -r '[.nodes[].state] | @tsv' | tr "\t" "\n" | sort | uniq -c | sort -rn
diff --git a/pbsnodes/polaris/polaris_nodes_states_debug.sh b/pbsnodes/polaris/polaris_nodes_states_debug.sh
new file mode 100755
index 0000000000000000000000000000000000000000..5bbf5d1c6cfdc7c01d7743dab28fb0f484260b07
--- /dev/null
+++ b/pbsnodes/polaris/polaris_nodes_states_debug.sh
@@ -0,0 +1,5 @@
+#! /bin/bash
+
+# goal: print list of current unique values for node state
+
+pbsnodes -a -F json | jq -r '.nodes[] | select(.resources_available.debug=="True" and .resources_available.build!="True" and .resources_available.demand!="True") | [.state] | @tsv' | tr "\t" "\n" | sort | uniq -c | sort -rn
diff --git a/pbsnodes/polaris/polaris_nodes_states_demand.sh b/pbsnodes/polaris/polaris_nodes_states_demand.sh
new file mode 100755
index 0000000000000000000000000000000000000000..c14918f45f4ef342e94e0f1cf56308364f95611f
--- /dev/null
+++ b/pbsnodes/polaris/polaris_nodes_states_demand.sh
@@ -0,0 +1,5 @@
+#! /bin/bash
+
+# goal: print list of current unique values for node state
+
+pbsnodes -a -F json | jq -r '.nodes[] | select(.resources_available.demand=="True" and .resources_available.build!="True") | [.state] | @tsv' | tr "\t" "\n" | sort | uniq -c | sort -rn
diff --git a/pbsnodes/polaris/polaris_nodes_states_preemptable.sh b/pbsnodes/polaris/polaris_nodes_states_preemptable.sh
new file mode 100755
index 0000000000000000000000000000000000000000..0508b3465ff8a4c31ea68f341d835e5ba3ef4e3b
--- /dev/null
+++ b/pbsnodes/polaris/polaris_nodes_states_preemptable.sh
@@ -0,0 +1,5 @@
+#! /bin/bash
+
+# goal: print list of current unique values for node state
+
+pbsnodes -a -F json | jq -r '.nodes[] | select(.resources_available.demand=="True" and .resources_available.build!="True" and .resources_available.debug!="True") | [.state] | @tsv' | tr "\t" "\n" | sort | uniq -c | sort -rn
diff --git a/pbsnodes/polaris/polaris_nodes_states_prod.sh b/pbsnodes/polaris/polaris_nodes_states_prod.sh
new file mode 100755
index 0000000000000000000000000000000000000000..1029545e438ed7afecbbf95381a8551475d7e534
--- /dev/null
+++ b/pbsnodes/polaris/polaris_nodes_states_prod.sh
@@ -0,0 +1,5 @@
+#! /bin/bash
+
+# goal: print list of current unique values for node state
+
+pbsnodes -a -F json | jq -r '.nodes[] | select( .resources_available.debug!="True" and .resources_available.demand!="True" and .resources_available.build!="True") | [.state] | @tsv' | tr "\t" "\n" | sort | uniq -c | sort -rn