4Program Element

Defines all details about a student's academic program, including program code, description, type, college, dates, and status.

Required Element? Yes

Can Repeat? No

Best Practices:
  • Ensure your school has a tested plan to manage enrollment changes in Oracle Student Financial Planning (SFP) before going active.
  • Have a clear strategy for using packaging start dates versus program start dates when starting financial aid packages in SFP.

Field: Program Code

Description: Unique identifier for the program. A change in this code indicates the student is entering a new program, requiring a new enrollment and financial aid package.

Impact on Financial Aid Processing: A new enrollment will create regardless of the current program's enrollment status.

A new program code should only be sent if the student is entering a new degree level that impacts the student's award amounts. If the new program overlaps the prior program, the student should be withdrawn or graduated in the prior program to ensure correct packaging.

Current SFP logic doesn't automate packaging overlapping funding across dual enrollments. Schools should ensure terms that overlaps don't have course, enrollment data, or a cost of attendance configured in both enrollments to prevent financial aid from being packaged inaccurately.

It's recommended to use the enrollment data report to identify concurrent enrollments with overlapping funding.

Example Data Type Required XML Schema Validation Accessible via Configuration? Display Locations
BSSOM Nonblank string Yes

Any string

Student Academic and Financial Information (SAFI) message can only contain one program within the 'Program' tag

Yes getCode()
  • Student Summary
  • Packaging
  • Program Information
  • Enrollment Information
  • Satisfactory Academic Progress (SAP) Information
  • Disbursing
  • Return to Title IV (R2T4) Information
  • Credit Balance

Field: Description

Description: Schools typically use this field to describe more specifically what the student is studying. For example, display the program name and each major the student has declared.

Impact on Financial Aid Processing: Description isn't used to decide when a new enrollment is created in packaging, but can be used within configuration and is viewable to the student in Self Service.

If a school offers multiple programs within the same degree/career level, this field can be used to identify the specific program/plan/major that the student is attending. This will allow you to send in the same program code to prevent new enrollments from being created unnecessarily when a student is changing programs at the same degree level.

Example Data Type Required XML Schema Validation Accessible via Configuration? Display Locations
BSSOM Accounting and Information Systems Nonblank string Yes

Any string

Yes getDescription()
  • Student Summary
  • Packaging
  • Program Information
  • Enrollment Information
  • SAP Information
  • Disbursing
  • R2T4 Information
  • Credit Balance
  • Self Service

Field: External Program ID

Description: A unique Identifier usually used to define the instance of the program the student is taking.

Impact on Financial Aid Processing: External Program ID isn't used to decide when a new enrollment is created in packaging, but can be used within configuration.

If a school offers multiple programs within the same degree/career level, this field can be used to identify the specific program/plan/major that the student is attending. This will allow you to send in the same program code to prevent new enrollments from being created unnecessarily when a student is changing programs at the same degree level.

Example Data Type Required XML Schema Validation Accessible via Configuration? Display Locations
BSSOM Accounting and Information Systems Nonblank string Yes

Any string

Yes getDescription()
  • Student Summary
  • Packaging
  • Program Information
  • Enrollment Information
  • SAP Information
  • Disbursing
  • R2T4 Information
  • Credit Balance
  • Self Service

Field: Program Type

Description: Identifies the type of program the student is in. The school is restricted to a set of predefined options.

Impact on Financial Aid Processing: Provided value will be used to calculate the cost of attendance (COA) for the students program during packaging. Program_Type is used within COA_Term_AY.csv and COA.csv to define the cost of attendance. The program type is also used to send the program credential level to Common Origination and Disbursement (COD). It is finally used to calculate student's eligibility in Title IV funds. Be aware of how you're mapping this data in your student information system as it impacts your students' Title IV funding.

If a student is going change their program type it should correlate to a change in your program code to process Title IV funding correctly in SFP.

Example Data Type Required XML Schema Validation Accessible via Configuration? Display Locations
Graduate Enum Yes
  • Certificate (Graduate)
  • Certificate (Undergraduate)
  • Associate
  • Bachelors
  • Graduate
  • Doctoral
  • Certificate (Post Baccalaureate)
  • Non credential
  • Certificate (Doctoral)
Yes getProgramType()
  • Student Summary
  • Program Information

Field: College

Description: Defines the college that student is enrolled.

Impact on Financial Aid Processing: This is an optional field that can be used for configuring COA or nonfederal funds.

Example Data Type Required XML Schema Validation Accessible via Configuration? Display Locations
College of Security and Criminal Justice Non Blank String No Any String Yes getCollege() Program Information

Field: Special Programs

Description: Defined special program type used in communications with COD
  • A = Selective Admission Associate Program
  • B = Bachelor's Degree Completion Program
  • N = Not Applicable
  • P = Preparatory Coursework Graduate Professional Program
  • T = Non Credential Teacher Certification Program
  • U = Preparatory Coursework Undergraduate Program

Impact on Financial Aid Processing: The value provided is included in COD origination and disbursement records.

Example Data Type Required XML Schema Validation Accessible via Configuration? Display Locations
N Enum Yes
  • A
  • B
  • N
  • P
  • T
  • U
Yes getSpecialPrograms() Common Record Information

Field: Program CIP Code

Description: Defined program Classification of Instructional Programs (CIP) code.

Impact on Financial Aid Processing: Value is communicated to COD based on configuration.

CIP code should match what has been configured in CIP_CODE_RULES configuration workbook and FAS_PROGRAM_CIP_CODE default configuration list defined by US Department of Education (ED). If the CIP code value from SAFI doesn't match a code configured in CIP_CODE_RULES and FAS_PROGRAM_CIP_CODE default configuration list origination will change to origination ready to be sent to COD, but will not trigger to COD.

Example Data Type Required XML Schema Validation Accessible via Configuration? Display Locations
11.0102 String No List of possible values defined by the Department of Education: http://nces.ed.gov/ipeds/cipcode/ No Common Record Information

Field: Program Measurement Unit

Description: Defines if a program is credit hour or clock hour

Impact on Financial Aid Processing: Only credit hour is currently supported in SFP. Schools should use a conversion method defined by ED if they use clock hours.

For more information on clock hours, including credit to clock hour conversion see the Federal Student Handbook (Academic Calendar and Payment Periods).

Example Data Type Required XML Schema Validation Accessible via Configuration? Display Locations
Credit Enum Yes
  • Credit
  • Clock
Yes getProgramMeasurementUnit() Program Information

Field: Assessed Units

Description: Schools use this field to show the number of credits the student passed out of either due to accepted credits or passing out of a course via testing.

Impact on Financial Aid Processing: Included in baseline configuration for grade level progression (default_grade_level.groovy).

Included in the SAP calculation for defining program length that's used in the maximum time frame and pace of completion calculations.

Example Data Type Required XML Schema Validation Accessible via Configuration? Display Locations
3.50 Double No Any numeric value Yes getAssessedUnits()
  • Program Information
  • SAP Information

Field: Total Required Units

Description: Defines the number of units required to complete the student's program.

Impact on Financial Aid Processing: We use this value to identify the number of remaining credits the student needs to complete to finish their program. For term programs, this value isn't used, but appears on the UI.

Example Data Type Required XML Schema Validation Accessible via Configuration? Display Locations
120.50 Double Yes Any numeric value Yes getTotalRequiredUnits()
  • Program Information
  • Packaging
  • Disbursing
  • Credit Balance
  • SAP Information

Field: Primary Location

Description: Primary location of the program

Impact on Financial Aid Processing: This is mainly used in non federal funds configuration when identifying eligibility for a student at a particular campus.

Example Data Type Required XML Schema Validation Accessible via Configuration? Display Locations
Main Campus Non Blank String Yes Any string Yes getPrimaryLocation() Program Information

Field: OPEID

Description: Office of Post secondary Education ID (OPEID) for the program

Impact on Financial Aid Processing: Used in communications with COD for Title IV funds. Should match an OPEID configured in your SCHOOL.csv configuration workbook.

Example Data Type Required XML Schema Validation Accessible via Configuration? Display Locations
59689526 8 Digit String (0-9) Yes Any string Yes getOpeId() Common Record Information

Field: Modality

Description: Defines if this program is taken on ground or online

Impact on Financial Aid Processing: We use this field to decide how to calculate the COA based on the institutions specific configuration.

Also, it can be used by our non federal funds configuration engine for eligibility and awarding. At least one of the course sub element's Modality fields should match this modality field.

Example Data Type Required XML Schema Validation Accessible via Configuration? Display Locations
Online Enum Yes
  • Ground
  • Online
Yes getModality() Program Information

Field: FA Eligible Indicator

Description: Indicates if the program is Title IV eligible

Impact on Financial Aid Processing: Used within the general Title IV, subsidized and unsubsidized eligibility calculations.

Example Data Type Required XML Schema Validation Accessible via Configuration? Display Locations
True Boolean Yes
  • True
  • False
Yes getFaEligibleIndicator()
  • Program Information
  • Packaging
  • Disbursing
  • Credit Balance

Field: Primary Program Indicator

Description: This field indicates if the program is currently the student's primary program

Impact on Financial Aid Processing: SFP will only package a student when the primary program indicator is true.

Example Data Type Required XML Schema Validation Accessible via Configuration? Display Locations
True Boolean Yes
  • True
  • False
No Program Information

Field: GPA

Description: This is the student's current program grade point average (GPA) at the point the SAFI is sent.

