Student Fee Generation
Generate Student Fees based on the fee method.
Table of Contents
Overview
(For scheduling the Fee generation from the PE Pathway, see: PE Pathway Fee generation instead.)
The following article covers the generation of Student Fees and its different types, and how the 'Fee Method' and 'Pay Upfront' fields on the Program Enrollment will affect the Student Fee creation.
Use case
The institution is offering an Academic Program, where the fees are billed per course that the student takes.
The fee amount per course is $2,000 for domestic students, and $2,500 for international students.
- See the main article on setting up fees here.
A domestic student (Student Fee Type = Domestic) wishes to apply to the program.
The Program Application has the following fields, 'Fee Method' and 'Pay Upfront'.
In this example, the Fee Method is "Course", meaning that the fee amount charged is per enrolled course.
The value of those fields will be inherited by the same fields on the Program Enrollment, which is created when the Program Application is approved.
These fields on the Program Enrollment will determine how the Student Fees will be generated, when the student enrolls to Courses.
See below for detailed explanation on the different types of Fee Method.
- Note:
The Program Enrollment also inherits the Contact's "Student Fee Type", but as of v3.15, this can be overridden at the Program Enrollment level.
Otherwise, if left blank, the Student Fees generated will be following the Contact's "Student Fee Type".
Type of Fee Method
The diagram below shows when each type of fee would be used. There are three important factors that would decide the fee types to be used:
- Fee Method picklist selected in Program Enrollment or PE Pathway.
- Fees (lookup) configured in Program Plan (Tuition and Non-Tuition) or Course Offering (Tuition, Non-Tuition and Other Course Fee).
- Fee Unit picklist selected in each fee record.
Different Fee Methods result in different Student Fee structures.
Different Fee Methods also have different ways of triggering the generation of Student Fees.
Below is a table that simplifies the details that you should know.
Note: For information on setting up Fees for Courses, see here instead: Setting up Fees for Courses.
Fee Method This is to determine how the Student Fee is going to be generated. |
Where is the Fee Details obtained from? The location where the Fee details are obtained from used for Student Fee generation. |
[1] Use Course Fee Generation Timing? This is a configuration in RIO Education custom setting. |
When is Student Fee generated? When/how does the Student Fee gets generated. |
Pay Upfront Whether pay upfront is allowed or not which is set at the Program Enrollment record. |
Student Fee Format How the Student and Fee Line are generated. |
Is Student Fee linked to PE Pathway? Some Student Fees are linked to PE Pathway, some are not. |
Program | Program Enrollment | No | When "Program Status" (in Program Enrollment) is changed to "Current". |
Only "Yes" option. | 1x Student Fee with 1x Fee Line. |
No |
Yes | When "Program Status" (in Program Enrollment) is changed to "Current". |
1x Student Fee with 1x Fee Line. |
No | |||
Course | Course Offering | No | When Course is enrolled. |
No | 1x Student Fee for each Course with 1x Fee Line. |
Yes |
Yes | 1x Student Fee with multiple Fee Lines for each Course. |
Yes | ||||
Yes | When Course is enrolled. |
No | 1x Student Fee for each Course with 1x Fee Line. |
Yes | ||
Yes | 1x Student Fee with multiple Fee Lines for each Course. |
Yes | ||||
Term - Course |
Course Offering |
No | When Course is enrolled. |
Only "No" option. | 1x Student Fee with multiple Fee Lines for each Course. |
Yes |
Yes | When "Term Fee Status" (in PE Pathway) is changed to "Generate". |
1x Student Fee with multiple Fee Lines for each Course. |
Yes | |||
Fixed Term |
Program Enrollment | No | When "Term Fee Status" (in PE Pathway) is changed to "Generate". |
Only "No" option. | 1x Student Fee with 1x Fee Line. |
Yes |
Yes | When "Term Fee Status" (in PE Pathway) is changed to "Generate". |
1x Student Fee with 1x Fee Line. |
Yes |
[1] "Use Course Fee Generation Timing" is a checkbox in "RIO Education Settings" available in the Salesforce's Custom Settings section. This checkbox allows you to delay the creation of Student Fees and Fee Lines for "Term - Course" fee method until the PE Pathway has been set to "Generate Fees".
Program fee method
This is for the one-off program fee. When Program Enrollment is created, the Tuition and Non-Tuition fee will be inherited from the related Program Plan. A student fee record will then be created. The fee(s) set in the Program Enrollment "Tuition" and "Non-Tuition" will be created as fee lines.
The Fee Line will be created from the Fee lookup on Program Enrollment.
Please note that when any Course Connection is set to "Enrolled", the "Other Course Fee" configured in the related Course Offering will be created as fee lines under a new student fee record.
When the Fee Method is 'Program', the Pay Upfront field is automatically set to 'Yes'.
All the Fee Lines of the Course Connections (enrolled Courses) will be put under a single Student Fee record, with one Fee Line per Course Connection.
In other words, if the student enrolls to 3 Courses, there will be one Student Fee, with 3 Fee Lines under it.
Term fee method
Term student fee is created for each new Term/semester when the first Course Connection for the Term is enrolled. Fee lines are added to the same student fee when subsequent Course Connections are enrolled. The fees are derived from fee records linked to the Course Offering.
There will be X Student Fee records created depending on the number of Terms (PE Pathway). The Student Fee record will be linked to the PE Pathway.
A Fee Line will be created for each Course Connection when the "Enrollment Status" = Enrolled and the Fee Line will be linked to the Student Fee record that has the same Term.
Fixed Term fee method
This is also a Term-based fee. The student fee record is generated when the “generate fixed term fees” checkbox on the term is set, and the PE Pathway that needs student fee to be generated has that term set. The fee lines for "Tuition" and "Non-Tuition" are generated from fee records linked from the Program Enrollment (the Tuition and Non-Tuition fee will be inherited from the related Program Plan upon creation) rather than the Course Offering.
Please note that when any Course Connections are set to "Enrolled", the "Other Course Fee" configured in the related Course Offering will be created as fee lines under a new student fee record.
There will be X Student Fee records created, depending on the number of Terms (PE Pathway).
The Student Fee record will be linked to the PE Pathway. A Fee Line will be created for each Student Fee, created from the Fee lookup on Program Enrollment.
When the Fee Method is 'Fixed Term', the Pay Upfront field is automatically set to 'No.
In other words, if there are 3 Courses enrolled, there will be a total of 3 Student Fees, whereby there is one Student Fee (and one Fee Line under it) for each individual Course.
Course fee method
If the Program Enrollment or PE Pathway has these following fields set as such:
- Fee Method = Course.
- Pay Upfront = No.
Each Course Connection enrolled gets its own Student Fee and Fee Line. These are all generated from fee records linked to the Course Offering as the Courses get enrolled.
This is for cases when students might enroll into a few Courses at a time, every Term.
In other words, if there are 3 Courses enrolled, there will be a total of 3 Student Fees, whereby there is one Student Fee (and one Fee Line under it) for each individual Course.
Due date population on Student Fees
When generating Student Fees while enrolling to a Program
**(Fee Method = Program)
IF Program->Fee Due Days AND Program Enrollment->Admission Date are present
Student Fee->Due Date = Program Enrollment->Admission Date + Program->Fee Due Days
ELSE
Student Fee->Due Date = Today's Date
When generating Student Fees while enrolling to a Course
1. For Creating new Student Fees for PE Pathways if they have no related Student Fee:
**(Fee Method = Fixed Term OR Fee Method = Term - Course)
IF PE Pathway->Term->Fee Due Date is present Student Fee->Due Date = PE Pathway->Term->Fee Due Date ELSE Student Fee->Due Date = Today's Date
2. For Creating new Program Enrollment Fees if they don't have related fees:
**(Fee Method = Course, Pay Upfront = Yes)
IF PE->Start Term->Fee Due Date is present Student Fee->Due Date = PE->Start Term->Fee Due Date ELSE IF Program->Fee Due Days AND Program Enrollment->Admission Date are present Student Fee->Due Date = Program Enrollment->Admission Date + Program->Fee Due Days ELSE Student Fee->Due Date = Today's Date
3. For Creating new Student Fees for each Course Connections with its own individual fee:
**(Fee Method = Course, Pay Upfront = No)
IF Course Connection->Course Offering Term->Fee Due Date is present Student Fee->Due Date = Course Connection->Course Offering Term->Fee Due Date ELSE IF Course Connection->Enrollment Date AND Course Connection->Due Days are present Student Fee->Due Date = Course Connection->Enrollment Date + Course Connection->Due Days ELSE Student Fee->Due Date = Today's Date
Note: Any other custom fee logic would need to have it's own logic to set this field.
Generating Term Fees
Term Fees can be generated for an individual student, via the student's PE Pathway record.
Note: The Fixed Term Fee Status will need to be updated to check the PE Pathway’s Fee Method if available, only falling back on the PE’s Fee Method if one isn’t found.
Alternatively, the admin can generate Term Fees for all the students within the same Term (semester). This is done by navigating to the Term record and checking the 'Generate Term Fees' checkbox.
Note: Please ensure that all Students have already enrolled into their respective Courses before ticking this checkbox. With this checkbox ticked, Students will not be able to select the respective Term if they have not done so yet.
Regenerating Term Fees
If there is a need to recalculate the Term Fees, admin can select the 'Regenerate' option in the Term Fee Status on the student's PE Pathway record.
This will delete the old Student Fees, and create a new Student Fee.
- If the fee has payments, we should first void the original fee, and once we’ve created the new fee we should reparent the payment to look up to the new fee. Only then can we delete the old one.
- If the fee is locked, we don’t do the final deletion. We leave it voided.
Apex/Triggers
Name | Use |
PREN_CompletionEngine_TDTM |
Rollup the number of Courses enrolled in a PE Pathway, and checks the Credits Attempted while they’re enrolled, instead of after grading. |
PEP_CoursesCompleted_TDTM |
Handles rollup of enrolled courses, allow to run for students. |
PEP_CreateFixedTermFee_TDTM |
Supports 'Regenerate' picklist option on PE Pathway. Checks the Fee Method defined on PE Pathway. Also generates Term - Course fees. |
SFEE_CourseConnection_TDTM |
Check the Fee Method defined on PE Pathway. Prevents Term - Course from generating fee if the PE Pathway isn’t ready yet. |
Fee grouping
It is also possible to set a group of non tuition fees to be charged to the students (e.g. student service fee, facility access fee, etc.).
For example, you would like to apply multiple Non-Tuition Fee and Other Course Fee for a student enrollment. This is achievable by adding multiple child fees to the parent fee.
Program Non-Tuition Fee:
- Service Fee.
- Facility Access Fee.
- Health and Wellness Fee.
Course Offering Non-Tuition Fee:
- Service Fee.
- Facility Access Fee.
- Health and Wellness Fee.
Here are the steps required to set this up:
- Create a fee record. This will be the parent where you will need to select "Fee Group" under the Fee Type picklist.
- When the parent fee record is created, start creating the child fee records against it. You can do this easily from the "Child Fees" tab.
- Remember to set up Fee Schedule Terms for each child fees. But, you do not need to do this for the parent fee record. Parent fee record does not require Fee Schedules as well.
Once the above is done, you can link your Program Plan or Course to this parent fee record you have created through the "Non Tuition Fee" lookups.
During the fee line generation, the related child fees that share the same fee label as parent fee will be retrieved and created as Fee Lines. Please note that the fee label could be left blank if not required.
Apex/Triggers
Name | Use |
SFEE_CourseConnection_TDTM |
Creates non-tuition fee lines and Course dependent extra fee lines if needed. Also handles annual fees and credit fees. |
SFEE_ProgramEnrollment_TDTM |
Create non-tuition fee lines if needed. Also handles annual fees. |
PREN_ProgramFee_TDTM |
Set Fee and Non Tuition Fee Ids. |
PEP_CreateFixedTermFee_TDTM |
Create non-tuition fee lines if needed. Also handles annual fees. |
REDU_PaymentComponent_LCTRL |
Handle multiple fee lines per Course Connection. |