diff --git a/lib/philomena_web/templates/tag_change/index.html.slime b/lib/philomena_web/templates/tag_change/index.html.slime
index 36f0630e..a5f6b64b 100644
--- a/lib/philomena_web/templates/tag_change/index.html.slime
+++ b/lib/philomena_web/templates/tag_change/index.html.slime
@@ -19,6 +19,7 @@
           th Action
           th Timestamp
           th User
+          th Retained?
           = if reverts_tag_changes?(@conn) do
             th Moderation
 
@@ -62,6 +63,10 @@
                   ' This user is a staff member.
                   br
                   ' Ask them before reverting their changes.
+            = if tag_change_retained(tag_change) do
+              td.success Yes
+            - else
+              td.danger No
             = if reverts_tag_changes?(@conn) do
               td
                 a href=Routes.image_tag_change_path(@conn, :delete, tag_change.image, tag_change) data-method="delete" data-confirm="Are you really, really sure?"
diff --git a/lib/philomena_web/views/tag_change_view.ex b/lib/philomena_web/views/tag_change_view.ex
index e821ca93..b464eb60 100644
--- a/lib/philomena_web/views/tag_change_view.ex
+++ b/lib/philomena_web/views/tag_change_view.ex
@@ -15,4 +15,22 @@ defmodule PhilomenaWeb.TagChangeView do
 
   def reverts_tag_changes?(conn),
     do: can?(conn, :revert, Philomena.TagChanges.TagChange)
+
+  def tag_change_retained(%{image: image, added: true, tag: %{id: tag_id}}) do
+    Enum.any?(image.tags, &(&1.id == tag_id))
+  end
+
+  def tag_change_retained(%{image: image, added: true, tag_name_cache: tag_name}) do
+    Enum.any?(image.tags, &(&1.name == tag_name))
+  end
+
+  def tag_change_retained(%{image: image, added: false, tag: %{id: tag_id}}) do
+    not Enum.any?(image.tags, &(&1.id == tag_id))
+  end
+
+  def tag_change_retained(%{image: image, added: false, tag_name_cache: tag_name}) do
+    not Enum.any?(image.tags, &(&1.name == tag_name))
+  end
+
+  def tag_change_retained(_), do: false
 end