Impact on Financial Aid Processing: No impact

Example Data Type Required XML Schema Validation Accessible via Configuration? Display Locations
3.25 Nonnegative Double No Any numeric value Yes getGpa() Program Information

Field: Required GPA

Description: This is the program GPA that's required to pass a component of the SAP evaluation.

Impact on Financial Aid Processing: Used as the program required GPA within the GPA component of the SAP evaluation.

Example Data Type Required XML Schema Validation Accessible via Configuration? Display Locations
3.25 Nonnegative Double No Any numeric value Yes getRequiredGpa()
  • Program Information
  • SAP Information

Field: Program Start Date

Description: The program start date defines the point at which the system will begin packaging the student for financial aid.

Impact on Financial Aid Processing: The package will start with the first term that falls on hour after the later of the program start date or the packaging start date, if one was sent in.

If you're bringing a student into SFP mid-program, this value will be ignored and will instead package the student as of the packaging start date. The packaging start date event is an integration message that should be set per student and program.

  • If a package start date is sent in 1 day after the term starts, the packaging engine will not start until the following Academic Year (AY).
  • A packaging start date event should be sent in with at least the program code and the enrollment ID, if you know it. Without this the packaging start date will apply to all current and future enrollments.
Example Data Type Required XML Schema Validation Accessible via Configuration? Display Locations
2025-01-01 Date Yes Any Date but the Program Start Date tag must be on or after 2013-07-01 and the Primary program must not contain a 'Course Start Date on or after Program Start Date Yes getStartDate()
  • Student Summary
  • Program Information

Field: Change Of Program Start Date

Description: To be used only by non term program students

Impact on Financial Aid Processing: Not used for term programs, this is only used for converting students that are changing programs in a non term program.

Example Data Type Required XML Schema Validation Accessible via Configuration? Display Locations
2025-01-01 Date No Any Date No Program Information

Field: Academic Completion Date

Description: Date student finishes their degree program

Impact on Financial Aid Processing: This field is for UI purposes but can be used in custom configuration and letter generation for exit processing.

Example Data Type Required XML Schema Validation Accessible via Configuration? Display Locations
2025-01-01 Date No Any Date Yes getAcademicCompletionDate() Program Information

Field: Official Last Date of Attendance

Description: The last date the student attended before leaving or completing their program

Impact on Financial Aid Processing: Date field that describes the student's official last date of attendance. This is used during the R2T4 calculation for program withdrawals, late disbursements, and post withdrawals.

SFP assumes that if the official last date of attendance is before the first academic year start date, then the student hasn't started attending.
Example Data Type Required XML Schema Validation Accessible via Configuration? Display Locations
2025-01-01 Date No Any date Last Date Of Attendance is required when StudentEnrollmentStatus is W, D or G Yes getOfficialLastDateOfAttendance()
  • Program Information
  • R2T4 Information

Field: Date of Determination

Description: Date school identifies the student withdrew from school

Impact on Financial Aid Processing: Date field that's used during the R2T4 calculation. For example, to ensure the R2T4 calculation is completed within 30 days of the Date of Determination (DOD) and the post withdrawal process to identify an inadvertent payment checked in Post Withdrawal Disbursement (PWD) criteria.

If the student's DOD is changed within the time period that an R2T4 calculation was scheduled, the calculation will still be run on the day it was originally intended. For example, 14 days from the DOD for an unofficial withdrawal.

Example Data Type Required XML Schema Validation Accessible via Configuration? Display Locations
2025-01-01 Date No Any date Date Of Determination is required when StudentEnrollmentStatus is W or D Yes getDateOfDetermination()
  • Program Information
  • R2T4 Information

Field: Enrollment Status

