diff --git a/commentaries/migrations/0001_initial.py b/commentaries/migrations/0001_initial.py
index 9cc185381991a304cba5d35ffba50af25b40e20a..f149c3a831534f6c44508e98519b28c53abb66ad 100644
--- a/commentaries/migrations/0001_initial.py
+++ b/commentaries/migrations/0001_initial.py
@@ -15,7 +15,7 @@ class Migration(migrations.Migration):
         migrations.CreateModel(
             name='Commentary',
             fields=[
-                ('id', models.AutoField(serialize=False, verbose_name='ID', auto_created=True, primary_key=True)),
+                ('id', models.AutoField(verbose_name='ID', auto_created=True, primary_key=True, serialize=False)),
                 ('vetted', models.BooleanField(default=False)),
                 ('type', models.CharField(max_length=9)),
                 ('open_for_commenting', models.BooleanField(default=True)),
@@ -26,16 +26,17 @@ class Migration(migrations.Migration):
                 ('pub_date', models.DateField(verbose_name='date of original publication')),
                 ('pub_abstract', models.TextField()),
                 ('nr_clarity_ratings', models.IntegerField(default=0)),
-                ('clarity_rating', models.DecimalField(max_digits=3, default=0, decimal_places=0)),
+                ('clarity_rating', models.DecimalField(default=0, decimal_places=0, null=True, max_digits=3)),
                 ('nr_validity_ratings', models.IntegerField(default=0)),
-                ('validity_rating', models.DecimalField(max_digits=3, default=0, decimal_places=0)),
+                ('validity_rating', models.DecimalField(default=0, decimal_places=0, null=True, max_digits=3)),
                 ('nr_rigour_ratings', models.IntegerField(default=0)),
-                ('rigour_rating', models.DecimalField(max_digits=3, default=0, decimal_places=0)),
+                ('rigour_rating', models.DecimalField(default=0, decimal_places=0, null=True, max_digits=3)),
                 ('nr_originality_ratings', models.IntegerField(default=0)),
-                ('originality_rating', models.DecimalField(max_digits=3, default=0, decimal_places=0)),
+                ('originality_rating', models.DecimalField(default=0, decimal_places=0, null=True, max_digits=3)),
                 ('nr_significance_ratings', models.IntegerField(default=0)),
-                ('significance_rating', models.DecimalField(max_digits=3, default=0, decimal_places=0)),
+                ('significance_rating', models.DecimalField(default=0, decimal_places=0, null=True, max_digits=3)),
                 ('latest_activity', models.DateTimeField(default=django.utils.timezone.now)),
+                ('authors', models.ManyToManyField(related_name='authors_com', blank=True, null=True, to='contributors.Contributor')),
                 ('vetted_by', models.ForeignKey(null=True, to='contributors.Contributor', blank=True)),
             ],
         ),
diff --git a/commentaries/migrations/0002_auto_20151212_0833.py b/commentaries/migrations/0002_auto_20151212_0833.py
deleted file mode 100644
index 70b9d186361e4de24577d248f092f69ee6c93dc7..0000000000000000000000000000000000000000
--- a/commentaries/migrations/0002_auto_20151212_0833.py
+++ /dev/null
@@ -1,39 +0,0 @@
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('commentaries', '0001_initial'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='commentary',
-            name='clarity_rating',
-            field=models.DecimalField(max_digits=3, null=True, decimal_places=0, default=0),
-        ),
-        migrations.AlterField(
-            model_name='commentary',
-            name='originality_rating',
-            field=models.DecimalField(max_digits=3, null=True, decimal_places=0, default=0),
-        ),
-        migrations.AlterField(
-            model_name='commentary',
-            name='rigour_rating',
-            field=models.DecimalField(max_digits=3, null=True, decimal_places=0, default=0),
-        ),
-        migrations.AlterField(
-            model_name='commentary',
-            name='significance_rating',
-            field=models.DecimalField(max_digits=3, null=True, decimal_places=0, default=0),
-        ),
-        migrations.AlterField(
-            model_name='commentary',
-            name='validity_rating',
-            field=models.DecimalField(max_digits=3, null=True, decimal_places=0, default=0),
-        ),
-    ]
diff --git a/commentaries/templates/commentaries/commentary_detail.html b/commentaries/templates/commentaries/commentary_detail.html
index e359e2e1e3af2dd411279c96ae7067cc58408123..b8a38360310071ceae73b16ae8846fcac354249e 100644
--- a/commentaries/templates/commentaries/commentary_detail.html
+++ b/commentaries/templates/commentaries/commentary_detail.html
@@ -78,11 +78,11 @@
     <div class="col-8">
       <ul class="ratingsdata">
 	<li>Ratings: </li>
+	<li>relevance: {{ comment.relevance_rating }}% ({{ comment.nr_relevance_ratings }})</li>
+	<li>importance: {{ comment.importance_rating }}% ({{ comment.nr_importance_ratings }})</li>
 	<li>clarity: {{ comment.clarity_rating }}% ({{ comment.nr_clarity_ratings }})</li>
 	<li>validity: {{ comment.validity_rating }}% ({{ comment.nr_validity_ratings }})</li>
 	<li>rigour: {{ comment.rigour_rating }}% ({{ comment.nr_rigour_ratings }})</li>
-	<li>originality: {{ comment.originality_rating }}% ({{ comment.nr_originality_ratings }})</li>
-	<li>significance: {{ comment.significance_rating }}% ({{ comment.nr_significance_ratings }})</li>
       </ul>
 
     </div>
