diff --git a/app/assets/javascripts/repositories/renderers/view_renderers.js b/app/assets/javascripts/repositories/renderers/view_renderers.js
index 4fb5c7da8..6696cec90 100644
--- a/app/assets/javascripts/repositories/renderers/view_renderers.js
+++ b/app/assets/javascripts/repositories/renderers/view_renderers.js
@@ -189,7 +189,7 @@ $.fn.dataTable.render.AssignedTasksValue = function(data, row) {
   }
   if (row.hasActiveReminders) {
     return `<div class="dropdown row-reminders-dropdown" data-row-reminders-url="${row.rowRemindersUrl}" tabindex='-1'>
-              <i class="fas fa-bell dropdown-toggle row-reminders-icon" data-toggle="dropdown" 
+              <i class="fas fa-bell dropdown-toggle row-reminders-icon" data-toggle="dropdown"
                 id="rowReminders${row.DT_RowId}}"></i>
               <ul class="dropdown-menu" role="menu" aria-labelledby="rowReminders${row.DT_RowId}">
               </ul>
@@ -201,23 +201,15 @@ $.fn.dataTable.render.AssignedTasksValue = function(data, row) {
 };
 
 $.fn.dataTable.render.RepositoryStockValue = function(data) {
-  var stockAlertTag;
   if (data) {
     if (data.value) {
-      if (data.value.stock_amount <= 0) {
-        stockAlertTag = 'stock-alert';
-      } else {
-        stockAlertTag = parseFloat(data.value.stock_amount) < parseFloat(data.value.low_stock_threshold)
-          ? 'stock-low-stock-alert' : '';
-      }
-
       if (data.stock_managable) {
-        return `<a class="manage-repository-stock-value-link stock-value-view-render ${stockAlertTag}">
+        return `<a class="manage-repository-stock-value-link stock-value-view-render stock-${data.stock_status}">
                   ${data.value.stock_formatted}
                   </a>`;
       }
       return `<span class="stock-value-view-render
-                           ${data.stock_managable !== undefined ? stockAlertTag : ''}">
+                           ${data.stock_managable !== undefined ? `stock-${data.stock_status}` : ''}">
                 ${data.value.stock_formatted}
                 </span>`;
     }
