Skip to contents

Full-Time Equivalent (FTE) is the number of students the university would have if all students were attending full-time. It is calculated on course level student credit hours.

FTE for undergraduate students takes the total undergraduate student credit hours (from the student section version table) and divides it by 15 credit hours. FTE for graduate students takes the total graduate student credit hours (from the student section version table) and divides it by 10 credit hours. The total FTE is the sum of undergraduate and graduate FTE.

Current FTE

The Current FTE reflects the live count of FTE for a term, which can fluctuate daily and may be adjusted post-semester for changes like withdrawals.

/*
This SQL query calculates Full-Time Equivalent (FTE) values for graduate, undergraduate, and total students enrolled in current versions of courses.
Does not include any fte for CE - Continuing Education courses
*/
WITH CTE_graduate_fte AS
         (SELECT a.term_id,
                 ROUND(SUM(a.attempted_credits) / 10, 2) as current_graduate_fte
          FROM export.student_section_version a
          WHERE a.is_enrolled IS TRUE
            AND a.version_desc = 'Current'
            AND a.course_level_id = 'GR'
          GROUP BY a.term_id),

     CTE_undergrad_fte AS
         (SELECT a.term_id,
                 ROUND(SUM(a.attempted_credits) / 15, 2) as current_undergrad_fte
          FROM export.student_section_version a
          WHERE a.is_enrolled IS TRUE
            AND a.version_desc = 'Current'
            AND a.course_level_id = 'UG'
          GROUP BY a.term_id)

SELECT b.term_desc,
       COALESCE(d.current_undergrad_fte, 0) AS current_undergrad_fte,
       COALESCE(c.current_graduate_fte, 0) AS current_graduate_fte,
       ROUND(COALESCE(c.current_graduate_fte, 0) + COALESCE(d.current_undergrad_fte, 0), 2) AS current_total_fte
FROM export.student_section_version a
         LEFT JOIN export.term b
                   ON a.term_id = b.term_id
         LEFT JOIN CTE_graduate_fte c
                   ON a.term_id = c.term_id
         LEFT JOIN CTE_undergrad_fte d
                   ON a.term_id = d.term_id
WHERE a.is_enrolled IS TRUE
  AND a.version_desc = 'Current'
  AND DATE_PART('year', NOW()) - b.academic_year_code :: INT <= 5 -- Current year plus last 5 years
GROUP BY b.term_desc, c.current_graduate_fte, d.current_undergrad_fte
ORDER BY b.term_desc;

Census FTE

The Census FTE is a fixed sum of FTE at the 15th day of the term, used for static reporting.

/*
This SQL query calculates Full-Time Equivalent (FTE) values for graduate, undergraduate, and total students enrolled in census versions of courses.
Does not include any fte for CE - Continuing Education courses
*/
WITH CTE_graduate_fte AS
         (SELECT a.term_id,
                 ROUND(SUM(a.attempted_credits) / 10, 2) as census_graduate_fte
          FROM export.student_section_version a
          WHERE a.is_enrolled IS TRUE
            AND a.version_desc = 'Census'
            AND a.course_level_id = 'GR'
          GROUP BY a.term_id),

     CTE_undergrad_fte AS
         (SELECT a.term_id,
                 ROUND(SUM(a.attempted_credits) / 15, 2) as census_undergrad_fte
          FROM export.student_section_version a
          WHERE a.is_enrolled IS TRUE
            AND a.version_desc = 'Census'
            AND a.course_level_id = 'UG'
          GROUP BY a.term_id)

SELECT b.term_desc,
       COALESCE(d.census_undergrad_fte, 0) AS census_undergrad_fte,
       COALESCE(c.census_graduate_fte, 0) AS census_graduate_fte,
       ROUND(COALESCE(c.census_graduate_fte, 0) + COALESCE(d.census_undergrad_fte, 0), 2) AS census_total_fte
FROM export.student_section_version a
         LEFT JOIN export.term b
                   ON a.term_id = b.term_id
         LEFT JOIN CTE_graduate_fte c
                   ON a.term_id = c.term_id
         LEFT JOIN CTE_undergrad_fte d
                   ON a.term_id = d.term_id
WHERE a.is_enrolled IS TRUE
  AND a.version_desc = 'Census'
  AND DATE_PART('year', NOW()) - b.academic_year_code :: INT <= 5 -- Current year plus last 5 years