diff --git a/comments/migrations/0001_initial.py b/comments/migrations/0001_initial.py
index 4d1c98ac09cc4629f684ffbd9182b3ce5c557f3e..6e797d0fc577814679aae852264bc34615aa0d55 100644
--- a/comments/migrations/0001_initial.py
+++ b/comments/migrations/0001_initial.py
@@ -7,30 +7,30 @@ from django.db import migrations, models
 class Migration(migrations.Migration):
 
     dependencies = [
-        ('contributors', '0001_initial'),
         ('reports', '0001_initial'),
-        ('submissions', '0001_initial'),
         ('commentaries', '0001_initial'),
+        ('submissions', '0001_initial'),
+        ('contributors', '0001_initial'),
     ]
 
     operations = [
         migrations.CreateModel(
             name='AuthorReply',
             fields=[
-                ('id', models.AutoField(serialize=False, verbose_name='ID', auto_created=True, primary_key=True)),
+                ('id', models.AutoField(verbose_name='ID', auto_created=True, primary_key=True, serialize=False)),
                 ('status', models.SmallIntegerField(default=0)),
                 ('reply_text', models.TextField()),
                 ('date_submitted', models.DateTimeField(verbose_name='date submitted')),
+                ('nr_relevance_ratings', models.IntegerField(default=0)),
+                ('relevance_rating', models.DecimalField(default=0, decimal_places=0, null=True, max_digits=3)),
+                ('nr_importance_ratings', models.IntegerField(default=0)),
+                ('importance_rating', models.DecimalField(default=0, decimal_places=0, null=True, max_digits=3)),
                 ('nr_clarity_ratings', models.IntegerField(default=0)),
-                ('clarity_rating', models.DecimalField(max_digits=3, default=0, decimal_places=0)),
+                ('clarity_rating', models.DecimalField(default=0, decimal_places=0, null=True, max_digits=3)),
                 ('nr_validity_ratings', models.IntegerField(default=0)),
-                ('validity_rating', models.DecimalField(max_digits=3, default=0, decimal_places=0)),
+                ('validity_rating', models.DecimalField(default=0, decimal_places=0, null=True, max_digits=3)),
                 ('nr_rigour_ratings', models.IntegerField(default=0)),
-                ('rigour_rating', models.DecimalField(max_digits=3, default=0, decimal_places=0)),
-                ('nr_originality_ratings', models.IntegerField(default=0)),
-                ('originality_rating', models.DecimalField(max_digits=3, default=0, decimal_places=0)),
-                ('nr_significance_ratings', models.IntegerField(default=0)),
-                ('significance_rating', models.DecimalField(max_digits=3, default=0, decimal_places=0)),
+                ('rigour_rating', models.DecimalField(default=0, decimal_places=0, null=True, max_digits=3)),
                 ('author', models.ForeignKey(to='contributors.Contributor')),
                 ('commentary', models.ForeignKey(null=True, to='commentaries.Commentary', blank=True)),
             ],
@@ -38,20 +38,20 @@ class Migration(migrations.Migration):
         migrations.CreateModel(
             name='Comment',
             fields=[
-                ('id', models.AutoField(serialize=False, verbose_name='ID', auto_created=True, primary_key=True)),
+                ('id', models.AutoField(verbose_name='ID', auto_created=True, primary_key=True, serialize=False)),
                 ('status', models.SmallIntegerField(default=0)),
                 ('comment_text', models.TextField()),
                 ('date_submitted', models.DateTimeField(verbose_name='date submitted')),
+                ('nr_relevance_ratings', models.IntegerField(default=0)),
+                ('relevance_rating', models.DecimalField(default=0, decimal_places=0, null=True, max_digits=3)),
+                ('nr_importance_ratings', models.IntegerField(default=0)),
+                ('importance_rating', models.DecimalField(default=0, decimal_places=0, null=True, max_digits=3)),
                 ('nr_clarity_ratings', models.IntegerField(default=0)),
-                ('clarity_rating', models.DecimalField(max_digits=3, default=0, decimal_places=0)),
+                ('clarity_rating', models.DecimalField(default=0, decimal_places=0, null=True, max_digits=3)),
                 ('nr_validity_ratings', models.IntegerField(default=0)),
-                ('validity_rating', models.DecimalField(max_digits=3, default=0, decimal_places=0)),
+                ('validity_rating', models.DecimalField(default=0, decimal_places=0, null=True, max_digits=3)),
                 ('nr_rigour_ratings', models.IntegerField(default=0)),
-                ('rigour_rating', models.DecimalField(max_digits=3, default=0, decimal_places=0)),
-                ('nr_originality_ratings', models.IntegerField(default=0)),
-                ('originality_rating', models.DecimalField(max_digits=3, default=0, decimal_places=0)),
-                ('nr_significance_ratings', models.IntegerField(default=0)),
-                ('significance_rating', models.DecimalField(max_digits=3, default=0, decimal_places=0)),
+                ('rigour_rating', models.DecimalField(default=0, decimal_places=0, null=True, max_digits=3)),
                 ('author', models.ForeignKey(to='contributors.Contributor')),
                 ('commentary', models.ForeignKey(null=True, to='commentaries.Commentary', blank=True)),
                 ('in_reply_to', models.ForeignKey(null=True, to='comments.Comment', blank=True)),
diff --git a/comments/migrations/0002_auto_20151212_0919.py b/comments/migrations/0002_auto_20151212_0919.py
deleted file mode 100644
index 8d6936decd7e03e84d45ee938726e1ce10d20a35..0000000000000000000000000000000000000000
--- a/comments/migrations/0002_auto_20151212_0919.py
+++ /dev/null
@@ -1,64 +0,0 @@
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('comments', '0001_initial'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='authorreply',
-            name='clarity_rating',
-            field=models.DecimalField(default=0, decimal_places=0, max_digits=3, null=True),
-        ),
-        migrations.AlterField(
-            model_name='authorreply',
-            name='originality_rating',
-            field=models.DecimalField(default=0, decimal_places=0, max_digits=3, null=True),
-        ),
-        migrations.AlterField(
-            model_name='authorreply',
-            name='rigour_rating',
-            field=models.DecimalField(default=0, decimal_places=0, max_digits=3, null=True),
-        ),
-        migrations.AlterField(
-            model_name='authorreply',
-            name='significance_rating',
-            field=models.DecimalField(default=0, decimal_places=0, max_digits=3, null=True),
-        ),
-        migrations.AlterField(
-            model_name='authorreply',
-            name='validity_rating',
-            field=models.DecimalField(default=0, decimal_places=0, max_digits=3, null=True),
-        ),
-        migrations.AlterField(
-            model_name='comment',
-            name='clarity_rating',
-            field=models.DecimalField(default=0, decimal_places=0, max_digits=3, null=True),
-        ),
-        migrations.AlterField(
-            model_name='comment',
-            name='originality_rating',
-            field=models.DecimalField(default=0, decimal_places=0, max_digits=3, null=True),
-        ),
-        migrations.AlterField(
-            model_name='comment',
-            name='rigour_rating',
-            field=models.DecimalField(default=0, decimal_places=0, max_digits=3, null=True),
-        ),
-        migrations.AlterField(
-            model_name='comment',
-            name='significance_rating',
-            field=models.DecimalField(default=0, decimal_places=0, max_digits=3, null=True),
-        ),
-        migrations.AlterField(
-            model_name='comment',
-            name='validity_rating',
-            field=models.DecimalField(default=0, decimal_places=0, max_digits=3, null=True),
-        ),
-    ]
diff --git a/comments/models.py b/comments/models.py
index 87e11576db194c26b01e35337fdc5bf4e28d2817..5822553ac37408973e268339a647077b90c8e26d 100644
--- a/comments/models.py
+++ b/comments/models.py
@@ -31,16 +31,16 @@ class Comment(models.Model):
     comment_text = models.TextField()
     date_submitted = models.DateTimeField('date submitted')
     # Aggregates of ratings applied to this comment:
+    nr_relevance_ratings = models.IntegerField(default=0)
+    relevance_rating = models.DecimalField(default=0, max_digits=3, decimal_places=0, null=True)
+    nr_importance_ratings = models.IntegerField(default=0)
+    importance_rating = models.DecimalField(default=0, max_digits=3, decimal_places=0, null=True)
     nr_clarity_ratings = models.IntegerField(default=0)
     clarity_rating = models.DecimalField(default=0, max_digits=3, decimal_places=0, null=True)
     nr_validity_ratings = models.IntegerField(default=0)
     validity_rating = models.DecimalField(default=0, max_digits=3, decimal_places=0, null=True)
     nr_rigour_ratings = models.IntegerField(default=0)
     rigour_rating = models.DecimalField(default=0, max_digits=3, decimal_places=0, null=True)
-    nr_originality_ratings = models.IntegerField(default=0)
-    originality_rating = models.DecimalField(default=0, max_digits=3, decimal_places=0, null=True)
-    nr_significance_ratings = models.IntegerField(default=0)
-    significance_rating = models.DecimalField(default=0, max_digits=3, decimal_places=0, null=True)
 
     def __str__ (self):
         return self.comment_text
@@ -63,16 +63,16 @@ class AuthorReply(models.Model):
     reply_text = models.TextField()
     date_submitted = models.DateTimeField('date submitted')
     # Aggregates of ratings applied to this comment:
+    nr_relevance_ratings = models.IntegerField(default=0)
+    relevance_rating = models.DecimalField(default=0, max_digits=3, decimal_places=0, null=True)
+    nr_importance_ratings = models.IntegerField(default=0)
+    importance_rating = models.DecimalField(default=0, max_digits=3, decimal_places=0, null=True)
     nr_clarity_ratings = models.IntegerField(default=0)
     clarity_rating = models.DecimalField(default=0, max_digits=3, decimal_places=0, null=True)
     nr_validity_ratings = models.IntegerField(default=0)
     validity_rating = models.DecimalField(default=0, max_digits=3, decimal_places=0, null=True)
     nr_rigour_ratings = models.IntegerField(default=0)
     rigour_rating = models.DecimalField(default=0, max_digits=3, decimal_places=0, null=True)
-    nr_originality_ratings = models.IntegerField(default=0)
-    originality_rating = models.DecimalField(default=0, max_digits=3, decimal_places=0, null=True)
-    nr_significance_ratings = models.IntegerField(default=0)
-    significance_rating = models.DecimalField(default=0, max_digits=3, decimal_places=0, null=True)
 
     def __str__ (self):
         return self.reply_text
diff --git a/contributors/migrations/0001_initial.py b/contributors/migrations/0001_initial.py
index ce199ab90cf7311d97c650a47ecdcaea3d68b6ee..6ab9e67f83bfeb6bef71571a5f896138136a18c0 100644
--- a/contributors/migrations/0001_initial.py
+++ b/contributors/migrations/0001_initial.py
@@ -15,33 +15,35 @@ class Migration(migrations.Migration):
         migrations.CreateModel(
             name='Contributor',
             fields=[
-                ('id', models.AutoField(serialize=False, verbose_name='ID', auto_created=True, primary_key=True)),
-                ('rank', models.SmallIntegerField(choices=[(0, 'newly registered'), (1, 'normal user'), (2, 'SciPost Commentary Editor'), (3, 'SciPost Journal Editor'), (4, 'SciPost Journal Editor-in-chief'), (5, 'SciPost Lead Editor'), (-1, 'not a professional scientist'), (-2, 'other account already exists'), (-3, 'barred from SciPost'), (-4, 'account disabled')], default=0)),
-                ('title', models.CharField(max_length=4, choices=[('PR', 'Prof.'), ('DR', 'Dr'), ('MR', 'Mr'), ('MRS', 'Mrs')])),
-                ('orcid_id', models.CharField(max_length=20, null=True, blank=True, default='', verbose_name='ORCID id')),
-                ('affiliation', models.CharField(max_length=300, verbose_name='affiliation')),
-                ('address', models.CharField(max_length=1000, verbose_name='address', blank=True)),
+                ('id', models.AutoField(verbose_name='ID', auto_created=True, primary_key=True, serialize=False)),
+                ('rank', models.SmallIntegerField(default=0, choices=[(0, 'newly registered'), (1, 'normal user'), (2, 'SciPost Commentary Editor'), (3, 'SciPost Journal Editor'), (4, 'SciPost Journal Editor-in-chief'), (5, 'SciPost Lead Editor'), (-1, 'not a professional scientist'), (-2, 'other account already exists'), (-3, 'barred from SciPost'), (-4, 'account disabled')])),
+                ('title', models.CharField(choices=[('PR', 'Prof.'), ('DR', 'Dr'), ('MR', 'Mr'), ('MRS', 'Mrs')], max_length=4)),
+                ('orcid_id', models.CharField(default='', verbose_name='ORCID id', max_length=20, blank=True, null=True)),
+                ('affiliation', models.CharField(verbose_name='affiliation', max_length=300)),
+                ('address', models.CharField(verbose_name='address', max_length=1000, blank=True)),
                 ('personalwebpage', models.URLField(verbose_name='personal web page', blank=True)),
-                ('nr_report_clarity_ratings', models.IntegerField(default=0)),
-                ('report_clarity_rating', models.DecimalField(max_digits=3, default=0, decimal_places=0)),
-                ('nr_report_validity_ratings', models.IntegerField(default=0)),
-                ('report_validity_rating', models.DecimalField(max_digits=3, default=0, decimal_places=0)),
-                ('nr_report_rigour_ratings', models.IntegerField(default=0)),
-                ('report_rigour_rating', models.DecimalField(max_digits=3, default=0, decimal_places=0)),
-                ('nr_report_originality_ratings', models.IntegerField(default=0)),
-                ('report_originality_rating', models.DecimalField(max_digits=3, default=0, decimal_places=0)),
-                ('nr_report_significance_ratings', models.IntegerField(default=0)),
-                ('report_significance_rating', models.DecimalField(max_digits=3, default=0, decimal_places=0)),
+                ('nr_comments', models.PositiveSmallIntegerField(default=0)),
                 ('nr_comment_clarity_ratings', models.IntegerField(default=0)),
-                ('comment_clarity_rating', models.DecimalField(max_digits=3, default=0, decimal_places=0)),
+                ('comment_clarity_rating', models.DecimalField(default=0, decimal_places=0, max_digits=3)),
                 ('nr_comment_validity_ratings', models.IntegerField(default=0)),
-                ('comment_validity_rating', models.DecimalField(max_digits=3, default=0, decimal_places=0)),
+                ('comment_validity_rating', models.DecimalField(default=0, decimal_places=0, max_digits=3)),
                 ('nr_comment_rigour_ratings', models.IntegerField(default=0)),
-                ('comment_rigour_rating', models.DecimalField(max_digits=3, default=0, decimal_places=0)),
+                ('comment_rigour_rating', models.DecimalField(default=0, decimal_places=0, max_digits=3)),
                 ('nr_comment_originality_ratings', models.IntegerField(default=0)),
-                ('comment_originality_rating', models.DecimalField(max_digits=3, default=0, decimal_places=0)),
+                ('comment_originality_rating', models.DecimalField(default=0, decimal_places=0, max_digits=3)),
                 ('nr_comment_significance_ratings', models.IntegerField(default=0)),
-                ('comment_significance_rating', models.DecimalField(max_digits=3, default=0, decimal_places=0)),
+                ('comment_significance_rating', models.DecimalField(default=0, decimal_places=0, max_digits=3)),
+                ('nr_reports', models.PositiveSmallIntegerField(default=0)),
+                ('nr_report_clarity_ratings', models.IntegerField(default=0)),
+                ('report_clarity_rating', models.DecimalField(default=0, decimal_places=0, max_digits=3)),
+                ('nr_report_validity_ratings', models.IntegerField(default=0)),
+                ('report_validity_rating', models.DecimalField(default=0, decimal_places=0, max_digits=3)),
+                ('nr_report_rigour_ratings', models.IntegerField(default=0)),
+                ('report_rigour_rating', models.DecimalField(default=0, decimal_places=0, max_digits=3)),
+                ('nr_report_originality_ratings', models.IntegerField(default=0)),
+                ('report_originality_rating', models.DecimalField(default=0, decimal_places=0, max_digits=3)),
+                ('nr_report_significance_ratings', models.IntegerField(default=0)),
+                ('report_significance_rating', models.DecimalField(default=0, decimal_places=0, max_digits=3)),
                 ('user', models.OneToOneField(to=settings.AUTH_USER_MODEL)),
             ],
         ),
diff --git a/contributors/migrations/0002_auto_20151212_0919.py b/contributors/migrations/0002_auto_20151212_0919.py
deleted file mode 100644
index 8984b85a20662df3f806a7e56e59126435a16ccf..0000000000000000000000000000000000000000
--- a/contributors/migrations/0002_auto_20151212_0919.py
+++ /dev/null
@@ -1,24 +0,0 @@
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('contributors', '0001_initial'),
-    ]
-
-    operations = [
-        migrations.AddField(
-            model_name='contributor',
-            name='nr_comments',
-            field=models.PositiveSmallIntegerField(default=0),
-        ),
-        migrations.AddField(
-            model_name='contributor',
-            name='nr_reports',
-            field=models.PositiveSmallIntegerField(default=0),
-        ),
-    ]
diff --git a/contributors/migrations/0002_auto_20151212_2020.py b/contributors/migrations/0002_auto_20151212_2020.py
new file mode 100644
index 0000000000000000000000000000000000000000..7029f9c7b8d7e8b11e6727892da8afd734b8018c
--- /dev/null
+++ b/contributors/migrations/0002_auto_20151212_2020.py
@@ -0,0 +1,86 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('contributors', '0001_initial'),
+    ]
+
+    operations = [
+        migrations.RemoveField(
+            model_name='contributor',
+            name='comment_originality_rating',
+        ),
+        migrations.RemoveField(
+            model_name='contributor',
+            name='comment_significance_rating',
+        ),
+        migrations.RemoveField(
+            model_name='contributor',
+            name='nr_comment_originality_ratings',
+        ),
+        migrations.RemoveField(
+            model_name='contributor',
+            name='nr_comment_significance_ratings',
+        ),
+        migrations.RemoveField(
+            model_name='contributor',
+            name='nr_report_originality_ratings',
+        ),
+        migrations.RemoveField(
+            model_name='contributor',
+            name='nr_report_significance_ratings',
+        ),
+        migrations.RemoveField(
+            model_name='contributor',
+            name='report_originality_rating',
+        ),
+        migrations.RemoveField(
+            model_name='contributor',
+            name='report_significance_rating',
+        ),
+        migrations.AddField(
+            model_name='contributor',
+            name='comment_importance_rating',
+            field=models.DecimalField(max_digits=3, default=0, decimal_places=0),
+        ),
+        migrations.AddField(
+            model_name='contributor',
+            name='comment_relevance_rating',
+            field=models.DecimalField(max_digits=3, default=0, decimal_places=0),
+        ),
+        migrations.AddField(
+            model_name='contributor',
+            name='nr_comment_importance_ratings',
+            field=models.IntegerField(default=0),
+        ),
+        migrations.AddField(
+            model_name='contributor',
+            name='nr_comment_relevance_ratings',
+            field=models.IntegerField(default=0),
+        ),
+        migrations.AddField(
+            model_name='contributor',
+            name='nr_report_importance_ratings',
+            field=models.IntegerField(default=0),
+        ),
+        migrations.AddField(
+            model_name='contributor',
+            name='nr_report_relevance_ratings',
+            field=models.IntegerField(default=0),
+        ),
+        migrations.AddField(
+            model_name='contributor',
+            name='report_importance_rating',
+            field=models.DecimalField(max_digits=3, default=0, decimal_places=0),
+        ),
+        migrations.AddField(
+            model_name='contributor',
+            name='report_relevance_rating',
+            field=models.DecimalField(max_digits=3, default=0, decimal_places=0),
+        ),
+    ]
diff --git a/contributors/models.py b/contributors/models.py
index 226bcfc9ec695188bd6302072959e3eb09f677d7..be6cd94d8739ea8e0248d077cb907525c9932e10 100644
--- a/contributors/models.py
+++ b/contributors/models.py
@@ -48,6 +48,10 @@ class Contributor(models.Model):
     address = models.CharField(max_length=1000, blank=True, verbose_name="address")
     personalwebpage = models.URLField(blank=True, verbose_name='personal web page')
 
+    nr_comment_relevance_ratings = models.IntegerField(default=0)
+    comment_relevance_rating = models.DecimalField(default=0, max_digits=3, decimal_places=0)
+    nr_comment_importance_ratings = models.IntegerField(default=0)
+    comment_importance_rating = models.DecimalField(default=0, max_digits=3, decimal_places=0)
     nr_comments = models.PositiveSmallIntegerField(default=0)
     nr_comment_clarity_ratings = models.IntegerField(default=0)
     comment_clarity_rating = models.DecimalField(default=0, max_digits=3, decimal_places=0)
@@ -55,11 +59,11 @@ class Contributor(models.Model):
     comment_validity_rating = models.DecimalField(default=0, max_digits=3, decimal_places=0)
     nr_comment_rigour_ratings = models.IntegerField(default=0)
     comment_rigour_rating = models.DecimalField(default=0, max_digits=3, decimal_places=0)
-    nr_comment_originality_ratings = models.IntegerField(default=0)
-    comment_originality_rating = models.DecimalField(default=0, max_digits=3, decimal_places=0)
-    nr_comment_significance_ratings = models.IntegerField(default=0)
-    comment_significance_rating = models.DecimalField(default=0, max_digits=3, decimal_places=0)
 
+    nr_report_relevance_ratings = models.IntegerField(default=0)
+    report_relevance_rating = models.DecimalField(default=0, max_digits=3, decimal_places=0)
+    nr_report_importance_ratings = models.IntegerField(default=0)
+    report_importance_rating = models.DecimalField(default=0, max_digits=3, decimal_places=0)
     nr_reports = models.PositiveSmallIntegerField(default=0)
     nr_report_clarity_ratings = models.IntegerField(default=0)
     report_clarity_rating = models.DecimalField(default=0, max_digits=3, decimal_places=0)
@@ -67,10 +71,6 @@ class Contributor(models.Model):
     report_validity_rating = models.DecimalField(default=0, max_digits=3, decimal_places=0)
     nr_report_rigour_ratings = models.IntegerField(default=0)
     report_rigour_rating = models.DecimalField(default=0, max_digits=3, decimal_places=0)
-    nr_report_originality_ratings = models.IntegerField(default=0)
-    report_originality_rating = models.DecimalField(default=0, max_digits=3, decimal_places=0)
-    nr_report_significance_ratings = models.IntegerField(default=0)
-    report_significance_rating = models.DecimalField(default=0, max_digits=3, decimal_places=0)
 
 
 
diff --git a/contributors/templates/contributors/personal_page.html b/contributors/templates/contributors/personal_page.html
index 65ab2c84bf286cd27d34c97a499af9c9e4f3cc27..3bfeab56ebd85968a2ae366e6ed96e225016aa95 100644
--- a/contributors/templates/contributors/personal_page.html
+++ b/contributors/templates/contributors/personal_page.html
@@ -64,21 +64,21 @@
     <div class="col-4">
       <table class="ratings">
 	<th>Reports</th><th>(nr: {{ contributor.nr_reports }})</th>
+	<tr><td>relevance:</td><td>{{ contributor.report_relevance_rating }}% ({{ contributor.nr_report_relevance_ratings }})</td></tr>
+	<tr><td>importance:</td><td>{{ contributor.report_importance_rating }}% ({{ contributor.nr_report_importance_ratings }})</td></tr>
 	<tr><td>clarity:</td><td>{{ contributor.report_clarity_rating }}% ({{ contributor.nr_report_clarity_ratings }})</td></tr>
 	<tr><td>validity:</td><td>{{ contributor.report_validity_rating }}% ({{ contributor.nr_report_validity_ratings }})</td></tr>
 	<tr><td>rigour:</td><td>{{ contributor.report_rigour_rating }}% ({{ contributor.nr_report_rigour_ratings }})</td></tr>
-	<tr><td>originality:</td><td>{{ contributor.report_originality_rating }}% ({{ contributor.nr_report_originality_ratings }})</td></tr>
-	<tr><td>significance:</td><td>{{ contributor.report_significance_rating }}% ({{ contributor.nr_report_significance_ratings }})</td></tr>
       </table>
     </div>
     <div class="col-4">
       <table class="ratings">
 	<th>Comments</th><th>(nr: {{ contributor.nr_comments }})</th>
+	<tr><td>relevance:</td><td>{{ contributor.comment_relevance_rating }}% ({{ contributor.nr_comment_relevance_ratings }})</td></tr>
+	<tr><td>importance:</td><td>{{ contributor.comment_importance_rating }}% ({{ contributor.nr_comment_importance_ratings }})</td></tr>
 	<tr><td>clarity:</td><td>{{ contributor.comment_clarity_rating }}% ({{ contributor.nr_comment_clarity_ratings }})</td></tr>
 	<tr><td>validity:</td><td>{{ contributor.comment_validity_rating }}% ({{ contributor.nr_comment_validity_ratings }})</td></tr>
 	<tr><td>rigour:</td><td>{{ contributor.comment_rigour_rating }}% ({{ contributor.nr_comment_rigour_ratings }})</td></tr>
-	<tr><td>originality:</td><td>{{ contributor.comment_originality_rating }}% ({{ contributor.nr_comment_originality_ratings }})</td></tr>
-	<tr><td>significance:</td><td>{{ contributor.comment_significance_rating }}% ({{ contributor.nr_comment_significance_ratings }})</td></tr>
       </table>
     </div>
   </div>
diff --git a/ratings/forms.py b/ratings/forms.py
index 395c1e0333ac60da87339da2af1b710aff806e22..ea218e0de7e921c8b18b421333ee45bb970297c3 100644
--- a/ratings/forms.py
+++ b/ratings/forms.py
@@ -3,8 +3,8 @@ from django import forms
 from .models import *
 
 
-class RatingForm(forms.Form):
-    """ Abstract base class for all rating forms. """
+class PublicationTypeRatingForm(forms.Form):
+    """ Abstract base class for all publication-type rating forms. """
     clarity = forms.ChoiceField(RATING_CHOICES)
     validity = forms.ChoiceField(RATING_CHOICES)
     rigour = forms.ChoiceField(RATING_CHOICES)
@@ -14,22 +14,29 @@ class RatingForm(forms.Form):
     class Meta:
         abstract = True
 
+class CommentTypeRatingForm(forms.Form):
+    """ Abstract base class for all comment-type rating forms. """
+    relevance = forms.ChoiceField(RATING_CHOICES)
+    importance = forms.ChoiceField(RATING_CHOICES)
+    clarity = forms.ChoiceField(RATING_CHOICES)
+    validity = forms.ChoiceField(RATING_CHOICES)
+    rigour = forms.ChoiceField(RATING_CHOICES)
 
-class CommentaryRatingForm(RatingForm):
-    pass
+    class Meta:
+        abstract = True
 
 
-class CommentRatingForm(RatingForm):
+class CommentaryRatingForm(PublicationTypeRatingForm):
     pass
 
-
-class AuthorReplyRatingForm(RatingForm):
+class CommentRatingForm(CommentTypeRatingForm):
     pass
 
-
-class SubmissionRatingForm(RatingForm):
+class AuthorReplyRatingForm(CommentTypeRatingForm):
     pass
 
+class SubmissionRatingForm(PublicationTypeRatingForm):
+    pass
 
-class ReportRatingForm(RatingForm):
+class ReportRatingForm(CommentTypeRatingForm):
     pass
diff --git a/ratings/migrations/0001_initial.py b/ratings/migrations/0001_initial.py
index db9ed9aface1107a61c94f661a7842b8a8b8e6d7..066a7e8e8676c7a17fd0e8b66478e0568a73e785 100644
--- a/ratings/migrations/0001_initial.py
+++ b/ratings/migrations/0001_initial.py
@@ -7,23 +7,23 @@ from django.db import migrations, models
 class Migration(migrations.Migration):
 
     dependencies = [
+        ('reports', '0001_initial'),
+        ('commentaries', '0001_initial'),
         ('comments', '0001_initial'),
         ('contributors', '0001_initial'),
-        ('reports', '0001_initial'),
         ('submissions', '0001_initial'),
-        ('commentaries', '0001_initial'),
     ]
 
     operations = [
         migrations.CreateModel(
             name='AuthorReplyRating',
             fields=[
-                ('id', models.AutoField(serialize=False, verbose_name='ID', auto_created=True, primary_key=True)),
-                ('clarity', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))),
-                ('validity', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))),
-                ('rigour', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))),
-                ('originality', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))),
-                ('significance', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))),
+                ('id', models.AutoField(verbose_name='ID', auto_created=True, primary_key=True, serialize=False)),
+                ('relevance', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)),
+                ('importance', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)),
+                ('clarity', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)),
+                ('validity', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)),
+                ('rigour', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)),
                 ('rater', models.ForeignKey(to='contributors.Contributor')),
                 ('reply', models.ForeignKey(to='comments.AuthorReply')),
             ],
