diff --git a/opentech/apply/tests/factories.py b/opentech/apply/tests/factories.py
index 91840560284b2fde4e11be9b667868ba07a0f64a..c98bd05c71ffb6461bbb4d681e4bf19e0b4afe67 100644
--- a/opentech/apply/tests/factories.py
+++ b/opentech/apply/tests/factories.py
@@ -1,15 +1,27 @@
 from django.forms import Form
 import factory
 
-from opentech.apply.workflow import Stage, Workflow
+from opentech.apply.workflow import Phase, Stage, Workflow
+
+
+class PhaseFactory(factory.Factory):
+    class Meta:
+        model = Phase
+
+    name = factory.Faker('word')
 
 
 class StageFactory(factory.Factory):
     class Meta:
         model = Stage
+        inline_args = ('name', 'form', 'phases',)
+
+    class Params:
+        num_phases = factory.Faker('random_int', min=1, max=3)
 
     name = factory.Faker('word')
     form = factory.LazyFunction(Form)
+    phases = factory.LazyAttribute(lambda o: [PhaseFactory() for _ in range(o.num_phases)])
 
 
 class WorkflowFactory(factory.Factory):
diff --git a/opentech/apply/tests/test_workflow.py b/opentech/apply/tests/test_workflow.py
index 45c152052f660579455176d4becfcba9dd97691c..72f9ad0fcf2937dca727ee51c4f193406f527231 100644
--- a/opentech/apply/tests/test_workflow.py
+++ b/opentech/apply/tests/test_workflow.py
@@ -3,7 +3,7 @@ from django.forms import Form
 
 from opentech.apply.workflow import Phase, Stage, Workflow
 
-from .factories import StageFactory, WorkflowFactory
+from .factories import PhaseFactory, StageFactory, WorkflowFactory
 
 
 class TestWorkflowCreation(SimpleTestCase):
@@ -37,9 +37,11 @@ class TestStageCreation(SimpleTestCase):
     def test_can_create_stage(self):
         name = 'the_stage'
         form = Form()
-        stage = Stage(name, form)
+        phases = PhaseFactory.create_batch(2)
+        stage = Stage(name, form, phases)
         self.assertEqual(stage.name, name)
         self.assertEqual(stage.form, form)
+        self.assertEqual(stage.phases, phases)
 
 
 class TestPhaseCreation(SimpleTestCase):
diff --git a/opentech/apply/workflow.py b/opentech/apply/workflow.py
index 521f1b5f2a1afccc01f116c71b50351ddb2106a6..882208b35b5e4d5a275ccc59e927808b33688e94 100644
--- a/opentech/apply/workflow.py
+++ b/opentech/apply/workflow.py
@@ -26,9 +26,10 @@ class Workflow(Iterable['Stage']):
 
 
 class Stage:
-    def __init__(self, name: str, form: Form) -> None:
+    def __init__(self, name: str, form: Form, phases: Sequence['Phase']) -> None:
         self.name = name
         self.form = form
+        self.phases = phases
 
 
 class Phase: