News

The CBW Archives

Multivariate beer

Genesis

A few weeks ago for my weekly “Sunday read” share of what beer-y thing I’m reading that day I came across Brewing Multivariate Beer, about making recipes out of demographic data.

The idea appealed to me: I like programmatic creation (one day I might actually follow up on my idea of making the soundtrack to retail generated based on the items sold), and a beer crafted if not for the region but at least from it, vaguely, was right up my alley.

Do it yourself

The original post includes the source code used, which I quite appreciated, but I think the author assumed that anyone willing to give it a go would know how to do silly things like “how to open an R prompt” already. I did not. And hey, R people? Your name isn’t exactly the easiest to search, y’dig?

Anyway. Assuming you’re using a command line (which actually doesn’t let you see the auto-generated labels, unfortunately, and so I’d recommend commenting out lines 80-136):

$ sudo apt-get install r-base r-recommended
$ R
> source("make-recipe.R")
> make_recipe("Erie","New York")

(an aside: q() is how you quit, not quit or exit or ^C, though “panic quit the PuTTY session like it’s your first time using vim” did work as well)

Our recipe

ERIE COUNTY ALE
-----------------------------
This recipe is for a 5-gallon batch.

Hop addition times decided by brewer. Suggestion: Continuous hopping every 10 minutes during a 60-minute boil. That's 0.7 ounces per interval, which includes the hop addition at the beginning of the boil.

Add half of aroma hops at flameout. Use the rest for dry-hopping.

HOPS
-----------------------------
Cascade: 3.8oz
Centennial: 0.6oz
Citra: 0.1oz
Warrior: 0.2oz
Magnum: 0.2oz
Cascade (for aroma): 1.4oz

GRAINS
-----------------------------
American 2-row: 12lbs
Carapils: 1lbs
Rye: 0.9lbs
Crystal40: 0.4lbs

More counties

The source code reads very easily, and so I’m sure I could add or change things if I wanted. My initial impression was that the low number of variables would produce beers that had roughly the same characteristics. I tested it with Rochester’s Monroe County:

MONROE COUNTY ALE
-----------------------------
This recipe is for a 5-gallon batch.

Hop addition times decided by brewer. Suggestion: Continuous hopping every 10 minutes during a 60-minute boil. That's 0.73 ounces per interval, which includes the hop addition at the beginning of the boil.

Add half of aroma hops at flameout. Use the rest for dry-hopping.

HOPS
-----------------------------
Cascade: 3.6oz
Centennial: 0.7oz
Citra: 0.2oz
Warrior: 0.4oz
Magnum: 0.2oz
Cascade (for aroma): 1.4oz

GRAINS
-----------------------------
American 2-row: 12lbs
Carapils: 1lbs
Rye: 0.9lbs
Crystal40: 0.4lbs

So, yes. Pretty much the same. Let’s try something a little farther away: CBW expat Matt’s Travis County, TX:

TRAVIS COUNTY ALE
-----------------------------
This recipe is for a 5-gallon batch.

Hop addition times decided by brewer. Suggestion: Continuous hopping every 10 minutes during a 60-minute boil. That's 0.72 ounces per interval, which includes the hop addition at the beginning of the boil.

Add half of aroma hops at flameout. Use the rest for dry-hopping.

HOPS
-----------------------------
Cascade: 2.5oz
Centennial: 0.4oz
Citra: 0.3oz
Warrior: 1.7oz
Magnum: 0.1oz
Cascade (for aroma): 1.8oz

GRAINS
-----------------------------
American 2-row: 12lbs
Carapils: 1lbs
Rye: 0.5lbs
Crystal40: 0.6lbs

The much higher Hispanic population swapped some Cascade for Warrior, and it appears Western New York has wider health care coverage, but still: all in all, not hugely different.

It would be interesting to create entirely different styles depending on certain factors. Rather than make a variation on a pale ale, maybe we’re a stout, and somewhere in Wisconsin a saison. Base the SRM of the beer on the latitude, and maybe yeast strain on longitude, perhaps.

Anyone feel like making Erie County Ale?