Translate

Wednesday, May 29, 2013

Big Data and Local Elections Part IV

Screenshot of 2010 Zip Code map from ECY WA . 98229, a recent zipcode addition, is dubbed in black.
Summary:

This will be my last post with data from the 2012 Voter History Database. I will be analyzing the 2013 (almost through May) Voter Database soon.  This analysis shows that Whatcom County's substantial recent increase in the voter registration is being driven by youth living in 98225, 98226 or 98229 zipcodes. Although many people have registered to vote in Whatcom County, youth 25 or under in Bellingham are clearly becoming the most significant voting block.

Conclusions:

No candidate who wants victory in any county wide or council office here can afford to ignore this voting block.  Anyone who is part of the voting population born in 1988 or later has come of age in the eras of the "War Against Terrorism", the massive build up of our military industrial complex, and the near collapse of our capitalism. The challenges this age group faces include limited employment opportunities, perpetual foreign wars, sky-rocketing energy prices, global climate change and nearly obscene political gridlock; all of these forces occurring in a society that clearly values decimal points in offshore accounts more than a functioning democracy or economic justice or anything at all that might be reminiscent of a "New Deal" or a "Fair Deal". To be frank, most of the voting age population between 18 and 25 are probably wondering quite simply: "WTF?"

Put yourself in their position. What type of candidate are you going to vote for? Someone mouthing platitudes designed to appeal to the problems of boomers? Of course not. If you are under 25 in America, you feel the  malevolence of the storm coming your way and you know that your generation is the most likely to be left out in cold after the rest of the world has plundered or squandered budgets, resources, and any opportunity left for lasting world peace. You might even reason that no one gives a rat's a-- about what happens to you and your friends.  So if you have enough hope and chutzpah to actually vote for a local candidate, what do you want to hear from them? This is what I would I be looking for if I were 25 (or 51 with two young kids..):

Someone that gives a sh*t about the future. Someone that can actually understand the complex numbers that will make a planet with 8 Billion people run efficiently in 2020.  Someone who is not just another conservative tool of fat cats or some wussy, co-dependent liberal.  Someone who gives you fact checked information that you can't debunk in five minutes on your smart phone or someone that gives you sound data analysis that you can't poke holes through on your tablet while you eat noodle soup for dinner. Someone who sounds like they can make real change happen. Someone who seems to authentically care about your future. Someone who sounds fearless and smart enough to make history change course.

Those are your character points, candidates. If you want the 30K plus college students in Bellingham (and many of the rest of us) to give you a vote, that's who you need to be. Data analysis follows after  the break.


The last three election years added 25K to the voter registration rolls:


 WC2012=# SELECT extract(Year from originalregistrationdate), COUNT(ResidenceZipCode) FROM voterdbfvl1 GROUP BY extract(Year from originalregistrationdate) ORDER BY COUNT DESC LIMIT 5;
 date_part | count
-----------+-------
      2012 | 11750
      2008 | 10579
      2004 |  9533
      2010 |  6819
      2011 |  6689
(5 rows)
  
What zip codes are these new registrants coming from? Zip codes change all the time as counties grow thus complicating analysis. 98226 appears to be split in half sometime after 2010 giving us 98229.  98225, 98226, 98229, 98248, 98264, or 98230 provide the bulk of all registered voters.: 110K out of 125K. 98225,98226 and 98229 provides 67K of that vote:

WC2012=# SELECT ResidenceZipCode, COUNT(ResidenceZipCode) FROM voterdbfvl1  GROUP BY ResidenceZipCode ORDER By Count DESC;
 residencezipcode | count
------------------+-------
            98225 | 27393
            98226 | 26158
            98229 | 20120
            98248 | 13565
            98264 | 12607
            98230 | 10062
            98247 |  4903
            98244 |  2000
            98240 |  1926
            98266 |  1697
            98295 |  1421
            98284 |  1182
            98281 |   945
            98262 |   769
            98276 |   724
            98220 |   438
            98283 |    36

If we ask what zip codes have registered the most since 2008,  we find that  24872/39675 or 63% of those new registrants have come from 98225,98226 or 98229:

