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.