GROUP BY b.term_desc, c.census_graduate_fte, d.census_undergrad_fte
ORDER BY b.term_desc;

End of Term FTE

The End of Term FTE is a fixed sum of FTE at the semesters end, used for static reporting.

/*
This SQL query calculates Full-Time Equivalent (FTE) values for graduate, undergraduate, and total students enrolled in end of term versions of courses.
Does not include any FTE for CE - Continuing Education courses
*/
WITH CTE_graduate_fte AS
         (SELECT a.term_id,
                 ROUND(SUM(a.attempted_credits) / 10, 2) as eot_graduate_fte
          FROM export.student_section_version a
          WHERE a.is_enrolled IS TRUE
            AND a.version_desc = 'End of Term'
            AND a.course_level_id = 'GR'
          GROUP BY a.term_id),

     CTE_undergrad_fte AS
         (SELECT a.term_id,
                 ROUND(SUM(a.attempted_credits) / 15, 2) as eot_undergrad_fte
          FROM export.student_section_version a
          WHERE a.is_enrolled IS TRUE
            AND a.version_desc = 'End of Term'
            AND a.course_level_id = 'UG'
          GROUP BY a.term_id)

SELECT b.term_desc,
       COALESCE(d.eot_undergrad_fte, 0) AS eot_undergrad_fte,
       COALESCE(c.eot_graduate_fte, 0) AS eot_graduate_fte,
       ROUND(COALESCE(c.eot_graduate_fte, 0) + COALESCE(d.eot_undergrad_fte, 0), 2) AS eot_total_fte
FROM export.student_section_version a
         LEFT JOIN export.term b
                   ON a.term_id = b.term_id
         LEFT JOIN CTE_graduate_fte c
                   ON a.term_id = c.term_id
         LEFT JOIN CTE_undergrad_fte d
                   ON a.term_id = d.term_id
WHERE a.is_enrolled IS TRUE
  AND a.version_desc = 'End of Term'
  AND DATE_PART('year', NOW()) - b.academic_year_code :: INT <= 5 -- Current year plus last 5 years
GROUP BY b.term_desc, c.eot_graduate_fte, d.eot_undergrad_fte
ORDER BY b.term_desc;

USHE FTE

The USHE FTE aligns with the institutional total FTE and is reported to USHE five times per fiscal year:

Summer End of Term: Captures FTE at the conclusion of the summer term. Fall 3rd Week Census: Records FTE as of the 15th day of the fall term. Fall End of Term: Tallies FTE at the end of the fall semester. Spring 3rd Week Census: Documents FTE on the 15th day of the spring term. Spring End of Term: Counts FTE at the close of the spring semester.

Census: USHE Census FTE is a calculation the based off of the total number of student credit hours, based on the level of the course on the 15th day of instruction of an academic term. Census FTE is based on snapshot data, this FTE returns a status FTE and may be modified to meet USHE reporting element criteria.

For the sql, see Census FTE above

End of Term: USHE End of Term FTE is a calculation the based off of the total number of student credit hours, based on the level of the course at the end of an academic term. Census FTE is based on snapshot data, this FTE returns a status FTE and may be modified to meet USHE reporting element criteria.

For the sql, see End of Term FTE above

USHE Annualized FTE

USHE Annualized FTE is determined by summing the total of each undergraduate and graduate FTE from the three end-of-term snapshots (see USHE FTE, and End of Term FTE above) for each academic term within a reporting year (e.g., Summer 2023, Fall 2023, Spring 2024 for the USHE Reporting Year 2023-24) and then dividing this total by 2.

/*
This SQL query calculates annualized FTE for USHE.

USHE uses End of Term data to calculate their annualized FTE.

They add the total FTE by each term (Summer, Fall, Spring) and
divide by 2 to get Annualized FTE.
*/

WITH CTE_fte AS
         (SELECT CASE
                     WHEN b.season = 'Summer' THEN to_char(CAST(b.academic_year_code AS INTEGER) + 1, 'FM9999') --format mask
                     ELSE b.academic_year_code
                 END AS ushe_academic_year_code,
                 CASE
                     WHEN a.course_level_id = 'GR'
                         THEN ROUND(SUM(a.attempted_credits) / 10, 2)
                         ELSE 0
                 END AS eot_graduate_fte,
                 CASE
                     WHEN a.course_level_id = 'UG'
                         THEN ROUND(SUM(a.attempted_credits) / 15, 2)
                         ELSE 0
                 END AS eot_undergrad_fte
          FROM export.student_section_version a
          LEFT JOIN export.term b ON a.term_id = b.term_id
          WHERE a.is_enrolled IS TRUE
            AND a.version_desc = 'End of Term'
          GROUP BY a.term_id,
                   a.course_level_id,
                   b.season,
                   b.academic_year_code)
