Registration 2013

A visitor to this blogged asked about the 2012 school assignment data, so I cleaned it up and got most of it working. I also responded to someone on who just asked about registration. To top it off, Unit 4 put out there annual schedule of Choice Community Forums:

  • Thursday, January 24, 2013 6:00 p.m. Stratton Elementary – 902 N. Randolph Street – Champaign
  • Tuesday, February 5, 2013 6:00 p.m. Carrie Busey Elementary – 304 Prairie Rose Lane – Savoy
  • Tuesday, February 19, 2013 6:00 p.m. Temple Baptist Church – 1100 Broadmoor Drive – Champaign

Here are the visualizations I did of the “overchosen” schools, or basically, which schools folks selected for which choices (you get a grand total of 5 choices):


The one the left is from 2011, the one in the center is 2012. A quick glance shows a very common trend (which has persisted for the past 4 years that I have been collecting data), with a very minor “flattening” effect in 2012 (just slightly more diversification). One interesting thing that popped up in 2012 is that Carrie Busey jumped up two spots while Barkstall dropped 3. I also added an “adjusted” graph to the right which shows how the magnet registration (done in February, prior to the March 2012 registration) affected the popularity of the schools. As you can see, the magnet registration pretty much filled up each of the three magnet schools (Garden Hills, Stratton and BTW aka Washington).

On November 7th (and December 7th and January 4th) I followed up with the district administration and the Board about Dr. Susan Zola’s proposed Choice recommendations. I am still waiting to hear back. I reiterated the need to go back to the four local software companies I identified last year in an effort to completely rework the Choice RFP. While this is a big deal to me, I am wondering if anyone else even cares. 🙂

Overchosen Schools Chart is back: new data for 2012

It took a bit of work, but for those that like to go look at pictures and mouse-over a semi-interactive chart right away:


If you want previous years:


[just change the last number]


Some Notes:

  1. I have not yet got the “Maxiumum Occupancy” data to show up – it is in the javascript, but I believe Highcharts slightly modified a loophole I was hacking
  2. Alves delivered some messy data again. The most notable to you is that the names of the schools are all abbreviated
  3. Oh, you might also notice that the numbers seem a little low, especially for the magnet schools. I have to tweak the code a bit more to account for magnet selections, since they are reported in a funny way.

2012-2013 Kindergarten Lottery data released

I have finally received the Kindergarten Lottery data:

I have not yet added this to my online database, but will do so later today. I was a tad disappointed that my request to standardize the data was not satisfied – my hope is that we will stop using Alves and thus the standarization temporarily becomes a moot issue. I need to follow up with Dr. Wiegand about that.

So all you number crunchers – go have fun. I have also heard a rumor (via a poster on that someone else is creating databases and charts from U4 data. Let me know if you are that person, because I would like to collaborate a little.

Registration/School Assignment: getting technical again

This post is going to be a little technical. You have been warned. 🙂


So I have an online database; I am not aware of anyone who has written any queries against it other than myself (have not yet built the functionality to save and archive input queries). My overall goal is to 1) move responsibility for the “computer program” and relevant data away from Massachusetts and into Champaign, and 2) create a catalyst that results in provoking Unit 4 to be much more transparent about this whole process than they are now. That word “transparent” means different things to different people, so here is where I am coming from – basically, put as much information online as possible. Let people see what is happening. Sure, ok, remove names and addresses, I am cool with that.


In order for that to happen, Read the rest of this entry »

Reflection on the Jan 26 School Assignment Community Forum

Here is a letter I sent to various Unit 4 Administrators and a Board Member:

Good evening, ladies and gentlemen,

The video is a huge hit! It is such a huge improvement over the previous forms of communicating information. It is exciting to see Unit 4 and the FIC moving in this direction.

While several of us were talking after the presentation, several things came up – specifically about getting information online and maybe even making a couple posters:

  1. put edulog online
  2. while #1 is being talked about, I have a google maps + javascript solution that gets pretty darn close
  3. Show people a map with the school district boundaries and the location of each school. Maybe a 4′ x 3′ posterboard and people can insert pushpins (I have done this elsewhere with great success).