WC2012=# SELECT residencezipcode,COUNT(extract(Year from originalregistrationdate)) FROM voterdbfvl1 where extract(Year from OriginalRegistrationDate) >= 2008  GROUP BY residencezipcode ORDER BY COUNT DESC;
 residencezipcode | count
------------------+-------
            98225 | 10992
            98226 |  7625
            98229 |  6255
            98248 |  3822
            98230 |  3354
            98264 |  3295
            98247 |  1177
            98266 |   586
            98244 |   491
            98240 |   459
            98284 |   407
            98295 |   383
            98281 |   330
            98276 |   231
            98262 |   165
            98220 |    79
            98283 |    24
(17 rows)
 
If we ask how many new registrants are 25 years old or younger  (in 2012), we find that 10,417 out of 15,683 of those young registrants are from 98225, 98226 or 98229:

WC2012=# SELECT residencezipcode,COUNT(extract(Year from originalregistrationdate)) FROM voterdbfvl1 where extract(Year from BirthDate) >= 1988  GROUP BY residencezipcode ORDER BY COUNT DESC;
 residencezipcode | count
------------------+-------
            98225 |  5605
            98226 |  2678
            98229 |  2134
            98264 |  1429
            98248 |  1403
            98230 |   820
            98247 |   602
            98240 |   184
            98266 |   177
            98244 |   176
            98295 |   169
            98276 |    97
            98284 |    87
            98281 |    50
            98262 |    38
            98220 |    33
            98283 |     1
(17 rows)








Again, the top zip 6 zip codes for Whatcom County registrants in 2012 were:

WC2012=# SELECT ResidenceZipCode, COUNT(ResidenceZipCode) FROM voterdbfvl1  GROUP BY ResidenceZipCode ORDER BY COUNT DESC LIMIT 6;
 residencezipcode | count
------------------+-------
            98225 | 27393
            98226 | 26158
            98229 | 20120
            98248 | 13565
            98264 | 12607
            98230 | 10062
(6 rows)

If we look through the top ten age groups registered in those zip code areas, we see  that 98225 is clearly producing the age range with the youngest residents:

WC2012=# SELECT extract(Year from BirthDate),ResidenceZipCode,COUNT(ResidenceZipCode) FROM voterdbfvl1  where ResidenceZipCode = 98225 GROUP BY ResidenceZipCode,extract(Year from BirthDate) ORDER BY COUNT DESC LIMIT 10;
 date_part | residencezipcode | count
-----------+------------------+-------
      1993 |            98225 |   994
      1991 |            98225 |   922
      1992 |            98225 |   861
      1994 |            98225 |   801
      1990 |            98225 |   788
      1989 |            98225 |   682
      1984 |            98225 |   579
      1988 |            98225 |   557
      1986 |            98225 |   550
      1985 |            98225 |   547
(10 rows)

WC2012=# SELECT extract(Year from BirthDate),ResidenceZipCode,COUNT(ResidenceZipCode) FROM voterdbfvl1  where ResidenceZipCode = 98226 GROUP BY ResidenceZipCode,extct(Year from BirthDate) ORDER BY COUNT DESC LIMIT 10;
 date_part | residencezipcode | count
-----------+------------------+-------
      1951 |            98226 |   541
      1953 |            98226 |   518
      1947 |            98226 |   508
      1954 |            98226 |   499
      1984 |            98226 |   498
      1956 |            98226 |   498
      1959 |            98226 |   495
      1952 |            98226 |   491
      1955 |            98226 |   486
      1948 |            98226 |   486
(10 rows)

WC2012=# SELECT extract(Year from BirthDate),ResidenceZipCode,COUNT(ResidenceZipCode) FROM voterdbfvl1  where ResidenceZipCode = 98229 GROUP BY ResidenceZipCode,extract(Year from BirthDate) ORDER BY COUNT DESC LIMIT 10;
 date_part | residencezipcode | count
-----------+------------------+-------
      1953 |            98229 |   446
      1952 |            98229 |   430
      1948 |            98229 |   424
      1951 |            98229 |   417
      1949 |            98229 |   414
      1954 |            98229 |   407
      1957 |            98229 |   401
      1950 |            98229 |   384
      1947 |            98229 |   377
      1946 |            98229 |   376