@@ -34,12 +34,12 @@ class Migration(migrations.Migration):
         migrations.CreateModel(
             name='CommentaryRating',
             fields=[
-                ('id', models.AutoField(serialize=False, verbose_name='ID', auto_created=True, primary_key=True)),
-                ('clarity', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))),
-                ('validity', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))),
-                ('rigour', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))),
-                ('originality', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))),
-                ('significance', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))),
+                ('id', models.AutoField(verbose_name='ID', auto_created=True, primary_key=True, serialize=False)),
+                ('clarity', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)),
+                ('validity', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)),
+                ('rigour', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)),
+                ('originality', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)),
+                ('significance', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)),
                 ('commentary', models.ForeignKey(to='commentaries.Commentary')),
                 ('rater', models.ForeignKey(to='contributors.Contributor')),
             ],
@@ -50,12 +50,12 @@ class Migration(migrations.Migration):
         migrations.CreateModel(
             name='CommentRating',
             fields=[
-                ('id', models.AutoField(serialize=False, verbose_name='ID', auto_created=True, primary_key=True)),
-                ('clarity', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))),
-                ('validity', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))),
-                ('rigour', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))),
-                ('originality', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))),
-                ('significance', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))),
+                ('id', models.AutoField(verbose_name='ID', auto_created=True, primary_key=True, serialize=False)),
+                ('relevance', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)),
+                ('importance', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)),
+                ('clarity', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)),
+                ('validity', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)),
+                ('rigour', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)),
                 ('comment', models.ForeignKey(to='comments.Comment')),
                 ('rater', models.ForeignKey(to='contributors.Contributor')),
             ],
