There are two directions to further the analysis of alcohol consumption: the relationship between alcohol licensing and econoimc growth, and the impact of alcohol consumption in the context of public health. Because of the lack of data on off-premise liquor licenses, it is impossible to estimate how much alcohol people consume at home, thus the door is closed for the public health direction. I would like to move my focus to the economic factors surrounding alcohol consumptions. After all, liquor licenses were used by municipalities repeatedly as a tool to spur economic development.
To be precise, I will be looking at the “fondness for alcohol” of a neighborhood and the social economic implications of such fondness.
Massachusetts General Laws has defined 6 types of on-premise alcohol retail venues: restaurant, hotel, club, veterans club, general-on-premises and tavern. Each category has its own restriction on who may be the patrons, where the alcohol may be consumed, hours of sale, and whether food can be served with, etc. There is also a distinction between a license for wines and malt beverages (beers for example) and one for all alcoholic beverages.
Local licensing boards are authorized to manage quotas on number of licenses based on the population of the city/town and license types. All alcoholic beverages and wines & malt beverages licenses have separate quotas. Generally speaking, the law allows one liquor license for each population unit of one thousand, although the actual regulations are much more complicated. The quota seldom changes every year, but licenses are open to transfers if a business closes its door. Businesses are reported to spend hundreds of thousands competing on a full liquor license.
Apparently, this is not fair to small businesses in under-served areas. They will never have enough money to bid on a liquor license that cosst so much. In 2014, the city of Boston introduced the concept of “neighborhood-restricted liquor licenses”, which would be allowed only in a few selected neighborhoods. In a period of 3 years, 40 new restricted licenses have been issued to the neighborhoods of Dorchester, Hyde Park, Jamaica Plain, Mattapan, Mission Hill, Roxbury, and Main Streets Districts (as designated by BRA), along with 35 new unrestricted licenses.
Besides common alcoholic beverage licenses with strict quotas, there are also “Farmer Distillery” licenses, which are issued to farms that produce craft distillers. The purpose of this special license is to stimulate culinary tourism for local farms. The city of Boston has issued two of these licenses, one in South Boston, one in Dorchester.
The data we have readily at hand are the on-premise liquor licenses, categorized by type of premises, type of alcohol that is allowed to sell, and whether it is neighborhood-restricted; food service licenses and entertainment venue licenses that may be linked to the liquor licenses by business addresses and names of the owners; demographics data from census indicators, including sex, age, rage, education level, family type, income, transportation preference, etc.
I will first link liquor licenses to business types, then discuss how certain demographics may have influenced the thriving of each business type, and how alcohol consumption may be related to it.
The dataset contains in total 1169 unique liquor licenses, distributed among 25 different sub-categories1.
| Business Type | All Alcohol | Malt & Wine | Total |
|---|---|---|---|
| Common Vectualler | 635 | 374 | 1009 |
| Hotel | 63 | 2 | 65 |
| Club | 54 | 7 | 61 |
| General On-Premises | 20 | 6 | 26 |
| Tavern | 6 | 0 | 6 |
| Farmer Distillery | 2 | 0 | 2 |
| Table 1: Number of Liquor Licenses by Types | |||
It is no surprise that common vectuallers (restuarants and bars that serve both food and beverages) have taken most (86%) of the liquor licenses. The percentage is so high that other premises almost look peripheral. However, among the 86% of licenses for common vectuallers, 37% of them are Wines and Malt Beverages only, which is much higher a ratio than other venue types. This is certainly not because that restaurants tend to voluntarily opt out hard liquor, but more because of limited number of full liquor licenses in the market.
Some of the venue types can indicate the type of customers. For examples, hotels mostly serve travellers, clubs are most visited by young people. But for the majority of the licenses issued to common vectuallers, we cannot infer who the customers are based on the information we now have. A possible followup would be to scrape data from Yelp or Foursquare, or even Twitter and Facebook, so to understand the dynamics of each venue. For example, popular bars/restaurants with a lot of ratings may have attracted a lot of travellers or people from all over the city, while less rated venues tend to have a more local customer base.
Using census indicators derieved from American Community Survey and decennial census, in five-year estimates between 2010 to 2014 (file ACS_1014_BLKGRP.tab in dataset “American Community Survey Census Indicators for Massachusetts Block Groups”), and the density of liquor licenses as an proxy to alcohol consumption, following analysis aims at finding out which areas of the city attract most alcoholic beverage consumers, and who the typical patrons are2.
| Tract ID | Per Capita | Neighborhood |
|---|---|---|
| 25025030400 | 0.02512 | Central |
| 25025981202 | 0.02041 | South Boston |
| 25025060600 | 0.01970 | South Boston |
| 25025070101 | 0.01673 | Central |
| 25025010701 | 0.01422 | Back Bay/Beacon Hill |
| 25025010600 | 0.01346 | Back Bay/Beacon Hill |
| 25025030300 | 0.01303 | Central |
| 25025070200 | 0.00952 | Central |
| 25025010702 | 0.00781 | Back Bay/Beacon Hill |
| 25025070300 | 0.00777 | Central |
| Table 2: Top 10 tracts with the most liquor licenses per capita | ||
At the census tract level, number of licenses per capita varies from 0.02512 (25 per 1000 residents) to 0.00011 (0.1 per 1000 residents). We can plot this data against different demographic attributes to see whether there are any potential correlations between the number of licenses and certain charasteristic of the population3.
The graphs suggest no significant correlations in population density and percentage of renters, but median house income and sex ratio do seem have correlations with number of liquor licenses. It seems that liquor licenses tend are more often issued to where rich males live.
Of course, this is only a preliminiary study on 4 of 45 census indicators. I will run though more indicators offline and share the results during coming weeks.
Liquor lisences by business type
source("posts/src/preparation.R")
library(sqldf)
length(unique(bizz[bizz$LICENSECAT_C == 'Liquor', ]$LICENSECATDESC))
alc.cat <- read.table(textConnection('
Abbr Type
GOP "General On-Premises"
Gen "General On-Premises"
CV7 "Common Vectualler"
Club Club
Clb Club
Inn Hotel
Tavern Tavern
"Farmer Distillery" "Farmer Distillery"
'), header = TRUE)
bizz.alc <- bizz.clean[bizz.clean$LICENSECAT_C == "Liquor",
c("LICENSENO", "BIZID", "LICENSECAT",
"LICENSECATDESC", "ISSDTTM",
"LATITUDE", "LONGITUDE", "ZIP",
"BRA_NSA", "BRA_PD",
"BG_ID_10", "CT_ID_10", "TLID")]
bizz.alc$ALC_BIZ_TYPE <- "Other"
l <- apply(alc.cat, 1, function(row) {
idx <- which(str_detect(bizz.alc$LICENSECATDESC, as.character(row[1])))
bizz.alc[idx, "ALC_BIZ_TYPE"] <<- as.character(row[2])
})
bizz.alc$ALC_TYPE <- ifelse(
str_detect(bizz.alc$LICENSECATDESC, "Malt"),
"Malt Wine", "All Alcohol")
bizz.alc$ALC_IS_RESTRICTED <- ifelse(
str_detect(bizz.alc$LICENSECATDESC, "Rest"),
1, 0)
alc.count <- sqldf("select
ALC_BIZ_TYPE as `Business Type`,
count(case when ALC_TYPE='All Alcohol' THEN 1 END) as `All Alcohol`,
count(case when ALC_TYPE='Malt Wine' THEN 1 END) as `Malt & Wine`,
count(1) as `Total`
from `bizz.alc`
group by `Business Type`
order by `Total` desc")
write.csv(alc.count, "tmp.txt", row.names = FALSE)
↩Number of liquor licenses by tract
# ACS Census Tract
acs.ct <- read.csv("../data/acs-census-tract/ACS_1014_TRACT.tab",
header = TRUE, sep = "\t")
# ACS Block Group
acs.bg <- read.csv("../data/acs-census-block/ACS_1014_BLKGRP.tab",
header = TRUE, sep = "\t")
count.census.liq <- function(df, key) {
liqcount <- as.data.frame(table(bizz.alc[, key]))
names(liqcount) <- c(key, "LiqCount")
df <- merge(df, liqcount)
df <- mutate(df, LiqPerCapita = round(LiqCount / TotalPop, 5))
df[df$LiqPerCapita == Inf, "LiqPerCapita"] <- NaN
df
}
# will add new columns `LiqCount` and `LiqPerCapita`
acs.ct <- count.census.liq(acs.ct, "CT_ID_10")
acs.bg <- count.census.liq(acs.bg, "BG_ID_10")
# output as a readable html table
format.top10 <- function(df) {
df <- sqldf("select CT_ID_10 as `Tract ID`, LiqPerCapita as `Per Capita`
from df
order by `Per Capita` desc limit 10")
df$Neighborhood <- bizz.alc[match(df$`Tract ID`, bizz.alc$CT_ID_10), "BRA_PD"]
df$`Per Capita` <- str_pad(df$`Per Capita`, 7, "right", "0")
df
}
htmlTable(format.top10(acs.ct),
rnames=FALSE,
css.cell = "padding: 0.25em",
css.class = "table",
pos.caption = "bottom",
caption="Table 2: Top 10 tracts with the most liquor licenses per capita")
↩Plots for correlations
suppressPackageStartupMessages(library(gridExtra))
p1 <- ggplot(acs.ct, aes(x = PopDen, y = LiqPerCapita)) +
geom_point() +
theme_light() +
xlab("Population Density") +
ylab("Liquor license per capita")
p2 <- ggplot(acs.ct, aes(x = MedHouseIncome, y = LiqPerCapita)) +
geom_point() +
theme_light() +
xlab("Median House Income") +
ylab("Liquor license per capita")
p3 <- ggplot(acs.ct, aes(x = RentersPer, y = LiqPerCapita)) +
geom_point() +
theme_light() +
xlab("Percentage of renters") +
ylab("Liquor license per capita")
p4 <- ggplot(acs.ct, aes(x = SexRatio, y = LiqPerCapita)) +
geom_point() +
theme_light() +
xlab("Sex Ratio") +
ylab("Liquor license per capita")
grid.arrange(p1, p2, p3, p4, ncol = 2)
↩