(10 rows)

WC2012=# SELECT extract(Year from BirthDate),ResidenceZipCode,COUNT(ResidenceZipCode) FROM voterdbfvl1  where ResidenceZipCode = 98248 GROUP BY ResidenceZipCode,extract(Year from BirthDate) ORDER BY COUNT DESC LIMIT 10;
 date_part | residencezipcode | count
-----------+------------------+-------
      1957 |            98248 |   305
      1959 |            98248 |   304
      1961 |            98248 |   285
      1952 |            98248 |   276
      1950 |            98248 |   275
      1958 |            98248 |   270
      1954 |            98248 |   270
      1960 |            98248 |   267
      1956 |            98248 |   266
      1962 |            98248 |   264
(10 rows)

WC2012=# SELECT extract(Year from BirthDate),ResidenceZipCode,COUNT(ResidenceZipCode) FROM voterdbfvl1  where ResidenceZipCode = 98264 GROUP BY ResidenceZipCode,extract(Year from BirthDate) ORDER BY COUNT DESC LIMIT 10;
 date_part | residencezipcode | count
-----------+------------------+-------
      1956 |            98264 |   255
      1989 |            98264 |   245
      1954 |            98264 |   235
      1960 |            98264 |   234
      1961 |            98264 |   232
      1957 |            98264 |   232
      1991 |            98264 |   229
      1955 |            98264 |   226
      1990 |            98264 |   226
      1980 |            98264 |   224
(10 rows)

WC2012=# SELECT extract(Year from BirthDate),ResidenceZipCode,COUNT(ResidenceZipCode) FROM voterdbfvl1  where ResidenceZipCode = 98230 GROUP BY ResidenceZipCode,extract(Year from BirthDate) ORDER BY COUNT DESC LIMIT 10;
 date_part | residencezipcode | count
-----------+------------------+-------
      1947 |            98230 |   254
      1946 |            98230 |   248
      1948 |            98230 |   227
      1952 |            98230 |   223
      1956 |            98230 |   218
      1954 |            98230 |   217
      1943 |            98230 |   216
      1951 |            98230 |   216
      1957 |            98230 |   211
      1945 |            98230 |   207
(10 rows)

Clearly, the 25 and under registrants are coming from 98225, 98226 or 98229:

WC2012=# SELECT extract(Year from BirthDate),ResidenceZipCode,COUNT(ResidenceZipCode) FROM voterdbfvl1  where extract(Year from BirthDate) >= '1988' GROUP BY ResidenceZipCode,extract(Year from BirthDate) ORDER BY COUNT DESC LIMIT 25;
 date_part | residencezipcode | count
-----------+------------------+-------
      1993 |            98225 |   994
      1991 |            98225 |   922
      1992 |            98225 |   861
      1994 |            98225 |   801
      1990 |            98225 |   788
      1989 |            98225 |   682
      1988 |            98225 |   557
      1988 |            98226 |   458
      1990 |            98226 |   437
      1991 |            98226 |   435
      1989 |            98226 |   420
      1992 |            98226 |   376
      1989 |            98229 |   366
      1988 |            98229 |   359
      1990 |            98229 |   353
      1993 |            98226 |   333
      1991 |            98229 |   330
      1992 |            98229 |   327
      1989 |            98264 |   245
      1989 |            98248 |   235
      1993 |            98229 |   230
      1991 |            98264 |   229
      1990 |            98248 |   226
      1990 |            98264 |   226
      1991 |            98248 |   221
(25 rows)

Residents born between 1990 - 1994 are clearly coming  mostly from 98225, 98226 or 98229:


WC2012=# SELECT extract(Year from BirthDate),ResidenceZipCode,COUNT(ResidenceZipCode) FROM voterdbfvl1  where extract(Year from BirthDate) = '1994' GROUP BY ResidenceZipCode,extract(Year from BirthDate) ORDER BY COUNT DESC LIMIT 25;
 date_part | residencezipcode | count
