Category: Chicago

Top 20 most active general contractors in Chicago this year so far

River Point tower is under construction at 444 W Lake Street by James McHugh Construction. Its associated building permit, which only comprises the base/train cover structure depicted, has an estimated project cost of $27,050,000. Photo by Bart Shore.

Here I go again not talking about urban planning on Steven Can Plan. With my Licensed Chicago Contractors & Construction Activity website I’ve ingested a lot of data from the City of Chicago’s open data portal that has a LOT to say about what’s going on.

Nearly all permits include a reasonable value that estimates the project’s cost – like $13,150,000.00 for converting Lafayette Elementary School into a performing arts high school. (All demolition permits show $1 and some permits cost over $6 billion, which we know is false.)

I recently reorganized the data (migrating from MySQL to PostgreSQL which supports the JSON datatype) to expand the ways I can extract info and I’ve sorted it by general contractor’s aggregate project value for this year.

This is a list of the 20 most active general contractors in Chicago for 2014 until May 13, 2014. I define “activity” purely by the companies’ involvement in a Chicago-based project and corresponds to that project’s estimated cost. (The data doesn’t specify a level of their involvement in a project.)

[table id=11 /]

Do any names ring a bell, or surprise you?

What’s up from Europe: frequent diesel trains

I’m staying in Groningen for three nights, the northernmost big city in the Netherlands, with about 190,000 inhabitants. About 20 meters from my bedroom window is a passenger train line on which diesel multiple units (DMU) running frequently.

I hear the train come very often and I snapped a few photos, of course. As I saw the train frequently run, with 1-2 diesel cars, I thought that Metra – Chicago’s hub-and-spoke commuter rail system – needs to implement a nimbler operation with more runs to make it more convenient to use transit. I tweeted that thought.

The train is a “Stoptrein” because it makes all stops. This is one of four passenger train classes: “Intercity” trains make few and distant stops, the “Sneltrein” offers express service to a small number of local stops, the “Sprinter” class makes a medium number of local stops.

I can see from the schedule on 9292.nl that the train, after 21:00, runs every about every 26 minutes in each direction. At other times of the day there may be two trains four minutes apart or 15 or 24 minutes apart. Stadler in Switzerland built these “GTW” DMUs which accelerate faster which could improve the timetable.

I suggested that Metra run this rolling stock on the UP-West and UP-North lines because of their existing ridership and closely spaced stations. Also, UP-North doesn’t have freight trains so it should be easy to get a waiver from the Federal Railroad Administration to use lighter weight European trains. UP-West is another “streetcar suburb” line having trains stop frequently during rush hour in city centers; stations are 4-10 minutes away from each other so the train can’t reach high speeds quickly between them.

(I wish the train didn’t run so frequently here because I have only a single-pane window.)

Respect the corner!

Buildings on corners should have corner entrances or minimally deviate.

Contractors work on building the new entrance.*

The residential building on the northwest corner of Milwaukee Avenue and Halsted Street was built in 2003 with a first-floor commercial space with an entrance on the Milwaukee Avenue side. Normally this wouldn’t be such a big deal – Milwaukee is a busy street and this side of the street has a fair amount of foot traffic. But the other side of the building, on Halsted Street, faces one of two entrances to the Grand Blue Line subway station and a major transfer bus stop.

7-11 is moving into the building and have built a new entrance out of the corner space with floor-to-ceiling windows. Now it’ll be much easier for transit riders to get to a convenience store. The other advantage is the added visibility: seeing the entrance from far away, from all sides, saves milliseconds in our internal GPS processing time – make a bee-line to the entrance instead of “hunting” it down after you make your way in the general direction of the building.


View Larger Map

* You can see that there’s a step here so it’s not currently accessible. Originally this wasn’t the entrance so that makes sense. I don’t know what these contractors are doing but 7-11 must make the entrance accessible.

Welcome to the Land of No

No bike riding!

