Index: /main/waeup.fceokene/trunk/src/waeup/fceokene/students/tests/test_browser.py
===================================================================
--- /main/waeup.fceokene/trunk/src/waeup/fceokene/students/tests/test_browser.py	(revision 17733)
+++ /main/waeup.fceokene/trunk/src/waeup/fceokene/students/tests/test_browser.py	(revision 17734)
@@ -250,10 +250,10 @@
         self.certificate.study_mode = 'ug_ft'
         error, payment = utils.setPaymentDetails('schoolfee',self.student)
-        self.assertEqual(payment.amount_auth,  70700)
+        self.assertEqual(payment.amount_auth,  96700)
         self.assertEqual(error, None)
         # UG cleared students pay 87200
         IWorkflowState(self.student).setState('cleared')
         error, payment = utils.setPaymentDetails('schoolfee',self.student)
-        self.assertEqual(payment.amount_auth, 87200)
+        self.assertEqual(payment.amount_auth, 126200)
         self.assertEqual(error, None)
 
Index: /main/waeup.fceokene/trunk/src/waeup/fceokene/students/utils.py
===================================================================
--- /main/waeup.fceokene/trunk/src/waeup/fceokene/students/utils.py	(revision 17733)
+++ /main/waeup.fceokene/trunk/src/waeup/fceokene/students/utils.py	(revision 17734)
@@ -151,4 +151,14 @@
                 if student.state != CLEARED:
                         return _('You are not a fresh student.'), None
+            if category == 'schoolfee_ug_new':
+                if not student.current_mode.startswith('ug'):
+                    return _('You are not a UG student.'), None
+                if student.state != CLEARED:
+                        return _('You are not a fresh student.'), None
+            if category == 'schoolfee_ug_ret':
+                if not student.current_mode.startswith('ug'):
+                    return _('You are not a UG student.'), None
+                if student.state != RETURNING:
+                        return _('You are not a returning student.'), None
             if category == 'schoolfee_third':
                 if not student.current_mode == 'nce_ft' \
@@ -188,12 +198,18 @@
             # UG
             elif student.current_mode == 'ug_ft':
-                if student.state == CLEARED:
-                    amount = 87200
+                if category == 'schoolfee_ug_new':
+                    # conditions checked above
+                    amount = 63200
+                elif category == 'schoolfee_ug_ret':
+                    # conditions checked above
+                    amount = 48700
+                elif student.state == CLEARED:
+                    amount = 126200
                 # Introducing repeater fee for 'ug_ft' for 1st time
                 # on 15/03/2016
-                elif student.current_verdict == 'O':
-                    amount = 70700
+                #elif student.current_verdict == 'O':
+                #    amount = 96700
                 else:
-                    amount = 70700
+                    amount = 96700
             # NCE
             elif not student.current_mode.endswith('_sw'):
Index: /main/waeup.fceokene/trunk/src/waeup/fceokene/utils/utils.py
===================================================================
--- /main/waeup.fceokene/trunk/src/waeup/fceokene/utils/utils.py	(revision 17733)
+++ /main/waeup.fceokene/trunk/src/waeup/fceokene/utils/utils.py	(revision 17734)
@@ -87,5 +87,7 @@
     PAYMENT_CATEGORIES = {
         'schoolfee': 'School Fee',
-        'schoolfee_pde1': 'School Fee 1st instalment (new PDE students only)',
+        'schoolfee_pde1': 'New PDE students first instalment',
+        'schoolfee_ug_new': 'Undergraduate new students first instalment',
+        'schoolfee_ug_ret': 'Undergraduate returning students first instalment',
         'schoolfee_third': 'NCE Third Semester Fee (6 courses)',
         'clearance': 'Acceptance Fee',
@@ -98,5 +100,7 @@
     SELECTABLE_PAYMENT_CATEGORIES = {
         'schoolfee': 'School Fee',
-        'schoolfee_pde1': 'School Fee 1st instalment (new PDE students only)',
+        'schoolfee_pde1': 'New PDE students first instalment',
+        'schoolfee_ug_new': 'Undergraduate new students first instalment',
+        'schoolfee_ug_ret': 'Undergraduate returning students first instalment',
         'schoolfee_third': 'NCE Third Semester Fee (6 courses)',
         'clearance': 'Acceptance Fee',