@@ -66,12 +66,12 @@ class Migration(migrations.Migration):
         migrations.CreateModel(
             name='ReportRating',
             fields=[
-                ('id', models.AutoField(serialize=False, verbose_name='ID', auto_created=True, primary_key=True)),
-                ('clarity', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))),
-                ('validity', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))),
-                ('rigour', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))),
-                ('originality', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))),
-                ('significance', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))),
+                ('id', models.AutoField(verbose_name='ID', auto_created=True, primary_key=True, serialize=False)),
+                ('relevance', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)),
+                ('importance', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)),
+                ('clarity', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)),
+                ('validity', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)),
+                ('rigour', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)),
                 ('rater', models.ForeignKey(to='contributors.Contributor')),
                 ('report', models.ForeignKey(to='reports.Report')),
             ],
@@ -82,12 +82,12 @@ class Migration(migrations.Migration):
         migrations.CreateModel(
             name='SubmissionRating',
             fields=[
-                ('id', models.AutoField(serialize=False, verbose_name='ID', auto_created=True, primary_key=True)),
-                ('clarity', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))),
-                ('validity', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))),
-                ('rigour', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))),
-                ('originality', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))),
-                ('significance', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))),
+                ('id', models.AutoField(verbose_name='ID', auto_created=True, primary_key=True, serialize=False)),
+                ('clarity', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)),
+                ('validity', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)),
+                ('rigour', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)),
+                ('originality', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)),
+                ('significance', models.PositiveSmallIntegerField(default=0, verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)),
                 ('rater', models.ForeignKey(to='contributors.Contributor')),
                 ('submission', models.ForeignKey(to='submissions.Submission')),
             ],