The Lincoln Park Zoo has a Nature Boardwalk at the South Pound near 2000 N Cannon Drive. Each venue has their own signs listing the rules for their respective properties.

Each sign employs a different symbol to communicate the same thing – bicycles cannot be ridden in the parks – but their designs take two approaches.

One says no and the other says yes.

  • The Zoo’s symbol uses the color red, a line slashed over a bicycle, and “Please do not:” text to prohibit the activity of riding a bike.
  • The Pond’s symbol uses the color blue and suggests walking your bike, accompanied by the text, “Please walk your bike”.

Please walk with your bicycle. 

Bicyclists – and drivers for that matter – are constantly being told no. Might there be a friendlier, more positive way to communicate rules?


View Larger Map

Finding interesting data in the building permits dataset

I had several great conversations with fellow #chihacknight visitors at the 1871 tech hub (222 W Merchandise Mart Plaza) about how to reveal more information about what’s being built in Chicago. I had introduced Licensed Chicago Contractors at the previous week’s hack night and tonight I showed site changes I made like how much faster it is now that I use DataTables’s server-side processing function.

Some of the discussions resulted in suggestions to try new tools and methods that would make processing the data more efficient, or more revealing. What are the ways I can aggregate the data, or connect to similar data from other sources?

One of the new features I announced I’ll be adding is statistics on building activity by neighborhood. I started testing some queries to see the results, and to find the query that outputs that information in a way that’ll pique users’ interests.

I calculated the aggregate estimated costs of all building permit activity for the past 90 days in select neighborhoods. All of the data was automatically generated using a simple MySQL query, but one that will get faster after switching to Postgres. (I eliminated any project whose estimated cost was less than $1,000 because there are many project types that are $0 to several hundred dollars.)

  • Logan Square: 77 projects, totaling $16,295,997.50 at a $211,636.33 average cost
  • West Loop: 30 projects, totaling $27,646,899.00 at a $921,563.30 average cost
  • Andersonville: 6 projects, totaling $358,770.00 at a $59,795.00 average cost
  • Bronzeville: 34 projects, totaling $17,050,662.00 at a $501,490.06 average cost
  • Hyde Park: 20 projects, totaling $13,492,265.00 at a $674,613.25 average cost
  • Humboldt Park: 35 projects, totaling $41,917,988.00 at a $1,197,656.80 average cost

How does Humboldt Park double the other neighborhoods’ average? I think it’s pretty simple: this $40 million Salvation Army residence that’s going to be built at 825 N Christiana Avenue.

The results for Bronzeville were higher than I expected because this is a distressed neighborhood that has lost of lot of population and has seen little development in the past several years. This isn’t to say the neighborhood is poor – I saw a report last fall that highlighted how the purchasing power of Bronzeville residents was quite high relative to neighboring communities.

Ronnie Harris showed me the report when I participated in the Center for Neighborhood Technology’s civic app competition and hackathon. We, along with Josh Engel, designed Build It! Bronzeville, although my participation was really pushing them to develop Josh’s game idea more and construct a paper version of it. Our team won the competition and Ronnie and Josh have kept working on it (I saw them at last week’s hack night).

Projects that pushed up Bronzeville’s average included several multi-family homes at around $1.4 million each on the blocks of 4700 and 4800 S Calumet Avenue.

Code discussion

I can’t test for the “Loop” right now in the way I have my data structured because a LIKE ‘%loop%’ query of the database will include “West Loop” records.

I need to change how the building permit data is stored – in my database – a little so that my site’s PHP codebase and MySQL queries can sift through the data faster. For example, I’m storing several key-value pairs as a JSON-encoded string in a TEXT field. One #chihacknight developer suggested I switch from MySQL to PostgreSQL because Postgres has native JSON-parsing functions.

I looked up how to use Postgres’s JSON functions and realized that, yes, I probably should do that, but that I also need to change the array structure of the data I’m encoding to JSON. In other words, with a tiny change now, I can be better prepared for the eventual migration to Postgres.