• Travis

Higher Education Data Trends

Project Link:


A lot of us are told that going to college will increase our career prospects and that we should study hard in high school to go to a better college. However, a lot of the time, we aren't given the data to see how exactly a single test (ie. the SAT) can influence our earnings for the rest of our lives. Questions like these are really interesting to me, so I wanted to work on a project that could visualize higher education data and help me generate engaging insights on this topic.

When our Databases professor said that we can work on any project we wanted to, I knew this would be a great opportunity to explore Higher Education data. I worked with Alex Atschinow on this project.

Note: This was more of a weekend project rather than a longer-term project, so the data has a decent amount of NULL/empty values that we didn't bother to look up and replace. Also, I could have made the app prettier, but again, it was basically a weekend project.

Note: We are only looking at the top 700 world universities ranked by Times.

Interesting Insights:

Midwestern states spend more per full-time student
Coastal states have more top universities

Despite the midwest states spending more per full-time enrolled students, they have much fewer top universities. We were surprised that the midwest states spend more per full-time student because the GDP of those states are much lower than the coastal states, but we assume that this occurred because there are fewer college students in the midwest.

The easier it is to get into the university, the higher the probability the student will default

Students who get into more selective universities have a lower probability to default on their student loans even though top schools tend to cost more. We think this probably occurs because students from more privileged backgrounds get into top schools (because they go to better high schools and their parents can afford tutors and college consultants) so they can afford the loans they take. Further, they probably land higher paying jobs out of college and they might be more financially educated.

Despite spending more on education, American students score lower on tests

This one was kind of obvious - American education is expensive and doesn't lead to better results. Countries like South Korea score higher than us and spend a third of what we spend on higher education.

The amount a country spends on education is slightly inversely proportional to its GDP growth rate

Even though students in the US spend so much money on education, our GDP growth rate is lower than a lot of other countries. We thought that because college tuition has been rising at such a fast rate in the US, it may influence the GDP growth rate because education is one of the most expensive things a person pays for in their lifetime. However, it looks like countries that spend less on education have a higher GDP growth rate. We think this is because developing countries by nature have a higher GDP growth rate, but their GDP per capita is still low.

Other Insights:

  • Students who attend colleges that have average SAT scores of above 1400 have mid-career salaries that are $23,943 higher than students who go to universities that have lower scores.

  • Students who attend private universities are half as likely to default on their student loans as those who attend public universities.

  • Private schools are $22,737 more expensive that public schools.


You can also interact with our dataset through various text inputs on the project webpage that filter the tables.

Data Sources:

How It Was Made:

This project was built in Python using a library called Dash by Plotly for the visualizations and SQLAlchemy to connect to the database.

Dash is a really cool open source library that allows people to build web applications in just Python and it's especially good at creating graphs and other data visualizations. The HTML and CSS are abstracted into Python objects and then the webpage is dynamically generated at runtime.

SQLAlchemy is a well-known Python package for interacting with databases. There are two versions of it, the object relational mapper and the core version. The ORM, as the name states, maps SQL into objects which allows the user to interact with higher-level objects and not worry about the actual SQL.

We elected to use SQLAlchemy Core, where the SQL can be written as strings, because this was for a Databases project and because we wanted more fine-tuned control.