Jamar, Orlando and Judy asked for the URLs for my projects. Feel free to share these Read the rest of this entry »

Overchosen Schools: interactive, database-driven chart

This is still in BETA, but I wanted to get something out there for folks that were hungry for information.

The following URL goes to a website I set up and maintain. It runs php on the server and javascript on your computer (thus you need to enable javascript to see anything). Right now, you can go against two years, 2011 and 2010:

You can try other years, but it will not be pretty. 🙂

This is live data I have received from FOIA requests with Unit 4 – when I get 2012 data, I’ll add that to the database and we can all have fun with it.

PS – If anyone knows how the heck CSS transform-origin really works, please let me know – it is a pain in the arse.

PS2 – my apologies to Microsoft Internet Explorer Users. Please upgrade to a better browser. 🙂

The Kindergarten Lottery public database will be offline for a while

Gordy, who so graciously hosted my stuff on, is moving to a new server. The new hosting company (BlueHost) is a bit more strict in who gets to manage subdomains, so we mutually agreed that it would be good for me to move my stuff elsewhere. I have taken backups and I hope to resurrect somewhere. Some time. But the immediate future is unknown. I might hit up the IMC for this.

Not that anyone really cares…..   🙂


I decided to take a closer look at the 32 folks who were unassigned in the 2011 Kindergarten Lottery. While doing so, I also spotted some strange things that I have asked the FIC about. Specifically, I see two students that were pre-assigned to Barkstall and Bottenfield. Not Special Ed. Were they withheld? That’s fine if they were – parents decide to do that often enough if their child is on the really young end.

Anyway, those 32….

  • 7 did not choose Barkstall as their first choice (meaning the other 25 did); 4 chose Bottenfield first, 3 chose South Side first
  • Of the 25 that chose Barkstall first, 1 was Proximity A, 8 were Proximity B
  • 16 (or 23.1%) of those assigned to Barkstall were Proximity B
  • One of the non-proximity Barkstall unassigned choices has a “sibgroup” of 30. Siblings?
  • 16 of the unassigned (50%) filled in all 5 schools; among the rest, 4 filled in 4, 10 filled in 3, 2 filled in 2
  • Outside of the first choice, Barkstall was chosen 3 times (1 for 2nd, 1 for 3rd, 1 for 5th), Bottenfield was chosen 28 times (17 for 2nd, 5 for 3rd, 5 for 4th, 1 for 5th), South Side was chosen 15 times (3 for 2nd, 6 for 3rd, 3 for 4th, 3 for 5th)
  • One person (low-ses) was assigned to Barkstall as a 2nd choice. This was the only one who did not choose Barkstall first

Some of those stats are just plain weird; like the “sibgroup” one, especially if that indicates a sibling at the school. It is obvious that a majority of those that were unassigned had the misfortune of choosing “overchosen” schools (not just once, but many times). I see this as a failure due the complexity of the process and the lack of easily understood information.

Some (ongoing) thoughts:

  1. First and foremost, make the process more clear and intuitive, and spell out what “overchosen” means and which ones are such
  2. Exchange the keyword “Choice” with “Preference”
  3. Allow a parent to rank-order all schools
  4. If child is not assigned according to preference, assign (by default) to closest school available
  5. Bring it all in-house and put it online
PS – It may seem that #1 is mutually exclusive to #3, #4 and #5. What can I say? 🙂

2011 Kindergarten Lottery data made available

Busy day today. 🙂

I have imported this into the online database, but I have not yet built up the php pages to query it. In the meantime, you can download the spreadsheet yourself and browse it. This could be like group-sourced analysis.

The data is now available in the database:

Some of the predefined queries do not work 100% because the data changed around a little, but most of them do. Enjoy.

A technical read – using TIGER/Line shapefiles and Google Maps

You might be wondering “what they heck does this have to do with Champaign schools?” Good question. 🙂 I tend to be a picture-oriented person, so let me draw your attention back to the Kindergarten overlap map:

There are several steps involved here. If you take a peek at the javascript (including the drawDistrictLine.js file), you will see that I am hardcoding all the geocodes for the school addresses and the school district boundary line. I am doing that for speed – otherwise, I have to resolve all those points when you load the page. I like speed.

The School District Boundary line

To get the school district boundary line, I started asking a bunch of questions (seems to be my modus operandi). I was not able to find anyone within Unit 4 that had the exact data points for the district boundary, so I started looking around There is a ton of crazy stuff out there and it completely blew me away. But for the most part, it is largely unintelligible, even for me. *grin* I poked around with some local resources: Tom Laue with the Champaign GIS Consortium, Karen Hogenboom of the UI’s Library Gov Information department, and Marilyn Ruiz of Pathobiology (not sure how Vet Med got such a huge interest in Spatial relationships, but hey). Ms. Hogenboom took the time to show me the ArcGIS system that the University has a license for. Wow, is that beast complicated. I tried to play with it for a little while, but ultimately gave up in light of easier solutions. What easier solutions, you say? Ms. Hogenboom also pointed me to the TIGER/Line shapefiles. Mumbo jumbo, I know. So I needed a way to convert these shapefiles to something I could read. Thanks (again) to Google, I came across two utilities, Shape2Text and shp2text. Don’t bother with the former (I did not even include a link for it). I like the second better for a couple different reasons; 1) it works, 2) the source code is included so I can see what it is actually doing. This utility will read the complex shapefile that you download from TIGER and spit out a human-readable text file. The format is a bit strange, but workable. I grabbed the shapefile for Illinois Unified School Districts, converted it with shp2text and stripped out the information that was pertinent to Unit 4. Oddly enough, the school districts is technically defined as two separate sections, which you can see on the map. What did I strip out? I grabbed all the geocode points that define the boundary. These are lat/long (latitude and longitude) pairs, for example 40.10620700 -88.35058900 (40 degrees north, 88 degrees east, or negative 88 degrees west). More about these geocodes in a second.

School circles

For the schools, I had several things to overcome. At first, I grabbed all the addresses and called a Google Map API function to resolve them to geocodes. However, I found that the page was taking a few microseconds to load them, not to mention that the API call is execute asncronously, thus if I want to attach them to the map with special identifying information, I have to somehow build a DOM array to keep track of the asynchronous calls. Big pain in the arse. So to massively simply things, I opted to make the geocodes static. The next part is actually drawing the circle. Fortunately, I found an example to follow. I love examples! So I altered the code from the example and drew 1.5 mile circles around the center, marked by the geocode for each school, with its appropriate marker. Next, I wanted a dynamic way to shade the circles. I came across a fading menu button example, which I adopted for my circles. I am not entirely happy with it, yet – you will see that there is a precedence if you mouse-over the circles, and some circles are really hard to light up due to the low precedence and high amount of overlap (especially South Side – there is only a small area that will allow you to see the brown circle).

Putting it all on the map

So, finally, adding the pieces together. Chronologically, I did the circles first, so I simply reused the circle idea to draw the district boundary line(s). Basically, you build an array of lat/long pairs and pass that into a polygon generator function that Google provides. Google also provides a polyline function, but polygons can be filled. 🙂 All the lat/long pairs are passed into the the polygon function to created that crazy, all-over-the-place district boundary. Next, I use some math (again, copied from the example) to generate an array of points – if you look closely at the circle (max zoom) and the source code, you will see that I only use 52 points to describe the circle, much like a 52-sided polygon. After generating the polygons, I have to add them to the map. Or, more accurately, pass the map into the polygon with the “setMap” function. I found that I had to add the district boundaries first, or else they would have higher precedence and you would not be able to mouse-over the circles.

I still want to pop up an info tab, much like what the fine folks at LocalSchoolDirectory have done. Their site is really slick, and I hope to make mine a little more fresh in terms of colors, shapes and general appeal. Maybe some day….. (/me has design envy). On the other hand, if you want that extra info, you can always go visit them. =)