diff --git a/ratings/migrations/0002_auto_20151212_0800.py b/ratings/migrations/0002_auto_20151212_0800.py
deleted file mode 100644
index 16dcfbd7321c80df32215d400bc8633069fa7892..0000000000000000000000000000000000000000
--- a/ratings/migrations/0002_auto_20151212_0800.py
+++ /dev/null
@@ -1,139 +0,0 @@
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('ratings', '0001_initial'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='authorreplyrating',
-            name='clarity',
-            field=models.PositiveSmallIntegerField(verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), default=0, null=True),
-        ),
-        migrations.AlterField(
-            model_name='authorreplyrating',
-            name='originality',
-            field=models.PositiveSmallIntegerField(verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), default=0, null=True),
-        ),
-        migrations.AlterField(
-            model_name='authorreplyrating',
-            name='rigour',
-            field=models.PositiveSmallIntegerField(verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), default=0, null=True),
-        ),
-        migrations.AlterField(
-            model_name='authorreplyrating',
-            name='significance',
-            field=models.PositiveSmallIntegerField(verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), default=0, null=True),
-        ),
-        migrations.AlterField(
-            model_name='authorreplyrating',
-            name='validity',
-            field=models.PositiveSmallIntegerField(verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), default=0, null=True),
-        ),
-        migrations.AlterField(
-            model_name='commentaryrating',
-            name='clarity',
-            field=models.PositiveSmallIntegerField(verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), default=0, null=True),
-        ),
-        migrations.AlterField(
-            model_name='commentaryrating',
-            name='originality',
-            field=models.PositiveSmallIntegerField(verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), default=0, null=True),
-        ),
-        migrations.AlterField(
-            model_name='commentaryrating',
-            name='rigour',
-            field=models.PositiveSmallIntegerField(verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), default=0, null=True),
-        ),
-        migrations.AlterField(
-            model_name='commentaryrating',
-            name='significance',
-            field=models.PositiveSmallIntegerField(verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), default=0, null=True),
-        ),
-        migrations.AlterField(
-            model_name='commentaryrating',
-            name='validity',
-            field=models.PositiveSmallIntegerField(verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), default=0, null=True),
-        ),
-        migrations.AlterField(
-            model_name='commentrating',
-            name='clarity',
-            field=models.PositiveSmallIntegerField(verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), default=0, null=True),
-        ),
-        migrations.AlterField(
-            model_name='commentrating',
-            name='originality',
-            field=models.PositiveSmallIntegerField(verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), default=0, null=True),
-        ),
-        migrations.AlterField(
-            model_name='commentrating',
-            name='rigour',
-            field=models.PositiveSmallIntegerField(verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), default=0, null=True),
-        ),
-        migrations.AlterField(
-            model_name='commentrating',
-            name='significance',
-            field=models.PositiveSmallIntegerField(verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), default=0, null=True),
-        ),
-        migrations.AlterField(
-            model_name='commentrating',
-            name='validity',
-            field=models.PositiveSmallIntegerField(verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), default=0, null=True),
-        ),
-        migrations.AlterField(
-            model_name='reportrating',
-            name='clarity',
-            field=models.PositiveSmallIntegerField(verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), default=0, null=True),
-        ),
-        migrations.AlterField(
-            model_name='reportrating',
-            name='originality',
-            field=models.PositiveSmallIntegerField(verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), default=0, null=True),
-        ),
-        migrations.AlterField(
-            model_name='reportrating',
-            name='rigour',
-            field=models.PositiveSmallIntegerField(verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), default=0, null=True),
-        ),
-        migrations.AlterField(
-            model_name='reportrating',
-            name='significance',
-            field=models.PositiveSmallIntegerField(verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), default=0, null=True),
-        ),
-        migrations.AlterField(
-            model_name='reportrating',
-            name='validity',
-            field=models.PositiveSmallIntegerField(verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), default=0, null=True),
-        ),
-        migrations.AlterField(
-            model_name='submissionrating',
-            name='clarity',
-            field=models.PositiveSmallIntegerField(verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), default=0, null=True),
-        ),
-        migrations.AlterField(
-            model_name='submissionrating',
-            name='originality',
-            field=models.PositiveSmallIntegerField(verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), default=0, null=True),
-        ),
-        migrations.AlterField(
-            model_name='submissionrating',
-            name='rigour',
-            field=models.PositiveSmallIntegerField(verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), default=0, null=True),
-        ),
-        migrations.AlterField(
-            model_name='submissionrating',
-            name='significance',
-            field=models.PositiveSmallIntegerField(verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), default=0, null=True),
-        ),
-        migrations.AlterField(
-            model_name='submissionrating',
-            name='validity',
-            field=models.PositiveSmallIntegerField(verbose_name=((101, 'abstain'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), default=0, null=True),
-        ),
-    ]
diff --git a/ratings/models.py b/ratings/models.py
index e8db16fcd5806de23a519d436b85bbdef24e345a..73c1510cc62dafd33bad524333555beb05f8ee80 100644
--- a/ratings/models.py
+++ b/ratings/models.py
@@ -18,8 +18,8 @@ RATING_CHOICES = (
     )
 
 
-class Rating(models.Model):
-    """ Abstract base class for all ratings. """
+class PublicationTypeRating(models.Model):
+    """ Abstract base class for all ratings of publication-type objects. """
     rater = models.ForeignKey(Contributor)
     clarity = models.PositiveSmallIntegerField(RATING_CHOICES, default=0, null=True)
     validity = models.PositiveSmallIntegerField(RATING_CHOICES, default=0, null=True)
@@ -31,25 +31,35 @@ class Rating(models.Model):
         abstract = True
 
 
-class CommentaryRating(Rating):
+class CommentTypeRating(models.Model):
+    """ Abstract base class for all ratings of comment-type objects. """
+    rater = models.ForeignKey(Contributor)
+    relevance = models.PositiveSmallIntegerField(RATING_CHOICES, default=0, null=True)
+    importance = models.PositiveSmallIntegerField(RATING_CHOICES, default=0, null=True)
+    clarity = models.PositiveSmallIntegerField(RATING_CHOICES, default=0, null=True)
+    validity = models.PositiveSmallIntegerField(RATING_CHOICES, default=0, null=True)
+    rigour = models.PositiveSmallIntegerField(RATING_CHOICES, default=0, null=True)
+    
+    class Meta:
+        abstract = True
+
+
+class CommentaryRating(PublicationTypeRating):
     """ A Commentary rating is a set of numbers quantifying the original publication subject to a Commentary. """
     commentary = models.ForeignKey(Commentary)
 
-
-class CommentRating(Rating):
+class CommentRating(CommentTypeRating):
     """ A Comment rating is a set of numbers quantifying various requirements of a Comment. """
     comment = models.ForeignKey(Comment)
 
-class AuthorReplyRating(Rating):
+class AuthorReplyRating(CommentTypeRating):
     reply = models.ForeignKey(AuthorReply)
 
-
-class ReportRating(Rating):
+class ReportRating(CommentTypeRating):
     """ A Report rating is a set of numbers quantifying various requirements of a Report. """
     report = models.ForeignKey(Report)
 
-
-class SubmissionRating(Rating):
+class SubmissionRating(PublicationTypeRating):
     """ A Submission rating is a set of numbers quantifying various requirements of a Submission. """
     submission = models.ForeignKey(Submission)
 
diff --git a/ratings/views.py b/ratings/views.py
index a1b52499ad74242d41cc6069ff3017347976372c..d98cf0f496f648b9486b00eee09f5d2c4789b357 100644
--- a/ratings/views.py
+++ b/ratings/views.py
@@ -41,7 +41,7 @@ def vote_on_commentary(request, commentary_id):
             commentary.nr_originality_ratings = CommentaryRating.objects.filter(commentary=commentary, originality__lte=100).count()
             commentary.nr_significance_ratings = CommentaryRating.objects.filter(commentary=commentary, significance__lte=100).count()
             commentary.save()
-            # Recalculate the ratings for this report:
+            # Recalculate the ratings for this commentary:
             commentary.clarity_rating = CommentaryRating.objects.filter(commentary=commentary, clarity__lte=100).aggregate(avg_clarity=Avg('clarity'))['avg_clarity']
             commentary.validity_rating = CommentaryRating.objects.filter(commentary=commentary, validity__lte=100).aggregate(avg_validity=Avg('validity'))['avg_validity']
             commentary.rigour_rating = CommentaryRating.objects.filter(commentary=commentary, rigour__lte=100).aggregate(avg_rigour=Avg('rigour'))['avg_rigour']
@@ -70,48 +70,55 @@ def vote_on_comment(request, comment_id):
                 newrating = CommentRating (
                     comment = comment,
                     rater = Contributor.objects.get(user=request.user),
+                    relevance = form.cleaned_data['relevance'],
+                    importance = form.cleaned_data['importance'],
                     clarity = form.cleaned_data['clarity'],
                     validity = form.cleaned_data['validity'],
                     rigour = form.cleaned_data['rigour'],
-                    originality = form.cleaned_data['originality'],
-                    significance = form.cleaned_data['significance'],
                 )
                 newrating.save()
 
