diff --git a/erpnext/docs/assets/img/schools/admission/student-admission.gif b/erpnext/docs/assets/img/schools/admission/student-admission.gif
new file mode 100644
index 0000000..26caea9
--- /dev/null
+++ b/erpnext/docs/assets/img/schools/admission/student-admission.gif
Binary files differ
diff --git a/erpnext/docs/user/manual/en/schools/admission/student_admission.md b/erpnext/docs/user/manual/en/schools/admission/student_admission.md
index eeaa977..7a63fa7 100644
--- a/erpnext/docs/user/manual/en/schools/admission/student_admission.md
+++ b/erpnext/docs/user/manual/en/schools/admission/student_admission.md
@@ -1,13 +1,14 @@
 # Student Admission
 
-The admission process begins with filling the admission form. The Student Admission record enables to intitate your admission process for a given **Academic year**. ERPNext admission module allow you to create an admission record which can be then published on the ERPNext generate website. 
+The admission process begins with filling the admission form. The Student Admission record enables to initiate your admission process for a given **Academic year**. ERPNext admission module allows you to create an admission record which can be then published on the ERPNext generate website.
 
 To create a Student Admission record  go to :
 
 **Schools** >> **Admissions** >> **Student Admission** >>
 
 
-<img class="screenshot" alt="Student Applicant" src="/docs/assets/img/schools/student/student-admission.gif">
+<img class="screenshot" alt="Student Applicant" src="/docs/assets/img/schools/admission/student-admission.gif">
 
+Once an admission record is created, the age eligibility criteria can be determined for the every program. Similarly, you can also determine the application fee and naming series for every student applicant. If you keep the naming series blank then the default naming series will be applied for every student applicant.
 
-Once a admission record is created it can be published on the website and the student can apply from the web portal itself. 
\ No newline at end of file
+The information provided in the Student Admission records will be used for the validation and creation of the Student Admission records (only if student admission link is filled there)
\ No newline at end of file
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index 8b0f714..d95d63a 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -450,3 +450,4 @@
 erpnext.patches.v8_9.update_billing_gstin_for_indian_account
 erpnext.patches.v9_0.fix_subscription_next_date
 erpnext.patches.v9_0.set_schedule_date_for_material_request_and_purchase_order
+erpnext.patches.v9_0.student_admission_childtable_migrate
diff --git a/erpnext/patches/v9_0/student_admission_childtable_migrate.py b/erpnext/patches/v9_0/student_admission_childtable_migrate.py
new file mode 100644
index 0000000..dcbbeeb
--- /dev/null
+++ b/erpnext/patches/v9_0/student_admission_childtable_migrate.py
@@ -0,0 +1,28 @@
+# Copyright (c) 2017, Frappe and Contributors
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+import frappe
+
+def execute():
+	frappe.reload_doc('schools', 'doctype', 'Student Admission Program')
+	frappe.reload_doctype('Student Admission')
+
+	if "program" not in frappe.db.get_table_columns("Student Admission"):
+		return
+
+	student_admissions = frappe.get_all("Student Admission", fields=["name", "application_fee", \
+		"naming_series_for_student_applicant", "program", "introduction", "eligibility"])
+	for student_admission in student_admissions:
+		doc = frappe.get_doc("Student Admission", student_admission.name)
+		doc.append("program_details", {
+			"program": student_admission.get("program"),
+			"application_fee": student_admission.get("application_fee"),
+			"applicant_naming_series": student_admission.get("naming_series_for_student_applicant"),
+		})
+		if student_admission.eligibility and student_admission.introduction:
+			doc.introduction = student_admission.introduction + "<br><div>" + \
+				student_admission.eligibility + "</div>"
+		doc.flags.ignore_validate = True
+		doc.flags.ignore_mandatory = True
+		doc.save()
diff --git a/erpnext/schools/doctype/student_admission/test_student_admission.js b/erpnext/schools/doctype/student_admission/test_student_admission.js
index 0d7c997..3e997ca 100644
--- a/erpnext/schools/doctype/student_admission/test_student_admission.js
+++ b/erpnext/schools/doctype/student_admission/test_student_admission.js
@@ -11,23 +11,29 @@
 				{admission_start_date: '2016-04-20'},
 				{admission_end_date: '2016-05-31'},
 				{title: '2016-17 Admissions'},
-				{program: 'Standard Test'},
-				{application_fee: 1000},
-				{naming_series_for_student_applicant: 'AP'},
+				{application_form_route: 'student-applicant'},
 				{introduction: 'Test intro'},
-				{eligibility: 'Test eligibility'}
+				{program_details: [
+					[
+						{'program': 'Standard Test'},
+						{'application_fee': 1000},
+						{'applicant_naming_series': 'AP'},
+					]
+				]}
 			]);
 		},
+		() => cur_frm.save(),
 		() => {
 			assert.ok(cur_frm.doc.academic_year == '2016-17');
 			assert.ok(cur_frm.doc.admission_start_date == '2016-04-20');
 			assert.ok(cur_frm.doc.admission_end_date == '2016-05-31');
 			assert.ok(cur_frm.doc.title == '2016-17 Admissions');
-			assert.ok(cur_frm.doc.program == 'Standard Test', 'Program correctly selected');
-			assert.ok(cur_frm.doc.application_fee == 1000);
-			assert.ok(cur_frm.doc.naming_series_for_student_applicant == 'AP');
+			assert.ok(cur_frm.doc.application_form_route == 'student-applicant');
 			assert.ok(cur_frm.doc.introduction == 'Test intro');
-			assert.ok(cur_frm.doc.eligibility == 'Test eligibility');
+			assert.ok(cur_frm.doc.program_details[0].program == 'Standard Test', 'Program correctly selected');
+			assert.ok(cur_frm.doc.program_details[0].application_fee == 1000);
+			assert.ok(cur_frm.doc.program_details[0].applicant_naming_series == 'AP');
+			assert.ok(cur_frm.doc.route == 'admissions/2016-17-Admissions', "Route successfully set");
 		},
 		() => done()
 	]);
