Tools for the home brewer
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

PyPI Versions Build Status Documentation Status License

Brew Day

This repositiory is a set of utilities for the homebrewer. It should help in constructing and analyzing recipes. There are also command line utilities for brew day.

The hope is to help improve your planning and execution when making beer.

Recipe Examples

To see examples of this library in action check out the examples/ directory or read the Example for more information.


To be helpful a few tools have been included. Run them thusly:

$ PYTHONPATH=$PYTHONPATH: python bin/abv -h
$ PYTHONPATH=$PYTHONPATH: python bin/gv -h
$ PYTHONPATH=$PYTHONPATH: python bin/sugar -h
$ PYTHONPATH=$PYTHONPATH: python bin/temp -h
$ PYTHONPATH=$PYTHONPATH: python bin/yeast -h


In an attempt to understand the data as it is presented in various brewing books and websites the charts/ directory attempts to reproduce them using the tools of this library. Credit is given as best as possible to the original author. Corrections are made where possible to make the charts as accurate as possible.

A note on Graphs

Importantly these charts are generally lists of numbers and NOT graphs. To limit the required dependencies of this library any graphs are kept in the BrewSci repo.


To parse or build recipes you will need a directory that holds data for the following types:

  • cereals
  • hops
  • water
  • yeast

To help with this you can use the BrewData repo.


The standard for this repository at the moment is to use Imperial Units. This is because most of the equations used as reference use Imperial Units. As tests are updated units may change to SI Units (metric).


A fair number of methods require input values as a percentage. To avoid confusion all percentages are expected to be in decimal form between the number 0.0 and 1.0.

Percentages will be displayed in percentage format as opposed to decimal format to avoid confusion and for ease of reading.


Change to the docs directory. Then do the following:

$ cd docs/
$ virtualenv .venv
$ source .venv/bin/activate
(.venv) $ pip install -r requirements.txt
(.venv) $ pip install -r requirements-local.txt --upgrade
(.venv) $ make html
(.venv) $ open build/index.html

It's important that the current version of the library be installed in order to generate the API docs. To insure this insure to install from requirements-local.txt with the --upgrade flag every time. Example:

$ source .venv/bin/activate
(.venv) $ pip install -r requirements-local.txt --upgrade && make clean html