+                comment.nr_relevance_ratings = CommentRating.objects.filter(comment=comment, relevance__lte=100).count()
+                comment.nr_importance_ratings = CommentRating.objects.filter(comment=comment, importance__lte=100).count()
                 comment.nr_clarity_ratings = CommentRating.objects.filter(comment=comment, clarity__lte=100).count()
                 comment.nr_validity_ratings = CommentRating.objects.filter(comment=comment, validity__lte=100).count()
                 comment.nr_rigour_ratings = CommentRating.objects.filter(comment=comment, rigour__lte=100).count()
-                comment.nr_originality_ratings = CommentRating.objects.filter(comment=comment, originality__lte=100).count()
-                comment.nr_significance_ratings = CommentRating.objects.filter(comment=comment, significance__lte=100).count()
                 comment.save()
+
                 # Recalculate the ratings for this comment:
+                comment.relevance_rating = CommentRating.objects.filter(comment=comment, relevance__lte=100).aggregate(avg_relevance=Avg('relevance'))['avg_relevance']
+                comment.importance_rating = CommentRating.objects.filter(comment=comment, importance__lte=100).aggregate(avg_importance=Avg('importance'))['avg_importance']
                 comment.clarity_rating = CommentRating.objects.filter(comment=comment, clarity__lte=100).aggregate(avg_clarity=Avg('clarity'))['avg_clarity']
                 comment.validity_rating = CommentRating.objects.filter(comment=comment, validity__lte=100).aggregate(avg_validity=Avg('validity'))['avg_validity']
                 comment.rigour_rating = CommentRating.objects.filter(comment=comment, rigour__lte=100).aggregate(avg_rigour=Avg('rigour'))['avg_rigour']
-                comment.originality_rating = CommentRating.objects.filter(comment=comment, originality__lte=100).aggregate(avg_originality=Avg('originality'))['avg_originality']
-                comment.significance_rating = CommentRating.objects.filter(comment=comment, significance__lte=100).aggregate(avg_significance=Avg('significance'))['avg_significance']
                 comment.save()
 
                 # Recalculate the comment_ratings for the comment's author:
+                comment.author.comment_relevance_rating = 0
+                comment.author.comment_importance_rating = 0 
                 comment.author.comment_clarity_rating = 0
                 comment.author.comment_validity_rating = 0
                 comment.author.comment_rigour_rating = 0
-                comment.author.comment_originality_rating = 0
-                comment.author.comment_significance_rating = 0
 
+                nr_relevance_ratings_author = 0
+                nr_importance_ratings_author = 0
                 nr_clarity_ratings_author = 0
                 nr_validity_ratings_author = 0
                 nr_rigour_ratings_author = 0
-                nr_originality_ratings_author = 0
-                nr_significance_ratings_author = 0
+                relevance_rating_sum_author = 0
+                importance_rating_sum_author = 0
                 clarity_rating_sum_author = 0
                 validity_rating_sum_author = 0
                 rigour_rating_sum_author = 0
-                originality_rating_sum_author = 0
-                significance_rating_sum_author = 0
 
                 comments_from_author = Comment.objects.filter(author=comment.author)
                 for com in comments_from_author:
+                    nr_relevance_ratings_author += com.nr_relevance_ratings
+                    if com.nr_relevance_ratings > 0:
+                        relevance_rating_sum_author += com.nr_relevance_ratings * com.relevance_rating
+                    nr_importance_ratings_author += com.nr_importance_ratings
+                    if com.nr_importance_ratings > 0:
+                        importance_rating_sum_author += com.nr_importance_ratings * com.importance_rating
                     nr_clarity_ratings_author += com.nr_clarity_ratings
                     if com.nr_clarity_ratings > 0:
                         clarity_rating_sum_author += com.nr_clarity_ratings * com.clarity_rating
@@ -121,23 +128,17 @@ def vote_on_comment(request, comment_id):
                     nr_rigour_ratings_author += com.nr_rigour_ratings
                     if com.nr_rigour_ratings > 0:
                         rigour_rating_sum_author += com.nr_rigour_ratings * com.rigour_rating
-                    nr_originality_ratings_author += com.nr_originality_ratings
-                    if com.nr_originality_ratings > 0:
-                        originality_rating_sum_author += com.nr_originality_ratings * com.originality_rating
-                    nr_significance_ratings_author += com.nr_significance_ratings
-                    if com.nr_significance_ratings > 0:
-                        significance_rating_sum_author += com.nr_significance_ratings * com.significance_rating
 
+                comment.author.nr_comment_relevance_ratings = nr_relevance_ratings_author
+                comment.author.comment_relevance_rating = relevance_rating_sum_author/max(1, nr_relevance_ratings_author)
+                comment.author.nr_comment_importance_ratings = nr_importance_ratings_author
+                comment.author.comment_importance_rating = importance_rating_sum_author/max(1, nr_importance_ratings_author)
                 comment.author.nr_comment_clarity_ratings = nr_clarity_ratings_author
                 comment.author.comment_clarity_rating = clarity_rating_sum_author/max(1, nr_clarity_ratings_author)
                 comment.author.nr_comment_validity_ratings = nr_validity_ratings_author
                 comment.author.comment_validity_rating = validity_rating_sum_author/max(1, nr_validity_ratings_author)
                 comment.author.nr_comment_rigour_ratings = nr_rigour_ratings_author
                 comment.author.comment_rigour_rating = rigour_rating_sum_author/max(1, nr_rigour_ratings_author)
-                comment.author.nr_comment_originality_ratings = nr_originality_ratings_author
-                comment.author.comment_originality_rating = originality_rating_sum_author/max(1, nr_originality_ratings_author)
-                comment.author.nr_comment_significance_ratings = nr_significance_ratings_author
-                comment.author.comment_significance_rating = significance_rating_sum_author/max(1, nr_significance_ratings_author)
 
                 comment.author.save()
 
@@ -165,48 +166,54 @@ def vote_on_report(request, report_id):
                 newrating = ReportRating (
                     report = report,
                     rater = Contributor.objects.get(user=request.user),
+                    relevance = form.cleaned_data['relevance'],
+                    importance = form.cleaned_data['importance'],
                     clarity = form.cleaned_data['clarity'],
                     validity = form.cleaned_data['validity'],
                     rigour = form.cleaned_data['rigour'],
-                    originality = form.cleaned_data['originality'],
-                    significance = form.cleaned_data['significance'],
                     )
                 newrating.save()
 
+                report.nr_relevance_ratings = ReportRating.objects.filter(report=report, relevance__lte=100).count()
+                report.nr_importance_ratings = ReportRating.objects.filter(report=report, importance__lte=100).count()
                 report.nr_clarity_ratings = ReportRating.objects.filter(report=report, clarity__lte=100).count()
                 report.nr_validity_ratings = ReportRating.objects.filter(report=report, validity__lte=100).count()
                 report.nr_rigour_ratings = ReportRating.objects.filter(report=report, rigour__lte=100).count()
-                report.nr_originality_ratings = ReportRating.objects.filter(report=report, originality__lte=100).count()
-                report.nr_significance_ratings = ReportRating.objects.filter(report=report, significance__lte=100).count()
                 report.save()
                 # Recalculate the ratings for this report:
+                report.relevance_rating = ReportRating.objects.filter(report=report, relevance__lte=100).aggregate(avg_relevance=Avg('relevance'))['avg_relevance']
+                report.importance_rating = ReportRating.objects.filter(report=report, importance__lte=100).aggregate(avg_importance=Avg('importance'))['avg_importance']
                 report.clarity_rating = ReportRating.objects.filter(report=report, clarity__lte=100).aggregate(avg_clarity=Avg('clarity'))['avg_clarity']
                 report.validity_rating = ReportRating.objects.filter(report=report, validity__lte=100).aggregate(avg_validity=Avg('validity'))['avg_validity']
                 report.rigour_rating = ReportRating.objects.filter(report=report, rigour__lte=100).aggregate(avg_rigour=Avg('rigour'))['avg_rigour']
-                report.originality_rating = ReportRating.objects.filter(report=report, originality__lte=100).aggregate(avg_originality=Avg('originality'))['avg_originality']
-                report.significance_rating = ReportRating.objects.filter(report=report, significance__lte=100).aggregate(avg_significance=Avg('significance'))['avg_significance']
                 report.save()
 
                 # Recalculate the report_ratings for the report's author:
+                report.author.report_relevance_rating = 0
+                report.author.report_importance_rating = 0
                 report.author.report_clarity_rating = 0
                 report.author.report_validity_rating = 0
                 report.author.report_rigour_rating = 0
-                report.author.report_originality_rating = 0
-                report.author.report_significance_rating = 0
 
+                nr_relevance_ratings_author = 0
+                nr_importance_ratings_author = 0
                 nr_clarity_ratings_author = 0
                 nr_validity_ratings_author = 0
                 nr_rigour_ratings_author = 0
-                nr_originality_ratings_author = 0
-                nr_significance_ratings_author = 0
+                relevance_rating_sum_author = 0
+                importance_rating_sum_author = 0
                 clarity_rating_sum_author = 0
                 validity_rating_sum_author = 0
                 rigour_rating_sum_author = 0
