A civic-minded citizen seeking the singularity

An entry

Ruby PDF Writer

Date: 2009-12-06
Status: release
Tags: ruby visualization pdf work

At MITA, there was an an older model HP Laserjet plotter-style printer, and I really wanted to make use of it.

Because I had discovered many invalid Re-Enrollment records in the school's PowerSchool system, I decided to visualize the records to get a clear sense of the scope of the issue and be able to communicate with the staff.

I used Ruby and Rails to pull data from PowerSchool (with Oracle ActiveRecord Adapter), and created a .pdf from the data. The result was a list of every student, with each of their prior Re-Enrollment records and their current Enrollment information mapped across the x-axis (time).

I'm fascinated with visual information. A few thousand records listed in table/spreadsheet format doesn't compare to a comprehensive graphic.

Current technology enables and promotes the scaling and resizing of images and work areas. By visualizing the enrollment records in PowerSchool,

I was able to quickly identify erroneous records, which could now be scoped and addressed. The visualization has a sort of artistic value of its own, representing our student's history with the school. Making implicit data explicit through visualization can help groups develop a shared understanding of a tangible representation; higher resolution in some sense.


The resulting image was helpful in illustrating patterns of data and the outliers to the data. For example, each enrollment was color-coded for grade level as well, showing how classes of students progressed (and sometimes not) through each grade. Some students would leave and return. However, the graphic clearly showed invalid enrollment records for a group of students. It also displayed other issues with the data, like duplicate enrollments and invalid Entry and Exit Dates.

Possible Avenues

A logical continuation for this graphic would be to incorporate grade data as an additional layer. Additional variables (Attendance, Test Scores) could be layered on, which could highlight other patterns and/or correlations with the data.