diff --git a/client/src/main/java/ctbrec/ui/JavaFxModel.java b/client/src/main/java/ctbrec/ui/JavaFxModel.java
index c76bc9ee..c7573adc 100644
--- a/client/src/main/java/ctbrec/ui/JavaFxModel.java
+++ b/client/src/main/java/ctbrec/ui/JavaFxModel.java
@@ -281,6 +281,16 @@ public class JavaFxModel implements Model {
         return delegate.getLastRecorded();
     }
 
+    @Override
+    public Instant getAddedTimestamp() {
+        return delegate.getAddedTimestamp();
+    }
+
+    @Override
+    public void setAddedTimestamp(Instant timestamp) {
+        delegate.setAddedTimestamp(timestamp);
+    }
+
     @Override
     public int compareTo(Model o) {
         return delegate.compareTo(o);
diff --git a/client/src/main/java/ctbrec/ui/tabs/recorded/AbstractRecordedModelsTab.java b/client/src/main/java/ctbrec/ui/tabs/recorded/AbstractRecordedModelsTab.java
index 59199795..989cff43 100644
--- a/client/src/main/java/ctbrec/ui/tabs/recorded/AbstractRecordedModelsTab.java
+++ b/client/src/main/java/ctbrec/ui/tabs/recorded/AbstractRecordedModelsTab.java
@@ -3,6 +3,7 @@ package ctbrec.ui.tabs.recorded;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
+import java.time.Instant;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
@@ -34,6 +35,7 @@ import ctbrec.ui.action.PlayAction;
 import ctbrec.ui.action.SetPortraitAction;
 import ctbrec.ui.action.StartRecordingAction;
 import ctbrec.ui.controls.CustomMouseBehaviorContextMenu;
+import ctbrec.ui.controls.DateTimeCellFactory;
 import ctbrec.ui.controls.Dialogs;
 import ctbrec.ui.controls.SearchBox;
 import ctbrec.ui.controls.autocomplete.AutoFillTextField;
@@ -129,7 +131,6 @@ public abstract class AbstractRecordedModelsTab extends Tab implements TabSelect
     }
 
     protected void createGui() {
-        Config config = Config.getInstance();
         grid.setPadding(new Insets(5));
         grid.setHgap(5);
         grid.setVgap(5);
@@ -265,6 +266,14 @@ public abstract class AbstractRecordedModelsTab extends Tab implements TabSelect
         url.setEditable(false);
     }
 
