University of Illinois System
Accounting & Budgeting

Banner Program Codes & NACUBO Functions

The program code segment (i.e., the “P” in the C-FOAPAL) is an important segment of the Banner accounting string, which was designed to achieve two primary objectives.

  • To classify expenses within a standard reporting structure established by NACUBO.
  • To separate financial activities by department or activity when using funds that are shared across the University of Illinois System. Such as state or Indirect Cost Recovery (ICR) funds, or when using funds that have multiple activities occur within one fund (e.g., self-supporting or service plan funds).

NACUBO Functions

The National Association of College and University Business Officers (NACUBO) has established functions to create a standard reporting structure for accurately classifying expense activity according to the purpose for which the costs were incurred.

These functional classifications are assigned to Banner program codes and indicate why an expense was incurred, as opposed to what was purchased like an account code, or where the funding came from like a fund code.

For example, if a unit purchases research supplies, the program code (along with the NACUBO function assigned to that program code) would indicate that the expense was tied to the University of Illinois System’s research mission, while the account code would indicate that the expense was a consumable supply and the fund code would indicate the funding source for the expense.

These functional classifications have been widely used for decades by both public and independent institutions and are required to use these functional classifications when reporting expense information in various types of financial reports. This helps donors, granting agencies, creditors, and other readers of the financial statements understand the various mission-related activities of the institution.

Given that so many reports and external parties are dependent on these functional expense definitions (which have been in place for decades), we must keep these definitional standards and accounting structures in place to ensure consistency in reporting from year-to-year.

Thus, given the importance of NACUBO functions, any accounting information system used by the University of Illinois System must be capable of producing expense information by these NACUBO functional classifications. Banner has this capability, which we will touch on in the following section.

How to View NACUBO Functions Assigned to Existing Program Codes in Banner

NACUBO functions may be identified by viewing a program code’s hierarchy using Banner page FTIPRGH. The user would need to filter on the chart and program code and would then need to execute the query by clicking on the Go button. The form will then display all of the predecessor codes for the specified program code, including the level one code (which represents the assigned NACUBO function).

Another popular Banner page that can be used is FZMPROG. The user can filter on the applicable chart and program code number of the program code in question, and then click on the Go button to bring up the basic information on that program code. The NACUBO function can typically be found in the Predecessor Program field.

The Banner program code hierarchy can also be viewed using Banner page FGQPRGH.

Numerical Format of Unique Banner Program Codes

One of the primary objectives of a program code (i.e., distinguishing between operational activities within fund types that may be shared by multiple departments or activities, such as state or ICR) is accomplished by assigning a unique number to the applicable program code.

The first three digits of the unique program code would be the unit’s three-digit organization code; and the final three digits of the unique program code would be sequentially assigned in numerical order.

For example, if a unit’s organization code was 223, then the unique program codes within their department would follow a numerical format such as 223001, 223002, 223003, and so on. These would be the unique program codes that they would use with university-wide funds (e.g. state or ICR) or with funds within their own unit which may have multiple activities taking place within them (e.g. a self-supporting or service plan fund).

Note: There is an exception to this rule for federal agriculture research program codes, as the final three digits of those program codes end with a special federal project code number.

Numerical Format of Generic Program Codes

Some fund types (such as current restricted and non-current fund types) require generic program codes in the 19nnnn numerical range, since funding within these fund types are not shared by multiple departments or activities. A common example would be a gift fund (which is a current restricted fund from a financial reporting perspective).

Since these generic program codes are within the 19nnnn numerical range, they differ from the unique program codes in that they would not begin with the unit’s three-digit organization code.

Instead, these generic program codes begin with “19” and end with a four-digit code that reflects the applicable NACUBO function.

For example, 191100 is the generic program code for research (where the last four digits of 1100 represent the research NACUBO function as outlined in Appendix 4). So, if a gift fund was used to primarily pay for research expenditures, we would expect to see a generic 191100 program code used on that gift fund’s research expenditures.

How to Request the Creation of a New Program Code

To request the creation of a new program code, complete UAFR’s Banner Fund, Program, Index Code Request Form, which is located on Accounting and Budgeting Forms webpage.

When completing this form, be sure to complete the following sections from the FPI Code Request tab with as much detail as possible.

  • General Information
  • Request a New Program Code
  • Submitted By

Importance of Transparent Titles for Unique Program Codes

In addition to following the proper numerical format and assigning the proper NACUBO function, it is also important to have a clear and transparent title assigned to unique program codes. By assigning a clear and transparent title, it is easier to identify how the program code should ultimately be used and will help ensure the program code is used for activities that are consistent with the program code’s assigned NACUBO function.

For example, if a unique program code will be primarily used for Professor A’s research activities, then the program code should be assigned with an 1100 Research NACUBO function along with title that is consistent with that purpose, and which properly reflects the assigned NACUBO function (such as “Professor A – Research”).

Importance of Using a Program Code Consistently for the Same Purpose from Year-to-Year

It is important to use a program code consistently from year-to-year for the same purpose as which it was established. This helps with variance analysis from year-to-year and preserves the original use of the program code from a historical financial reporting perspective.

For example, if a program code was originally established five years ago for research purposes, then that program code must remain coded and used for research purposes for the rest of the program code’s life. The purpose and function of the program code cannot be changed to a different activity or function once it has been properly established.

Allowability of NACUBO Function Changes on Existing Program Codes

Typically, it is unallowable to change the purpose of a program code. If the natural life of a program code has been completed, then the program code will need to be terminated and a new program code established to account for any new activity. It is unallowable to reuse an old program code for new activity.

However, if an error was made at the time of the program code’s creation which caused an incorrect NACUBO function to be assigned, then it would be allowable to correct the assigned NACUBO function on that program code, if the activity posting to that program code has remained the same since inception.

For example, if a unit submits a request to create a new program code, asking that it be used for research purposes, but the program code was mistakenly assigned a NACUBO function for another purpose (such as instruction), then it would be allowable in that instance for UAFR to change the NACUBO function to research, assuming that the unit has used the program code for research activities since its inception as they initially requested.

How to Request a Change to an Existing Program Code

To request an edit to an existing program code (such as to request a title change), simply email UAFR at uas@uillinois.edu detailing your request. One of the subject matter experts from UAFR’s program codes team will then investigate your request and let you know if there are any questions or concerns before processing it.

Allowable Fund Type & NACUBO Function Combinations

Given the nature and funding source of the various types of funds utilized in the University of Illinois System, there are limitations on which types of funds can be used with certain NACUBO functions.

For example, ICR funds are generated from overhead assessments charged to grant funds (and not from tuition assessed to students). ICR funds should not be utilized for instructional expenses, as the revenue source of ICR funds is not related to providing instruction to students.

See the NACUBO Function & Allowable Fund Type Combinations grid for further details on which NACUBO functions are appropriate to use within a given fund type.

How to Request the Termination of a Program Code Which is No Longer Needed

If you have a program code which you no longer need, email UAFR at uas@uillinois.edu asking to terminate the program code. Once UAFR reviews the request and ensures that there are no further issues that need addressed (such as open jobs, payroll positions, index codes, balances, etc. which are still tied to the program code), they will then proceed with terminating the program code in Banner.