Carbonation and packaging
What a “volume” is
Section titled “What a “volume” is”One volume of CO₂ is one litre of gas at 0 °C and one atmosphere dissolved in one litre of beer. CO₂’s density under those conditions is 1.96 g/L, so one volume is 1.96 grams of CO₂ per litre — the conversion between the two ways of quoting carbonation.
The default target is 2.4 volumes, mid-range for most ale styles.
Forced carbonation: pressure and temperature
Section titled “Forced carbonation: pressure and temperature”The empirical fit of the standard carbonation tables that every keg calculator uses:
V = (P + 14.695) × (0.01821 + 0.09011 × e^(−(T − 32) / 43.11)) − 0.003342with P in PSI gauge and T in °F. Beerwright takes °C and PSI and converts
internally; PSI stays because that is how regulators are labelled. Bar
(× 0.0689475729) and kilopascals (× 6.89475729) are offered alongside — some
European regulators are marked in kPa, and 100 kPa is 1 bar.
The inverse is exact, so you can ask either question. Some worked values:
| Temperature | Pressure | Volumes |
|---|---|---|
| 38 °F (3.3 °C) | 12 psi | 2.58 |
| 4 °C | 10 psi | 2.33 |
| 0 °C | 8 psi | 2.45 |
| 3 °C | 10.9 psi | 2.50 |
Two things the engine does not do. It does not clamp: ask for a low volume at a warm temperature and it will hand back a negative gauge pressure, because that is the honest answer — you cannot get there by pressure alone. And it has no line-balancing or serving-pressure model at all; dispense line length is outside the engine.
The default keg temperature in the app is 4 °C, a beer fridge.
Residual CO₂
Section titled “Residual CO₂”Beer leaving fermentation already holds dissolved CO₂, and how much depends on how warm it got. The standard residual-CO₂ curve:
V_residual = 3.0378 − 0.050062 × T + 0.00026555 × T²with T in °F. The critical detail is which temperature: it is the highest
temperature the beer reached at or after the end of fermentation, not the
temperature it is at now. CO₂ driven off by a warm diacetyl rest does not come
back when the beer is chilled. Beerwright derives that peak from the recipe’s
fermentation schedule, including ramp end temperatures, so a schedule with a
20 °C rest is priced as a 20 °C rest.
| Peak temperature | Residual volumes |
|---|---|
| 10 °C | 1.20 |
| 18 °C | 0.92 |
| 20 °C | 0.86 |
Priming sugar
Section titled “Priming sugar”volumesToAdd = target − residual(peak fermentation temperature)CO₂_g = volumesToAdd × beerVolume_L × 1.96sugar_g = CO₂_g / yield(sugar)If the beer already holds more CO₂ than the target, the dose clamps to zero and says so rather than going negative.
The per-sugar yields are derived from the stoichiometry of fermentation,
C₆H₁₂O₆ → 2 C₂H₅OH + 2 CO₂, not copied from a table:
| Sugar | g CO₂ per g | Where the number comes from |
|---|---|---|
| Corn sugar (dextrose monohydrate) | 0.4442 | 88.02 g CO₂ from 198.17 g/mol |
| Dextrose (anhydrous) | 0.4886 | 88.02 g CO₂ from 180.16 g/mol |
| Table sugar (sucrose) | 0.5142 | 176.04 g CO₂ from 342.30 g/mol, after hydrolysis |
| Turbinado / demerara | 0.5039 | ~98 % sucrose |
| Dry malt extract | 0.3908 | ~95 % extract × ~80 % fermentable × sucrose’s yield |
| Honey | 0.4007 | ~82 % fermentable monosaccharides |
| Maple syrup | 0.3394 | ~66 % sucrose |
The DME and honey figures are approximations by nature — DME fermentability genuinely varies by product.
Why corn sugar doses look high
Section titled “Why corn sugar doses look high”For 20 L to 2.4 volumes from a 20 °C peak, Beerwright asks for 135.8 g of corn sugar (6.79 g/L) — 60.31 g of CO₂ to add, on top of 0.86 residual volumes. Table sugar for the same beer is 117.3 g, anhydrous dextrose 123.4 g.
Published tools land anywhere in a 105–140 g band for “priming sugar”, and the whole spread is one question: what the tool thinks a gram of corn sugar is. Tools that treat it as dextrose monohydrate — which is what the bag on the homebrew shop’s shelf actually contains, roughly 9 % of its weight being water of crystallisation — sit at the top of that band. Beerwright is one of them. It is not a different calculation; it is a different assumption about the bag, and it is the assumption that matches what you are weighing.
Bottles and kegs
Section titled “Bottles and kegs”The engine itself makes no keg-versus-bottle distinction — it knows a beer volume and a target. The app adds the packaging vocabulary: 330 / 500 / 750 mL bottles, 12 and 22 US fl oz, a default packaging temperature of 20 °C, and a default keg temperature of 4 °C.
The style-based carbonation suggestions are guidance, not a guideline, and the app says so. The BJCP 2021 guidelines describe carbonation in words — “high”, “moderately low”, “cask-conditioned” — and never in volumes. The bands Beerwright shows map a BJCP category to the conventional homebrewing range for that family, which is where those numbers are actually published: Palmer’s How to Brew carbonation table and Zainasheff & Palmer’s Brewing Classic Styles.