Graduate and Professional Classification and Loan Limits
Based on One Big Beautiful Bill requirements, the US Department of Education (ED) is implementing new Direct Loan annual and aggregate limits for graduate and professional students, effective on July 1, 2026, and beyond. These changes are designed to comply with new regulatory requirements, introduce separate annual and aggregate loan limits for distinct student groups, and introduce new grade levels to support eligibility and compliance.
Key Regulatory Provisions:
- New Classifications for Graduate vs Professional:
- A "professional student" is defined by ED regulation as enrolled in a program that awards a professional degree (e.g., M.D., Pharm.D., J.D., D.D.S., D.V.M., etc.) and typically requires professional licensure for practice.
- The professional student must not receive Title IV aid as an undergraduate student for the same period of enrollment.
- A professional degree signifies both completion of the academic requirements for beginning practice in a given profession and a level of professional skill beyond that normally required for a bachelor’s degree.
- A professional degree is generally at the doctoral level that requires at least six academic years of postsecondary education including at least two years of post-baccalaureate work.
- A “graduate student” is defined by ED regulation as enrolled in a program that awards a graduate credential (e.g., Master's degree) upon completion, but not classified as "professional" per ED definitions.
- A "professional student" is defined by ED regulation as enrolled in a program that awards a professional degree (e.g., M.D., Pharm.D., J.D., D.D.S., D.V.M., etc.) and typically requires professional licensure for practice.
- New Annual and Aggregate Loan Limits:
- Borrowers with a loan limit exception are not subject to new aggregate loan limits while the exception applies.
- For borrowers without an exception, new separate graduate and professional loan limits apply while undergraduate loans do not count toward new limits.
- Professional Students:
- Unsubsidized annual limit: $50,000/year
- Unsubsidized aggregate limit: $200,000
- Graduate Students:
- Unsubsidized annual limit: $20,500/year
- Aggregate limits:
- If prior professional: $200,000
- If not prior professional: $100,000
- Professional Students:
- Grade Level Changes:
- Six new grade/academic levels (8-13) are being introduced to separately categorize different types of graduate/professional students, replacing levels 6 and 7 from 2026–27 onwards.
- 8 – Graduate Never Professional
- 9 – Graduate was Professional
- 10 – Professional Never Graduate
- 11 – Professional was Graduate
- 12 – Graduate Concurrent Enrollment
- 13 – Professional Concurrent Enrollment
- Institutions must ensure that student data for grade levels aligns with new ED requirements; reporting old codes will result in COD rejections.
- Six new grade/academic levels (8-13) are being introduced to separately categorize different types of graduate/professional students, replacing levels 6 and 7 from 2026–27 onwards.
In order to streamline compliance with regulatory requirements, a new configuration script will be introduced to determine Direct Loan eligibility and loan limits impacted by the One Big Beautiful Bill. This approach has been made configurable to enable rapid adaptation to any future updates from the Department of Education.
New OB3 Criteria configuration:
- New OB3_Criteria configuration script will be added to existing FAS_FUND_CONFIG.csv starting with the 2026-27 Award Year, and will run on a per term basis at each repackage of Direct Loans.
- This script will have access to the same data as Awarding_Override_Criteria and will be able to access the results of Awarding_Override_Criteria script, including the new "Loan Limit Exception Indicator" and ED data
- To access the calculated "Loan Limit Exception Indicator" set in Awarding_Override_Criteria script, the following binding is accessible
- awardInfo.isLoanLimitException() binding will allow you to access the new "Loan Limit Exception Indicator" field set in Awarding_Override_Criteria script
- To access the Loan Limit Exception data from ED, the following bindings are accessible
- isirRecord.getField(IsirField.NSLDS_LOANLIMITEXCEPTIONFLAG).get() binding will allow you to access the "NSLDS Loan Limit Exception Flag" field received by ISIR
- To access the "Grade Level" set in the Grade_Level_Progression script, the following binding is accessible
- awardInfo.getGradeLevel() binding will allow you to access the calculated grade level
- To access the calculated "Loan Limit Exception Indicator" set in Awarding_Override_Criteria script, the following binding is accessible
- Additionally, you will be able to set the following values within the configuration script
- "Graduate Unsubsidized Annual Loan Limit" by using awardInfo.withGraduateLimit()
- "Graduate Unsubsidized Aggregate Loan Limit" by using awardInfo.withGraduateNsldsLimit()
In addition, in order to support the new grade level changes, updates were made to the existing grade level progression configuration script.
Updates to Grade Level Progression configuration:
- Existing Grade_Level_Progression configuration script within PKGSCHEDATTRIB.csv which will now run after the existing Direct_Loan_Crossover_LP_AwY_Selection, to give users access to the selected Award Year when determining the student's grade level.
- Existing awy binding will be used to access the Award Year configured in Direct_Loan_Crossover_LP_AwY_Selection
- The script was also enhanced to add access to the student's CIP code received in the SAFI and NSLDS Academic Level data to assess whether the student is in a professional program
- program.getCipCode() will allow you access to the Program CIP code received in the student's SAFI
Delivered Baseline Logic:
- Grade Level Progression: Updated to set the grade level for each term based on the award year and new graduate and professional classifications.
- The configuration follows is a set of prioritized sequence of business rules, which can be adjusted based on your own institutional policy.
- Stepwise Business Logic
- Step 1: Define Professional vs Graduate Programs
- The logic will define what type of program the student is in, using the program type and CIP codes. It is expected that this logic will need to be adjusted based on your institutional policy on what is considered a professional program and how your academic data is brought into SFA
- IF Program Type from the student's SAFI is Certificate (Graduate), Graduate, Doctoral, or Certificate (Doctoral)
- Check the Program CIP from the student's SAFI and compare the first 4 digits to see if it is 22.01, 39.06, 42.28, 51.01, 51.04, 51.12, 51.17, 51.20, 01.80
- If it is, then the student is currently in a Professional program
- If not, then the student is currently in a Graduate program
- Check the Program CIP from the student's SAFI and compare the first 4 digits to see if it is 22.01, 39.06, 42.28, 51.01, 51.04, 51.12, 51.17, 51.20, 01.80
- ELSE existing baseline logic for undergraduate programs
- Step 2: Check the Award Year
- If Award Year is less than 2026-27, then default to use existing baseline logic where values 6 and 7 are used
- Set and return the value to 6 for a 1st year graduate/professional student
- Set and return the value to 7 for 2nd year graduate/professional student
- ELSE proceed to step 3
- If Award Year is less than 2026-27, then default to use existing baseline logic where values 6 and 7 are used
- Step 3: Set Grade Level based on Current Enrollment
- IF the student is currently in a graduate program, set the grade level to 8
- IF the student is currently in a professional program, set the grade level to 10
- Note: Logic to check for other enrollments within SFA or via NSLDS will be supported in a subsequent baseline configuration release
- Step 1: Define Professional vs Graduate Programs
- OB3 Criteria:
- New configuration will look to see if student has a loan limit exception, and then determine their new unsubsidized loan limits based on their determined grade level. It is not expected that institutional will need to update this logic.
- Logic will use the new "Loan Limit Exception Indicator" set in Awarding_Override_Criteria to determine if the student qualifies under the interim exception rule. Refer to Loan Limit Exception Management for further details
- New Loan Limits:
- If the student has "Loan Limit Exception Indicator" as null (if it was not set in Awarding_Override_Criteria) or No, the configuration will calculate Unsubsidized Loan Limits based on new limits.
- The logic will use the grade level binding to check the grade level calculated in the Grade Level Progression configuration script
- If the Grade Level is 8
- Then "Graduate Unsubsidized Annual Loan Limit" will be set to $20,500
- Then "Graduate Unsubsidized Aggregate Loan Limit" will be set to $100,000
- If the Grade Level 9 or 12
- Then "Graduate Unsubsidized Annual Loan Limit" will be set to $20,500
- Then "Graduate Unsubsidized Aggregate Loan Limit" will be set to $200,000
- If the Grade Level is 10, 11, or 13
- Then "Graduate Unsubsidized Annual Loan Limit" will be set to $50,000
- Then "Graduate Unsubsidized Aggregate Loan Limit" will be set to $200,000
- The configuration sets the following values:
- "Graduate Unsubsidized Annual Loan Limit" using awardInfo.withGraduateLimit()
- "Graduate Unsubsidized Aggregate Loan Limit" using awardInfo.withGraduateNsldsLimit()
- Note: Logic to calculate the adjusted remaining aggregate loan limit will be introduced in a future release. In the current script, although aggregate limits are defined, NSLDS and SFA data are not yet used to determine the remaining eligible aggregate amount. It is important not to remove this configuration, as doing so would cause the system to default to the pre-OBBB aggregate limit of $138,500, thereby incorrectly restricting the student.
- If the Grade Level is 8
- The logic will use the grade level binding to check the grade level calculated in the Grade Level Progression configuration script
- If the student has "Loan Limit Exception Indicator" as null (if it was not set in Awarding_Override_Criteria) or No, the configuration will calculate Unsubsidized Loan Limits based on new limits.
- Existing Loans Limits:
- If the student has "Loan Limit Exception Indicator" as Yes, existing loan limits will apply.
- Existing system logic will be used to calculate the annual, aggregate, and remaining aggregate eligibility.
- If the student has "Loan Limit Exception Indicator" as Yes, existing loan limits will apply.
- Overlapping Loan Limits:
- For Term programs, the system will further adjust the Graduate Remaining Eligibility based on NSLDS Annual Limits for each term in the Academic Year.
- For Non-Term programs, the system will further adjust the Graduate Remaining Eligibility based on NSLDS Annual Limits for the entire Loan Period.
- New configuration will look to see if student has a loan limit exception, and then determine their new unsubsidized loan limits based on their determined grade level. It is not expected that institutional will need to update this logic.
Business Value
Ensures automated, compliant handling of revised ED Direct Loan limits for graduate and professional borrowers, minimizing manual assessment, supporting correct award packaging, and streamlining reconciliation between institutional and federal data sources.
Steps to enable and configure
Use the Opt In UI to enable this feature. For instructions, refer to the Optional Uptake of New Features section of this document.
Offering: Student Financial Aid
- Update Configuration Scripts:
- Review baseline configuration for new grade level and grad/professional loan limits posted on Cloud Customer Connect, and update your configuration.
- To get started, ensure that "Configuration Administration" Permission is enabled and download your existing configuration from Oracle Student Financial Aid within Administration > Configuration Administration > Download.
- This configuration will include the pre-populated system data and include the new column, which you can then update as needed.
- Update PKGSCHEDATTRIB.csv to add the 2026-27 logic to Grade_Level_Progression groovy script using the delivered baseline as a reference.
- Ensure that you have defined which programs are considered professional and reviewed logic for determining whether a student is considered concurrently enrolled based on your institutional policy and how your academic data is brought into SFA
- Update FAS_FUND_CONFIG.cvs to add the delivered baseline groovy script for OB3_Criteria.
- Note: We do not expect you will need to update the logic related to Grad and Professional Annual and Aggregate Limits based on any institutional policies.
- If you are already using a configuration approach to handle these students as outlined One Big Beautiful Bill (OB3) - Graduate and Professional Loan Limits, update FAS_FUND_CONFIG.cvs to remove this logic from Medical_Eligible_Program_Amount_Info.
- Update PKGSCHEDATTRIB.csv to add the 2026-27 logic to Grade_Level_Progression groovy script using the delivered baseline as a reference.
- Navigate to Administration > Configuration Administration, and upload your zipped configuration
- Review baseline configuration for new grade level and grad/professional loan limits posted on Cloud Customer Connect, and update your configuration.
- Review Program and Student Classification:
- Validate that all professional/graduate programs have the required data in SFA, including documents, based on the configuration you defined in Grade_Level_Progression
- Repackage Students:
- After successful testing in non production, you will need to load in your updated configuration to production, then repackage your graduate students to adjust their funding as needed.
- Divide your bulk repackaging operation into manageable groups, taking into consideration processing windows, communication needs, and the availability of supporting resources. This approach will ensure you are well-equipped to assist students whose inquiries arise as a result of the repackaging process.
- After successful testing in non production, you will need to load in your updated configuration to production, then repackage your graduate students to adjust their funding as needed.
- Submission to COD:
- When you are ready to begin awarding and originating Direct Loans for the 2026-27 Award Year, follow the steps to enable within 2026-2027 Award Year Packaging Updates and 2026-2027 Award Year COD File Updates.
Tips and considerations
- Logic Customization Needed: It is expected that you need to update the Grade Level Progression script to define which programs are considered professional and reviewed logic for determining whether a student is considered concurrently enrolled based on your institutional policy and how your academic data is brought into SFA. However, it is not expected that you will need to update or customize the base logic for Grad/Profession Loan limits, as these regulatory requirements are federally mandated and not subject to institutional policy variations. The delivered solution provides standardized enforcement to eliminate the need for local configuration changes for this aspect.
- Future Implementation: The initial release will not include baseline logic to evaluate prior or concurrent enrollments when determining a student’s grade level, nor will it adjust loan amounts based on remaining aggregate eligibility. You must use the NSLDS Aggregate Limit report to identify and review students who are approaching or exceeding the new aggregate limits.
- Updated Configuration Approach (not included in initial 26B baseline configuration):
- Grade Level Progression:
- Update your grade level progression script to check for prior or concurrent enrollment data within SFA (with the initial release you will not have access to NSLDS within the grade level progression)
- Use your institution's logic defined in your script to determine whether the other enrollment is considered graduate or professional
- IF there are no other graduate or professional enrollments in SFA, then
- IF the student is currently in a graduate program, set the grade level to 8
- IF the student is currently in a professional program, set the grade level to 10
- ELSE there are other graduate or professional enrollments in SFA
- If the enrollment has a program start date prior to the existing one
- IF currently in a graduate program, and prior is professional set the grade level to 9
- IF currently in a professional program, and prior is graduate set the grade level to 11
- ELSE the enrollment has the same program start date to the existing one
- IF currently in a graduate program, and concurrent is professional set the grade level to 12
- IF currently in a professional program, and concurrent is graduate set the grade level to 13
- If the enrollment has a program start date prior to the existing one
- OB3 Criteria:
- You can adjust the "Graduate Unsubsidized Aggregate Loan Limit" using awardInfo.withGraduateNsldsLimit() to account for the student's remaining eligibility by using NSLDS data received on the ISIR.
- Grade Level Progression:
- Manual Approach:
- Configure a disbursement criteria to prevent disbursing if student has
- Data via institutional documents indicating that the grade level should be values 9, 11, 12 or 13
- NSLDS_GRADUATECOMBINATIONLOANLIMITFLAG or NSLDS_PROFESSIONALCOMBINATIONLOANLIMITFLAG on the ISIR as C or E
- If you need to disburse prior to release, adjust the student's grade level as needed and amounts packaged per term within packaging then override new disbursement criteria
- Configure a disbursement criteria to prevent disbursing if student has
- Updated Configuration Approach (not included in initial 26B baseline configuration):
- Grade Level Progression: If new grade level are not configured, the system will default to default to using the existing Direct Loan limits that were in effect prior to the implementation of One Big Beautiful Bill.
- OB3 Criteria Defaults: If OB3 Criteria is not configured, the system will default to using the existing Direct Loan limits that were in effect prior to the implementation of One Big Beautiful Bill, ensuring continuity of operations and preventing unintended enforcement of the new Parent PLUS loan limits in the absence of updated configuration.
- Migrating from Interim Configuration Approach: If you are already using a configuration approach to handle these students as outlined One Big Beautiful Bill (OB3) - Graduate and Professional Loan Limits, please remove this logic from Medical_Eligible_Program_Amount_Info groovy script.
Key resources
- Refer to the following Department of Education documentation:
- Review related posts on Cloud Customer Connect:
- Review Oracle Student Financial Aid's Fund and Configuration Guides: