diff --git a/src/views/HardwareStatus/Inventory/InventoryServiceIndicator.vue b/src/views/HardwareStatus/Inventory/InventoryServiceIndicator.vue
index 65b48c2..01f4a44 100644
--- a/src/views/HardwareStatus/Inventory/InventoryServiceIndicator.vue
+++ b/src/views/HardwareStatus/Inventory/InventoryServiceIndicator.vue
@@ -40,11 +40,10 @@
 <script>
 import PageSection from '@/components/Global/PageSection';
 import BVToastMixin from '@/components/Mixins/BVToastMixin';
-import TableDataFormatterMixin from '@/components/Mixins/TableDataFormatterMixin';
 
 export default {
   components: { PageSection },
-  mixins: [BVToastMixin, TableDataFormatterMixin],
+  mixins: [BVToastMixin],
   computed: {
     systems() {
       let systemData = this.$store.getters['system/systems'][0];
diff --git a/src/views/HardwareStatus/Inventory/InventoryTableAssembly.vue b/src/views/HardwareStatus/Inventory/InventoryTableAssembly.vue
index df435c8..683e481 100644
--- a/src/views/HardwareStatus/Inventory/InventoryTableAssembly.vue
+++ b/src/views/HardwareStatus/Inventory/InventoryTableAssembly.vue
@@ -74,11 +74,11 @@
 import TableRowExpandMixin, {
   expandRowLabel,
 } from '@/components/Mixins/TableRowExpandMixin';
-import TableDataFormatterMixin from '@/components/Mixins/TableDataFormatterMixin';
+import DataFormatterMixin from '@/components/Mixins/DataFormatterMixin';
 
 export default {
   components: { IconChevron, PageSection },
-  mixins: [BVToastMixin, TableRowExpandMixin, TableDataFormatterMixin],
+  mixins: [BVToastMixin, TableRowExpandMixin, DataFormatterMixin],
   data() {
     return {
       fields: [
diff --git a/src/views/HardwareStatus/Inventory/InventoryTableBmcManager.vue b/src/views/HardwareStatus/Inventory/InventoryTableBmcManager.vue
index 428f522..ad73f59 100644
--- a/src/views/HardwareStatus/Inventory/InventoryTableBmcManager.vue
+++ b/src/views/HardwareStatus/Inventory/InventoryTableBmcManager.vue
@@ -52,38 +52,38 @@
               <dl>
                 <!-- Name -->
                 <dt>{{ $t('pageInventory.table.name') }}:</dt>
-                <dd>{{ tableFormatter(item.name) }}</dd>
+                <dd>{{ dataFormatter(item.name) }}</dd>
                 <!-- Part number -->
                 <dt>{{ $t('pageInventory.table.partNumber') }}:</dt>
-                <dd>{{ tableFormatter(item.partNumber) }}</dd>
+                <dd>{{ dataFormatter(item.partNumber) }}</dd>
                 <!-- Serial number -->
                 <dt>{{ $t('pageInventory.table.serialNumber') }}:</dt>
-                <dd>{{ tableFormatter(item.serialNumber) }}</dd>
+                <dd>{{ dataFormatter(item.serialNumber) }}</dd>
                 <!-- Spare part number -->
                 <dt>{{ $t('pageInventory.table.sparePartNumber') }}:</dt>
-                <dd>{{ tableFormatter(item.sparePartNumber) }}</dd>
+                <dd>{{ dataFormatter(item.sparePartNumber) }}</dd>
                 <!-- Model -->
                 <dt>{{ $t('pageInventory.table.model') }}:</dt>
-                <dd>{{ tableFormatter(item.model) }}</dd>
+                <dd>{{ dataFormatter(item.model) }}</dd>
                 <!-- UUID -->
                 <dt>{{ $t('pageInventory.table.uuid') }}:</dt>
-                <dd>{{ tableFormatter(item.uuid) }}</dd>
+                <dd>{{ dataFormatter(item.uuid) }}</dd>
                 <!-- Service entry point UUID -->
                 <dt>{{ $t('pageInventory.table.serviceEntryPointUuid') }}:</dt>
-                <dd>{{ tableFormatter(item.serviceEntryPointUuid) }}</dd>
+                <dd>{{ dataFormatter(item.serviceEntryPointUuid) }}</dd>
               </dl>
             </b-col>
             <b-col class="mt-2" sm="6" xl="6">
               <dl>
                 <!-- Status state -->
                 <dt>{{ $t('pageInventory.table.statusState') }}:</dt>
-                <dd>{{ tableFormatter(item.statusState) }}</dd>
+                <dd>{{ dataFormatter(item.statusState) }}</dd>
                 <!-- Power state -->
                 <dt>{{ $t('pageInventory.table.power') }}:</dt>
-                <dd>{{ tableFormatter(item.powerState) }}</dd>
+                <dd>{{ dataFormatter(item.powerState) }}</dd>
                 <!-- Health rollup -->
                 <dt>{{ $t('pageInventory.table.healthRollup') }}:</dt>
-                <dd>{{ tableFormatter(item.healthRollup) }}</dd>
+                <dd>{{ dataFormatter(item.healthRollup) }}</dd>
                 <!-- BMC date and time -->
                 <dt>{{ $t('pageInventory.table.bmcDateTime') }}:</dt>
                 <dd>
@@ -105,13 +105,13 @@
               <dl>
                 <!-- Manufacturer -->
                 <dt>{{ $t('pageInventory.table.manufacturer') }}:</dt>
-                <dd>{{ tableFormatter(item.manufacturer) }}</dd>
+                <dd>{{ dataFormatter(item.manufacturer) }}</dd>
                 <!-- Description -->
                 <dt>{{ $t('pageInventory.table.description') }}:</dt>
-                <dd>{{ tableFormatter(item.description) }}</dd>
+                <dd>{{ dataFormatter(item.description) }}</dd>
                 <!-- Manager type -->
                 <dt>{{ $t('pageInventory.table.managerType') }}:</dt>
-                <dd>{{ tableFormatter(item.managerType) }}</dd>
+                <dd>{{ dataFormatter(item.managerType) }}</dd>
               </dl>
             </b-col>
             <b-col class="mt-2" sm="6" xl="6">
@@ -127,15 +127,15 @@
               <dl class="ml-4">
                 <dt>{{ $t('pageInventory.table.connectTypesSupported') }}:</dt>
                 <dd>
-                  {{ tableFormatterArray(item.graphicalConsoleConnectTypes) }}
+                  {{ dataFormatterArray(item.graphicalConsoleConnectTypes) }}
                 </dd>
                 <dt>{{ $t('pageInventory.table.maxConcurrentSessions') }}:</dt>
                 <dd>
-                  {{ tableFormatter(item.graphicalConsoleMaxSessions) }}
+                  {{ dataFormatter(item.graphicalConsoleMaxSessions) }}
                 </dd>
                 <dt>{{ $t('pageInventory.table.serviceEnabled') }}:</dt>
                 <dd>
-                  {{ tableFormatter(item.graphicalConsoleEnabled) }}
+                  {{ dataFormatter(item.graphicalConsoleEnabled) }}
                 </dd>
               </dl>
               <!-- Serial console -->
@@ -145,12 +145,12 @@
               <dl class="ml-4">
                 <dt>{{ $t('pageInventory.table.connectTypesSupported') }}:</dt>
                 <dd>
-                  {{ tableFormatterArray(item.serialConsoleConnectTypes) }}
+                  {{ dataFormatterArray(item.serialConsoleConnectTypes) }}
                 </dd>
                 <dt>{{ $t('pageInventory.table.maxConcurrentSessions') }}:</dt>
-                <dd>{{ tableFormatter(item.serialConsoleMaxSessions) }}</dd>
+                <dd>{{ dataFormatter(item.serialConsoleMaxSessions) }}</dd>
                 <dt>{{ $t('pageInventory.table.serviceEnabled') }}:</dt>
-                <dd>{{ tableFormatter(item.serialConsoleEnabled) }}</dd>
+                <dd>{{ dataFormatter(item.serialConsoleEnabled) }}</dd>
               </dl>
             </b-col>
           </b-row>
@@ -168,11 +168,11 @@
 import TableRowExpandMixin, {
   expandRowLabel,
 } from '@/components/Mixins/TableRowExpandMixin';
-import TableDataFormatterMixin from '@/components/Mixins/TableDataFormatterMixin';
+import DataFormatterMixin from '@/components/Mixins/DataFormatterMixin';
 
 export default {
   components: { IconChevron, PageSection, StatusIcon },
-  mixins: [BVToastMixin, TableRowExpandMixin, TableDataFormatterMixin],
+  mixins: [BVToastMixin, TableRowExpandMixin, DataFormatterMixin],
   data() {
     return {
       fields: [
@@ -184,22 +184,22 @@
         {
           key: 'id',
           label: this.$t('pageInventory.table.id'),
-          formatter: this.tableFormatter,
+          formatter: this.dataFormatter,
         },
         {
           key: 'health',
           label: this.$t('pageInventory.table.health'),
-          formatter: this.tableFormatter,
+          formatter: this.dataFormatter,
         },
         {
           key: 'locationNumber',
           label: this.$t('pageInventory.table.locationNumber'),
-          formatter: this.tableFormatter,
+          formatter: this.dataFormatter,
         },
         {
           key: 'identifyLed',
           label: this.$t('pageInventory.table.identifyLed'),
-          formatter: this.tableFormatter,
+          formatter: this.dataFormatter,
         },
       ],
       expandRowLabel: expandRowLabel,
diff --git a/src/views/HardwareStatus/Inventory/InventoryTableChassis.vue b/src/views/HardwareStatus/Inventory/InventoryTableChassis.vue
index 0d53502..3f63c06 100644
--- a/src/views/HardwareStatus/Inventory/InventoryTableChassis.vue
+++ b/src/views/HardwareStatus/Inventory/InventoryTableChassis.vue
@@ -50,22 +50,22 @@
               <dl>
                 <!-- Name -->
                 <dt>{{ $t('pageInventory.table.name') }}:</dt>
-                <dd>{{ tableFormatter(item.name) }}</dd>
+                <dd>{{ dataFormatter(item.name) }}</dd>
                 <!-- Part number -->
                 <dt>{{ $t('pageInventory.table.partNumber') }}:</dt>
-                <dd>{{ tableFormatter(item.partNumber) }}</dd>
+                <dd>{{ dataFormatter(item.partNumber) }}</dd>
                 <!-- Serial Number -->
                 <dt>{{ $t('pageInventory.table.serialNumber') }}:</dt>
-                <dd>{{ tableFormatter(item.serialNumber) }}</dd>
+                <dd>{{ dataFormatter(item.serialNumber) }}</dd>
                 <!-- Model -->
                 <dt>{{ $t('pageInventory.table.model') }}:</dt>
                 <dd class="mb-2">
-                  {{ tableFormatter(item.model) }}
+                  {{ dataFormatter(item.model) }}
                 </dd>
                 <!-- Asset tag -->
                 <dt>{{ $t('pageInventory.table.assetTag') }}:</dt>
                 <dd class="mb-2">
-                  {{ tableFormatter(item.assetTag) }}
+                  {{ dataFormatter(item.assetTag) }}
                 </dd>
               </dl>
             </b-col>
@@ -73,13 +73,13 @@
               <dl>
                 <!-- Status state -->
                 <dt>{{ $t('pageInventory.table.statusState') }}:</dt>
-                <dd>{{ tableFormatter(item.statusState) }}</dd>
+                <dd>{{ dataFormatter(item.statusState) }}</dd>
                 <!-- Power state -->
                 <dt>{{ $t('pageInventory.table.power') }}:</dt>
-                <dd>{{ tableFormatter(item.power) }}</dd>
+                <dd>{{ dataFormatter(item.power) }}</dd>
                 <!-- Health rollup -->
                 <dt>{{ $t('pageInventory.table.healthRollup') }}:</dt>
-                <dd>{{ tableFormatter(item.healthRollup) }}</dd>
+                <dd>{{ dataFormatter(item.healthRollup) }}</dd>
               </dl>
             </b-col>
           </b-row>
@@ -89,20 +89,20 @@
               <dl>
                 <!-- Manufacturer -->
                 <dt>{{ $t('pageInventory.table.manufacturer') }}:</dt>
-                <dd>{{ tableFormatter(item.manufacturer) }}</dd>
+                <dd>{{ dataFormatter(item.manufacturer) }}</dd>
                 <!-- Chassis Type -->
                 <dt>{{ $t('pageInventory.table.chassisType') }}:</dt>
-                <dd>{{ tableFormatter(item.chassisType) }}</dd>
+                <dd>{{ dataFormatter(item.chassisType) }}</dd>
               </dl>
             </b-col>
             <b-col class="mt-2" sm="6" xl="6">
               <dl>
                 <!-- Min power -->
                 <dt>{{ $t('pageInventory.table.minPowerWatts') }}:</dt>
-                <dd>{{ tableFormatter(item.minPowerWatts) }}</dd>
+                <dd>{{ dataFormatter(item.minPowerWatts) }}</dd>
                 <!-- Max power -->
                 <dt>{{ $t('pageInventory.table.maxPowerWatts') }}:</dt>
-                <dd>{{ tableFormatter(item.maxPowerWatts) }}</dd>
+                <dd>{{ dataFormatter(item.maxPowerWatts) }}</dd>
               </dl>
             </b-col>
           </b-row>
@@ -121,11 +121,11 @@
 import TableRowExpandMixin, {
   expandRowLabel,
 } from '@/components/Mixins/TableRowExpandMixin';
-import TableDataFormatterMixin from '@/components/Mixins/TableDataFormatterMixin';
+import DataFormatterMixin from '@/components/Mixins/DataFormatterMixin';
 
 export default {
   components: { IconChevron, PageSection, StatusIcon },
-  mixins: [BVToastMixin, TableRowExpandMixin, TableDataFormatterMixin],
+  mixins: [BVToastMixin, TableRowExpandMixin, DataFormatterMixin],
   data() {
     return {
       fields: [
@@ -137,23 +137,23 @@
         {
           key: 'id',
           label: this.$t('pageInventory.table.id'),
-          formatter: this.tableFormatter,
+          formatter: this.dataFormatter,
         },
         {
           key: 'health',
           label: this.$t('pageInventory.table.health'),
-          formatter: this.tableFormatter,
+          formatter: this.dataFormatter,
           tdClass: 'text-nowrap',
         },
         {
           key: 'locationNumber',
           label: this.$t('pageInventory.table.locationNumber'),
-          formatter: this.tableFormatter,
+          formatter: this.dataFormatter,
         },
         {
           key: 'identifyLed',
           label: this.$t('pageInventory.table.identifyLed'),
-          formatter: this.tableFormatter,
+          formatter: this.dataFormatter,
         },
       ],
       expandRowLabel: expandRowLabel,
diff --git a/src/views/HardwareStatus/Inventory/InventoryTableDimmSlot.vue b/src/views/HardwareStatus/Inventory/InventoryTableDimmSlot.vue
index ed370b5..5d8db83 100644
--- a/src/views/HardwareStatus/Inventory/InventoryTableDimmSlot.vue
+++ b/src/views/HardwareStatus/Inventory/InventoryTableDimmSlot.vue
@@ -57,7 +57,7 @@
               <dl>
                 <!-- Status state -->
                 <dt>{{ $t('pageInventory.table.statusState') }}:</dt>
-                <dd>{{ tableFormatter(item.statusState) }}</dd>
+                <dd>{{ dataFormatter(item.statusState) }}</dd>
               </dl>
             </b-col>
           </b-row>
@@ -74,7 +74,7 @@
 import StatusIcon from '@/components/Global/StatusIcon';
 import TableCellCount from '@/components/Global/TableCellCount';
 
-import TableDataFormatterMixin from '@/components/Mixins/TableDataFormatterMixin';
+import DataFormatterMixin from '@/components/Mixins/DataFormatterMixin';
 import TableSortMixin from '@/components/Mixins/TableSortMixin';
 import Search from '@/components/Global/Search';
 import SearchFilterMixin, {
@@ -88,7 +88,7 @@
   components: { IconChevron, PageSection, StatusIcon, Search, TableCellCount },
   mixins: [
     TableRowExpandMixin,
-    TableDataFormatterMixin,
+    DataFormatterMixin,
     TableSortMixin,
     SearchFilterMixin,
   ],
@@ -104,26 +104,26 @@
         {
           key: 'id',
           label: this.$t('pageInventory.table.id'),
-          formatter: this.tableFormatter,
+          formatter: this.dataFormatter,
           sortable: true,
         },
         {
           key: 'health',
           label: this.$t('pageInventory.table.health'),
-          formatter: this.tableFormatter,
+          formatter: this.dataFormatter,
           sortable: true,
           tdClass: 'text-nowrap',
         },
         {
           key: 'partNumber',
           label: this.$t('pageInventory.table.partNumber'),
-          formatter: this.tableFormatter,
+          formatter: this.dataFormatter,
           sortable: true,
         },
         {
           key: 'serialNumber',
           label: this.$t('pageInventory.table.serialNumber'),
-          formatter: this.tableFormatter,
+          formatter: this.dataFormatter,
           sortable: true,
         },
       ],
diff --git a/src/views/HardwareStatus/Inventory/InventoryTableFans.vue b/src/views/HardwareStatus/Inventory/InventoryTableFans.vue
index 8f1003f..ff56804 100644
--- a/src/views/HardwareStatus/Inventory/InventoryTableFans.vue
+++ b/src/views/HardwareStatus/Inventory/InventoryTableFans.vue
@@ -57,34 +57,34 @@
               <dl>
                 <!-- Name -->
                 <dt>{{ $t('pageInventory.table.name') }}:</dt>
-                <dd>{{ tableFormatter(item.name) }}</dd>
+                <dd>{{ dataFormatter(item.name) }}</dd>
               </dl>
               <dl>
                 <!-- Serial number -->
                 <dt>{{ $t('pageInventory.table.serialNumber') }}:</dt>
-                <dd>{{ tableFormatter(item.serialNumber) }}</dd>
+                <dd>{{ dataFormatter(item.serialNumber) }}</dd>
               </dl>
               <dl>
                 <!-- Part number -->
                 <dt>{{ $t('pageInventory.table.partNumber') }}:</dt>
-                <dd>{{ tableFormatter(item.partNumber) }}</dd>
+                <dd>{{ dataFormatter(item.partNumber) }}</dd>
               </dl>
               <dl>
                 <!-- Fan speed -->
                 <dt>{{ $t('pageInventory.table.fanSpeed') }}:</dt>
-                <dd>{{ tableFormatter(item.speed) }}</dd>
+                <dd>{{ dataFormatter(item.speed) }}</dd>
               </dl>
             </b-col>
             <b-col sm="6" xl="4">
               <dl>
                 <!-- Status state -->
                 <dt>{{ $t('pageInventory.table.statusState') }}:</dt>
-                <dd>{{ tableFormatter(item.statusState) }}</dd>
+                <dd>{{ dataFormatter(item.statusState) }}</dd>
               </dl>
               <dl>
                 <!-- Health Rollup state -->
                 <dt>{{ $t('pageInventory.table.statusHealthRollup') }}:</dt>
-                <dd>{{ tableFormatter(item.healthRollup) }}</dd>
+                <dd>{{ dataFormatter(item.healthRollup) }}</dd>
               </dl>
             </b-col>
           </b-row>
@@ -100,7 +100,7 @@
 import TableCellCount from '@/components/Global/TableCellCount';
 
 import StatusIcon from '@/components/Global/StatusIcon';
-import TableDataFormatterMixin from '@/components/Mixins/TableDataFormatterMixin';
+import DataFormatterMixin from '@/components/Mixins/DataFormatterMixin';
 import TableSortMixin from '@/components/Mixins/TableSortMixin';
 import Search from '@/components/Global/Search';
 import SearchFilterMixin, {
@@ -114,7 +114,7 @@
   components: { IconChevron, PageSection, StatusIcon, Search, TableCellCount },
   mixins: [
     TableRowExpandMixin,
-    TableDataFormatterMixin,
+    DataFormatterMixin,
     TableSortMixin,
     SearchFilterMixin,
   ],
@@ -130,26 +130,26 @@
         {
           key: 'id',
           label: this.$t('pageInventory.table.id'),
-          formatter: this.tableFormatter,
+          formatter: this.dataFormatter,
           sortable: true,
         },
         {
           key: 'health',
           label: this.$t('pageInventory.table.health'),
-          formatter: this.tableFormatter,
+          formatter: this.dataFormatter,
           sortable: true,
           tdClass: 'text-nowrap',
         },
         {
           key: 'partNumber',
           label: this.$t('pageInventory.table.partNumber'),
-          formatter: this.tableFormatter,
+          formatter: this.dataFormatter,
           sortable: true,
         },
         {
           key: 'serialNumber',
           label: this.$t('pageInventory.table.serialNumber'),
-          formatter: this.tableFormatter,
+          formatter: this.dataFormatter,
         },
       ],
       searchFilter: searchFilter,
diff --git a/src/views/HardwareStatus/Inventory/InventoryTablePowerSupplies.vue b/src/views/HardwareStatus/Inventory/InventoryTablePowerSupplies.vue
index 1ef5aa7..ba0896b 100644
--- a/src/views/HardwareStatus/Inventory/InventoryTablePowerSupplies.vue
+++ b/src/views/HardwareStatus/Inventory/InventoryTablePowerSupplies.vue
@@ -57,35 +57,35 @@
               <dl>
                 <!-- Name -->
                 <dt>{{ $t('pageInventory.table.name') }}:</dt>
-                <dd>{{ tableFormatter(item.name) }}</dd>
+                <dd>{{ dataFormatter(item.name) }}</dd>
                 <!-- Part number -->
                 <dt>{{ $t('pageInventory.table.partNumber') }}:</dt>
-                <dd>{{ tableFormatter(item.partNumber) }}</dd>
+                <dd>{{ dataFormatter(item.partNumber) }}</dd>
                 <!-- Serial number -->
                 <dt>{{ $t('pageInventory.table.serialNumber') }}:</dt>
-                <dd>{{ tableFormatter(item.serialNumber) }}</dd>
+                <dd>{{ dataFormatter(item.serialNumber) }}</dd>
                 <!-- Spare part number -->
                 <dt>{{ $t('pageInventory.table.sparePartNumber') }}:</dt>
-                <dd>{{ tableFormatter(item.sparePartNumber) }}</dd>
+                <dd>{{ dataFormatter(item.sparePartNumber) }}</dd>
                 <!-- Model -->
                 <dt>{{ $t('pageInventory.table.model') }}:</dt>
-                <dd>{{ tableFormatter(item.model) }}</dd>
+                <dd>{{ dataFormatter(item.model) }}</dd>
               </dl>
             </b-col>
             <b-col sm="6" xl="4">
               <dl>
                 <!-- Status state -->
                 <dt>{{ $t('pageInventory.table.statusState') }}:</dt>
-                <dd>{{ tableFormatter(item.statusState) }}</dd>
+                <dd>{{ dataFormatter(item.statusState) }}</dd>
                 <!-- Status Health rollup state -->
                 <dt>{{ $t('pageInventory.table.statusHealthRollup') }}:</dt>
-                <dd>{{ tableFormatter(item.statusHealth) }}</dd>
+                <dd>{{ dataFormatter(item.statusHealth) }}</dd>
                 <!-- Efficiency percent -->
                 <dt>{{ $t('pageInventory.table.efficiencyPercent') }}:</dt>
-                <dd>{{ tableFormatter(item.efficiencyPercent) }}</dd>
+                <dd>{{ dataFormatter(item.efficiencyPercent) }}</dd>
                 <!-- Power input watts -->
                 <dt>{{ $t('pageInventory.table.powerInputWatts') }}:</dt>
-                <dd>{{ tableFormatter(item.powerInputWatts) }}</dd>
+                <dd>{{ dataFormatter(item.powerInputWatts) }}</dd>
               </dl>
             </b-col>
           </b-row>
@@ -95,14 +95,14 @@
               <dl>
                 <!-- Manufacturer -->
                 <dt>{{ $t('pageInventory.table.manufacturer') }}:</dt>
-                <dd>{{ tableFormatter(item.manufacturer) }}</dd>
+                <dd>{{ dataFormatter(item.manufacturer) }}</dd>
               </dl>
             </b-col>
             <b-col sm="6" xl="4">
               <dl>
                 <!-- Firmware version -->
                 <dt>{{ $t('pageInventory.table.firmwareVersion') }}:</dt>
-                <dd>{{ tableFormatter(item.firmwareVersion) }}</dd>
+                <dd>{{ dataFormatter(item.firmwareVersion) }}</dd>
               </dl>
             </b-col>
           </b-row>
@@ -118,7 +118,7 @@
 
 import StatusIcon from '@/components/Global/StatusIcon';
 import TableCellCount from '@/components/Global/TableCellCount';
-import TableDataFormatterMixin from '@/components/Mixins/TableDataFormatterMixin';
+import DataFormatterMixin from '@/components/Mixins/DataFormatterMixin';
 import TableSortMixin from '@/components/Mixins/TableSortMixin';
 import Search from '@/components/Global/Search';
 import SearchFilterMixin, {
@@ -132,7 +132,7 @@
   components: { IconChevron, PageSection, StatusIcon, Search, TableCellCount },
   mixins: [
     TableRowExpandMixin,
-    TableDataFormatterMixin,
+    DataFormatterMixin,
     TableSortMixin,
     SearchFilterMixin,
   ],
@@ -148,26 +148,26 @@
         {
           key: 'id',
           label: this.$t('pageInventory.table.id'),
-          formatter: this.tableFormatter,
+          formatter: this.dataFormatter,
           sortable: true,
         },
         {
           key: 'health',
           label: this.$t('pageInventory.table.health'),
-          formatter: this.tableFormatter,
+          formatter: this.dataFormatter,
           sortable: true,
           tdClass: 'text-nowrap',
         },
         {
           key: 'locationNumber',
           label: this.$t('pageInventory.table.locationNumber'),
-          formatter: this.tableFormatter,
+          formatter: this.dataFormatter,
           sortable: true,
         },
         {
           key: 'identifyLed',
           label: this.$t('pageInventory.table.identifyLed'),
-          formatter: this.tableFormatter,
+          formatter: this.dataFormatter,
         },
       ],
       searchFilter: searchFilter,
diff --git a/src/views/HardwareStatus/Inventory/InventoryTableProcessors.vue b/src/views/HardwareStatus/Inventory/InventoryTableProcessors.vue
index 85f1272..fbe5837 100644
--- a/src/views/HardwareStatus/Inventory/InventoryTableProcessors.vue
+++ b/src/views/HardwareStatus/Inventory/InventoryTableProcessors.vue
@@ -72,32 +72,32 @@
               <dl>
                 <!-- Name -->
                 <dt>{{ $t('pageInventory.table.name') }}:</dt>
-                <dd>{{ tableFormatter(item.name) }}</dd>
+                <dd>{{ dataFormatter(item.name) }}</dd>
                 <!-- Part Number -->
                 <dt>{{ $t('pageInventory.table.partNumber') }}:</dt>
-                <dd>{{ tableFormatter(item.partNumber) }}</dd>
+                <dd>{{ dataFormatter(item.partNumber) }}</dd>
                 <!-- Serial Number -->
                 <dt>{{ $t('pageInventory.table.serialNumber') }}:</dt>
-                <dd>{{ tableFormatter(item.serialNumber) }}</dd>
+                <dd>{{ dataFormatter(item.serialNumber) }}</dd>
                 <!-- Spare Part Number -->
                 <dt>{{ $t('pageInventory.table.sparePartNumber') }}:</dt>
-                <dd>{{ tableFormatter(item.sparePartNumber) }}</dd>
+                <dd>{{ dataFormatter(item.sparePartNumber) }}</dd>
                 <!-- Model -->
                 <dt>{{ $t('pageInventory.table.model') }}:</dt>
-                <dd>{{ tableFormatter(item.model) }}</dd>
+                <dd>{{ dataFormatter(item.model) }}</dd>
                 <!-- Asset Tag -->
                 <dt>{{ $t('pageInventory.table.assetTag') }}:</dt>
-                <dd>{{ tableFormatter(item.assetTag) }}</dd>
+                <dd>{{ dataFormatter(item.assetTag) }}</dd>
               </dl>
             </b-col>
             <b-col class="mt-2" sm="6" xl="6">
               <dl>
                 <!-- Status state -->
                 <dt>{{ $t('pageInventory.table.statusState') }}:</dt>
-                <dd>{{ tableFormatter(item.statusState) }}</dd>
+                <dd>{{ dataFormatter(item.statusState) }}</dd>
                 <!-- Health Rollup -->
                 <dt>{{ $t('pageInventory.table.healthRollup') }}:</dt>
-                <dd>{{ tableFormatter(item.healthRollup) }}</dd>
+                <dd>{{ dataFormatter(item.healthRollup) }}</dd>
               </dl>
             </b-col>
           </b-row>
@@ -107,35 +107,35 @@
               <dl>
                 <!-- Manufacturer -->
                 <dt>{{ $t('pageInventory.table.manufacturer') }}:</dt>
-                <dd>{{ tableFormatter(item.manufacturer) }}</dd>
+                <dd>{{ dataFormatter(item.manufacturer) }}</dd>
                 <!-- Processor Type -->
                 <dt>{{ $t('pageInventory.table.processorType') }}:</dt>
-                <dd>{{ tableFormatter(item.processorType) }}</dd>
+                <dd>{{ dataFormatter(item.processorType) }}</dd>
                 <!-- Processor Architecture -->
                 <dt>{{ $t('pageInventory.table.processorArchitecture') }}:</dt>
-                <dd>{{ tableFormatter(item.processorArchitecture) }}</dd>
+                <dd>{{ dataFormatter(item.processorArchitecture) }}</dd>
                 <!-- Instruction Set -->
                 <dt>{{ $t('pageInventory.table.instructionSet') }}:</dt>
-                <dd>{{ tableFormatter(item.instructionSet) }}</dd>
+                <dd>{{ dataFormatter(item.instructionSet) }}</dd>
                 <!-- Version -->
                 <dt>{{ $t('pageInventory.table.version') }}:</dt>
-                <dd>{{ tableFormatter(item.version) }}</dd>
+                <dd>{{ dataFormatter(item.version) }}</dd>
               </dl>
             </b-col>
             <b-col class="mt-1" sm="6" xl="6">
               <dl>
                 <!-- Min Speed MHz -->
                 <dt>{{ $t('pageInventory.table.minSpeedMHz') }}:</dt>
-                <dd>{{ tableFormatter(item.minSpeedMHz) }}</dd>
+                <dd>{{ dataFormatter(item.minSpeedMHz) }}</dd>
                 <!-- Max Speed MHz -->
                 <dt>{{ $t('pageInventory.table.maxSpeedMHz') }}:</dt>
-                <dd>{{ tableFormatter(item.maxSpeedMHz) }}</dd>
+                <dd>{{ dataFormatter(item.maxSpeedMHz) }}</dd>
                 <!-- Total Cores -->
                 <dt>{{ $t('pageInventory.table.totalCores') }}:</dt>
-                <dd>{{ tableFormatter(item.totalCores) }}</dd>
+                <dd>{{ dataFormatter(item.totalCores) }}</dd>
                 <!-- Total Threads -->
                 <dt>{{ $t('pageInventory.table.totalThreads') }}:</dt>
-                <dd>{{ tableFormatter(item.totalThreads) }}</dd>
+                <dd>{{ dataFormatter(item.totalThreads) }}</dd>
               </dl>
             </b-col>
           </b-row>
@@ -152,7 +152,7 @@
 import TableCellCount from '@/components/Global/TableCellCount';
 import BVToastMixin from '@/components/Mixins/BVToastMixin';
 import TableSortMixin from '@/components/Mixins/TableSortMixin';
-import TableDataFormatterMixin from '@/components/Mixins/TableDataFormatterMixin';
+import DataFormatterMixin from '@/components/Mixins/DataFormatterMixin';
 import Search from '@/components/Global/Search';
 import SearchFilterMixin, {
   searchFilter,
@@ -166,7 +166,7 @@
   mixins: [
     BVToastMixin,
     TableRowExpandMixin,
-    TableDataFormatterMixin,
+    DataFormatterMixin,
     TableSortMixin,
     SearchFilterMixin,
   ],
@@ -182,26 +182,26 @@
         {
           key: 'id',
           label: this.$t('pageInventory.table.id'),
-          formatter: this.tableFormatter,
+          formatter: this.dataFormatter,
           sortable: true,
         },
         {
           key: 'health',
           label: this.$t('pageInventory.table.health'),
-          formatter: this.tableFormatter,
+          formatter: this.dataFormatter,
           sortable: true,
           tdClass: 'text-nowrap',
         },
         {
           key: 'locationNumber',
           label: this.$t('pageInventory.table.locationNumber'),
-          formatter: this.tableFormatter,
+          formatter: this.dataFormatter,
           sortable: true,
         },
         {
           key: 'identifyLed',
           label: this.$t('pageInventory.table.identifyLed'),
-          formatter: this.tableFormatter,
+          formatter: this.dataFormatter,
           sortable: false,
         },
       ],
diff --git a/src/views/HardwareStatus/Inventory/InventoryTableSystem.vue b/src/views/HardwareStatus/Inventory/InventoryTableSystem.vue
index c6f425d..d803023 100644
--- a/src/views/HardwareStatus/Inventory/InventoryTableSystem.vue
+++ b/src/views/HardwareStatus/Inventory/InventoryTableSystem.vue
@@ -50,14 +50,14 @@
               <dl>
                 <!-- Serial number -->
                 <dt>{{ $t('pageInventory.table.serialNumber') }}:</dt>
-                <dd>{{ tableFormatter(item.serialNumber) }}</dd>
+                <dd>{{ dataFormatter(item.serialNumber) }}</dd>
                 <!-- Model -->
                 <dt>{{ $t('pageInventory.table.model') }}:</dt>
-                <dd>{{ tableFormatter(item.model) }}</dd>
+                <dd>{{ dataFormatter(item.model) }}</dd>
                 <!-- Asset tag -->
                 <dt>{{ $t('pageInventory.table.assetTag') }}:</dt>
                 <dd class="mb-2">
-                  {{ tableFormatter(item.assetTag) }}
+                  {{ dataFormatter(item.assetTag) }}
                 </dd>
               </dl>
             </b-col>
@@ -65,13 +65,13 @@
               <dl>
                 <!-- Status state -->
                 <dt>{{ $t('pageInventory.table.statusState') }}:</dt>
-                <dd>{{ tableFormatter(item.statusState) }}</dd>
+                <dd>{{ dataFormatter(item.statusState) }}</dd>
                 <!-- Power state -->
                 <dt>{{ $t('pageInventory.table.power') }}:</dt>
-                <dd>{{ tableFormatter(item.powerState) }}</dd>
+                <dd>{{ dataFormatter(item.powerState) }}</dd>
                 <!-- Health rollup -->
                 <dt>{{ $t('pageInventory.table.healthRollup') }}:</dt>
-                <dd>{{ tableFormatter(item.healthRollup) }}</dd>
+                <dd>{{ dataFormatter(item.healthRollup) }}</dd>
               </dl>
             </b-col>
           </b-row>
@@ -81,19 +81,19 @@
               <dl>
                 <!-- Manufacturer -->
                 <dt>{{ $t('pageInventory.table.manufacturer') }}:</dt>
-                <dd>{{ tableFormatter(item.assetTag) }}</dd>
+                <dd>{{ dataFormatter(item.assetTag) }}</dd>
                 <!-- Description -->
                 <dt>{{ $t('pageInventory.table.description') }}:</dt>
-                <dd>{{ tableFormatter(item.description) }}</dd>
+                <dd>{{ dataFormatter(item.description) }}</dd>
                 <!-- Sub Model -->
                 <dt>{{ $t('pageInventory.table.subModel') }}:</dt>
                 <dd>
-                  {{ tableFormatter(item.subModel) }}
+                  {{ dataFormatter(item.subModel) }}
                 </dd>
                 <!-- System Type -->
                 <dt>{{ $t('pageInventory.table.systemType') }}:</dt>
                 <dd>
-                  {{ tableFormatter(item.systemType) }}
+                  {{ dataFormatter(item.systemType) }}
                 </dd>
               </dl>
             </b-col>
@@ -105,13 +105,13 @@
               <dl class="ml-4">
                 <!-- Status state -->
                 <dt>{{ $t('pageInventory.table.statusState') }}:</dt>
-                <dd>{{ tableFormatter(item.memorySummaryState) }}</dd>
+                <dd>{{ dataFormatter(item.memorySummaryState) }}</dd>
                 <!-- Health -->
                 <dt>{{ $t('pageInventory.table.health') }}:</dt>
-                <dd>{{ tableFormatter(item.memorySummaryHealth) }}</dd>
+                <dd>{{ dataFormatter(item.memorySummaryHealth) }}</dd>
                 <!-- Health Roll  -->
                 <dt>{{ $t('pageInventory.table.healthRollup') }}:</dt>
-                <dd>{{ tableFormatter(item.memorySummaryHealthRoll) }}</dd>
+                <dd>{{ dataFormatter(item.memorySummaryHealthRoll) }}</dd>
               </dl>
               <!-- Processor Summary -->
               <p class="mt-1 mb-2 h6 float-none m-0">
@@ -120,16 +120,16 @@
               <dl class="ml-4">
                 <!-- Status state -->
                 <dt>{{ $t('pageInventory.table.statusState') }}:</dt>
-                <dd>{{ tableFormatter(item.processorSummaryState) }}</dd>
+                <dd>{{ dataFormatter(item.processorSummaryState) }}</dd>
                 <!-- Health -->
                 <dt>{{ $t('pageInventory.table.health') }}:</dt>
-                <dd>{{ tableFormatter(item.processorSummaryHealth) }}</dd>
+                <dd>{{ dataFormatter(item.processorSummaryHealth) }}</dd>
                 <!-- Health Rollup -->
                 <dt>{{ $t('pageInventory.table.healthRollup') }}:</dt>
-                <dd>{{ tableFormatter(item.processorSummaryHealthRoll) }}</dd>
+                <dd>{{ dataFormatter(item.processorSummaryHealthRoll) }}</dd>
                 <!-- Count -->
                 <dt>{{ $t('pageInventory.table.count') }}:</dt>
-                <dd>{{ tableFormatter(item.processorSummaryCount) }}</dd>
+                <dd>{{ dataFormatter(item.processorSummaryCount) }}</dd>
               </dl>
             </b-col>
           </b-row>
@@ -149,11 +149,11 @@
 import TableRowExpandMixin, {
   expandRowLabel,
 } from '@/components/Mixins/TableRowExpandMixin';
-import TableDataFormatterMixin from '@/components/Mixins/TableDataFormatterMixin';
+import DataFormatterMixin from '@/components/Mixins/DataFormatterMixin';
 
 export default {
   components: { IconChevron, PageSection, StatusIcon },
-  mixins: [BVToastMixin, TableRowExpandMixin, TableDataFormatterMixin],
+  mixins: [BVToastMixin, TableRowExpandMixin, DataFormatterMixin],
   data() {
     return {
       fields: [
@@ -165,29 +165,29 @@
         {
           key: 'id',
           label: this.$t('pageInventory.table.id'),
-          formatter: this.tableFormatter,
+          formatter: this.dataFormatter,
         },
         {
           key: 'hardwareType',
           label: this.$t('pageInventory.table.hardwareType'),
-          formatter: this.tableFormatter,
+          formatter: this.dataFormatter,
           tdClass: 'text-nowrap',
         },
         {
           key: 'health',
           label: this.$t('pageInventory.table.health'),
-          formatter: this.tableFormatter,
+          formatter: this.dataFormatter,
           tdClass: 'text-nowrap',
         },
         {
           key: 'locationNumber',
           label: this.$t('pageInventory.table.locationNumber'),
-          formatter: this.tableFormatter,
+          formatter: this.dataFormatter,
         },
         {
           key: 'locationIndicatorActive',
           label: this.$t('pageInventory.table.identifyLed'),
-          formatter: this.tableFormatter,
+          formatter: this.dataFormatter,
         },
       ],
       expandRowLabel: expandRowLabel,
