diff --git a/opentech/apply/review/forms.py b/opentech/apply/review/forms.py
index d16b99a989fe44c4049fb5e55c720b4dea085f48..69e0961a0362e55f0742db79ea7caa48c97b4b1e 100644
--- a/opentech/apply/review/forms.py
+++ b/opentech/apply/review/forms.py
@@ -81,6 +81,9 @@ class ReviewModelForm(StreamBaseForm, forms.ModelForm, metaclass=MixedMetaClass)
 
         self.instance.form_data = self.cleaned_data['form_data']
 
+        # Capture the revision against which the user was reviewing
+        self.instance.revision = self.instance.submission.live_revision
+
         return super().save(commit)
 
     def calculate_score(self, data):
@@ -91,10 +94,11 @@ class ReviewModelForm(StreamBaseForm, forms.ModelForm, metaclass=MixedMetaClass)
 
             try:
                 score = int(value[1])
-                if score != NA:
-                    scores.append(score)
             except TypeError:
                 pass
+            else:
+                if score != NA:
+                    scores.append(score)
 
         try:
             return sum(scores) / len(scores)
diff --git a/opentech/apply/review/migrations/0007_review_revision.py b/opentech/apply/review/migrations/0007_review_revision.py
new file mode 100644
index 0000000000000000000000000000000000000000..7c58d56bd34589073d755de95f43caa26c7b5578
--- /dev/null
+++ b/opentech/apply/review/migrations/0007_review_revision.py
@@ -0,0 +1,20 @@
+# Generated by Django 2.0.2 on 2018-08-14 13:35
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('funds', '0041_roundbasereviewform'),
+        ('review', '0006_remove_review_review'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='review',
+            name='revision',
+            field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='reviews', to='funds.ApplicationRevision'),
+        ),
+    ]
diff --git a/opentech/apply/review/models.py b/opentech/apply/review/models.py
index 5d093e7b87e00f8a4c5c69a8db60fd0f68388e56..b55297626f558e92c6c2cff60e81ee621be5b092 100644
--- a/opentech/apply/review/models.py
+++ b/opentech/apply/review/models.py
@@ -70,6 +70,7 @@ class ReviewQuerySet(models.QuerySet):
 
 class Review(BaseStreamForm, models.Model):
     submission = models.ForeignKey('funds.ApplicationSubmission', on_delete=models.CASCADE, related_name='reviews')
+    revision = models.ForeignKey('funds.ApplicationRevision', on_delete=models.SET_NULL, related_name='reviews', null=True)
     author = models.ForeignKey(
         settings.AUTH_USER_MODEL,
         on_delete=models.PROTECT,
diff --git a/opentech/apply/review/tests/factories/blocks.py b/opentech/apply/review/tests/factories/blocks.py
index 600291d33423712a1daca8884756e507457651a3..c688e8d06ce34063207789e0b2ad4d6cb9febf2c 100644
--- a/opentech/apply/review/tests/factories/blocks.py
+++ b/opentech/apply/review/tests/factories/blocks.py
@@ -31,7 +31,7 @@ class ScoreFieldBlockFactory(FormFieldBlockFactory):
 
     @classmethod
     def make_answer(cls, params=dict()):
-        return json.dumps([random.randint(0, 5), factory.Faker('word').generate(params)])
+        return json.dumps([random.randint(0, 5), factory.Faker('paragraph').generate(params)])
 
 
 ReviewFormFieldsFactory = StreamFieldUUIDFactory({
diff --git a/opentech/apply/review/tests/factories/models.py b/opentech/apply/review/tests/factories/models.py
index 8110443c9ff94ad4c9dd990478fc2d31ad1c69af..9155c940611d1a112495eee0c39300a160b03eec 100644
--- a/opentech/apply/review/tests/factories/models.py
+++ b/opentech/apply/review/tests/factories/models.py
@@ -26,8 +26,9 @@ class ReviewFactory(factory.DjangoModelFactory):
         draft = factory.Trait(is_draft=True)
 
     submission = factory.SubFactory(ApplicationSubmissionFactory)
+    revision = factory.SelfAttribute('submission.live_revision')
     author = factory.SubFactory(StaffFactory)
-    form_fields = blocks.ReviewFormFieldsFactory
+    form_fields = factory.LazyAttribute(lambda o: o.submission.round.review_forms.first().fields)
     form_data = factory.SubFactory(
         ReviewFormDataFactory,
         form_fields=factory.SelfAttribute('..form_fields'),
diff --git a/opentech/apply/review/tests/test_views.py b/opentech/apply/review/tests/test_views.py
index 09b4fefaa5195a26a001c85b9ffa3bbd6b25fc0f..db97ab51a2a4d3aa3be6a1ff12a34e8f6e7d175e 100644
--- a/opentech/apply/review/tests/test_views.py
+++ b/opentech/apply/review/tests/test_views.py
@@ -3,6 +3,7 @@ from django.urls import reverse
 from opentech.apply.funds.tests.factories.models import ApplicationSubmissionFactory
 from opentech.apply.users.tests.factories import StaffFactory, UserFactory
 from opentech.apply.utils.testing.tests import BaseViewTestCase
+
 from .factories import ReviewFactory
 
 
@@ -79,6 +80,13 @@ class StaffReviewFormTestCase(BaseViewTestCase):
         self.assertEqual(response.context['has_submitted_review'], False)
         self.assertEqual(response.context['title'], 'Update Review draft')
 
+    def test_revision_captured_on_review(self):
+        submission = ApplicationSubmissionFactory(status='internal_review')
+        review_data = ReviewFactory.build(submission=submission)
+        review_answers = review_data.form_data
+        response = self.post_page(submission, review_answers, 'form')
+        review = submission.reviews.first()
+
 
 class UserReviewFormTestCase(BaseViewTestCase):
     user_factory = UserFactory
diff --git a/opentech/apply/stream_forms/testing/factories.py b/opentech/apply/stream_forms/testing/factories.py
index a7a12f3feb1a72840e9fa2e1effa207cd0d01160..da27577429008c30007fa9f100bcc88bd404c8fc 100644
--- a/opentech/apply/stream_forms/testing/factories.py
+++ b/opentech/apply/stream_forms/testing/factories.py
@@ -21,6 +21,9 @@ class AnswerFactory(factory.Factory):
     def _create(self, *args, sub_factory=None, **kwargs):
         return sub_factory.make_answer(kwargs)
 
+    def _build(self, *args, sub_factory=None, **kwargs):
+        return sub_factory.make_answer(kwargs)
+
 
 class AddFormFieldsMetaclass(factory.base.FactoryMetaClass):
     def __new__(mcs, class_name, bases, attrs):