diff --git a/testrail_bot/control/migrations/0011_report_created_at.py b/testrail_bot/control/migrations/0011_report_created_at.py
new file mode 100644
index 0000000..b6eba47
--- /dev/null
+++ b/testrail_bot/control/migrations/0011_report_created_at.py
@@ -0,0 +1,19 @@
+# Generated by Django 3.0.7 on 2020-07-17 09:35
+
+import datetime
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('control', '0010_auto_20200709_0831'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='report',
+            name='created_at',
+            field=models.DateTimeField(default=datetime.datetime.now),
+        ),
+    ]
diff --git a/testrail_bot/control/migrations/0012_auto_20200717_0936.py b/testrail_bot/control/migrations/0012_auto_20200717_0936.py
new file mode 100644
index 0000000..4241998
--- /dev/null
+++ b/testrail_bot/control/migrations/0012_auto_20200717_0936.py
@@ -0,0 +1,18 @@
+# Generated by Django 3.0.7 on 2020-07-17 09:36
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('control', '0011_report_created_at'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='report',
+            name='created_at',
+            field=models.DateTimeField(auto_now_add=True),
+        ),
+    ]
diff --git a/testrail_bot/control/models.py b/testrail_bot/control/models.py
index 6a13c8e..fc4af58 100644
--- a/testrail_bot/control/models.py
+++ b/testrail_bot/control/models.py
@@ -21,3 +21,4 @@
     test_run = models.ForeignKey(TestRun, on_delete=models.CASCADE)
     report_name = models.CharField(max_length=300)
     finished = models.BooleanField(default=False)
+    created_at = models.DateTimeField(auto_now_add=True)
diff --git a/testrail_bot/control/templates/control/index.html b/testrail_bot/control/templates/control/index.html
index 4722575..f4d8e50 100644
--- a/testrail_bot/control/templates/control/index.html
+++ b/testrail_bot/control/templates/control/index.html
@@ -4,7 +4,7 @@
 <div class="list-group">
     {% for run in runs %}
         <a href="{% url 'single_run' run.id  %}" class="list-group-item list-group-item-success">
-            Run {{run.run_name}}
+            Run <b>{{run.run_name}}</b> from <b>{{run.plan_name}}</b> plan in <b>{{run.project_name}}</b> project
         </a>
     {% endfor %}
 </div>
diff --git a/testrail_bot/control/views.py b/testrail_bot/control/views.py
index 68738c5..1e8eaa3 100644
--- a/testrail_bot/control/views.py
+++ b/testrail_bot/control/views.py
@@ -1,4 +1,4 @@
-from datetime import date
+from datetime import datetime
 import json
 import os
 
@@ -45,7 +45,7 @@
 
 
 def list_reports(request):
-    reports = models.Report.objects.all()
+    reports = models.Report.objects.order_by("-created_at").all()
     return render(request, "control/reports.html", {"reports": reports})
 
 
@@ -62,7 +62,8 @@
 
 def submit_run(request, run_id):
     run = models.TestRun.objects.get(pk=run_id)
-    report_name = "{}-{}".format(run.run_name, date.isoformat(date.today()))
+    report_name = "{}-{}".format(
+        run.run_name, datetime.isoformat(datetime.now()))
     path = os.path.join(models.fs.location, report_name)
     with open(path, "w"):
         pass