@@ -238,27 +230,27 @@ $.fn.dataTable.render.defaultRepositoryStockValue = function() {
 };
 
 $.fn.dataTable.render.RepositoryStockConsumptionValue = function(data = {}) {
-  if (data.value && data.value.consumed_stock !== null) {
-    if (data.consumptionManagable) {
-      return `<a href="${data.updateStockConsumptionUrl}"
-                 class="manage-repository-consumed-stock-value-link stock-value-view-render">
-                ${data.value.consumed_stock_formatted}
-              </a>`;
-    }
-    return `<span class="stock-value-view-render">${data.value.consumed_stock_formatted}</span>`;
+  if (!data.stock_present) {
+    return '<span class="empty-consumed-stock-render"> - </span>';
   }
-  if (data.stock_present && data.consumptionManagable) {
+  if (!data.consumptionManagable) {
+    return `<span class="consumption-locked">
+    ${I18n.t('libraries.manange_modal_column.stock_type.stock_consumption_locked')}
+    </span>`;
+  }
+  if (!data.consumptionPermitted) {
+    return `<span class="empty-consumed-stock-render">${data.value.consumed_stock_formatted}</span>`;
+  }
+  if (!data.value.consumed_stock) {
     return `<a href="${data.updateStockConsumptionUrl}" class="manage-repository-consumed-stock-value-link">
               <i class="fas fa-vial"></i>
               ${I18n.t('libraries.manange_modal_column.stock_type.add_stock_consumption')}
             </a>`;
   }
-  if (data.stock_present && !data.consumptionManagable) {
-    return `<span class="consumption-locked">
-              ${I18n.t('libraries.manange_modal_column.stock_type.stock_consumption_locked')}
-            </span>`;
-  }
-  return '<span class="empty-consumed-stock-render"> - </span>';
+  return `<a href="${data.updateStockConsumptionUrl}"
+                class="manage-repository-consumed-stock-value-link stock-value-view-render">
+              ${data.value.consumed_stock_formatted}
+            </a>`;
 };
 
 $.fn.dataTable.render.defaultRepositoryStockConsumptionValue = function() {
diff --git a/app/assets/stylesheets/my_modules/repositories.scss b/app/assets/stylesheets/my_modules/repositories.scss
index 2bec6420b..7d89f3e32 100644
--- a/app/assets/stylesheets/my_modules/repositories.scss
+++ b/app/assets/stylesheets/my_modules/repositories.scss
@@ -193,7 +193,7 @@
         padding: 0;
       }
 
-      .stock-low-stock-alert {
+      .stock-low {
         &::before {
           @include font-awesome;
           color: $brand-warning;
@@ -201,7 +201,7 @@
         }
       }
 
-      .stock-alert {
+      .stock-empty {
         color: $brand-danger;
 
         &::before {
diff --git a/app/assets/stylesheets/repository/repository_table.scss b/app/assets/stylesheets/repository/repository_table.scss
index 8bbd4026f..63e49e457 100644
--- a/app/assets/stylesheets/repository/repository_table.scss
+++ b/app/assets/stylesheets/repository/repository_table.scss
@@ -229,7 +229,7 @@
 
   // Stock
   .stock-value-view-render {
-    &.stock-alert {
+    &.stock-empty {
       color: $brand-danger;
 
       &::before {
@@ -238,7 +238,7 @@
       }
     }
 
-    &.stock-low-stock-alert {
+    &.stock-low {
       &::before {
         @include font-awesome;
         color: $brand-warning;
diff --git a/app/helpers/repository_datatable_helper.rb b/app/helpers/repository_datatable_helper.rb
index 59323f9da..44db5ec20 100644
--- a/app/helpers/repository_datatable_helper.rb
+++ b/app/helpers/repository_datatable_helper.rb
@@ -59,13 +59,18 @@ module RepositoryDatatableHelper
       # always add stock cell, even if empty
       row['stock'] = stock_present ? display_cell_value(record.repository_stock_cell, team, repository) : {}
       row['stock'][:stock_managable] = stock_managable
+
+      if !options[:include_stock_consumption] || can_update_my_module_stock_consumption?(options[:my_module])
+        row['stock'][:stock_status] = record.repository_stock_cell&.value&.status
+      end
+
       row['stock']['value_type'] = 'RepositoryStockValue'
 
       if options[:include_stock_consumption] && record.repository.has_stock_management? && options[:my_module]
         consumption_managable = stock_consumption_managable?(record, repository, options[:my_module])
-
         row['consumedStock'] = {
           stock_present: stock_present,
+          consumptionPermitted: can_update_my_module_stock_consumption?(options[:my_module]),
           consumptionManagable: consumption_managable,
           updateStockConsumptionUrl: Rails.application.routes.url_helpers.consume_modal_my_module_repository_path(
             options[:my_module],
@@ -75,7 +80,7 @@ module RepositoryDatatableHelper
           value: {
             consumed_stock: record.consumed_stock,
             consumed_stock_formatted:
-              "#{record.consumed_stock} #{record.repository_stock_value&.repository_stock_unit_item&.data}"
+              "#{record.consumed_stock || 0} #{record.repository_stock_value&.repository_stock_unit_item&.data}"
           }
         }
       end
@@ -110,6 +115,11 @@ module RepositoryDatatableHelper
         consumption_managable = stock_consumption_managable?(record, repository, my_module)
 
         row['stock'] = stock_present ? display_cell_value(record.repository_stock_cell, record.repository.team, repository) : {}
+
+        if !options[:include_stock_consumption] || can_update_my_module_stock_consumption?(my_module)
+          row['stock'][:stock_status] = record.repository_stock_cell&.value&.status
+        end
+
         row['stock'][:stock_managable] = stock_managable
         if record.repository.is_a?(RepositorySnapshot)
           row['consumedStock'] =
@@ -126,15 +136,15 @@ module RepositoryDatatableHelper
                 my_module, record.repository, row_id: record.id
               )
           end
-          if record.consumed_stock.present?
-            row['consumedStock'][:value] = {
-              consumed_stock: record.consumed_stock,
-              consumed_stock_formatted:
-                "#{record.consumed_stock} #{record.repository_stock_value&.repository_stock_unit_item&.data}"
-            }
-          end
+          row['consumedStock'][:value] = {
+            consumed_stock: record.consumed_stock,
+            consumed_stock_formatted:
+              "#{record.consumed_stock || 0} #{record.repository_stock_value&.repository_stock_unit_item&.data}"
+          }
         end
+
         row['consumedStock']['stock_present'] = stock_present
+        row['consumedStock']['consumptionPermitted'] = can_update_my_module_stock_consumption?(my_module)
         row['consumedStock']['consumptionManagable'] = consumption_managable
       end
 
@@ -260,6 +270,6 @@ module RepositoryDatatableHelper
     return false unless record.repository.is_a?(Repository)
     return false if repository.archived? || record.archived?
 
-    can_update_my_module_stock_consumption?(my_module)
+    true
   end
 end
diff --git a/app/models/repository_stock_value.rb b/app/models/repository_stock_value.rb
index 05c84b02b..3286c21a0 100644
--- a/app/models/repository_stock_value.rb
+++ b/app/models/repository_stock_value.rb
@@ -39,10 +39,12 @@ class RepositoryStockValue < ApplicationRecord
     end
   end
 
-  def low_stock?
-    return false unless low_stock_threshold
+  def status
+    return :empty if amount <= 0
 
-    amount <= low_stock_threshold
+    return :low if low_stock_threshold && amount <= low_stock_threshold
+
+    :normal
   end
 
   def self.add_filter_condition(repository_rows, join_alias, filter_element)