-                originality_rating_sum_author = 0
-                significance_rating_sum_author = 0
 
                 reports_from_author = Report.objects.filter(author=report.author)
                 for rep in reports_from_author:
+                    nr_relevance_ratings_author += rep.nr_relevance_ratings
+                    if rep.nr_relevance_ratings > 0:
+                        relevance_rating_sum_author += rep.nr_relevance_ratings * rep.relevance_rating
+                    nr_importance_ratings_author += rep.nr_importance_ratings
+                    if rep.nr_importance_ratings > 0:
+                        importance_rating_sum_author += rep.nr_importance_ratings * rep.importance_rating
                     nr_clarity_ratings_author += rep.nr_clarity_ratings
                     if rep.nr_clarity_ratings > 0:
                         clarity_rating_sum_author += rep.nr_clarity_ratings * rep.clarity_rating
@@ -216,23 +223,17 @@ def vote_on_report(request, report_id):
                     nr_rigour_ratings_author += rep.nr_rigour_ratings
                     if rep.nr_rigour_ratings > 0:
                         rigour_rating_sum_author += rep.nr_rigour_ratings * rep.rigour_rating
-                    nr_originality_ratings_author += rep.nr_originality_ratings
-                    if rep.nr_originality_ratings > 0:
-                        originality_rating_sum_author += rep.nr_originality_ratings * rep.originality_rating
-                    nr_significance_ratings_author += rep.nr_significance_ratings
-                    if rep.nr_significance_ratings > 0:
-                        significance_rating_sum_author += rep.nr_significance_ratings * rep.significance_rating
 
+                report.author.nr_report_relevance_ratings = nr_relevance_ratings_author
+                report.author.report_relevance_rating = relevance_rating_sum_author/max(1, nr_relevance_ratings_author)
+                report.author.nr_report_importance_ratings = nr_importance_ratings_author
+                report.author.report_importance_rating = importance_rating_sum_author/max(1, nr_importance_ratings_author)
                 report.author.nr_report_clarity_ratings = nr_clarity_ratings_author
                 report.author.report_clarity_rating = clarity_rating_sum_author/max(1, nr_clarity_ratings_author)
                 report.author.nr_report_validity_ratings = nr_validity_ratings_author
                 report.author.report_validity_rating = validity_rating_sum_author/max(1, nr_validity_ratings_author)
                 report.author.nr_report_rigour_ratings = nr_rigour_ratings_author
                 report.author.report_rigour_rating = rigour_rating_sum_author/max(1, nr_rigour_ratings_author)
-                report.author.nr_report_originality_ratings = nr_originality_ratings_author
-                report.author.report_originality_rating = originality_rating_sum_author/max(1, nr_originality_ratings_author)
-                report.author.nr_report_significance_ratings = nr_significance_ratings_author
-                report.author.report_significance_rating = significance_rating_sum_author/max(1, nr_significance_ratings_author)
 
                 report.author.save()
             return HttpResponseRedirect(reverse('ratings:vote_on_report_ack'))
diff --git a/reports/migrations/0001_initial.py b/reports/migrations/0001_initial.py
index 2c3eb91466b38c76905e6a0bda95c8aea4cc7777..54a3d2c4eab8cd4bca3b91ad6301df7b6cfc8416 100644
--- a/reports/migrations/0001_initial.py
+++ b/reports/migrations/0001_initial.py
@@ -7,15 +7,15 @@ from django.db import migrations, models
 class Migration(migrations.Migration):
 
     dependencies = [
-        ('contributors', '0001_initial'),
         ('submissions', '0001_initial'),
+        ('contributors', '0001_initial'),
     ]
 
     operations = [
         migrations.CreateModel(
             name='Report',
             fields=[
-                ('id', models.AutoField(serialize=False, verbose_name='ID', auto_created=True, primary_key=True)),
+                ('id', models.AutoField(verbose_name='ID', auto_created=True, primary_key=True, serialize=False)),
                 ('status', models.SmallIntegerField(default=0)),
                 ('qualification', models.PositiveSmallIntegerField(default=0)),
                 ('strengths', models.TextField()),
@@ -23,20 +23,20 @@ class Migration(migrations.Migration):
                 ('report', models.TextField()),
                 ('requested_changes', models.TextField()),
                 ('recommendation', models.SmallIntegerField(choices=[(1, 'Publish as Tier I (top 10% of papers in this journal)'), (2, 'Publish as Tier II (top 50% of papers in this journal)'), (3, 'Publish as Tier III (meets the criteria of this journal)'), (-1, 'Ask for minor revision'), (-2, 'Ask for major revision'), (-3, 'Reject')])),
-                ('date_invited', models.DateTimeField(null=True, verbose_name='date invited', blank=True)),
+                ('date_invited', models.DateTimeField(verbose_name='date invited', blank=True, null=True)),
                 ('date_submitted', models.DateTimeField(verbose_name='date submitted')),
+                ('nr_relevance_ratings', models.IntegerField(default=0)),
+                ('relevance_rating', models.DecimalField(default=0, decimal_places=0, null=True, max_digits=3)),
+                ('nr_importance_ratings', models.IntegerField(default=0)),
+                ('importance_rating', models.DecimalField(default=0, decimal_places=0, null=True, max_digits=3)),
                 ('nr_clarity_ratings', models.IntegerField(default=0)),
-                ('clarity_rating', models.DecimalField(max_digits=3, default=0, decimal_places=0)),
+                ('clarity_rating', models.DecimalField(default=0, decimal_places=0, null=True, max_digits=3)),
                 ('nr_validity_ratings', models.IntegerField(default=0)),
-                ('validity_rating', models.DecimalField(max_digits=3, default=0, decimal_places=0)),
+                ('validity_rating', models.DecimalField(default=0, decimal_places=0, null=True, max_digits=3)),
                 ('nr_rigour_ratings', models.IntegerField(default=0)),
-                ('rigour_rating', models.DecimalField(max_digits=3, default=0, decimal_places=0)),
-                ('nr_originality_ratings', models.IntegerField(default=0)),
-                ('originality_rating', models.DecimalField(max_digits=3, default=0, decimal_places=0)),
-                ('nr_significance_ratings', models.IntegerField(default=0)),
-                ('significance_rating', models.DecimalField(max_digits=3, default=0, decimal_places=0)),
+                ('rigour_rating', models.DecimalField(default=0, decimal_places=0, null=True, max_digits=3)),
                 ('author', models.ForeignKey(to='contributors.Contributor')),
-                ('invited_by', models.ForeignKey(null=True, to='contributors.Contributor', related_name='invited_by', blank=True)),
+                ('invited_by', models.ForeignKey(null=True, to='contributors.Contributor', blank=True, related_name='invited_by')),
                 ('submission', models.ForeignKey(to='submissions.Submission')),
             ],
         ),
diff --git a/reports/migrations/0002_auto_20151212_0919.py b/reports/migrations/0002_auto_20151212_0919.py
deleted file mode 100644
index 05f181a4b8541831dae80f81173fc6cfca0293ca..0000000000000000000000000000000000000000
--- a/reports/migrations/0002_auto_20151212_0919.py
+++ /dev/null
@@ -1,39 +0,0 @@
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('reports', '0001_initial'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='report',
-            name='clarity_rating',
-            field=models.DecimalField(default=0, decimal_places=0, max_digits=3, null=True),
-        ),
-        migrations.AlterField(
-            model_name='report',
-            name='originality_rating',
-            field=models.DecimalField(default=0, decimal_places=0, max_digits=3, null=True),
-        ),
-        migrations.AlterField(
-            model_name='report',
-            name='rigour_rating',
-            field=models.DecimalField(default=0, decimal_places=0, max_digits=3, null=True),
-        ),
-        migrations.AlterField(
-            model_name='report',
-            name='significance_rating',
-            field=models.DecimalField(default=0, decimal_places=0, max_digits=3, null=True),
-        ),
-        migrations.AlterField(
-            model_name='report',
-            name='validity_rating',
-            field=models.DecimalField(default=0, decimal_places=0, max_digits=3, null=True),
-        ),
-    ]
diff --git a/reports/models.py b/reports/models.py
index e796ac4fc657057279f29df5492fc4d671269ed7..ff721c766c7d0d59cb56a5fe2257b0afafd711a9 100644
--- a/reports/models.py
+++ b/reports/models.py
@@ -48,15 +48,15 @@ class Report(models.Model):
     invited_by = models.ForeignKey(Contributor, blank=True, null=True, related_name='invited_by')
     date_submitted = models.DateTimeField('date submitted')
     # Aggregates of ratings applied to this report:
+    nr_relevance_ratings = models.IntegerField(default=0)
+    relevance_rating = models.DecimalField(default=0, max_digits=3, decimal_places=0, null=True)
+    nr_importance_ratings = models.IntegerField(default=0)
+    importance_rating = models.DecimalField(default=0, max_digits=3, decimal_places=0, null=True)
     nr_clarity_ratings = models.IntegerField(default=0)
     clarity_rating = models.DecimalField(default=0, max_digits=3, decimal_places=0, null=True)
     nr_validity_ratings = models.IntegerField(default=0)
     validity_rating = models.DecimalField(default=0, max_digits=3, decimal_places=0, null=True)
     nr_rigour_ratings = models.IntegerField(default=0)
     rigour_rating = models.DecimalField(default=0, max_digits=3, decimal_places=0, null=True)