SELECT ushe_academic_year_code,
       ROUND(SUM(eot_undergrad_fte/2),2) AS eot_undergrad_fte,
       ROUND(SUM(eot_graduate_fte/2),2) AS eot_graduate_fte,
       ROUND(SUM((eot_graduate_fte + eot_undergrad_fte)/2),2) AS eot_total_fte
FROM CTE_fte
WHERE DATE_PART('year', NOW()) - ushe_academic_year_code :: INT <= 5 -- Current year plus last 5 years
GROUP BY ushe_academic_year_code
ORDER BY ushe_academic_year_code;

IPEDS 12 Month Enrollment

IPEDS 12 Month Enrollment FTE is calculated by summing the number of attempted credits for undergraduate and graduate students from the three census snapshots (see Census FTE above) for each academic term within a reporting year (e.g., Summer 2023, Fall 2023, Spring 2024 for the IPEDS data collection period 2023-24, reported in the 2024-25 IPEDS survey series). The undergraduate total credits attempted are divided by 30 (fifteen times two), and the graduate credits attempted are divided by 24 (twelve times two) to calculate the 12 Month Enrollment FTE by academic year. This calculation is verified in the 2024-25 data collection tutorial of the 12-Month Enrollment Component/FTE Enrollment-Credit Hours training materials provided by the Association for Institutional Research(AIR).

/*
This SQL query calculates IPEDS 12 Month Enrollment FTE.

-- IPEDS - based on 24 UG and 30 GR And is based on Census

The total attempted credits for UG and GR are summed then divided
by 24 for Undergraduate and 30 for Graduate to create FTE for
each level.

The totals for Undergraduate FTE and Graduate FTE are added together to
get the 12 Month Enrollment FTE by academic year.
*/

WITH CTE_combined_twelve_month_fte AS (
    SELECT
        b.academic_year_code,
        b.academic_year_desc,
        ROUND(SUM(CASE
                       WHEN a.course_level_id = 'GR'
                       THEN a.attempted_credits
                       ELSE 0 END) / 24, 0) AS census_graduate_twelve_month_fte,
        ROUND(SUM(CASE
                       WHEN a.course_level_id = 'UG'
                       THEN a.attempted_credits
                       ELSE 0 END) / 30, 0) AS census_undergrad_twelve_month_fte
    FROM
        export.student_section_version a
    LEFT JOIN
        export.term b
           ON a.term_id = b.term_id
    WHERE a.is_enrolled IS TRUE
      AND a.version_desc = 'Census'
 GROUP BY b.academic_year_desc, b.academic_year_code
)
SELECT a.academic_year_desc,
    a.academic_year_code,
    a.census_graduate_twelve_month_fte,
    a.census_undergrad_twelve_month_fte,
    (a.census_graduate_twelve_month_fte + a.census_undergrad_twelve_month_fte) AS total_census_twelve_month_fte
FROM
    CTE_combined_twelve_month_fte a
WHERE DATE_PART('year', NOW()) - a.academic_year_code :: INT <= 5
GROUP BY a.academic_year_desc, a.academic_year_code, a.census_graduate_twelve_month_fte, a.census_undergrad_twelve_month_fte
ORDER BY a.academic_year_desc , academic_year_code;

Differences in USHE Annualized FTE and IPEDS 12 Month Enrollment

Due to differences in computation methods and the versions (End of Term v. Census) used for each calculation, the USHE Annualized FTE and IPEDS 12-Month Enrollment FTE will not perfectly align in historical comparisons. Additionally, changes in reporting guidance for USHE and IPEDS over time make it challenging to recreate each previously reported calculation. However, a reasonable comparison can still be made using current guidance computations.

The USHE Annualized FTE is based on End of Term data for each academic term included in the academic year, while the IPEDS 12-Month Enrollment FTE is based on Census data for each academic term within the same period.

Although these two FTE calculations are not expected to match exactly, USHE unofficially expects to see at least a 90% alignment between the two reported FTE numbers.

2023-24 Comparison:

2023-24 USHE Annualized EOT FTE is 9054. 2023-24 IPEDS 12 Month Census FTE is 9046.