+    protected void addAddedTimestampColumn(int columnIdx) {
+        TableColumn<JavaFxModel, Instant> tc = addTableColumn("addedTimestamp", "added at", columnIdx, 400);
+        tc.setCellFactory(new DateTimeCellFactory<>());
+        tc.setCellValueFactory(param -> new SimpleObjectProperty<>(param.getValue().getAddedTimestamp()));
+        tc.setPrefWidth(150);
+        tc.setEditable(false);
+    }
+
     protected void addNotesColumn(int columnIdx) {
         TableColumn<JavaFxModel, String> notes = addTableColumn("notes", "Notes", columnIdx, 400);
         notes.setCellValueFactory(cdf -> {
diff --git a/client/src/main/java/ctbrec/ui/tabs/recorded/RecordLaterTab.java b/client/src/main/java/ctbrec/ui/tabs/recorded/RecordLaterTab.java
index f66e8d1d..20427e1b 100644
--- a/client/src/main/java/ctbrec/ui/tabs/recorded/RecordLaterTab.java
+++ b/client/src/main/java/ctbrec/ui/tabs/recorded/RecordLaterTab.java
@@ -54,6 +54,7 @@ public class RecordLaterTab extends AbstractRecordedModelsTab implements TabSele
         addPortraitColumn(columnIdx++);
         addModelColumn(columnIdx++);
         addUrlColumn(columnIdx++);
+        addAddedTimestampColumn(columnIdx++);
         addNotesColumn(columnIdx);
 
         var root = new BorderPane();
diff --git a/client/src/main/java/ctbrec/ui/tabs/recorded/RecordedModelsTab.java b/client/src/main/java/ctbrec/ui/tabs/recorded/RecordedModelsTab.java
index d6785c5d..21eb33bb 100644
--- a/client/src/main/java/ctbrec/ui/tabs/recorded/RecordedModelsTab.java
+++ b/client/src/main/java/ctbrec/ui/tabs/recorded/RecordedModelsTab.java
@@ -151,6 +151,7 @@ public class RecordedModelsTab extends AbstractRecordedModelsTab implements TabS
         columns.add(lastRecorded);
         addTableColumnIfEnabled(lastRecorded);
 
+        addAddedTimestampColumn(idx++);
         addNotesColumn(idx);
 
         addModelBox.getChildren().add(3, pauseAll);
@@ -190,8 +191,8 @@ public class RecordedModelsTab extends AbstractRecordedModelsTab implements TabS
 
     private void updatePriority(JavaFxModel model, int priority) {
         try {
-            if (priority < 0 || priority > 1000) {
-                var msg = "Priority has to be between 0 and 1000";
+            if (priority < 0 || priority > Model.MAX_PRIO) {
+                var msg = "Priority has to be between 0 and " + Model.MAX_PRIO;
                 Dialogs.showError(table.getScene(), "Invalid value", msg, null);
             } else {
                 model.setPriority(priority);
@@ -396,7 +397,7 @@ public class RecordedModelsTab extends AbstractRecordedModelsTab implements TabS
                     } else {
                         prio++;
                     }
-                    prio = Math.min(Math.max(0, prio), 100);
+                    prio = Math.min(Math.max(0, prio), Model.MAX_PRIO);
                     m.setPriority(prio);
                     updatePriority(m, prio);
                 }
diff --git a/common/src/main/java/ctbrec/AbstractModel.java b/common/src/main/java/ctbrec/AbstractModel.java
index 6a09805d..c21b3f03 100644
--- a/common/src/main/java/ctbrec/AbstractModel.java
+++ b/common/src/main/java/ctbrec/AbstractModel.java
@@ -41,6 +41,7 @@ public abstract class AbstractModel implements Model {
     private Instant lastSeen;
     private Instant lastRecorded;
     private Instant recordUntil;
+    private Instant addedTimestamp = Instant.EPOCH;
     private SubsequentAction recordUntilSubsequentAction;
 
     @Override
@@ -253,6 +254,16 @@ public abstract class AbstractModel implements Model {
         this.lastRecorded = lastRecorded;
     }
 
+    @Override
+    public Instant getAddedTimestamp() {
+        return addedTimestamp;
+    }
+
+    @Override
+    public void setAddedTimestamp(Instant timestamp) {
+        this.addedTimestamp = timestamp;
+    }
+
     @Override
     public boolean isRecordingTimeLimited() {
         return !getRecordUntil().equals(Instant.ofEpochMilli(RECORD_INDEFINITELY));
diff --git a/common/src/main/java/ctbrec/Model.java b/common/src/main/java/ctbrec/Model.java
index 0cb9ab1e..a60362a3 100644
--- a/common/src/main/java/ctbrec/Model.java
+++ b/common/src/main/java/ctbrec/Model.java
@@ -21,6 +21,7 @@ import ctbrec.sites.Site;
 public interface Model extends Comparable<Model>, Serializable {
 
     public static final long RECORD_INDEFINITELY = 9000000000000000000l;
+    public static final int MAX_PRIO = 10_000;
 
     public enum State {
         ONLINE("online"),
@@ -103,6 +104,10 @@ public interface Model extends Comparable<Model>, Serializable {
 
     public Instant getLastRecorded();
 
+    public void setAddedTimestamp(Instant timestamp);
+
+    public Instant getAddedTimestamp();
+
     /**
      * Determines the stream resolution for this model
      *
diff --git a/common/src/main/java/ctbrec/io/ModelJsonAdapter.java b/common/src/main/java/ctbrec/io/ModelJsonAdapter.java
index 7f585968..3198c356 100644
--- a/common/src/main/java/ctbrec/io/ModelJsonAdapter.java
+++ b/common/src/main/java/ctbrec/io/ModelJsonAdapter.java
@@ -65,6 +65,8 @@ public class ModelJsonAdapter extends JsonAdapter<Model> {
                         model.setLastSeen(Instant.ofEpochMilli(reader.nextLong()));
                     } else if (key.equals("lastRecorded")) {
                         model.setLastRecorded(Instant.ofEpochMilli(reader.nextLong()));
+                    } else if (key.equals("addedTimestamp")) {
+                        model.setAddedTimestamp(Instant.ofEpochMilli(reader.nextLong()));
                     } else if (key.equals("recordUntil")) {
                         model.setRecordUntil(Instant.ofEpochMilli(reader.nextLong()));
                     } else if (key.equals("recordUntilSubsequentAction")) {
@@ -112,6 +114,7 @@ public class ModelJsonAdapter extends JsonAdapter<Model> {
         writer.name("markedForLater").value(model.isMarkedForLaterRecording());
         writer.name("lastSeen").value(model.getLastSeen().toEpochMilli());
         writer.name("lastRecorded").value(model.getLastRecorded().toEpochMilli());
+        writer.name("addedTimestamp").value(model.getAddedTimestamp().toEpochMilli());
         writer.name("recordUntil").value(model.getRecordUntil().toEpochMilli());
         writer.name("recordUntilSubsequentAction").value(model.getRecordUntilSubsequentAction().name());
         writer.name("siteSpecific");
diff --git a/common/src/main/java/ctbrec/recorder/NextGenLocalRecorder.java b/common/src/main/java/ctbrec/recorder/NextGenLocalRecorder.java
index 8d7656cd..beca0eef 100644
--- a/common/src/main/java/ctbrec/recorder/NextGenLocalRecorder.java
+++ b/common/src/main/java/ctbrec/recorder/NextGenLocalRecorder.java
@@ -271,6 +271,7 @@ public class NextGenLocalRecorder implements Recorder {
             recorderLock.lock();
             try {
                 models.add(model);
+                model.setAddedTimestamp(Instant.now());
                 config.getSettings().models.add(model);
                 config.save();
             } catch (IOException e) {