-    nr_originality_ratings = models.IntegerField(default=0)
-    originality_rating = models.DecimalField(default=0, max_digits=3, decimal_places=0, null=True)
-    nr_significance_ratings = models.IntegerField(default=0)
-    significance_rating = models.DecimalField(default=0, max_digits=3, decimal_places=0, null=True)
     
 
diff --git a/submissions/migrations/0001_initial.py b/submissions/migrations/0001_initial.py
index cd2dae6ac37d296744cbb78fcf8fd5940d0214b5..6c80daf512cf0e53f826e284f7055d11e1b9235d 100644
--- a/submissions/migrations/0001_initial.py
+++ b/submissions/migrations/0001_initial.py
@@ -15,11 +15,11 @@ class Migration(migrations.Migration):
         migrations.CreateModel(
             name='Submission',
             fields=[
-                ('id', models.AutoField(serialize=False, verbose_name='ID', auto_created=True, primary_key=True)),
+                ('id', models.AutoField(verbose_name='ID', auto_created=True, primary_key=True, serialize=False)),
                 ('vetted', models.BooleanField(default=False)),
-                ('submitted_to_journal', models.CharField(max_length=30, choices=[('SciPost Physics Select', 'SciPost Physics Select'), ('SciPost Physics Letters', 'SciPost Physics Letters'), ('SciPost Physics X', 'SciPost Physics X (cross-division)'), ('SciPost Physics', 'SciPost Physics (Experimental, Theoretical and Computational)'), ('SciPost Physics Lecture Notes', 'SciPost Physics Lecture Notes')])),
-                ('domain', models.CharField(max_length=1, choices=[('E', 'Experimental'), ('T', 'Theoretical'), ('C', 'Computational')], default='E')),
-                ('specialization', models.CharField(max_length=1, choices=[('A', 'Atomic, Molecular and Optical Physics'), ('B', 'Biophysics'), ('C', 'Condensed Matter Physics'), ('F', 'Fluid Dynamics'), ('G', 'Gravitation, Cosmology and Astroparticle Physics'), ('H', 'High-Energy Physics'), ('M', 'Mathematical Physics'), ('N', 'Nuclear Physics'), ('Q', 'Quantum Statistical Mechanics'), ('S', 'Statistical and Soft Matter Physics')])),
+                ('submitted_to_journal', models.CharField(choices=[('SciPost Physics Select', 'SciPost Physics Select'), ('SciPost Physics Letters', 'SciPost Physics Letters'), ('SciPost Physics X', 'SciPost Physics X (cross-division)'), ('SciPost Physics', 'SciPost Physics (Experimental, Theoretical and Computational)'), ('SciPost Physics Lecture Notes', 'SciPost Physics Lecture Notes')], max_length=30)),
+                ('domain', models.CharField(default='E', choices=[('E', 'Experimental'), ('T', 'Theoretical'), ('C', 'Computational')], max_length=1)),
+                ('specialization', models.CharField(choices=[('A', 'Atomic, Molecular and Optical Physics'), ('B', 'Biophysics'), ('C', 'Condensed Matter Physics'), ('F', 'Fluid Dynamics'), ('G', 'Gravitation, Cosmology and Astroparticle Physics'), ('H', 'High-Energy Physics'), ('M', 'Mathematical Physics'), ('N', 'Nuclear Physics'), ('Q', 'Quantum Statistical Mechanics'), ('S', 'Statistical and Soft Matter Physics')], max_length=1)),
                 ('status', models.SmallIntegerField(choices=[(0, 'unassigned'), (1, 'editor in charge assigned'), (2, 'under review'), (3, 'reviewed, peer checking period'), (4, 'reviewed, peer checked, editorial decision pending'), (5, 'editorial decision')])),
                 ('open_for_reporting', models.BooleanField(default=True)),
                 ('open_for_commenting', models.BooleanField(default=True)),
@@ -29,17 +29,18 @@ class Migration(migrations.Migration):
                 ('arxiv_link', models.URLField(verbose_name='arXiv link (including version nr)')),
                 ('submission_date', models.DateField(verbose_name='date of original publication')),
                 ('nr_clarity_ratings', models.IntegerField(default=0)),
-                ('clarity_rating', models.DecimalField(max_digits=3, default=0, decimal_places=0)),
+                ('clarity_rating', models.DecimalField(default=0, decimal_places=0, null=True, max_digits=3)),
                 ('nr_validity_ratings', models.IntegerField(default=0)),
-                ('validity_rating', models.DecimalField(max_digits=3, default=0, decimal_places=0)),
+                ('validity_rating', models.DecimalField(default=0, decimal_places=0, null=True, max_digits=3)),
                 ('nr_rigour_ratings', models.IntegerField(default=0)),
-                ('rigour_rating', models.DecimalField(max_digits=3, default=0, decimal_places=0)),
+                ('rigour_rating', models.DecimalField(default=0, decimal_places=0, null=True, max_digits=3)),
                 ('nr_originality_ratings', models.IntegerField(default=0)),
-                ('originality_rating', models.DecimalField(max_digits=3, default=0, decimal_places=0)),
+                ('originality_rating', models.DecimalField(default=0, decimal_places=0, null=True, max_digits=3)),
                 ('nr_significance_ratings', models.IntegerField(default=0)),
-                ('significance_rating', models.DecimalField(max_digits=3, default=0, decimal_places=0)),
+                ('significance_rating', models.DecimalField(default=0, decimal_places=0, null=True, max_digits=3)),
                 ('latest_activity', models.DateTimeField(default=django.utils.timezone.now)),
-                ('editor_in_charge', models.ForeignKey(null=True, to='contributors.Contributor', related_name='editor_in_charge', blank=True)),
+                ('authors', models.ManyToManyField(related_name='authors_sub', blank=True, null=True, to='contributors.Contributor')),
+                ('editor_in_charge', models.ForeignKey(null=True, to='contributors.Contributor', blank=True, related_name='editor_in_charge')),
                 ('submitted_by', models.ForeignKey(to='contributors.Contributor')),
             ],
         ),
diff --git a/submissions/migrations/0002_auto_20151212_0919.py b/submissions/migrations/0002_auto_20151212_0919.py
deleted file mode 100644
index 685c061ac89dc83ecae4f99bbfd1910d3be2f532..0000000000000000000000000000000000000000
--- a/submissions/migrations/0002_auto_20151212_0919.py
+++ /dev/null
@@ -1,39 +0,0 @@
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('submissions', '0001_initial'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='submission',
-            name='clarity_rating',
-            field=models.DecimalField(default=0, decimal_places=0, max_digits=3, null=True),
-        ),
-        migrations.AlterField(
-            model_name='submission',
-            name='originality_rating',
-            field=models.DecimalField(default=0, decimal_places=0, max_digits=3, null=True),
-        ),
-        migrations.AlterField(
-            model_name='submission',
-            name='rigour_rating',
-            field=models.DecimalField(default=0, decimal_places=0, max_digits=3, null=True),
-        ),
-        migrations.AlterField(
-            model_name='submission',
-            name='significance_rating',
-            field=models.DecimalField(default=0, decimal_places=0, max_digits=3, null=True),
-        ),
-        migrations.AlterField(
-            model_name='submission',
-            name='validity_rating',
-            field=models.DecimalField(default=0, decimal_places=0, max_digits=3, null=True),
-        ),
-    ]
diff --git a/submissions/templates/submissions/submission_detail.html b/submissions/templates/submissions/submission_detail.html
index ec0d02d721d62ff798a702e23a24ddbdb2adf963..16d634a57dcf92c68b3e20e9f9862d2c2a3d2ba8 100644
--- a/submissions/templates/submissions/submission_detail.html
+++ b/submissions/templates/submissions/submission_detail.html
@@ -77,11 +77,11 @@
     <div class="col-8">
       <ul class="ratingsdata">
 	<li>Ratings: </li>
+	<li>relevance: {{ report.relevance_rating }}% ({{ report.nr_relevance_ratings }})</li>
+	<li>importance: {{ report.importance_rating }}% ({{ report.nr_importance_ratings }})</li>
 	<li>clarity: {{ report.clarity_rating }}% ({{ report.nr_clarity_ratings }})</li>
 	<li>validity: {{ report.validity_rating }}% ({{ report.nr_validity_ratings }})</li>
 	<li>rigour: {{ report.rigour_rating }}% ({{ report.nr_rigour_ratings }})</li>
-	<li>originality: {{ report.originality_rating }}% ({{ report.nr_originality_ratings }})</li>
-	<li>significance: {{ report.significance_rating }}% ({{ report.nr_significance_ratings }})</li>
       </ul>
     </div>
   </div>
@@ -174,11 +174,11 @@
     <div class="col-8">
       <ul class="ratingsdata">
 	<li>Ratings: </li>
+	<li>relevance: {{ comment.relevance_rating }}% ({{ comment.nr_relevance_ratings }})</li>
+	<li>importance: {{ comment.importance_rating }}% ({{ comment.nr_importance_ratings }})</li>
 	<li>clarity: {{ comment.clarity_rating }}% ({{ comment.nr_clarity_ratings }})</li>
 	<li>validity: {{ comment.validity_rating }}% ({{ comment.nr_validity_ratings }})</li>
 	<li>rigour: {{ comment.rigour_rating }}% ({{ comment.nr_rigour_ratings }})</li>
-	<li>originality: {{ comment.originality_rating }}% ({{ comment.nr_originality_ratings }})</li>
-	<li>significance: {{ comment.significance_rating }}% ({{ comment.nr_significance_ratings }})</li>
       </ul>
     </div>
   </div>