-----------+------------------+-------
      1994 |            98225 |   801
      1994 |            98226 |   219
      1994 |            98229 |   169
      1994 |            98264 |   140
      1994 |            98248 |   123
      1994 |            98230 |    79
      1994 |            98247 |    68
      1994 |            98240 |    20
      1994 |            98244 |    18
      1994 |            98295 |    15
      1994 |            98266 |    12
      1994 |            98276 |     8
      1994 |            98284 |     6
      1994 |            98281 |     3
      1994 |            98262 |     2
(15 rows)

WC2012=# SELECT extract(Year from BirthDate),ResidenceZipCode,COUNT(ResidenceZipCode) FROM voterdbfvl1  where extract(Year from BirthDate) = '1993' GROUP BY ResidenceZipCode,extract(Year from BirthDate) ORDER BY COUNT DESC LIMIT 25;
 date_part | residencezipcode | count
-----------+------------------+-------
      1993 |            98225 |   994
      1993 |            98226 |   333
      1993 |            98229 |   230
      1993 |            98264 |   196
      1993 |            98248 |   177
      1993 |            98230 |   100
      1993 |            98247 |    73
      1993 |            98240 |    30
      1993 |            98266 |    28
      1993 |            98295 |    23
      1993 |            98244 |    19
      1993 |            98284 |    16
      1993 |            98276 |    13
      1993 |            98281 |     5
      1993 |            98262 |     4
      1993 |            98220 |     2
(16 rows)

WC2012=# SELECT extract(Year from BirthDate),ResidenceZipCode,COUNT(ResidenceZipCode) FROM voterdbfvl1  where extract(Year from BirthDate) = '1992' GROUP BY ResidenceZipCode,extract(Year from BirthDate) ORDER BY COUNT DESC LIMIT 25;
 date_part | residencezipcode | count
-----------+------------------+-------
      1992 |            98225 |   861
      1992 |            98226 |   376
      1992 |            98229 |   327
      1992 |            98248 |   215
      1992 |            98264 |   198
      1992 |            98230 |   126
      1992 |            98247 |    93
      1992 |            98240 |    29
      1992 |            98266 |    23
      1992 |            98244 |    22
      1992 |            98295 |    19
      1992 |            98276 |    16
      1992 |            98284 |    15
      1992 |            98281 |    10
      1992 |            98220 |     6
      1992 |            98262 |     2
(16 rows)

WC2012=# SELECT extract(Year from BirthDate),ResidenceZipCode,COUNT(ResidenceZipCode) FROM voterdbfvl1  where extract(Year from BirthDate) = '1991' GROUP BY ResidenceZipCode,extract(Year from BirthDate) ORDER BY COUNT DESC LIMIT 25;
 date_part | residencezipcode | count
-----------+------------------+-------
      1991 |            98225 |   922
      1991 |            98226 |   435
      1991 |            98229 |   330
      1991 |            98264 |   229
      1991 |            98248 |   221
      1991 |            98230 |   127
      1991 |            98247 |    89
      1991 |            98240 |    32
      1991 |            98266 |    31
      1991 |            98295 |    21
      1991 |            98244 |    19
      1991 |            98276 |    14
      1991 |            98284 |    13
      1991 |            98262 |     8
      1991 |            98281 |     5
      1991 |            98220 |     4
(16 rows)

WC2012=# SELECT extract(Year from BirthDate),ResidenceZipCode,COUNT(ResidenceZipCode) FROM voterdbfvl1  where extract(Year from BirthDate) = '1990' GROUP BY ResidenceZipCode,extract(Year from BirthDate) ORDER BY COUNT DESC LIMIT 25;
 date_part | residencezipcode | count
-----------+------------------+-------
      1990 |            98225 |   788
      1990 |            98226 |   437
      1990 |            98229 |   353
      1990 |            98264 |   226
      1990 |            98248 |   226
      1990 |            98230 |   142
      1990 |            98247 |   104
      1990 |            98244 |    33
      1990 |            98266 |    33
      1990 |            98295 |    28
      1990 |            98240 |    25
      1990 |            98276 |    20
      1990 |            98281 |    12
      1990 |            98262 |    10
      1990 |            98284 |     9
      1990 |            98220 |     6
(16 rows)