<aside> πŸ’‘

Problem Statement: Universities store admissions, enrollment, academic performance, and student success data in separate systems, so leadership can’t easily track the full student lifecycle or measure KPIs like apply/admit/yield, enrollment trends, and risk indicators in one consistent view.

</aside>

<aside> πŸ’‘

What I Solved: I created a standardized lifecycle dataset and KPI layer (SQL + structured tables) that connects

admissions β†’ enrollment β†’ academic performance β†’ student success, producing leadership-ready dashboards and repeatable reporting.

</aside>


1. Admissions Funnel

1.1 Campaign Level Queries

SELECT
campaign_source,
COUNT(*) AS total_prospects,
SUM(CAST(applied_flag AS INT)) AS total_applicants,
SUM(CAST(admitted_flag AS INT)) AS total_admits,
SUM(CAST(enrolled_flag AS INT)) AS total_enrolled,
CAST(SUM(CAST(applied_flag AS INT)) * 1.0 / COUNT(*) AS DECIMAL(5,2)) AS apply_rate,
CAST(SUM(CAST(admitted_flag AS INT)) * 1.0 / NULLIF(SUM(CAST(applied_flag AS INT)),0) AS DECIMAL(5,2))
AS admit_rate,
CAST(SUM(CAST(enrolled_flag AS INT)) * 1.0 / NULLIF(SUM(CAST(admitted_flag AS INT)),0) AS
DECIMAL(5,2)) AS yield_rate
FROM dbo.element451_leads
GROUP BY campaign_source
ORDER BY yield_rate DESC;

Output

image.png

This SQL query builds an admissions funnel at the campaign level using Element451 recruitment data. It counts the number of prospects, applicants, admits, and enrolled students per campaign source, and calculates the Apply Rate, Admit Rate, and Yield Rate to evaluate recruitment effectiveness.

1.2 Applications Over Time – Admissions Decisions

SELECT
decision,
YEAR(application_dt) AS app_year,
COUNT(*) AS num_apps
FROM dbo.slate_applications
GROUP BY decision, YEAR(application_dt)
ORDER BY app_year, decision;

Output

image.png

This SQL query analyzes application decisions over time using data from Slate. It groups applications by decision type (e.g., Admit, Deny, Waitlist) and application year, counting the number of applications in each category.


Dashboard Visualization:


image.png

2. Enrollment & Academics

2.1 Enrollment by Major Per Term

SELECT
term,
major,
COUNT(DISTINCT student_id) AS total_students
FROM dbo.workday_enrollment
GROUP BY term, major
ORDER BY term, total_students DESC;

Output

image.png

This SQL query analyzes student enrollment by academic major across terms using Workday data. It counts distinct students per major for each term, helping identify program-level enrollment trends and the most popular majors in any given term.

2.2 GPA distribution by Term

SELECT
term,
COUNT(CASE WHEN gpa_cum < 2.0 THEN 1 END) AS at_risk_students,
COUNT(CASE WHEN gpa_cum BETWEEN 2.0 AND 3.0 THEN 1 END) AS average_students,
COUNT(CASE WHEN gpa_cum >= 3.0 THEN 1 END) AS high_performers
FROM dbo.workday_enrollment
GROUP BY term
ORDER BY term;

2.3 Financial Aid Impact

SELECT
term,
aid_flag,
COUNT(student_id) AS total_students,
CAST(AVG(gpa_cum) AS DECIMAL(5,2)) AS avg_gpa
FROM dbo.workday_enrollment
GROUP BY term, aid_flag
ORDER BY term, aid_flag

Output

image.png

This SQL query evaluates student performance categories using GPA from Workday enrollment data. It classifies students each term into three groups: At Risk: GPA < 2.0 Average: GPA between 2.0 and 3.0 High Performers: GPA β‰₯ 3.0 This helps academic support teams track performance distribution across terms.

Output

image.png

This SQL query examines the impact of financial aid on student performance using Workday enrollment data. It groups students by term and aid status, reporting both the number of students receiving aid and their average cumulative GPA compared with those not receiving aid.


Data Visualization:

Screenshot 2026-01-19 231321.png


3. IPEDS Benchmarking