Description: Defines a students academic load in the defined program

  • AM - Admitted/Not Started
  • AC - Academic Complete
  • F - Full Time
  • H - Half-time or more, but less than full-time
  • L - Less than half- time
  • A - Approved Leave of Absence
  • X - Never Attended
  • C - Cancel
  • D - Deceased
  • W - Withdrawn (voluntary or involuntary
  • G - Graduated

Impact on Financial Aid Processing: The program enrollment status can be used when configuring the term enrollment status to control fund eligibility. For example, in baseline configuration if the program enrollment status is X - Never Attended, the enrollment status is set to not attending and the student will not be eligible for Title IV funds.

Also within packaging, this field is also used for deciding how to calculate the COA based on the institutions specific configuration. Ensure your COA doesn't get reduced upon loading a withdrawal SAFI.

Also, the enrollment status is used to decide whether to award or disburse the student if they're in that enrollment status. For awarding, the program enrollment status is configurable (F|H|L|A|X|G|W|AC|AM) The enrollment status is also used within disbursement criteria.

Exit processing is also triggered for D - Deceased, W - Withdrawn (voluntary or involuntary), and G - Graduated to trigger R2T4 calculations and exit counseling notifications as needed.

Example Data Type Required XML Schema Validation Accessible via Configuration? Display Locations
AM Enum Yes
  • AM
  • AC
  • F
  • H
  • L
  • A
  • X
  • C
  • G
  • D
  • W
Yes getEnrollmentStatus()
  • Student Summary
  • Program Information
  • Packaging
  • Credit Balance
  • Disbursing
  • Enrollment Information
  • R2T4 Information

Field: Enrollment Status Subtype

Description: Used to identify the type of program withdrawal

Impact on Financial Aid Processing: Will be leveraged by R2T4 configuration to decide when to perform the R2T4 calculation based on the value. Within the R2T4.csv configuration workbook the start date time frame can be configured for each enrollment status subtype.

Example Data Type Required XML Schema Validation Accessible via Configuration? Display Locations
UW - Unofficial Withdrawal Enum No
  • UW - Unofficial Withdrawal
  • OW - Official Withdrawal
  • AW - Administrative Withdrawal
  • D - Deceased
Field MUST be populated when the Enrollment Status = “W”
Yes getEnrollmentStatusSubType()
  • Program Information
  • R2T4 Information

Field: Enrollment Status Effective Date

Description: Date for which the enrollment status is effective.

Impact on Financial Aid Processing: This should be updated whenever the student's enrollment status changes but has no impact on term programs.

Example Data Type Required XML Schema Validation Accessible via Configuration? Display Locations
2025-01-01 Date Yes Any date Yes getEnrollmentStatusEffectiveDate()
  • Student Summary
  • Program Information

Field: Admission Status

Description: Student's Student Information System (SIS) defined admission status

Sample values:
  • RG - Regular
  • RR - Registered
  • OP - Orientation Pending
  • AM - Admitted
  • DF - Deferred
  • PV - Provisional
  • RI - Registered International Credentials
  • CD - Conditional
  • ND - Non Degree
  • DC - Denied for Cause
  • DN - Denied
  • DE - Admission Deadline Exceeded
  • RE - Re-entry Required

Impact on Financial Aid Processing: This field doesn't drive any downstream processes; however, the awarding and disbursing engine can look at this value, through groovy configuration, to decide whether to award or disburse a student appropriately.

The allowable admission statuses for packaging Title IV funds is configured in the T4_CRIT.csv configuration workbook (RG - Regular|AM - Admitted|PV - Provisional).
Example Data Type Required XML Schema Validation Accessible via Configuration? Display Locations
RG - Regular Non Blank String Yes Any string Yes getAdmissionStatus()
  • Program Information
  • Packaging
  • Disbursing

Field: Academic Status

Description: Student's SIS defined academic status

Sample values:
  • RG - Regular
  • AP - Academic Probation
  • DA - Disqualified for Admission
  • AD - Academic Disqualification
  • SD - Scholastic Disqualification
  • SS - Scholastic Suspension
  • EX - Expulsion

Impact on Financial Aid Processing: This field doesn't drive any downstream processes; however, the awarding and disbursing engine can look at this value, through groovy configuration, to decide whether to award or disburse a student appropriately.

The allowable academic statuses for packaging Title IV funds is configured in the T4_CRIT.csv configuration workbook (RG - Regular|AP - Academic Probation).
Example Data Type Required XML Schema Validation Accessible via Configuration? Display Locations
RG - Regular Non Blank String Yes Any string Yes getAcademicStatus()
  • Program Information
  • Packaging
  • Disbursing

Field: Manual SAP Evaluation Indicator

Description: Identifies whether the SAP evaluation needs to be completed by a manual user rather than automatically by SFP.

Impact on Financial Aid Processing: If a true value is loaded for a student, when SAP is required a task will be created in the review SAP evaluation task queue for manual review. This value can also be controlled on the UI from the student summary. The UI value will override any value sent in the SAFI message if overridden.

Example Data Type Required XML Schema Validation Accessible via Configuration? Display Locations
True Boolean No
  • True
  • False
Yes getManualSapEvaluationIndicator() Student Summary

Field: Return to Title IV SAFI Indicator

Description: Used to indicate that the R2T4 should be calculated for using this SAFI

Impact on Financial Aid Processing: Once this value is set to true on a withdrawn SAFI the R2T4 will be triggered for this student using the provided SAFI data.

If the student is withdrawn and a SAFI isn't received with the R2T4 indicator set to true by day 29, the R2T4 calculation will be calculated based on the most recent withdrawn SAFI received.
Example Data Type Required XML Schema Validation Accessible via Configuration? Display Locations
True Boolean No
  • True
  • False
Return To Title IV SAFI Indicator must be set only when the Student is Withdrawn
No Not viewable from UI