✏️ Hoeveelheden hieronder aanpassen geldt alléén voor deze brouwdag — het originele recept blijft ongewijzigd.
Vergistbare ingrediënten
Hoptoevoegingen
🧊 Vergistingsschema
🎯 Waar je op mikt
🌡️ Maischstappen
Stap
Temp.
Duur
Resterende tijd
⏰
Maischstap klaar!
⏱️ Timers
Koken
Kooktijdmin
01:00:00
Stopwatch
00:00:00
📊 Metingen
📝 Brouwdagnotities
🍾 Verpakken & Carbonisatie
💰 Vul in de kolom Prijs je eigen inkoopprijs in (€/kg). Leeg laten betekent: standaardprijs gebruiken. Wijzigingen worden meteen bewaard.
Naam
Producent
Punten/kg
EBC kleur
Type
Prijs €/kg
+ Eigen mout toevoegen
Punten/kg is hoeveel SG-punten één kilo oplevert in één liter wort, bij 100 % rendement. 1 kg suiker in 1 liter geeft SG 1.384, dus suiker heeft 384 punten. Vul je het extractgehalte van het analysecertificaat in (bijvoorbeeld 80 %), dan rekent de app de punten voor je uit: 384 × 80/100 = 307. Beide velden werken twee kanten op. Amerikaanse specificaties in PPG vermenigvuldig je met 8,35 — 37 PPG is 309 punten. Je brouwzaalrendement vul je apart in bij het recept; dat hoort niet in dit getal.
💰 Vul in de kolom Prijs je eigen inkoopprijs in (€/100g). Leeg laten betekent: standaardprijs gebruiken. Wijzigingen worden meteen bewaard.
Naam
Producent
Alfazuur (%)
Type
Herkomst
Prijs €/100g
+ Eigen hop toevoegen
💰 Vul in de kolom Prijs je eigen inkoopprijs in (€/gram). Leeg laten betekent: standaardprijs gebruiken. Wijzigingen worden meteen bewaard.
Naam
Producent
Attenuatie (%)
Type
Temperatuur
Prijs €/gram
+ Eigen gist toevoegen
💰 Vul in de kolom Prijs je eigen inkoopprijs in (per 100 g of 100 mL; stuks per stuk — de eenheid staat achter elk veld). Leeg laten betekent: standaardprijs gebruiken. Wijzigingen worden meteen bewaard.
Naam
Producent
Type
Eenheid
Max/20L
Opmerking
Prijs €
+ Eigen overig ingrediënt toevoegen
🛒 Boodschappenlijst
Kies de recepten die je wilt brouwen. De app telt de ingrediënten op, trekt je voorraad ervan af en laat zien wat je nog moet kopen — met de geschatte kosten.
🔄 SG Omrekeningen
Vul je gemeten soortelijk gewicht in. De velden eronder tonen dezelfde waarde in graden Plato en Brix — handig als je meetapparatuur een andere schaal gebruikt dan je recept.
REFRACTOMETER (correctie bij gisting)
Een refractometer leest te hoog zodra er alcohol in je bier zit. Vul je Brix-waarde van vóór het vergisten in, plus wat je nu afleest. Je krijgt de werkelijke FG.
🌡️ Hydrometer Temperatuurcorrectie
Een hydrometer klopt alleen bij zijn ijktemperatuur, meestal 20 °C. Meet je warmer of kouder, vul dan je meting en de temperatuur in voor de echte waarde.
GISTDOSERING & STARTER
Hoeveel gistcellen heb je nodig, en hoeveel heb je er werkelijk? Vul je batch in, wat je in huis hebt en de productiedatum. Te weinig cellen is een van de meest voorkomende oorzaken van een trage of onvolledige gisting.
SUIKER VOOR DE STARTER
Hoeveel suiker of moutextract heb je nodig voor een starter? Vul het gewenste startvolume en de OG in (1.036 is gebruikelijk).
💧 Verdunning / SG aanpassing
Je wort is te zwaar uitgekomen. Vul in wat je hebt en waar je naartoe wilt; je krijgt te horen hoeveel water erbij moet. Alleen naar beneden — water verdunt.
🍬 SG verhogen met suiker
Je wort is te licht uitgekomen. Vul in wat je hebt en waar je naartoe wilt; je krijgt te horen hoeveel suiker of dextrose erbij moet.
🧪 Melkzuur concentratie meten
Heb je je melkzuur zelf verdund en wil je weten of het gelukt is? Meet de oplossing na met je refractometer of hydrometer en vul de meting hieronder in. Je krijgt het massapercentage terug plus de zuursterkte in mEq/mL, en je kunt het meteen in de watertab zetten.
Eén van beide is genoeg. Meet bij 20 °C; een refractometer heeft twee druppels nodig, een hydrometer een volle maatcilinder.
⚙️ Standaardinstellingen
🔧 Mijn brouwinstallatie
Deze waarden bepalen hoeveel water je nodig hebt en hoe groot je kookvolume moet zijn. Meet ze één keer op je eigen installatie voor nauwkeurige recepten.
Brouw je thuis voor eigen gebruik, dan laat je dit uit: eigen gebruik is vrijgesteld en er valt niets aan te geven.
Heb je een vergunning — een accijnsgoederenplaats of het equivalent in jouw land — dan geeft deze module je een
grondstofboek, een afvul- en uitslagregistratie en een overzicht per tijdvak.
Bij het inschakelen wordt van elke grondstof waarvan je voorraad hebt een begintelling geschreven op vandaag.
Uitschakelen wist niets: je boek blijft staan, alleen het voorraadscherm leest dan weer het losse getal.
🔄 Versie & Updates
BROUWHULP '26 …
Door Leonard Hamers · Bossche Brouwers
🔃 Nieuwste versie forceren
Wist de lokale cache en herlaadt de app — haalt altijd de nieuwste versie op van de server.
Je recepten en data blijven bewaard.
Updates worden gecontroleerd via de downloadpagina. Als er een nieuwe versie is, download je het nieuwe bestand en vervangt het huidige.
🛃 Douane en accijns
Een hulpmiddel voor je eigen administratie, geen vervanging van je wettelijke registratie.
Wat je toezichthouder als administratie accepteert staat in je vergunning en niet in deze app.
📤 Nieuwe uitslag boeken
Verpakkingsmiddelen
🧾 Overzicht per tijdvak
⚖️ Volumekring per brouwsel
📒 Regel toevoegen
🧾 Bestelling of factuur inlezen
Open de bon van je leverancier, selecteer de tekst (Ctrl-A, Ctrl-C) en plak hem hieronder.
De app zoekt de artikelregels eruit en stelt inkoopboekingen voor. Er wordt niets geboekt
voordat je de voorstellen hebt nagekeken: een verkeerd gekoppeld artikel komt stilzwijgend
in het boek waar de douane naar kijkt.
Let op het verschil dat de app niet kan zien: een factuur zegt wat je hebt besteld en
betaald, niet wat er is aangekomen. Klopt de levering niet met de bon, pas de hoeveelheid
dan aan vóór je boekt.
🧾 Ingeboekte facturen
📊 Saldo per grondstof
📒 Alle regels
⚖️ Accijnsregeling
Standaard rekent de app met de Nederlandse regeling. Woon of brouw je elders, kies dan het rekenmodel
dat jouw wet gebruikt en vul de tarieven in met de datum waarop ze ingaan. De nieuwste rij die al is
ingegaan wint, dus een tariefwijziging is een regel erbij en geen aanpassing van wat er al geboekt is.
🍾 Verpakkingsmiddelen
De vormen waarin je afvult, met hun inhoud in liter. Daaruit volgen de liters op je uitslagregel:
een fles van 33 cl is 0,33 en een fust van 20 L is 20.
🚚 Bestemmingen
Waar het bier heen gaat. Een bestemming die geen accijns oplevert — opslag onder schorsing, export —
vink je uit; de liters tellen dan wel mee in je volumekring maar niet in het bedrag.
💧 Waterchemie
🌊 Bronwater
Ionen (mg/L = ppm)
🎯 Doelwater
Doeliionen (mg/L = ppm)
Typische waarden: Ca 50–150 · Mg 0–30 · Na 0–100 · Cl 0–250 · SO₄ 0–400 · HCO₃ 0–300
⚗️ Zout- en zuurtoevoegingen
Vul apart in wat je aan je maischwater en aan je spoelwater toevoegt. Alleen het maischwater bepaalt de maisch-pH; het ionenprofiel van je bier volgt uit beide stromen samen.
Toevoeging
Maischwater
Spoelwater
Gips (CaSO₄·2H₂O)
Calciumchloride (CaCl₂)
Calciumchloride 36% vloeibaar (ml)
Bitterzout (MgSO₄·7H₂O)
Keukenzout (NaCl)
Zuiveringszout (NaHCO₃)
Krijt (CaCO₃)
Melkzuur (ml)
concentratie % Staat op het etiket: 80% in Nederland en België, 88% als Amerikaanse standaard. Verdun je zelf, vul dan je eigen percentage in — dat doseert nauwkeuriger.
Fosforzuur 75% (ml)
Zoutzuur 10% (ml)
Antioxidant (metabisulfiet)
waarvan kaliummetabisulfiet % — staat op de verpakking. Antioxin SBT: 45. Antioxin SB: 46,8. Kale KMS: 100.
BROUWHULP '26 is een enkel HTML-bestand — geen installatie nodig. Download het bestand en open het in je browser.
1
Download
Download BrouwHulp.html via de downloadknop op de website.
2
Openen
Open het bestand in Chrome, Firefox, Safari of Edge.
3
Klaar
De app werkt direct, ook offline. Je data wordt opgeslagen in de browser.
Installeren als app (aanbevolen)
Je kunt BROUWHULP '26 als een echte app installeren op je telefoon of laptop:
Android (Chrome): Open de app in Chrome → menu (⋮) → "Toevoegen aan startscherm"
iPhone (Safari): Open de app in Safari → deel-icoon → "Zet op beginscherm"
Windows/Mac (Chrome): Klik het installatie-icoon in de adresbalk
⚠️ Belangrijk: Je data staat opgeslagen in de browser, niet in het bestand zelf. Maak regelmatig een backup via Instellingen → Exporteer alles (JSON).
Eerste recept maken
Ga naar de tab Mijn Recepten en klik op + Nieuw recept. De recepteditor opent zich met standaardinstellingen die je direct kunt aanpassen.
Geef je recept een naam en kies een bierstijl
Stel het batchvolume en rendement in (standaard 20L / 75%)
Voeg mout toe via de + Toevoegen knop in de moutsectie
Voeg hop toe met tijdstip en gebruik
Selecteer een gist uit de database
Sla op met 💾 Recept Opslaan
💡 Tip: De berekeningen aan de rechterkant (OG, IBU, EBC, ABV) worden live bijgewerkt terwijl je ingrediënten invoert.
Brouwdag
Wanneer je gaat brouwen, zet je het recept om naar een brouwsel via de knop 🍺 Aanmaken als Brouwsel. Je wordt automatisch doorgestuurd naar het logboek. Andersom kan ook: maak een leeg brouwsel aan en koppel er ter plekke een recept aan via 📋 Recept koppelen — zonder van tabblad te wisselen. Via 🔁 Ander recept koppelen wissel je later van recept.
In het logboek vind je:
Het volledige recept naast je brouwtools: moutstort (met aandeel en EBC), hoptoevoegingen, overige ingrediënten en gist
Maischstap-timers gekoppeld aan je receptschema (of het standaardschema)
Timers voor maisch, kook en stopwatch, met alarm bij elke hopgift
SG-metingen per fase met temperatuurcorrectie
Gistingsvoortgang en carbonisatieberekening
Notities en proefnotities
Waar je op mikt
Onder het vergistingsschema staat de kaart 🎯 Waar je op mikt: de getallen die je op de brouwdag na elkaar afvinkt, zodat je er het recept niet voor open hoeft te doen. Hij staat vlak boven je maischstappen, want daar leg je ze naast elkaar.
Stortwater
Hoe warm het water moet zijn dat je op de mout giet
Maischwater
Wat er in het maischvat gaat
Spoelwater
Wat je erdoorheen spoelt
Totaal water
Wat je in totaal moet aanmaken, inclusief verliezen
Volume voor koken
Wat er in de ketel staat als je gaat koken
SG voor koken
Wat je meet in de volle ketel, vóór de kook
Alle zes komen uit de brouwselkopie en niet uit het recept. Zet je op de brouwdag om naar een andere installatie of pas je de moutstort aan, dan lopen ze mee.
Het SG voor koken is je vroegste controle op je rendement. Meet je lager dan hier staat, dan heeft je maisch minder opgeleverd dan het recept aanneemt en wordt je OG ook lager; meet je hoger, dan andersom. Je weet dat dus al vóórdat je begint te koken, en niet pas als de gist erin gaat.
Hoe warm moet je stortwater zijn?
Water dat je op koude mout giet koelt af. Hoeveel hangt af van drie dingen: hoeveel mout er ligt, hoe koud die is, en hoeveel water erop gaat. De app rekent het uit met de warmtebalans tussen die massa's — mout neemt per kilo ruim tweeënhalf keer minder warmte op dan water — en telt daar de warmte bij die in een koud vat verdwijnt.
De temperatuur van je mout vul je één keer in bij Instellingen → 🔧 Mijn brouwinstallatie → Temperatuur mout en vat. Het staat bij de installatie en niet bij het recept, want het hangt af van waar je je mout bewaart: een garage in januari is iets anders dan een keukenkast. Vul je niets in, dan rekent de app met 20 °C. Vriest het in je schuur, vul dan gerust een temperatuur onder nul in — dat is geen tikfout maar de reden dat je stortwater warmer moet.
Of het vat meetelt leidt de app af uit de keuzelijst onder Dode ruimte maischvat. Staat die op blijft achter, dan is het een koelbox of een losse kuip: die staat koud en trekt warmte uit je stortwater. Staat hij op komt mee in de ketel, dan is het één vat met een pomp en een element, en dat staat al op temperatuur.
Dit is een startpunt, geen belofte. De warmte die in een vat verdwijnt hangt af van het materiaal, de wanddikte en of je hebt voorverwarmd — dat kan de app niet weten. Meet één keer wat je werkelijk uitkomt na het inmaischen, en stel je mouttemperatuur bij tot het klopt. Daarna klopt het bij elk recept op die installatie.
Op welke stap wordt gestort. De app rekent met de temperatuur van je eerste maischstap — dezelfde stap die bovenaan de afteltimers eronder staat. Heeft je recept geen eigen maischschema, dan gebruikt het logboek het standaardschema en stort je dus op de eiwitrust. Zit er helemaal geen mout in je recept, dan blijft er een streepje staan.
De gisting volgen en bijsturen
Het vergistingsschema in het logboek is aanpasbaar, net als je moutstort en je hop. Per stap wijzig je de naam, de temperatuur, een eventuele eindtemperatuur en het aantal dagen; met + Stap toevoegen zet je er een fase bij en met ✕ haal je er een weg. De datums ernaast schuiven meteen mee, dus je ziet direct wanneer de volgende stap aan de beurt is.
Een nieuwe stap begint op de temperatuur waar de vorige eindigde. Dat is bijna altijd wat je bedoelt als je halverwege een fase toevoegt.
Het recept blijft ongemoeid. Duurt je hoofdgisting twee dagen langer dan gepland, dan zet je dat hier bij — dat is wat er die keer gebeurde, geen wijziging aan je plan. Wil je het voortaan zo doen, pas het dan in de recepteditor aan.
Heeft een brouwsel nog geen schema, dan staat de kaart er toch, met een knop om er een te beginnen. Zo kun je de gisting ook volgen van een recept waarin je geen profiel had gezet.
De kooktimer waarschuwt bij elke hopgift
Koppel je een recept aan je brouwdag, dan leest de kooktimer het hopschema mee. Bij elke gift met gebruik Koken gaat hetzelfde alarm af als bij een maischstap: geluid dat zich herhaalt tot je bevestigt, een trilsignaal op Android en een browsermelding. Onder de klok staat bovendien welke gift er als volgende komt en over hoeveel tijd, zodat je hem alvast kunt afwegen.
De tijden zijn resterende kooktijd, zoals brouwers ze noteren. Een hop op 60 minuten gaat er bij een kook van 60 minuten dus meteen in, en bij een kook van 90 minuten pas na een half uur. Staat er een gift op meer minuten dan je kooktijd, dan meldt de app hem bij de start — later kan niet meer.
Alleen giften met gebruik Koken krijgen een eigen alarm. Eerste wort zit er al in voordat de timer loopt, whirlpool en dry-hop komen erna, en hopextract gaat pas na de gisting in het bier. Hop op 0 minuten krijgt geen apart signaal maar wordt genoemd in het eindalarm — twee alarmen op hetzelfde moment is geen alarm meer maar lawaai.
Zet je de kook terug met ↩, dan staan alle giften weer open. Handig als je opnieuw moet beginnen omdat er iets misging.
Overige ingrediënten doen mee. Bij elk overig ingrediënt met moment Koken vul je bij Tijd de resterende kooktijd in minuten in, precies zoals bij hop. Sinaasappelschil, koriander en Ierse mos krijgen daarmee hun eigen alarm. Dat luistert nauw: koriander en schil geven hun aroma af aan de stoom, dus tien minuten te vroeg is de helft van je aroma kwijt.
Een overig ingrediënt zonder tijd staat op nul en krijgt geen eigen alarm — vul het veld in en het doet mee. Bij een ander moment dan Koken staat er een streepje: daar heeft een tijdstip in de kook geen betekenis.
Je eigen batchnummers
Het nummer linksboven in het logboek is vrij in te vullen. Werk je met een eigen reeks als GB202, KB22 of 2026-014, typ die dan gewoon in; letters, streepjes en voorloopnullen mogen allemaal.
De app telt zelf door op het laatste cijferblok en laat de rest staan: na GB202 komt GB203, na 2026-014 komt 2026-015, en GB007 wordt GB008. Wissel je van reeks door het laatst aangemaakte brouwsel op KB22 te zetten, dan krijgt het volgende brouwsel KB23. Je hoeft het voorvoegsel dus maar één keer per reeks te typen.
Maak je een nieuw brouwsel aan, dan staat het eerstvolgende nummer al als voorstel in het naamveld. Druk je meteen op OK, dan heet het brouwsel GB203 én draagt het dat nummer. Typ je liever een echte naam, bijvoorbeeld Tripel proefbrouw, dan krijgt het brouwsel die naam en houdt het GB203 als nummer.
Onder Instellingen → Volgend brouwnummer stel je in wat het eerstvolgende brouwsel krijgt, bijvoorbeeld als je overstapt vanuit een ander programma en verder wilt tellen. In het overzicht wordt op batchnummer gesorteerd in natuurlijke volgorde, dus GB9 staat vóór GB99 en niet erachter.
Brouwdag-aanpassingen — zonder het recept te wijzigen
Het brouwsel werkt altijd op een kopie van het recept. Alles wat je in het logboek aanpast geldt alléén voor die brouwdag: hoeveelheden wijzigen, ingrediënten toevoegen (+ Voeg toe) of verwijderen (✕), en zelfs de gist wisselen — de attenuatie van de nieuwe gist wordt automatisch overgenomen. OG, FG, ABV, IBU en EBC worden live herberekend. Het originele recept in je bibliotheek blijft altijd ongewijzigd. Handig wanneer een grondstof niet voorradig is of een hoplot een ander alfazuurpercentage heeft.
Het batchvolume aanpassen — met of zonder schalen
Verander je het batchvolume, dan verandert alléén het volume. Je moutstort, je hopgiften en je gist blijven staan zoals ze zijn. Je ziet dus meteen wat er met je bier gebeurt: dezelfde mout in minder liters geeft een hogere stamwort en meer bitterheid. Dat is precies wat je wilt weten als je 18 liter uit de ketel haalde waar je 20 verwachtte.
Wat wél opnieuw wordt uitgerekend zijn het kookvolume en je maisch- en spoelwater. Dat is geen schaling maar een afgeleide: die volgen uit je moutstort en je installatieprofiel, en zouden bij het nieuwe volume anders niet meer kloppen.
Wil je het recept wél omrekenen naar een andere batchgrootte, gebruik dan de knop ⚖️ Schaal naast het volumeveld. Daar zie je eerst de factor en een voorbeeld, en pas na Pas toe worden de hoeveelheden aangepast. Na een volumewijziging verschijnt er een regel met die knop erbij, zodat je hem niet hoeft te zoeken.
Het volumeveld schaalt je ingrediënten niet mee. Je typt er wat je werkelijk in de kuip hebt, en je moutstort blijft staan zoals je hem hebt opgeschreven. Wil je wél schalen, dan is daar de knop ⚖️ Schaal voor, met een voorbeeldweergave en een bevestiging.
Het brouwseloverzicht
Op het tabblad Overzicht staat een grafiek van je laatste twintig brouwsels. Met de keuzelijst Toon kies je wat je erin ziet: alcohol, bitterheid, kleur, stamwort, eindgewicht of je gemeten rendement. Zo zie je in één oogopslag of je bieren bitterder worden of je rendement stijgt — iets wat de tabel eronder niet laat zien.
Bij stamwort en eindgewicht begint de as bij 1.000 in plaats van bij nul. Anders zouden 1.040 en 1.080 op de schaal nauwelijks van elkaar verschillen. Een brouwsel waarvoor je die waarde niet hebt ingevuld krijgt geen staaf; een staafje van niets zou een meting suggereren die er niet is.
Klik op een rij in de tabel eronder om het brouwdaglogboek van dat brouwsel te openen. Dat werkt ook met de tabtoets en Enter.
Mout & Granen
De moutsectie bevat een database van meer dan 80 mouten en granen, ingedeeld in categorieën:
Categorie
Voorbeelden
Max. aandeel
Basismout
Pilsner, Pale Ale, München
100%
Karamel/Crystal
Crystal 40L, Caramunich
25%
Geroosterd
Chocolade, Black Patent
15%
Ongemout graan
Haver, Tarwe, Rogge
40%
Suiker/Extract
Kandijsuiker, DME
20% (info)
⚠️ Waarschuwingen: BROUWHULP '26 waarschuwt automatisch wanneer specialmout-percentages te hoog worden, gebaseerd op Palmer "How to Brew" en BJCP-richtlijnen.
Suiker of honing pas tijdens de gisting toevoegen
In de moutlijst staat een kolom Toevoegen met vier momenten. Ze staan op volgorde van de brouwdag, en ze bepalen in welke berekening het ingrediënt meetelt:
Moment
Maischwater
SG vóór koken
Begin SG (OG)
Alcohol
Maisch
ja
ja
ja
ja
Ketel
nee
nee
ja
ja
Gisting
nee
nee
nee
ja
Bottelen
nee
nee
nee
ja
Maisch is de standaard en het gewone geval: graan en alles wat je bij het maischen meedoet. Ketel is voor suiker of extract dat je pas in de kookketel gooit — dat zie je terug in je begin-SG maar níét in het SG dat je vóór het koken meet, want dan zit het er nog niet in. Zet je hem op Gisting, dan verschijnt er een dagveld — standaard dag 3. Dat is de gebruikelijke keuze: de hoofdgisting is dan over haar hoogtepunt en de gist pakt de nieuwe suiker rustig op in plaats van er in één klap doorheen te razen. Bottelen is voor bottelsuiker en heeft geen dag.
Waarom dat verschil er toe doet. Het SG vóór het koken is een meting die je op de brouwdag doet: je leest hem af uit de ketel voordat je het vuur aanzet. Staat je kandijsuiker op Maisch terwijl je hem pas bij vlam-uit toevoegt, dan verwacht de app een hogere meting dan je zult zien, en ga je een rendement corrigeren dat niets mankeert.
Dit is waarvoor je het gebruikt: honing in een tripel, kandijsuiker in een quadrupel, of gewoon suiker om een zwaar bier verder uit te laten gisten zonder de gist bij de start onder osmotische druk te zetten.
De app rekent daar anders mee dan met suiker in de ketel, en dat verschil is de hele reden dat deze kolom er is:
Suiker in de ketel
Suiker op dag 3
OG
telt mee
telt niet mee
Voorkook-SG
telt mee
telt niet mee
IBU
telt mee
telt niet mee
Alcohol
telt mee
telt mee
FG
geen verschil: enkelvoudige suiker vergist volledig
De OG is het belangrijkste van die rij. Je meet je stamwort op de brouwdag, en de honing zit er dan nog niet in. Zou de app hem toch meetellen, dan voorspelt hij 1.086 waar jij 1.071 meet en ga je een rendementsprobleem zoeken dat niet bestaat. Om dezelfde reden telt de gift niet mee in de bitterheid: hij heeft nooit in de kookketel gezeten en verdunt het wort dus ook niet tijdens het koken.
Onder de OG verschijnt een tweede regel met de dichtheid inclusief de late suiker. Dat getal ligt onder je alcoholpercentage — zonder die regel lijkt de alcohol uit de lucht te komen vallen.
Een honingtripel, om het concreet te maken. 5,5 kg pilsmout en 0,5 kg suiker in de ketel, 1 kg honing op dag 3, 20 liter, 85 % vergistingsgraad. Je meet OG 1.071 zoals zonder de honing, je krijgt 10,8 % alcohol zoals mét de honing, en je IBU blijft die van het recept zonder honing.
De brouwkaart, de afdruk en de deeltekst zetten er pas op dag 3 van de gisting achter, zodat je het op de dag zelf niet per ongeluk in de ketel gooit. In BeerXML gaat het mee als ADD_AFTER_BOIL met de dag in de notitie; komt er een bestand binnen zonder dagnotitie, dan valt de app terug op dag 3.
Wat op Gisting staat telt ook niet mee in je maischsom: niet in het maischwater, niet in de water/moutverhouding, niet in de korrelabsorptie en niet in de maisch-pH. Bij honing viel dat niet op, want suiker en extract vallen daar toch al buiten. Zet je een gewone mout op Gisting — of komt er honing binnen uit een ander programma zonder dat het type meekomt — dan is het verschil een hele kilo graan, en dat is ongeveer een liter maischwater plus een liter die in het draf achterblijft.
Bottelsuiker
De derde keuze in de kolom Toevoegen is Bottelen. Vul je bottelsuiker daarmee in de moutlijst in, dan telt hij mee waar hij hoort:
Bottelsuiker
OG
telt niet mee — die meet je in de kuip
FG
telt niet mee — die meet je vlak vóór het bottelen
IBU
telt niet mee — de suiker heeft de ketel nooit gezien
Alcohol
telt wél mee — ook in de fles maakt suiker alcohol
Zeven gram per liter, een gewone gift voor 2,4 volumes CO₂, levert ongeveer 0,4 % extra alcohol op. Dat is geen afronding: het is het verschil tussen een tripel van 8,0 en een van 8,4 %.
Waarom niet onder Overige ingrediënten? Dat kan wel — daar staat Botteling al langer in de momentenlijst — maar overige ingrediënten dragen geen extract. De app weet van koriander niet hoeveel SG-punten er per kilo in zitten, en van suiker in de moutlijst wél. Zet je bottelsuiker daarom in de moutlijst; dan rekent hij mee. Onder Overige blijft hij een aantekening op je brouwkaart, wat voor klaringsmiddelen precies goed is.
Er is geen dagveld bij Bottelen: bottelen is geen gistingsdag. Hoeveel suiker je nodig hebt voor een bepaald aantal volumes CO₂ rekent het gereedschap Bottelsuiker uit — die twee bijten elkaar niet, de tool rekent wat je nodig hebt en de receptregel legt vast wat je toevoegt.
Wat betekent punten/kg?
Punten/kg is hoeveel SG-punten één kilo van een grondstof oplevert in één liter wort, bij een rendement van 100 %. Eén kilo suiker opgelost tot één liter geeft SG 1.384 — dus suiker staat op 384 punten. Pilsmout haalt dat niet en zit rond de 300.
Mouterijen zetten dit getal niet op hun certificaat; die geven het extractgehalte in procenten. Omrekenen gaat zo:
Je hebt
Rekensom
Voorbeeld
Extract in %
% × 3,84
80 % → 307 punten
PPG (Amerikaans)
PPG × 8,35
37 PPG → 309 punten
Opbrengst als SG
(SG − 1) × 8350
1.037 → 309 punten
In het formulier + Eigen mout toevoegen hoef je niets uit te rekenen: vul het extractgehalte in en het veld Punten/kg wordt vanzelf gevuld. Andersom werkt ook.
Let op twee dingen. Een certificaat vermeldt het extract meestal watervrij (dry basis). Mout bevat zo'n 4 % vocht, dus in de praktijk haal je iets minder: 80 % watervrij komt neer op ongeveer 76,8 % en dus ~295 punten. En vul hier niet je brouwzaalrendement in — dat geef je apart op bij het recept, waar het over alle mout tegelijk wordt toegepast.
Namen en volgorde van de lijsten
De merknaam staat niet in de naam van een mout. Pilsmout heet gewoon Pilsmout 3 EBC. Reden: de app wordt ook in het Engels en Spaans gebruikt, en daar ligt ander mout in het schap — een naam met een Belgische mouterij erin klopt daar niet. De leverancier is niet verdwenen maar staat in een eigen kolom Producent op het tabblad Ingrediënten, en je kunt er gewoon op zoeken.
Hetzelfde geldt voor gist: die heet SafAle US-05, niet SafAle US-05 (Fermentis). Het merk staat in de kolom Producent, waar je erop kunt zoeken en sorteren.
Oudere namen worden herkend. Kom je een recept, een backup of een BeerXML-bestand tegen waarin een mout of gist het merk nog in de naam draagt, dan vertaalt de app die naam automatisch naar de huidige — inclusief je prijzen en je voorraad. Heb je zelf een ingrediënt aangemaakt dat precies zo heet als een ingrediënt uit de meegeleverde database, dan krijgt dat van jou er (eigen) bij en blijven je recepten daarnaar verwijzen. Anders zou de app stilzwijgend met andere cijfers gaan rekenen dan die van jou.
Voeg je zelf een ingrediënt toe, dan is er een veld Producent waarin je kwijt kunt van wie je het betrekt. Dat geldt voor mout, hop, gist en overige ingrediënten, en je kunt het bij bestaande eigen ingrediënten alsnog invullen.
De leverancier staat ook op de plek waar je hem nodig hebt: achter de naam in de keuzelijst van je recept, in de voorraad en op de boodschappenlijst. Zo houd je drie pilsmouten die alleen in EBC verschillen uit elkaar. Bij hop staat er het land van herkomst, want daar is geen merk van bekend. Wat wordt opgeslagen is alleen de naam.
Je eigen ingrediënten aanpassen
Alles wat je bij een eigen ingrediënt hebt ingevuld is achteraf te wijzigen, rechtstreeks in de tabel op het tabblad Ingrediënten. De naam en de producent; bij mout de punten, de EBC en het type; bij hop het alfazuur, het type en de herkomst; bij gist de vergistingsgraad, de vorm en de temperatuur; bij overige ingrediënten het type, de eenheid, de maximale dosis en de opmerking. Een wijziging wordt meteen bewaard en werkt door in je recepten.
Ook de naam kun je wijzigen. Typ in de naamkolom en klik ergens anders. De naam is de sleutel waaraan je recepten, je receptversies, je brouwsels, je prijs en je voorraad hangen, en die vijf gaan in dezelfde beweging mee — je hoeft niets opnieuw in te vullen, ook niet in een recept dat op dat moment openstaat. Een lege naam wordt geweigerd, en een naam die al bestaat ook: twee ingrediënten met dezelfde naam zouden één voorraadregel en één prijs delen zonder dat je het merkt. Een handvol namen is ook niet toegestaan, omdat de app ze zelf gebruikt of ze vroeger aan een standaardingrediënt toebehoorden — je krijgt dan te lezen waarom.
Zo houd je drie pilsmouten van verschillende leveranciers uit elkaar: geef ze elk een eigen naam — Pilsmout Dingemans, Pilsmout Belgomalt — en vul de producent in. Elk heeft dan zijn eigen prijs, zijn eigen voorraad en zijn eigen punten, en in de keuzelijst van je recept staat achter de naam van wie hij komt.
Bij een eigen gist kies je Droog of Vloeibaar, geen bierstijl. Dat is het enige dat de app ermee doet: droge gist wordt in grammen gedoseerd, vloeibare in pakken. Staat een eigen gist op Droog terwijl je hem vloeibaar koopt, dan zet je dat met één klik om.
Alle lijsten — mout, hop, gist, overige ingrediënten en bierstijlen — staan op alfabetische volgorde. Bij hop, mout en overige ingrediënten geldt dat binnen de groepen waarin de keuzelijst is ingedeeld (bij overige bijvoorbeeld Citrus, Vruchten, Kruiden). Ingrediënten die je zelf toevoegt staan onderaan in een eigen groep Eigen mout / Eigen hop / Eigen gist.
De bierstijl kiezen
De keuzelijst met stijlen is gegroepeerd per biertype — lager, tarwebier, pale ale en IPA, amber en bitter, stout en porter, Belgisch en Frans, zuur en wild, sterk bier, en fruit- kruiden- en rookbier. Binnen elke groep staat het alfabetisch. Zo staat de Amerikaanse IPA naast de Engelse in plaats van veertig regels verderop.
Boven de lijst staat een zoekveld. Typ ipa, stout of weizen en de lijst krimpt tot wat erop lijkt; accenten en hoofdletters tellen niet mee, dus munchner vindt ook Münchner. Esc maakt het veld leeg.
Valt de stijl die je al gekozen had buiten je filter, dan blijft hij gewoon staan en zegt de app dat erbij. Je verliest hem dus niet door te zoeken.
Hop
Voeg hoptoevoegingen toe met het gewicht, alfazuurpercentage, gebruik en tijdstip. De IBU wordt berekend via de Tinseth-formule.
Gebruik
Uitleg
Koken
Standaard bitterhop. IBU afhankelijk van kooktijd.
Eerste wort (FWH)
Toegevoegd voor het koken. Milde bitterheid, goede integratie.
Whirlpool
Na het koken. Vul de standtijd in bij Kooktijd en de temperatuur bij WP °C — de bitterheid volgt daaruit
Dryhop
Tijdens de gisting. Puur aroma, geen IBU.
Whirlpool: hoe de bitterheid wordt berekend
Een whirlpoolgift krijgt een volwaardige IBU-berekening, op temperatuur én standtijd. Zet de rij op Whirlpool, vul de standtijd in bij Tijd (min) en de worttemperatuur bij WP °C. Vul je geen temperatuur in, dan rekent de app met 80 °C.
Ter illustratie, 50 g hop van 12 % alfazuur in 20 liter, dertig minuten stand:
Temperatuur
IBU
70 °C
10
80 °C
14
90 °C
20
99 °C
28
Waarom niet gewoon Arrhenius
De verleiding is om de reactiesnelheid van de isomerisatie door te trekken naar lagere temperaturen, zoals bij de hoogtecorrectie. Dat geeft 2 % benutting bij 80 °C en 14 % bij 99 °C — een factor zeven. Gemeten waarden liggen veel vlakker: Rodammer mat in samenwerking met het laboratorium van Bell's Brewery (AHA, 2017) 3,96 % bij 82 °C tegen 4,36 % bij 99 °C, telkens dertig minuten. Een factor 1,1 dus, geen factor zeven.
Waarschijnlijk komt een deel van die bitterheid niet van iso-alfazuren maar van humulinonen, die bij lagere temperatuur gewoon oplossen zonder isomerisatie. De app rekent daarom met een gedempt model: de kinetische factor tot de macht 0,4, een plafond van 12 % benutting en een tijdfactor die snel oploopt en dan afvlakt. Dat sluit aan bij dezelfde meetreeks over de tijd — 10 tot 60 minuten bij ongeveer 95 °C gaf 3,6 tot 5,1 %.
Dit blijft een schatting. De spreiding tussen gepubliceerde whirlpoolmetingen is groot, en er is geen model dat het eens is met alle metingen. Wie zijn eigen bier laat meten en er structureel naast zit: laat het weten, dan kijk ik ernaar.
Standtijd en temperatuur staan ook op de brouwkaart en in de deeltekst, zodat je op de brouwdag ziet bij hoeveel graden je moet hoppen en hoe lang. In BeerXML gaan ze allebei mee.
Pellets, bloemen of T-45?
Per hopgift kies je bij Vorm hoe de hop geleverd is. Dat werkt door in de benutting:
Vorm
Benutting
Toelichting
Pellets T-90
100 % (standaard)
Verreweg het meest gebruikt. Het plantmateriaal is vermalen, waardoor de alfazuren vlotter vrijkomen
Bloemen
90 %
Hele bellen: de alfazuren zitten nog opgesloten in het blad en het hopbed houdt meer wort vast
T-45 / Cryo
100 %
Lupuline-concentraat. Géén extra factor — zie hieronder
T-45 en Cryo tellen niet dubbel. Deze producten geven meer bitterheid per gram doordat hun alfazuurgehalte ongeveer twee keer zo hoog is — dat staat op de verpakking. Vul dat hogere percentage in bij Alfazuur, dan klopt de IBU vanzelf. Zou de app daar nóg een factor 2 overheen leggen, dan telde je de concentratie twee keer.
Bestaande recepten staan op pellets, dus je berekende IBU verandert niet door deze keuze. Bij export naar BeerXML gaat de vorm mee als Pellet of Leaf; BeerXML kent T-45 en Cryo niet als aparte soort.
Oogstjaar en bewaring — hopveroudering
Alfazuren breken af door oxidatie. Vul per hopgift het oogstjaar en de bewaarwijze in; de app rekent dan met het werkelijk resterende alfazuur. Onder de IBU-waarde verschijnt het effectieve percentage zodra het verlies groter is dan 2%. Laat je het jaar leeg, dan wordt er geen correctie toegepast.
Bewaring
Verlies per jaar
Voorbeeld: 12% α na 2 jaar
❄️ Diepvries, luchtdicht
±5%
10,9%
🧊 Koelkast, luchtdicht
±14%
9,0%
🏠 Kamertemperatuur, luchtdicht
±30%
6,1%
📂 Kamertemperatuur, open verpakking
±45%
3,8%
⚠️ Schatting: het werkelijke verlies verschilt sterk per ras (de Hop Storage Index loopt uiteen van 0,2 tot 0,6). Staat het alfazuurpercentage op je verpakking, gebruik dat dan als uitgangspunt; het percentage in de database is slechts een typische waarde.
Geïsomeriseerd hopextract (tetrahop, isohop)
Kies bij Gebruik de optie Extract (na gisting) voor producten als Tetrahop Gold, Isohop, Hexahop of Redihop. Deze extracten bevatten al geïsomeriseerde alfazuren: ze hoeven niet mee te koken en worden ná de gisting gedoseerd, meestal vlak voor het bottelen.
Vul bij Gewicht de dosering in mL in (dichtheid ≈ 1 g/mL)
Vul bij Alfazuur het percentage iso-alfazuren van het product in (Tetrahop Gold: 10%, Isohop: 30%)
De kooktijd doet er niet toe en wordt genegeerd
De bitterheid wordt gerekend op vrijwel volledige benutting: IBU = mL × %iso × 1000 / batchvolume. Voorbeeld: 2 mL Tetrahop Gold 10% in 20 L geeft 10 IBU.
💡 Waarom extract? Handig om achteraf bij te sturen als je bier te weinig bitter is, en tetra- en rho-varianten maken bier lichtstabiel (geen "skunky" smaak in doorzichtige flessen).
💡 BU:GU verhouding: Een handige richtlijn is IBU / ((OG-1)×1000). Onder 0.5 = moutig, 0.5–0.8 = gebalanceerd, boven 0.8 = bitter-voorwaarts.
Gist
Selecteer een gist uit de database (Fermentis, Lallemand, Mangrove Jack's, Wyeast, White Labs). Staat jouw gist er niet bij, kies dan onderaan de keuzelijst ✏️ Eigen gist toevoegen…: je vult naam, vergistingsgraad en vorm in, en hij staat meteen in je recept én in je ingrediëntenlijst — met prijs, voorraad en boodschappenlijst. Het kan ook vooraf via Ingrediënten → Eigen gist. De vergistingsgraad is verplicht: die bepaalt je eindgewicht, dus die kan de app niet voor je invullen. Het rechterpaneel toont je pitching rate en vergelijkt die met wat je nodig hebt. Dat aantal komt uit hetzelfde celmodel als het gereedschap Gistdosering (White & Zainasheff):
Miljoen cellen per mL per °Plato
tot OG 1.061
vanaf OG 1.061
Ale (bovengistend)
0,75
1,0
Lager (ondergistend)
1,5
2,0
Twee onafhankelijke redenen, en ze stapelen. Een lager gist bij 8–13 °C: koud gist groeit trager en vermeerdert zich minder, dus je vult het tekort aan de voorkant aan in plaats van de gist het zelf te laten inhalen — en de fouten van onderdoseren, diacetyl en zwavel en esters, vallen in een schoon bier meteen op. Zwaar wort zet de gist onder osmotische druk, waardoor ze zich slechter vermeerdert; vandaar een derde erbovenop vanaf 1.061. Een zware lager heeft met allebei te maken en komt daarom op 2,0 uit.
Een hoger tarief betekent niet automatisch meer gist. Het geldt per °Plato, en zwaar bier heeft er meer van. Een pils van 1.048 (11,9 °P) vraagt op 20 liter 357 miljard cellen; een tripel van 1.075 (18,2 °P) vraagt er 364 — vrijwel evenveel, ondanks het lagere tarief. Pas een zware lager loopt echt uit de pas: een doppelbock van 1.080 komt op ruim 570 miljard, en dat is een starter, geen pakje.
Droge gist levert ongeveer 20 miljard levensvatbare cellen per gram, een pak vloeibare gist 100 miljard. Bij droge gist toont de app het advies in grammen, bij vloeibare gist in pakjes — die worden nu eenmaal niet per gram verkocht.
Droge gist: de opgave van de fabrikant
Voor droge gist volgt de app niet het celmodel maar de dosering die de fabrikant zelf publiceert, in gram per hectoliter. Dat getal bevat hun eigen celtelling én hun eigen levensvatbaarheid, en is dus betrouwbaarder dan een aanname van 20 miljard cellen per gram — die verschilt namelijk per fabrikant en zelfs per stam.
Fermentis: 50–80 g/hL voor ale, 80–120 g/hL voor ondergistend bij 12–18 °C — hun eigen opgave
Overige merken: 50–100 g/hL voor ale, 100–150 g/hL voor ondergistend — een algemene reeks, en de app zegt er dan ook bij dat het geen fabrikantopgave is
Vanaf 15 °Plato schaalt de hele reeks mee met de sterkte van het bier. Vergist je ondergistend onder de 12 °C, dan loopt het advies verder op: Fermentis adviseert voor W-34/70 tot 200–300 g/hL bij 9 °C. De app leest die temperatuur uit de eerste stap van je vergistingsprofiel.
Waarom de ondergrens hoger ligt dan het celmodel. Bij een gewone ale van 20 liter komt het celmodel op ruim 9 gram uit en Fermentis op minimaal 10. Dat verschil is opzet: een fabrikant zet zijn ondergrens aan de royale kant omdat hij geen klachten over trage vergisting wil. Wie zelf telt mag lager gaan.
Meerdere gisten in één recept
De gistkaart is een lijst, net als die van mout en hop. Met + Gist voeg je er een toe; per rij kies je de gist, de vorm en de hoeveelheid. Meer dan zes gisten in één recept houdt de app tegen — dan is het geen recept meer maar een experiment.
In de kolom Toevoegen staat wanneer de gist erin gaat:
Hoofdgisting — op de brouwdag in de kuip. Twee of meer gisten samen enten is een blend: hun celaantallen tellen bij elkaar op.
Later — een aantal dagen na de brouwdag, standaard dag 7. Voor Brett of een tweede stam die tijdens de nagisting meedoet.
Bottelen — pas bij het bottelen, na volledige vergisting en eventueel lageren. Hier hoort bottelgist als CBC-1 thuis.
Bottelgist is geen gist voor dag 7. CBC-1 gaat niet ergens tijdens de gisting erin maar in de bottelemmer, samen met je suiker — en tussen het einde van de gisting en dat moment kunnen weken lageren zitten. Vandaar de aparte keuze Bottelen, zonder dagveld: een gistingsdag zou daar een verkeerd getal én een verkeerd beeld zijn.
In de lijst staan twee bottelgisten: CBC-1 van Lallemand en SafAle F-2 van Fermentis. Fermentis geeft voor F-2 een dosis van 2 tot 35 gram per hectoliter bij 15–25 °C, en adviseert hem niet rechtstreeks in het bier te strooien maar eerst te rehydrateren in minstens tien keer zijn eigen gewicht aan steriel water van 25 tot 29 °C.
Bij F-2 staat een streepje in plaats van een percentage. Dat is geen ontbrekend gegeven maar een bewuste leegte: Fermentis gééft voor deze gist geen vergistingsgraad — op de technische fiche staat "nvt". Hij krijgt ook geen wort te zien, alleen bottelsuiker. Een getal zou hier een specificatie suggereren die niet bestaat, en dat getal zou vervolgens meerekenen in je FG.
Een gist op Bottelen telt niet mee voor je vergistingsgraad. Die gaat er pas in na de hoofdgisting en soms na weken lageren; op je eindsoortelijke massa heeft hij dan niets meer te zeggen. Een weizen met WB-06 (67%) en CBC-1 (75%) rekent dus met 67%, niet met 75%. De uitzondering hangt aan het moment en niet aan de stam: zet je US-05 op Bottelen, dan telt die evenmin mee.
Dat verschil is niet cosmetisch. Een gist die er pas op dag 7 bij komt telt niet mee in je pitching rate, want die gaat over hoeveel cellen je bij de start in je wort gooit. Ent je er twee tegelijk, dan telt het paneel de cellen van allebei op en legt het totaal naast wat je nodig hebt — een dosering in gram per hectoliter zou daar onzin zijn, want die geldt per product.
De vergistingsgraad is de hoogste van je gisten. Bij co-pitchen bepaalt de meest vergistende stam in de praktijk je eind-SG; de gisting stopt niet halverwege omdat de helft van je gist minder ver komt. Een gewogen gemiddelde ziet er wetenschappelijker uit en is brouwtechnisch slechter. Het attenuatieveld blijft van jou: wat je zelf invult blijft staan.
Boodschappenlijst, voorraad en kostprijs tellen alle gisten mee, elk in zakjes. Op de brouwkaart en in de deeltekst staat per gist wanneer hij erin gaat. In BeerXML krijgt elke gist een eigen YEAST-element; een late gift gaat mee als ADD_TO_SECONDARY met de reden in de notitie. Een bestand met meerdere gisten wordt op dezelfde manier ingelezen.
Een recept met één gist heeft gewoon één rij. Lees je een recept in dat de gist nog als los veld bewaart — een oude backup, een BeerXML-bestand — dan wordt dat automatisch die eerste rij, met dezelfde hoeveelheid en dezelfde vorm.
Gram, pakken of een starter
Naast de gistkeuze staat Gistvorm. Kies je Droog, dan vul je grammen in zoals altijd. Kies je Vloeibaar, dan tel je pakken. Kies je Starter, dan vul je het aantal liter starter in dat je hebt opgekweekt — geen omrekenen meer op een papiertje.
De app zet alle drie om naar hetzelfde getal: het aantal cellen dat in je wort belandt. Het rechterpaneel zet dat naast wat je nodig hebt, dus je ziet in één oogopslag of je starter groot genoeg was. Een liter starter van 1.036 bevat ongeveer 37 gram extract en levert met een roerplaat ongeveer 1,4 miljard nieuwe cellen per gram. Zonder roerplaat kun je ongeveer de helft aanhouden; de app rekent met roerplaat en zegt dat erbij.
Een recept zonder gistvorm wordt gelezen als droge gist in gram. Dat is de veilige lezing: een recept dat alleen een aantal grammen bewaart, is niet opeens een aantal pakken.
De gistvorm in je recept gaat vóór de database. Dezelfde stam is soms als korrelgist én als pak vloeibare gist te koop. Wat je in de kolom Vorm zet, bepaalt de eenheid van het advies — ook als de database dat product anders kent. Koop je een stam die daar vloeibaar heet als korrelgist, zet de vorm dan op Droog en je krijgt een dosering in gram.
Laat je het hoeveelheidsveld leeg, dan valt er niets te vergelijken en beantwoordt het paneel de andere vraag: hoeveel heb je nodig? Bij vloeibare gist staat er dan het aantal pakken dat je moet inslaan, bij een starter het aantal liter dat zoveel cellen oplevert.
Vloeibare gist: cellen per pak verschillen per merk
Vloeibare gist wordt per pak verkocht, en de pakken zijn niet gelijk. De app rekent met de opgave van het merk: Omega 150 miljard, Wyeast en White Labs 100 miljard, onbekende merken voorzichtig 100. Het advies staat daarom in pakken, niet in grammen.
Let op de OG. Voor vloeibare gist rekent de app met het celmodel, en de celbehoefte loopt recht evenredig met het aantal °Plato. Een quadrupel van 1.090 vraagt bijna drie keer zoveel gist als een sessiebier van 1.035 bij hetzelfde volume.
Onder 70% van het aanbevolen aantal kleurt de melding rood, tussen 70 en 90% oranje, en boven het dubbele waarschuwt de app voor autolyse.
Overige ingrediënten
Voeg kruiden, vruchten, specerijen en klaringsmiddelen toe via de 🍊 Overige Ingrediënten-kaart. De database bevat ~45 ingrediënten in categorieën:
Per ingrediënt kies je het moment waarop het erin gaat. De lijst staat op volgorde van de brouwdag: maisch, spoelwater, koken, whirlpool, dry-hop, secundaire gisting, botteling. Brouwzouten die in je spoelwater horen kies je dus als Spoelwater; op de brouwkaart en in de deeltekst staan ze dan ook op die plek, en niet tussen de kookgiften.
🍊 Citrus (sinaasappelschil, citroenrasp)
🍓 Vruchten (frambozen, kersen, mango)
🌿 Kruiden (koriander, gember, lavendel)
✨ Specerijen (vanille, kaneel, kardemom)
🧊 Klaringsmiddelen (Iers mos, rijstkaf, gelatine)
Elk ingrediënt heeft een maximale dosering per 20L als referentie. Bij overschrijding verschijnt een waarschuwing.
Maischschema
Voeg maischstappen toe met temperatuur en duur. Op brouwdag verschijnen deze stappen in het logboek als individuele afteltimers — start een stap en de timer telt automatisch af. Bij voltooiing krijg je een browsernotificatie (als je toestemming hebt gegeven).
Water/mout verhouding — voor dichtheid van de maisch
Enkelvoudig of in stappen maischen
Onder het maischschema staan twee rijen knoppen. Met Snel toevoegen zet je één rust in het schema; met Heel schema vervang je het volledige schema in één klik.
Knop
Schema
Waarvoor
🍯 Enkelvoudig 67°C
67°C · 60 min
Verreweg het meest gebruikt. Bij 67°C werken beta- en alfa-amylase allebei nog: genoeg vergistbare suikers voor een droog bier, genoeg dextrines voor body
🍯 Enkelvoudig + uitmaischen
67°C · 60 min, daarna 78°C · 10 min
Zelfde rust, met een amylasestop. Maakt het wort dunner en dus makkelijker te spoelen
🧬 Klassiek stappenschema
52 / 62 / 72 / 78°C
Eiwitrust en gescheiden amylaserusten. Zinvol bij tarwe, rogge of slecht gemodificeerde mout
Wil je droger uitkomen, ga dan iets lager zitten — 64 tot 65°C geeft meer vergistbare suikers. Voor meer body maisch je op 68 tot 69°C. Het conversieadvies onder het schema laat meteen zien hoeveel minuten er bij die temperatuur minimaal nodig zijn.
⚠️ Vervangt het hele schema: deze drie knoppen gooien weg wat er staat. Heb je zelf een schema samengesteld, dan vraagt de app eerst om bevestiging; wissel je tussen de kant-en-klare schema's, dan gebeurt dat zonder vragen.
Je eigen installatie instellen
Elke brouwinstallatie verdampt anders. Onder Instellingen → 🔧 Mijn brouwinstallatie geef je vijf waarden op die de hele waterberekening sturen:
Instelling
Betekenis
Standaard
Kookverdamping
Liters die per uur wegkoken
3,0 L/uur
Korrelabsorptie
Vocht dat in het draf achterblijft
0,8 L/kg
Maischdikte
Water per kilo mout in het maischvat; 0 = alles in één keer (BIAB)
3,0 L/kg
Vast maischwater
Maisch je altijd met hetzelfde volume? Vul dat hier in; 0 = niet gebruiken
0 L
Verlies kookketel/trub
Wat na overhevelen achterblijft
1,5 L
Dode ruimte maischvat
Vocht onder de filterbodem
0 L
Krimp bij afkoelen
Volumekrimp van 100 °C naar 20 °C
4%
Onder het maischschema toont de recepteditor de volledige waterbalans: hoeveel het draf vasthoudt, hoeveel er wegkookt (verdamping × kooktijd), het ketelverlies en de krimp — plus het benodigde voorkookvolume en totale watervolume. Klopt jouw maisch- en spoelwater daar niet mee, dan zie je precies hoeveel liter je tekortkomt. Met de knop 💧 Vul watervolumes in uit mijn installatie vult de app maischwater, spoelwater en kookvolume in één keer in.
Brouw je op meer dan één installatie — een clubketel en thuis een kleinere opstelling — bewaar ze dan apart. Vul de waarden in, klik op 💾 Bewaar als installatie en geef een naam als Clubketel 190 L. Boven het formulier staat een keuzelijst waarmee je er met één klik tussen wisselt; alle velden en de waterberekening schakelen mee. Je installaties gaan mee in de back-up.
⚠️ Een vast maischwatervolume hoort bij één ketel. Zet je 230 L vast en brouw je daarna een testbatch van 20 L, dan past dat niet en kapt de app het af met een melding. Wissel in dat geval van installatie in plaats van de getallen aan te passen.
Maisch je altijd met hetzelfde volume — bijvoorbeeld de werkvoorraad van je maischvat — vul dat dan in bij Vast maischwater. Dat krijgt voorrang boven de maischdikte en blijft gelijk of je nu 50 of 60 kilo mout gebruikt; het spoelwater vangt het verschil op. Reken je juist per kilo, laat dit veld dan op 0 staan.
Suiker en moutextract tellen niet mee in de waterberekening. Ze lossen op, houden geen water vast en gaan meestal niet eens in het maischvat. Alleen de granen bepalen dus de korrelabsorptie, de maischdikte en de water/moutverhouding. In de rechterkolom staan Totaal mout en Totaal suiker daarom apart; die tweede regel verschijnt alleen als er suiker of extract in het recept zit.
Suiker en extract tellen hier niet mee. Alleen graan houdt water vast in het draf, dus alleen graan bepaalt je maischwater en je korrelabsorptie. Bij een recept met 10 kg kandijsuiker scheelt dat ruim 8 liter. In je OG telt de suiker natuurlijk wél gewoon mee.
De maischdikte bepaalt hoe het totale water zich verdeelt over maischen en spoelen. Klassiek maischen met spoelen zit tussen 2,5 en 4 liter per kilo; brouw je in één keer op het volledige volume zonder te spoelen (BIAB), vul dan 0 in. Dit getal bepaalt de verdeling volledig: maisch je dunner dan je hier opgeeft, dan krijg je te weinig maischwater toegewezen en veel te veel spoelwater. Vul dus in wat je werkelijk doet.
De dode ruimte komt hier bovenop. Heb je een filterbodem, een pomp of een manifold, dan staat er vocht onder je graanbed dat niet meedoet aan de maisch. Vul dat in bij Dode ruimte maischvat en de app telt het bij je maischwater op. Een Grainfather G30 met 3,5 L dode ruimte en 2,7 L/kg krijgt bij 5,65 kg mout dus 5,65 × 2,7 + 3,5 = 18,8 L maischwater. Zou je die 3,5 L niet meerekenen, dan stond je mout in 11,8 L en was je dikte 2,08 in plaats van 2,7 — een kwart dikker dan je vroeg. Het tótale water verandert er niet door; er verschuift alleen water van het spoelen naar het maischen.
Blijft die dode ruimte achter, of komt hij mee? Dat verschilt per installatie, en het scheelt precies dat aantal liters in je totale water. Onder het veld staat daarom een keuzelijst.
Blijft achter (verlies) — bij een koelbox met filterbuis, een aparte filterkuip, of elk systeem waarbij je het wort overhevelt naar een andere ketel. Wat onder de bodem staat gaat niet mee, dus moet je het extra aanmaken.
Komt mee in de ketel — bij één vat met een pomp: Grainfather, Braumeister, Robobrew, Anvil Foundry, Brewzilla. Dat vocht staat in dezelfde ketel waarin je straks kookt; je tilt de moutpijp eruit en het gaat gewoon mee. Het is dan géén verlies, alleen water dat niet in je graanbed zit — en dat is precies waarom het wél bij je maischwater hoort en níét bij je totaal.
De standaard is blijft achter, zoals de app het altijd deed. Wie een all-in-one systeem heeft moet hem dus één keer omzetten; daarna klopt het.
Verwarm je je spoelwater in een apart vat? Dan is er een derde plek waar water achterblijft: onder de kraan en rond het verwarmingselement. Vul dat in bij Verlies heetwatervat. Verwarm je je spoelwater in dezelfde ketel, of spoel je helemaal niet, laat het dan op 0.
Blijft je dode ruimte achter, of komt hij mee? Onder het veld Dode ruimte maischvat staat een keuzelijst. Bij twee losse vaten blijft dat vocht achter en is het verlies; bij één vat met een pomp — Grainfather, Braumeister, Klarstein — gaat het gewoon mee de kook in en is het géén verlies. Staat de keuzelijst verkeerd, dan maakt de app precies die liters te veel aan. De waterbalans onder je recept zegt het erbij zodra er een dode ruimte als verlies wordt geteld.
Dit werkt anders dan de dode ruimte van je maischvat, en dat is met opzet. Water onder je filterbodem doet nog mee aan je maischdikte; water in je heetwatervat doet nergens aan mee. Je maisch- en spoelwater veranderen er dus niet van — het zou onzin zijn om meer over je graanbed te laten lopen dan je recept vraagt. Wat verandert is hoeveel je in dat vat doet en hoeveel je in totaal aanmaakt. De waterbalans onder je recept zet die twee getallen erbij zodra je een verlies hebt ingevuld.
De water/moutverhouding die de app bij je moutstort toont is daarom de dikte in het graanbed: het maischwater mín de dode ruimte, gedeeld door je mout. Dat is het getal dat je bedoelt als je over 2,7 L/kg praat — niet wat je in het vat giet. Bij een vast maischvolume gebeurt die correctie niet, want dat getal is de werkvoorraad van je vat en die telt de dode ruimte al mee.
Het maischwater in een bestaand recept verandert niet mee. Het staat als getal in het recept opgeslagen. Pas je later je installatieprofiel aan — een andere maischdikte, een dode ruimte die je eerst niet had — dan blijven oude recepten op hun oude getal staan. Op de watertab verschijnt dan een regel met wat je profiel nú zou geven, en een knop om die waarden over te nemen. Automatisch overschrijven doet de app niet: sommige recepten wijken met opzet af.
Meer dan één brouwinstallatie
Brouw je afwisselend thuis en op een clubketel, dan sla je die twee op als profiel in je instellingen. Bij het recept kies je vervolgens voor welke installatie het geschreven is. Laat je dat veld leeg, dan rekent het recept met de installatie uit je instellingen — precies zoals het altijd deed, dus aan je bestaande recepten verandert er niets.
Die keuze stuurt alles wat van je ketel afhangt: het maischwater, het spoelwater en het kookvolume, de water/moutverhouding onder de moutlijst — die trekt de dode ruimte van jouw vat eraf — en het kookpunt. Dat laatste zit in de bitterheid: staat er in het profiel een hoogte boven zeeniveau of een eigen kooktemperatuur, dan kookt het wort koeler, isomeriseren de alfazuren trager en valt de IBU lager uit. Op het scherm, in de receptenlijst en op de brouwkaart staat dan hetzelfde getal.
In het brouwdaglogboek staat diezelfde keuze nog een keer, en die begint op wat het recept zei. Brouw je die dag toch ergens anders, zet hem dan om: het maischwater, het spoelwater, het kookvolume en de bitterheid van dát brouwsel worden meteen opnieuw uitgerekend voor die ketel — ook op de brouwkaart die je afdrukt en in het overzicht. Naast de keuzelijst zie je wat eruit komt.
Koppel je in het logboek een ánder recept aan een brouwsel dat al op een ketel staat, dan gaat dat recept mee naar die ketel in plaats van andersom. Op de brouwdag telt het vat waar je in staat, niet het vat waarvoor het plan geschreven was.
Het recept blijft ongemoeid. Omschakelen in het logboek verandert alleen dat ene brouwsel. Het recept is wat je van plan was, het logboek is wat er werkelijk gebeurde — en die twee horen los te staan. Je moutstort, je hop, je gist en je gemeten rendement blijven ook onaangeroerd: een andere ketel verandert je waterhuishouding, niet je stort.
Verwijder je een profiel waar nog een recept of brouwsel naar wijst, dan valt de app terug op je instellingen. Dat gebeurt niet stilzwijgend: de verdwenen naam blijft in de keuzelijst staan met de vermelding dat hij niet meer bestaat, en er komt een regel bij die zegt dat er met je instellingen gerekend wordt. Anders zou je waterberekening veranderen zonder dat iets je waarschuwt.
💡 Zelf meten: je verdamping bepaal je door voor en na het koken het volume te meten: (voorkook − nakook) ÷ kooktijd in uren. Doe dit één keer; daarna kloppen al je recepten.
Bottelen: wat er werkelijk uitkwam
In het brouwdaglogboek, onder 🍾 Verpakken & Carbonisatie, vul je in hoeveel flesjes je hebt gevuld en hoe groot ze zijn. Ging er daarnaast iets op fust, dan zet je dat erbij. De app rekent je gebottelde volume uit en zet daar je verlies naast: het verschil met het batchvolume uit je recept, in liters en in procenten.
Het volume in de primingberekening loopt daar automatisch mee, want dat is precies het bier dat je suikert. Typ je daar zelf een getal, dan blijft dat staan — handig als je in een bottelemmer suikert en niet alles bottelt.
Waarom dit meer is dan een weetje. Je verlies zit in het gistbed, de slang en de restjes in de kuip. Loopt het structureel op tot boven de tien procent, dan staat je ketelverlies of je dode ruimte in Instellingen te laag — en dan komen ook je maisch- en spoelwater te krap uit. Het getal uit je flessenteller is dus een controle op je hele waterberekening.
Bottelsuiker: welke soort en hoeveel
De app rekent uit hoeveel suiker je nodig hebt voor het aantal CO₂-volumes dat je wilt, en houdt daarbij rekening met het koolzuur dat al in het bier zit — dat hangt af van de temperatuur waarbij je bier het laatst heeft gestaan. Vandaar dat temperatuurveld: bier dat op 20 °C stond bevat minder eigen CO₂ dan bier dat koud is weggezet, en heeft dus meer suiker nodig.
Je kunt kiezen uit tien soorten. Achter elke naam staat de factor: hoeveel keer zoveel je nodig hebt ten opzichte van gewone tafelsuiker. Die factor volgt uit het vergistbare deel van het product — factor = 1 ÷ vergistbare fractie.
Tafelsuiker (sacharose) — ×1,00, per definitie
Kandij- of basterdsuiker — ×1,03
Dextrose (glucosemonohydraat) — ×1,11
Honing en suikerstroop — ×1,25, beide ongeveer 80% vergistbaar
LME (vloeibaar moutextract) — ×1,79, want dat is DME met ongeveer 20% water erbij
Dit zijn typische waarden. Honing loopt van 78 tot 82 procent vergistbaar, siropen verschillen per merk en moutextract per fabrikant. Weet je van jouw product de vergistbare fractie, reken dan zelf: neem de grammen tafelsuiker die de app noemt en deel die door jouw fractie. Melasse staat er bewust niet bij: die loopt van 45 tot 60 procent en geeft zoveel smaak dat je hem niet om het koolzuur kiest — een getal dat er tientallen procenten naast kan zitten helpt niemand.
Wat de bottelsuiker met je bier doet
Die suiker vergist ook, en dat merk je op twee manieren. Er komt alcohol bij, en het water waarin je hem oplost verdunt je bier en vergroot je eindvolume. Vul dat water in bij Oploswater naast het suikertype; onder de uitkomst verschijnt dan wat er per saldo overblijft.
De alcohol volgt rechtstreeks uit je koolzuurdoel en niet uit de suikersoort. Per molecuul suiker ontstaan vier moleculen alcohol en vier moleculen koolzuur — in massa 184,3 tegen 176,0 gram. Wie hetzelfde koolzuur wil, krijgt dus dezelfde alcohol, of hij nu tafelsuiker of moutextract gebruikt.
Een voorbeeld: 20 liter bier van 6,0% naar 2,4 volumes CO₂ bij 20 °C. Daar is nog 1,55 volume voor nodig, goed voor ongeveer 81 mL alcohol — +0,40%. Los je de suiker op in 0,3 liter water, dan kom je uit op 20,3 liter en 6,31%. Netto dus +0,31%: de verdunning eet een kwart van de winst op.
Verdamping uitrekenen in plaats van meten
Zodra het wort kookt ligt de temperatuur vast: alle energie die na de warmteverliezen overblijft gaat op aan het omzetten van water in stoom. Dat kost 2,26 MJ per liter, en dat getal staat los van de kooktijd, van hoeveel er in de ketel zit en van hoe breed die ketel is. Ken je het vermogen van je element, dan hoef je dus niet te meten.
Vul in Instellingen → 🔧 Mijn brouwinstallatie onder Kookverdamping het vermogen in watt in, en het percentage van de tijd dat het element tijdens het koken werkelijk aanstaat. De app rekent voor: 1800 W een uur lang is 6,48 MJ, gedeeld door 2,26 geeft 2,87 liter per uur. Met Overnemen zet je die waarde in het veld.
Het is een bovengrens. Een deel van je vermogen lekt weg via de wand, het deksel en de dampkap, en dat deel verdampt niets. Daar speelt de vorm van je ketel wél mee — maar via die verliezen, niet via het verdampen zelf. Op gas komt daar nog bij dat lang niet alle warmte van de vlam in de ketel belandt. Meten blijft dus nauwkeuriger; deze som is bedoeld als vertrekpunt en als controle op een meting die er raar uitziet.
Wat dit betekent voor het schalen. Verdamping is geen percentage van je batch. Twee keer zoveel wort onder hetzelfde element verdampt ongeveer evenveel liters per uur, niet twee keer zoveel. Daarom rekent de app het kookvolume opnieuw uit je installatieprofiel als je het batchvolume aanpast, in plaats van het evenredig mee te schalen.
Recept afdrukken of als PDF bewaren
Wil je het recept op papier meenemen naar de brouwdag? Klik in de recepteditor op 🖨️ Print / PDF (of in het logboek rechtsboven het receptoverzicht). Er opent een schone brouwkaart in gewone taal met alle kerncijfers, de watervolumes, het maischschema met afvinkvakjes, moutstort, hopschema, gist en lege velden om je metingen en notities met de hand in te vullen. Kies in het printvenster Opslaan als PDF om hem te bewaren in plaats van af te drukken.
Bovenaan het waterblok staat wélk water je gebruikt. Niet alleen hoeveel liter maisch- en spoelwater, maar ook of dat je kraanwater is, een profiel dat je zelf hebt bewaard, of aangelengd water — met het percentage en het aantal liters demiwater erbij. Kent de app geen profielnaam, dan staan de zes ionen er in plaats daarvan. De kaart weet dit alleen als je op de watertab op 📋 Overnemen in <naam> hebt geklikt; heb je dat nooit gedaan, dan blijft de regel weg in plaats van iets te beweren.
Onderaan staan twee gelinieerde blokken om met de hand in te schrijven: Notities brouwdag met acht regels en Proefnotities met zes. Ze lopen over de volle breedte van het blad, zodat er ook echt een zin in past. De regels zijn 8 mm hoog — de hoogte van een gewone handgeschreven regel — en een blok wordt nooit over een paginarand gesplitst.
De brouwkaart staat in de volgorde waarin je werkt, niet in de volgorde waarin je de regels hebt ingetikt: de moutstort met de zwaarste zak bovenaan, de hop van eerste wort via het koken en de whirlpool naar de dry-hop, en de overige ingrediënten van maisch tot botteling. In de recepteditor blijven de rijen wel staan waar je ze zette — een regel die wegspringt terwijl je een gewicht aanpast is onwerkbaar.
💡 BeerXML is iets anders: die export is bedoeld om recepten uit te wisselen met andere brouwsoftware (Brewfather, BeerSmith) en is niet leesbaar op papier. Gebruik daarvoor de printknop.
Je recept delen op een forum
Voor een forumbericht, een mail of een appje heb je geen PDF nodig maar tekst die je kunt plakken. Klik in de recepteditor op 📋 Kopieer recept: de kerncijfers, de moutstort met percentages, het hopschema, de overige ingrediënten, de gist, het maischschema, het vergistingsschema en je notities komen als platte tekst op je klembord. Plakken met Ctrl+V, of ⌘V op een Mac.
Het waterblok en de lege invulvelden blijven eruit. Die zijn er voor de brouwdag en zeggen een lezer niets — je maischwater hangt af van jouw installatie, niet van het recept.
Brouwen op hoogte — kooktemperatuur en bitterheid
Boven zeeniveau kookt water onder 100 °C. Daardoor isomeriseren de alfazuren trager en valt de bitterheid lager uit — een verschil dat op grote hoogte niet te verwaarlozen is. Vul onder Instellingen → 🔧 Mijn brouwinstallatie je hoogte boven zeeniveau in; de app berekent dan het kookpunt en corrigeert alle IBU-berekeningen automatisch. Ken je je werkelijke kooktemperatuur (gemeten met een thermometer), vul die dan in bij Kooktemperatuur — die overschrijft de berekening uit de hoogte. Hoogte en kooktemperatuur horen bij het installatieprofiel: heeft een recept een eigen installatie gekozen, dan rekent de bitterheid met het kookpunt van díé ketel.
Laat het veld Kooktemperatuur leeg als je de hoogte wilt laten meerekenen. Een ingevuld getal krijgt altijd voorrang, ook boven een hoogte die je later invult — vul je 300 m in terwijl er nog 100 °C staat, dan verandert er niets aan je IBU. De app waarschuwt daar nu voor. In het lege veld staat grijs de temperatuur die uit je hoogte volgt.
Hoogte
Kookpunt
IBU bij 60 min koken
0 m (zeeniveau)
100,0 °C
100%
1000 m
96,7 °C
−13%
2000 m (o.a. Mexico-Stad)
93,4 °C
−24%
2850 m (Quito)
90,5 °C
−32%
3400 m (Cusco)
88,7 °C
−35%
3650 m (La Paz)
87,9 °C
−37%
Het kookpunt volgt uit de barometrische hoogteformule met de Antoine-vergelijking voor water; de isomerisatiesnelheid uit de Arrhenius-vergelijking met de constanten van Malowicki & Shellhammer (2005). Geïsomeriseerd hopextract wordt niet gecorrigeerd — dat is immers al omgezet.
💡 Wil je toch dezelfde bitterheid? Verhoog je hopgift of verleng de kooktijd; de app laat direct zien wat dat oplevert.
Conversieadvies — voorkom te kort maischen
Onder het maischschema (én bij de timers in het logboek) verschijnt automatisch een advies over de totale versuikeringstijd. De app telt alle rusten tussen 60 en 73°C op en vergelijkt die met de tijd die bij jouw hoogste versuikeringstemperatuur nodig is voor volledige zetmeelomzetting:
Versuikeringstemperatuur
Geadviseerde minimumtijd
70–73°C (alfa-amylase optimaal)
25 min
67–69°C
35 min
64–66°C
45 min
62–63°C
60 min
60–61°C (vrijwel alleen beta)
90 min
Pas je één stap aan, dan herberekent het advies direct en zie je hoeveel minuten je eventueel tekortkomt. Zo voorkom je onvolledige omzetting en een lager rendement.
⚠️ Let op: dit is een richtlijn op basis van tijd en temperatuur. Alleen een jodiumtest bevestigt of het zetmeel werkelijk volledig is omgezet. Slecht gemodificeerde mout, een grove maalslag of een dikke maisch vragen langere tijden.
Berekeningen & Calc-paneel
Alle berekeningen worden live bijgewerkt. Het calc-paneel (rechts in de recepteditor) toont:
Waarde
Uitleg
OG
Oorspronkelijk soortelijk gewicht
FG
Eind soortelijk gewicht (op basis van attenuatie)
ABV
Alcoholpercentage
IBU
Bitterheid (Tinseth of Rager)
EBC
Kleur (Morey-formule)
Pre-kook SG
Verwacht SG vóór het koken
BU:GU
Bitterheid/zwaarte verhouding
Pitching rate
Gistdosering per liter, met advies
Kostprijs
Berekend op basis van jouw prijzen
Je eigen inkoopprijzen vul je in op het tabblad Ingrediënten, in de kolom Prijs naast elk ingrediënt (mout €/kg, hop €/100 g, gist €/gram, overige ingrediënten €/100 g of per stuk). Laat je een veld leeg, dan rekent de app met de standaardprijs die er grijs in staat. Wijzigingen worden meteen bewaard; met ↺ Standaardprijzen zet je een hele categorie terug.
Klik onder de kostprijs op Toon kostprijs-specificatie per ingrediënt voor de opbouw: per ingrediënt de naam met de kosten, en daaronder de rekensom (bijvoorbeeld 5 kg × € 2,35/kg). Onderaan staat het totaal. Ingrediënten waarvoor nog geen prijs bekend is, staan oranje en tellen als € 0 — de kostprijs is dan te laag.
Waar je begin-SG vandaan komt
Onder Begin SG (OG) in het berekeningenpaneel zit een uitklapje: Toon opbouw van de SG per ingrediënt. Het werkt hetzelfde als de kostprijsspecificatie, maar dan in SG-punten.
De moutstort staat als één regel, met het totale graangewicht en het rendement waarmee gerekend is. Per mout staat de bijdrage al in de moutentabel zelf; die hier herhalen maakt de lijst lang zonder iets toe te voegen. Suiker en moutextract krijgen elk een eigen regel, want dat is meestal de vraag: welk deel van mijn SG komt niet uit de mout. Achter elke regel staat een balkje met het aandeel in procenten.
Onderaan staat het totaal, en dat is precies het getal dat erboven staat. Late giften — suiker tijdens de gisting, bottelsuiker — staan er grijs onder mét hun moment, en tellen niet mee in dat totaal: ze zitten nog niet in je wort als je de OG meet. Wat ze samen zouden opleveren staat er wel bij, want dát is het getal waar de alcoholberekening mee rekent.
De regels zijn zo afgerond dat ze zichtbaar optellen tot het totaal, en de percentages tot honderd. Rond je elke regel los af, dan kan het gebeuren dat er twee omhoog gaan en de optelling er een duizendste naast zit — je leest dan 0,058 + 0,011 met 1.068 eronder. De app verdeelt daarom eerst en rondt daarna, zoals bij zetelverdeling: geen enkele regel wijkt meer dan één duizendste van zijn eigen waarde af.
Accijns (theoretisch)
Onder de kostprijs staat wat er aan Nederlandse bieraccijns verschuldigd zou zijn als je dit bier commercieel zou verkopen. Je ziet twee bedragen: het normale tarief, dat geldt voor brouwerijen die meer dan 200.000 hl per jaar maken, en het verlaagde tarief voor zelfstandige brouwerijen tot en met 200.000 hl per jaar. Beide worden gerekend per hectoliter per volumeprocent, met voor allebei hetzelfde minimumbedrag per hectoliter: bij lichte bieren telt dat minimum en niet het alcoholpercentage. De tarieven komen uit de Tarievenlijst accijns van de Douane. Brouw je thuis voor eigen gebruik, dan ben je vrijgesteld en betaal je niets; de bedragen staan er ter informatie.
Als hobbybrouwer betaal je niets. Bier dat je thuis brouwt voor eigen gebruik is vrijgesteld van accijns (Wet op de accijns, art. 5 lid 3c). Het bedrag staat er puur ter informatie — bijvoorbeeld om te zien wat een recept in een commerciële setting zou kosten. Dit is geen fiscaal advies; ga voor je eigen situatie af op de Belastingdienst.
Timers
De timers lopen door als je scherm op slot gaat. Ze lezen de klok in plaats van seconden te tellen, dus een telefoon die in de slaapstand schiet — of een tabblad dat naar de achtergrond gaat — laat ze niet achterlopen. Kom je terug, dan staat de juiste tijd er meteen, en hopgiften die intussen aan de beurt waren worden alsnog gemeld.
Het logboek heeft twee timers naast de maischstappen: een kooktimer en een stopwatch. De kooktimer telt af: vul het aantal minuten in en klik ▶ Start. Koppel je een recept, dan staat de kooktijd daarvan er al ingevuld. Op nul krijg je hetzelfde alarm als bij een maischstap — geluid dat zich herhaalt tot je bevestigt, een trilsignaal op Android en een browsermelding. Je mag de tijd tijdens het koken nog aanpassen; de verstreken tijd blijft dan staan.
Het logboek heeft drie algemene timers — Maisch, Kook en Stopwatch — en daarnaast de maischstap-timers uit je recept. Heeft het recept geen maischschema, dan staan de vier standaardstappen klaar: Eiwitrust 52°C/15 min, Beta Amylase 62°C/45 min, Alpha Amylase 72°C/20 min en Amylasestop 78°C/10 min. Klik ▶ Start bij een stap om de afteltimer te starten; de duur van elke stap pas je direct in de tabel aan — ook terwijl de timer loopt.
Zodra een stap afloopt krijg je een geluidssignaal (drie pieptonen, elke 5 seconden herhaald tot je bevestigt), een pulserende groene melding in het logboek, een knipperende regel in de stappentabel en — op Android — een trilsignaal. Klik ✓ Gezien om het alarm te stoppen. Het geluid wordt geactiveerd zodra je op ▶ Start drukt; dat is nodig omdat browsers (met name op iPhone) geluid alleen na een aanraking toestaan.
SG-metingen & Gistingsvoortgang
Registreer SG-metingen per fase (voor koken, OG, primaire gisting, FG). Vul ook de temperatuur in — BROUWHULP '26 toont dan automatisch het gecorrigeerde SG op 20°C. Dat geldt voor élke temperatuur behalve 20°C zelf, ook 0°C: meet je de FG van een bier dat in de koeling heeft gestaan, dan leest je hydrometer bijna twee punten te hoog.
Het veld Datum & tijd laat je leeg voor een meting die je nú doet. Vul je er wel iets in, dan draag je een oudere meting na — handig als je een logboek overzet uit een ander programma. De meting komt dan op zijn eigen plek in de tijd te staan, niet onderaan de lijst: de gistingsvoortgang leest de meest recente meting, en die hoort de laatste te zijn.
Wanneer je een OG-meting en een latere meting hebt, verschijnt een gistingsvoortgangsbalk met het huidige vergistingspercentage en het actuele ABV.
Carbonisatie
De carbonisatieberekening zit onderaan het logboek. Voer in: gewenste CO₂-volumes, biertemperatuur bij bottelen en volume bier. BROUWHULP '26 berekent hoeveel gram suiker (of honing, DME) je nodig hebt.
Water
De pH van je bronwater hoort bij je kraan en wordt daarom bewaard: hij gaat mee in je waterinstellingen én in een profiel dat je zelf opslaat. Kies je later dat profiel, dan staat je gemeten pH er weer. De meegeleverde profielen — Pilsen, Burton, Dublin — hebben er geen: dat zijn ionenprofielen, geen watermonsters, en ze laten jouw meting dus staan.
De watertab laat je het bronwaterprofiel invoeren en een doelprofiel kiezen. BROUWHULP '26 berekent welke mineralen je moet toevoegen (gips, calciumchloride, Epsom-zout, zouten van natrium en magnesium).
Je eigen water invoeren en bewaren
Je hoeft niet uit de kant-en-klare profielen te kiezen: typ de waarden van je eigen leidingwater gewoon in de zes ionvelden. Klik daarna op 💾 Bewaar als profiel en geef het een naam — het profiel verschijnt bovenaan de lijst onder "🧑🍳 Mijn eigen water" en is voortaan met één klik op te roepen, ook als doelwater. Met 🗑️ verwijder je een eigen profiel. Je profielen gaan mee in de backup en de JSON-export.
Je waterwaarden blijven staan; je hoeft niets te koppelen. De watertab is één set instellingen voor de hele app, niet iets per recept of per installatie. Brouw je altijd in dezelfde brouwerij, vul je water dan één keer in, sla het op, en je vindt het bij elke start terug — inclusief de gekozen profielnaam in de keuzelijst. Een profiel uit de lijst kiezen doe je dus alleen als je de zes velden weer op die waarden wilt zetten, niet elke brouwdag opnieuw.
⚠️ Opslaan gaat niet vanzelf. Onder in het resultaatpaneel staat 💾 Waterinstellingen opslaan; zonder die klik zijn je waarden na het sluiten weg. De knop 💾 Bewaar als profiel doet dat allebei tegelijk: hij legt het profiel vast én bewaart je huidige waterinstellingen.
Voor wie met demiwater of osmosewater brouwt staan er twee zoutloze uitgangsprofielen klaar: Demiwater / osmosewater (alle ionen op nul) en Regenwater. Handig als basis om zelf met zouten op te bouwen.
Een stijl die de app niet kent blijft gewoon staan. Komt je recept uit Brewfather of BeerSmith, dan draagt het vaak een Engelse stijlnaam als "Belgian Tripel". Die staat niet in de lijst, maar wordt eronder toegevoegd met een sterretje — net als een ingrediënt dat niet in de database staat. Zoek je in de stijlen, dan blijft je keuze staan ook als hij buiten het filter valt; eronder staat dan dat hij verborgen is.
💡 Waar vind je je waterwaarden? Nederlandse en Belgische waterbedrijven publiceren de analyse per postcode op hun website. Zoek op calcium, magnesium, natrium, chloride, sulfaat en bicarbonaat (of "waterhardheid" en "HCO₃"). Twijfel je, laat je water dan eenmalig analyseren.
Kraanwater aanlengen met demi- of osmosewater
Heb je hard water en wil je een lichte pils brouwen, dan is verdunnen vaak eenvoudiger dan aanzuren. Vul bij Aanlengen met demi-/osmosewater in welk deel van je totale water demiwater is — als percentage of in liters, wat je makkelijker vindt. Het andere veld loopt mee.
Verdunnen is lineair: één deel kraanwater op één deel demiwater halveert elk ion. Er reageert niets en er slaat niets neer, het is dezelfde hoeveelheid opgeloste stof in meer water. Demi-, osmose- en gedestilleerd water gelden daarbij als nul; osmosewater houdt in de praktijk een paar mg/L over, en dat valt weg tegen de onzekerheid in je eigen wateranalyse.
De zes ionvelden blijven je wateranalyse. Ze veranderen niet doordat je verdunt — daar staat wat je waterbedrijf meet. Wat je werkelijk in de ketel krijgt, staat op de regel eronder. Zo raak je je eigen gegevens niet kwijt en verdun je niet per ongeluk twee keer over elkaar heen.
Alles wat uit je water volgt rekent met de verdunde waarden: het ionenoverzicht, de rest-alkaliteit, de maisch-pH en de spoelwater-pH. De zouten die je toevoegt komen bovenop het verdunde water, wat klopt — je lost ze op in het mengsel.
⚠️ Verdunnen verlaagt álles, ook wat je wilde houden. Met het bicarbonaat gaan ook je calcium en sulfaat omlaag. Meestal is dat geen bezwaar: die vul je met brouwzouten weer aan, en dat is precies waarom deze volgorde werkt — eerst verdunnen tot je alkaliteit klopt, dan zouten toevoegen tot je profiel klopt.
Zouten laten uitrekenen voor je doelprofiel
Boven de zoutentabel staat ⚗️ Bereken zouten voor doelprofiel. Die kijkt naar je bronwater — ná verdunning — en naar het doelprofiel dat je hebt gekozen, en vult de zes brouwzouten in die je daar het dichtst bij brengen. Eronder staat per ion waar je uitkomt tegenover waar je heen wilde.
Calciumchloride koop je als korrels óf als vloeibare 36%-oplossing. Naast de knop staat Ik gebruik vloeibaar calciumchloride (36%): vink dat aan en de knop rekent in milliliters en laat het korrelveld met rust. Het vinkje hoort bij je brouwerij en wordt meebewaard met je waterinstellingen. Beide vormen leveren dezelfde ionen — de app vervangt het zout in de berekening zelf, dus calcium én chloride kloppen, niet alleen het ene.
Reken ze niet met de hand om. Eén milliliter oplossing bevat ongeveer 0,65 gram korrels — vul je een grammengetal in het milliliterveld in, dan zit je 55% te hoog. Wat de knop invult klopt; vul je zelf iets in, kijk dan naar de eenheid achter de regel.
De maisch- en spoelgift krijgen dezelfde concentratie, dus verschillende grammen: je behandelt je water, niet je maisch. Met Zouten wissen zet je alles terug op nul.
⚠️ Zout kan alleen bijtellen. Zit je bronwater al bóven het doel voor een ion — vaak bicarbonaat bij hard water — dan bestaat er geen zout dat dat verlaagt. De app zegt dan welke ionen dat zijn; die krijg je alleen omlaag door aan te lengen met demi- of osmosewater. Verdun dus eerst, en laat daarna de zouten uitrekenen.
Kiest de berekening krijt, dan waarschuwt de app erbij. Krijt is de enige manier om bicarbonaat toe te voegen zonder natrium, maar het lost in de maisch maar half op — reken op minder effect dan er staat, of gebruik zuiveringszout en neem het extra natrium op de koop toe.
De zuren blijven onaangeroerd. Die horen bij de pH, niet bij het ionenprofiel. Hoeveel melkzuur je nodig hebt staat al onder de berekende maisch-pH en bij het spoelwater — dat is een aparte som, en die verandert niet als je op de zoutknop drukt.
Het is een kleinste-kwadratenberekening: zes zouten, zes ionen, en de voorwaarde dat een hoeveelheid nooit negatief kan zijn. Een volmaakte treffer is meestal onmogelijk — gips brengt calcium én sulfaat in een vaste verhouding, dus als je doelprofiel die verhouding niet heeft, wordt het een compromis. Daarom staat er per ion bij hoe ver je ernaast zit.
De pH van je spoelwater
Dat is een ándere vraag dan de maisch-pH. Daar bepaalt je moutstort de uitkomst; hier gaat het om het water zelf. Te alkalisch spoelwater trekt in de laatste runnings looistoffen uit de kaf, en dat proef je terug als droge wrangheid. De vuistregel is: blijf onder pH 6.
Vul daarvoor de pH van je bronwater in bij je wateranalyse. Zonder die meting rekent de app dit niet uit, en dat is met opzet: hoeveel koolzuur er in je leidingwater zit hangt af van je leiding en je kraan, en is niet uit de rest van de analyse af te leiden. Doen alsof je water met de buitenlucht in evenwicht is geeft een pH die er ver naast zit.
De rekenwijze zelf is het carbonaatevenwicht: pH = 6,38 + log(HCO₃⁻ / CO₂). Zuur zet bicarbonaat om in koolzuur — mol voor mol van de ene af en bij de andere bij. Jouw gemeten bron-pH bepaalt het startpunt, zodat het koolzuurgehalte niet geraden hoeft te worden.
Komt je spoelwater boven 6 uit, dan meldt de app dat en rekent uit hoeveel melkzuur er nog bij moet om op 5,8 te komen — met verrekening van wat je al hebt toegevoegd. Zit al het bicarbonaat eruit, dan zakt de pH steil weg; daar houdt dit model op en meldt de app dat eerlijk in plaats van een cijfer achter de komma te verzinnen.
Demi-, osmose- en gedestilleerd water
Brouw je met water zonder bicarbonaat, dan is er geen buffer. Het carbonaatevenwicht hierboven geldt dan niet: de pH van je spoelwater is simpelweg de pH die je meet, en die verandert niet doordat je er water bij doet.
Dat is meteen het antwoord op de vraag of je moet aanzuren: nee. Demi- en osmosewater zitten met hun pH van rond de 6 al onder de grens waar looistofextractie begint, en er is niets om weg te bufferen. De app meldt dat er geen buffer is en laat de aanzuuradvies-regel weg.
Doe je er tóch zuur bij, dan zakt de pH steil. Er is niets dat hem tegenhoudt: een halve millimol melkzuur per liter brengt ongeveer neutraal water al op pH 3,6. De app rekent dat uit met de zwakzuurbenadering [H⁺] = √(Ka × C) voor melkzuur (pKa 3,86). Gebruik je fosforzuur, dan valt de uitkomst nog lager uit.
Maisch-pH — koppel eerst je recept
De maisch-pH hangt vooral af van je moutstort: donkere en karamelmouten zijn zuur, basismout veel minder. Kies daarom bovenaan de watertab een recept bij Recept koppelen. De app neemt het maischwatervolume over en berekent de pH uit die specifieke moutstort. Zonder gekoppeld recept toont de app bewust een streepje in plaats van een misleidend getal.
De waterbehandeling overnemen in je recept
De watertab rekent, het recept bewaart. Zolang je zoutgiften alleen op de watertab staan, staan ze niet op je brouwkaart, niet op je boodschappenlijst en niet in je kostprijs — en er is maar één watertab, terwijl je tien recepten kunt hebben.
Koppel daarom een recept en klik onder de analyse op 📋 Overnemen in <naam>. De knop zet in dat recept:
het maisch- en spoelwater zoals ze hier ingevuld staan;
elke zout- en zuurgift die niet nul is, als regel onder Overige ingrediënten, met het moment Maisch of Spoelwater;
welk water het is: de naam van het bronprofiel, het verdunningspercentage en de zes ionwaarden. Die verschijnen bovenaan het waterblok van de brouwkaart, zodat op papier staat of je met kraanwater, osmosewater of een mengsel brouwt.
Een profielnaam die niet meer klopt wordt niet genoemd. De keuzelijst blijft op "Dublin" staan ook nadat je met de hand een ionveld hebt bijgesteld. Op het scherm is dat prima, want de getallen staan er pal naast — op een afgedrukte kaart niet. Wijkt er iets af van het profiel, dan zet de kaart de zes ionwaarden neer in plaats van een naam.
De brouwzouten staan als gewoon ingrediënt in de database, onder de groep 🧂 Brouwzouten. Ze tellen dus mee in de boodschappenlijst en in de kostprijs, en je kunt er op het tabblad Ingrediënten je eigen inkoopprijs bij zetten.
Nog eens drukken vervangt, het stapelt niet. Pas je de zoutentabel aan en klik je opnieuw, dan komt de nieuwe stand ervoor in de plaats. Regels die je zelf hebt ingetypt op het maisch- of spoelmoment gaan daarin mee; alles wat je op een ander moment hebt staan — melkzuur bij de botteling, eikenspiralen in de secundaire — blijft onaangeroerd.
Melkzuur draagt zijn sterkte in de naam, want één milliliter 80% is iets anders dan één milliliter 88%. Verdun je zelf naar bijvoorbeeld 30%, dan komt dat percentage in de naam terug en staat het ingrediënt met een sterretje in de keuzelijst.
⚠️ Er gebeurt niets vanzelf. De waterinstellingen staan één keer opgeslagen en horen bij geen enkel recept. Verander je later iets aan je water, dan lopen de overgenomen regels in je recept niet mee — klik dan opnieuw op de knop.
Welk zuur kies je?
Zuur
Sterkte
Wat het verder doet
Melkzuur 80%
10,5 mEq/mL
Wat je in Nederland en België meestal koopt. Boven ~400 mg/L in het bier proefbaar als licht zurig
Melkzuur 88%
11,8 mEq/mL
De Amerikaanse standaard, en wat de meeste Engelstalige literatuur bedoelt. Zelfde zuur, 12% sterker per mL
Fosforzuur 75%
12,1 mEq/mL
Smaakneutraal — fosfaat slaat in de maisch grotendeels neer met calcium. Zelfde dosering in mL als melkzuur
Zoutzuur 10%
2,88 mEq/mL
Voegt chloride toe, wat de moutigheid versterkt. Ruim vier keer zoveel mL nodig
Melkzuur en fosforzuur 75% zijn qua sterkte vrijwel gelijk: waar je 3 mL melkzuur nodig hebt, doe je met fosforzuur ongeveer hetzelfde. Het verschil zit in de smaak. Wie veel moet aanzuren — bij zacht water met veel donkere mout, of bij een lichte pils met hard water — kan met fosforzuur onder de proefdrempel blijven.
⚠️ Kijk op je etiket: melkzuur wordt in verschillende sterktes verkocht en dat scheelt flink in de dosering. Onder de melkzuurregel in de zoutentabel vul je bij concentratie je eigen percentage in; de app toont er meteen bij hoeveel mEq per milliliter dat oplevert. In Nederland en België is 80% gebruikelijk, in Amerikaanse recepten en literatuur wordt bijna altijd 88% bedoeld.
Zelf verdunnen — meestal een goed idee
Geconcentreerd melkzuur is bijtend, en op een batch van 20 liter doseer je er maar een paar milliliter van. Eén druppel te veel is dan al 10% van je gift. Veel brouwers verdunnen daarom eerst naar bijvoorbeeld 30%: je werkt met hele milliliters in plaats van tienden, en er kan minder misgaan als je morst.
Vul in het concentratieveld gewoon je eigen percentage in. De app leidt de dichtheid van de oplossing af uit een meettabel en rekent daaruit de sterkte, dus 30% klopt net zo goed als 80%. Ter oriëntatie: 80% ≈ 10,5 mEq/mL, 50% ≈ 6,2, 30% ≈ 3,6, 10% ≈ 1,1.
⚠️ Verdun op gewicht, niet op volume. Een percentage melkzuur is massaprocent (w/w). Wil je van 80% naar 30%, weeg dan 100 gram melkzuur 80% af en vul aan tot 267 gram met water — niet tot 267 milliliter. De algemene som: nieuw gewicht = oud gewicht × oud percentage ÷ nieuw percentage. Wie op volume verdunt komt er ruim 10% naast te zitten, en dan is de nauwkeurigheid die je zocht juist weg.
Niet zeker of het gelukt is? Meet het na
Onder Gereedschap staat 🧪 Melkzuur concentratie meten. Vul daar je refractometer- of hydrometermeting in en je krijgt het massapercentage terug, met een knop om het meteen in de watertab te zetten.
De hydrometer is de nauwkeurigste: de app leest daarvoor gewoon dezelfde dichtheidstabel achterstevoren. Je hebt er wel een volle maatcilinder van je zuur voor nodig.
De refractometer heeft aan twee druppels genoeg, maar de Brix-schaal is op suiker geijkt en niet op melkzuur. De app rekent daarom in twee stappen om: van Brix naar brekingsindex via de suikerschaal, en van brekingsindex naar massaprocent via een rechte lijn tussen water en zuiver melkzuur. Reken op ongeveer een procentpunt onzekerheid — ruim genoeg, want het alternatief is gokken en dat kost al gauw tien procent.
Meet in beide gevallen bij 20 °C, want dat is de temperatuur waarvoor beide tabellen gelden.
Het model werkt met de pH die elke moutsoort in gedestilleerd water geeft en met het bufferend vermogen per kilo. De alkaliteit van je water duwt die pH omhoog, zuur duwt hem omlaag — en elke extra milliliter zuur blijft doorwerken, ook nadat alle bicarbonaat is geneutraliseerd. Bij een te hoge pH toont de app hoeveel milliliter melkzuur je ongeveer nodig hebt, gerekend met de sterkte die je in de zoutentabel hebt gekozen.
Korrels of vloeibaar? Let op de eenheid
Calciumchloride is er in twee vormen, en ze zijn beslist niet uitwisselbaar. De korrels die je als poeder koopt zijn het dihydraat CaCl₂·2H₂O: één gram levert 273 mg calcium. De vloeibare 36%-oplossing vul je in milliliters in: één milliliter levert 176 mg calcium en 312 mg chloride.
De zoutentabel heeft daarom twee aparte regels. Vul de vloeistof in bij Calciumchloride 36% vloeibaar (ml) en niet bij de korrels erboven.
⚠️ De veelgemaakte fout: milliliters invullen op de regel voor korrels. Je zit er dan 55% naast — de app rekent met meer calcium dan je werkelijk toevoegt. Omgekeerd geldt: 1 mL vloeistof ≈ 0,65 g korrels.
De achterliggende som: de 36%-oplossing heeft een dichtheid van ongeveer 1,35 g/mL, dus één milliliter bevat 0,486 gram watervrij CaCl₂. Daarvan is 36,1% calcium en 63,9% chloride. Die getallen komen overeen met wat de fabrikant op de verpakking zet: 1 mL per 10 liter geeft 17,6 mg/L calcium en 31,2 mg/L chloride.
Antioxidanten op metabisulfietbasis
Middelen als Antioxin SBT of kaal kaliummetabisulfiet vangen zuurstof weg en houden je bier langer vers. Ze doen alleen iets wat je makkelijk over het hoofd ziet: het sulfiet oxideert grotendeels tot sulfaat, en dat verschuift je waterprofiel. Bij een zachte pils kan één gift het sulfaatgehalte verdrievoudigen en de chloride-sulfaatverhouding van rond naar droog-bitter duwen.
Vul daarom in de zoutentabel de rij Antioxidant (metabisulfiet) in: het aantal gram, en daaronder het percentage kaliummetabisulfiet dat op de verpakking staat. Zo werkt het veld voor elk merk. Antioxin SBT bevat 45%, Antioxin SB 46,8%, kale KMS 100%.
Product
Dosering
Extra sulfaat
Antioxin SBT
0,5 g per 10 L
ongeveer 17 ppm
Antioxin SBT
1,0 g per 10 L
ongeveer 34 ppm
Kaliummetabisulfiet
1,0 g per 10 L
ongeveer 75 ppm
De som. Kaliummetabisulfiet (K₂S₂O₅, 222,31 g/mol) levert per molecuul twee zwavelatomen en dus twee sulfaationen van 96,06 g/mol. Volledige omzetting zou 0,864 gram sulfaat per gram opleveren. Zo ver komt het niet: een deel van het sulfiet bindt aan carbonylen en een deel ontsnapt met de CO₂. De app rekent daarom met de praktijkfactor 0,87 die in de wijnbouw gangbaar is — 0,752 gram sulfaat per gram metabisulfiet. Reken dus op een orde van grootte, niet op twee decimalen.
⚠️ Alleen wat vóór of tijdens het maischen ingaat: vul hier niets in voor een antioxidant die je pas ná de vergisting doseert, zoals Antioxin SB. De watertab modelleert je maischwater, en zo'n late gift levert bovendien maar 3 tot 10 ppm — dat verdwijnt in de ruis.
Twee dingen laat de app bewust liggen. Kalium wordt niet bijgehouden: het komt in geen enkel doelprofiel voor en heeft geen smaakdrempel in de orde die hier haalbaar is. En het ascorbinezuur dat vaak in deze middelen zit is weliswaar een zuur, maar het effect op de maisch-pH blijft onder de 0,05 — kleiner dan de onnauwkeurigheid van het pH-model zelf.
Aanzuren met zuurmout in plaats van een zuurgift
Zuurmout — ook wel Sauermalz of acidulated malt — is gewone basismout die met melkzuurbacteriën is aangezuurd. Je weegt hem af als elk ander ingrediënt en hij verlaagt de maisch-pH zonder dat je met een pipet in de weer hoeft.
Voeg hem toe in de recepteditor via de moutsectie; hij staat in de keuzelijst onder de groep 🍋 Zuurmout. Vul het gewicht in en je bent klaar: zodra je het recept aan de watertab koppelt, is de aanzuring in de getoonde maisch-pH verwerkt. Onder de pH verschijnt hoeveel zuur de mout precies levert en met hoeveel milliliter melkzuur dat overeenkomt.
⚠️ Niet dubbel doseren: de zuurmout zit al in de berekende pH. Vul je in de zuurtabel óók nog melkzuur in, dan tel je twee keer aan te zuren.
Aandeel zuurmout
Effect op de maisch-pH
1% van de moutstort
ongeveer 0,1 lager
2%
ongeveer 0,2 lager
3%
ongeveer 0,3 lager
Dit is de vuistregel van Weyermann, en de app rekent er in dezelfde orde van grootte mee. De achterliggende som: zuurmout bevat bij pH 5,45 ongeveer 3,13% melkzuur, dus één kilo levert 31,3 gram melkzuur. Gedeeld door de molmassa van 90,08 g/mol is dat 347 mEq zuur per kilo — dezelfde eenheid waarin de app ook een zuurgift verrekent. Honderd gram zuurmout komt daarmee neer op ongeveer 3 mL melkzuur 88%.
Blijf onder de 5% van de moutstort; boven 10% waarschuwt de app, want dan wordt het bier merkbaar zurig. Voor stijlen die dat juist willen, zoals Berliner Weisse of Gose, mag het hoger. Qua extract en kleur gedraagt zuurmout zich als pilsmout, dus je OG en EBC veranderen nauwelijks.
⚠️ Blijft een schatting: werkelijke waarden variëren per moutcharge en waterbron. Meet je maisch-pH na 10–15 minuten met een geijkte pH-meter; streef naar 5,2–5,6 (gemeten bij kamertemperatuur).
Houd bij hoeveel mout, hop, gist en overige ingrediënten je in voorraad hebt. Bovenaan staan vier knoppen: 🌾 Mout & Granen, 🌿 Hop, 🧫 Gist en 🧂 Overige ingrediënten. Bij mout en hop kleurt het getal rood zodra je onder de drempel zakt; gist telt in zakjes of in gram, wat je zelf per gist kiest.
Bij de overige ingrediënten staat de eenheid die bij dat ingrediënt hoort: gram voor koriander, milliliter voor melkzuur, stuks voor een eikenspiraal. Er staat bewust geen "bijna op"-grens bij — één drempel voor een categorie die grammen kruiden en liters zuur door elkaar heeft is een verzonnen getal. Wat je te weinig hebt voor de recepten die je wilt brouwen staat op de boodschappenlijst, en daar hoort het ook.
Gist telt standaard in zakjes, maar je kunt dat per gist omzetten naar gram. Dat is er voor wie een blok van 500 gram koopt: een zakje kun je niet splitsen, een blok wel, en dan wil je in gram tellen. Naast het voorraadveld staan een keuzelijst voor de eenheid en een veld voor het gewicht van één verpakking — een zakje droge gist is 11,5 g, een pak vloeibare gist ongeveer 100 g, jouw blok 500 g.
Zet je een gist om, dan rekent de app je voorraad ter plekke om en zegt wat er is gebeurd: drie zakjes van 11,5 gram worden 34,5 gram. Er verandert niets achter je rug om, en de keuze geldt alleen voor díé gist — de meeste brouwers hebben zakjes én blokken in de koeling staan. Het pakgewicht wijzigen laat je voorraad staan; er ligt niet ineens meer of minder, alleen weegt één verpakking anders.
Je boodschappenlijst, je kostprijs en het grondstofboek van de douanemodule volgen die keuze. Telt een gist in zakjes, dan wordt een recept van 23 gram naar boven afgerond op twee zakjes: een half zakje bestaat niet in de winkel. Telt hij in gram, dan is 23 gram gewoon 23 gram, en ligt er nog 477 gram in je blok.
Ook je brouwzouten staan hier. Sinds de waterpagina de zouten als ingrediënt in je recept zet, tellen gips, calciumchloride en melkzuur mee op je boodschappenlijst. Vul hier in wat je in de kast hebt staan en ze verdwijnen van je kooplijst.
Douane en accijns
Deze module staat standaard uit en je vindt hem bij ⚙️ Instellingen → 🛃 Douane en accijns. Brouw je thuis voor eigen gebruik, dan laat je hem uit: eigen gebruik is vrijgesteld en er valt niets aan te geven. Heb je een vergunning — in Nederland een accijnsgoederenplaats, elders het equivalent daarvan — dan verschijnt er een tabblad 🛃 Douane met drie panelen.
Dit is een hulpmiddel, geen vervanging van je wettelijke administratie. Wat als voorgeschreven registratie geldt staat in je vergunning en niet in deze app. Gebruik het om je eigen boekhouding te voeren en na te rekenen, en leg de uitkomst naast wat je toezichthouder van je vraagt.
De drie kringen
Een controle draait om drie sommen die elk op zichzelf moeten sluiten:
Wat níét sluit is kilo's mout tegen liters bier: dat hangt van je rendement af en is geen controleerbare gelijkheid. Wie dat als bewijs opvoert bewijst niets. De drie kringen hierboven sluiten wél, elk op zichzelf, en samen verantwoorden ze de keten van grondstof tot afgedragen accijns.
Inschakelen
Bij het inschakelen schrijft de app van elke grondstof waarvan je voorraad hebt een begintelling op de datum van vandaag. Dat is je nulpunt: zonder die regel zou je eerste inkoop het hele saldo worden, want het boek kent dan geen beginstand. Uitschakelen wist niets — je boek blijft staan en alleen het voorraadscherm leest dan weer het losse getal.
Grondstofboek
Het boek bestaat uit regels, niet uit saldi. Elke regel draagt een datum, een soort en een hoeveelheid, en die hoeveelheid is altijd positief: het soort bepaalt de richting.
Soort
Wat het doet
Telling
zet het saldo op wat je hebt geteld; alles ervóór telt niet meer mee
Inkoop
telt erbij, met leverancier en bedrag
Verbruik
gaat eraf, met het batchnummer waar het heen ging
Afschrijving
gaat eraf zonder dat er bier van is gemaakt — bedorven, gemorst, weggegooid
Regels worden op datum opgeteld. Boek je twee dingen op dezelfde dag, dan telt de volgorde waarin je ze invoert: een telling die je ná een verbruik van diezelfde dag invoert, telt ook ná dat verbruik. Dat is hoe je het opschrijft en dus hoe je het bedoelt.
Maak je een brouwsel aan, dan gaat de hele stort automatisch als verbruik het boek in, op de brouwdatum en met het batchnummer erbij. Zo is elke kilo mout te herleiden naar de batch waarin hij verdween. De eenheden zijn dezelfde als op het voorraadscherm: mout en hop in gram, gist in zakjes of gram naar keuze, overige ingrediënten in hun eigen eenheid.
Pas je op de brouwdag iets aan in het logboek — een gewicht bijstellen, een gift erbij, een ingrediënt eruit, een ander gistgewicht — dan wordt het verbruik opnieuw geboekt. Het boek houdt dus bij wat er werkelijk in de ketel is gegaan en niet wat je van plan was. Wijzig je het batchnummer, dan verhuist dat mee naar de boekregels; koppel je een ander recept aan het brouwsel, dan vervangt die stort de oude.
Zet je de module aan terwijl je al een logboek vol brouwsels hebt, dan gaat de stort van al die brouwsels alsnog het boek in, elk op zijn eigen brouwdatum. Je saldo verandert daar niet van: die regels staan vóór je begintelling, en een telling zet het saldo. Wat je er wél mee krijgt is de herleidbaarheid over je bestaande batches — precies de kolom waar een grondstofcontrole naar kijkt.
Je voorraadscherm volgt het boek. Zolang de module aanstaat is het boek de waarheid en toont het voorraadscherm het saldo dat eruit volgt. Typ je daar een getal, dan schrijft de app een telling — je zegt immers hoeveel er ligt. Over een grondstof waarover nog nooit iets is geboekt blijft het losse getal staan, zodat je kast niet leeg lijkt op de dag dat je de module aanzet.
Een bestelling of factuur inlezen
Inkoop is het enige dat de app niet uit je eigen gegevens kan afleiden: je bestelbon staat nergens in BROUWHULP '26. Om te voorkomen dat je hem regel voor regel overtypt, staat er onder het grondstofboek een plakvak. Open de bon van je leverancier, selecteer de tekst en plak hem erin; de app zoekt de artikelregels eruit en stelt inkoopboekingen voor. Kopteksten, verzendkosten, subtotaal en btw slaat hij over.
Waarom plakken en niet een PDF slepen: een PDF fatsoenlijk uitlezen vraagt om een bibliotheek van ongeveer een megabyte, en dan nóg leest die geen gescande bon. Deze app heeft geen enkele afhankelijkheid en dat is haar sterkste beveiligingsargument. Tekst selecteren kan iedereen zelf, in elke lezer, ook op een telefoon — en dat werkt bij élke leverancier.
Staan de bedragen niet op dezelfde regel als de omschrijving, dan pakt de app ze van de regels eronder. Tekst uit een PDF komt lang niet altijd per tabelrij uit de lezer: vaak valt elke kolom op een eigen regel, of staat de hele kolomrij achter elkaar als 18568 1,00 63,99 63,99 1 — artikelnummer, aantal, stukprijs, totaal, regelnummer. Het laatste bedrag is het regeltotaal. Het aantal komt uit de kolom die als "1,00" is geschreven en niet het laatste bedrag is; ontbreekt die, dan uit het laatste hele getal dat als aantal kan doorgaan. Een getal boven de duizend is een artikelnummer en geen bestelling.
Onder het plakvak staat 🧾 Ingeboekte facturen: elke bon die je hebt verwerkt, nieuwste bovenaan, met datum, factuurnummer, leverancier, het aantal geboekte regels en het bedrag. Daarmee zie je in één oogopslag of je een bon al hebt ingevoerd. Het bedrag is de som van de regels die je hebt geboekt en dus niet per se het factuurtotaal: regels die je hebt uitgevinkt of niet kon koppelen zitten er niet in. Daarom staat het aantal regels ernaast. Klik op een bon om hem open te klappen: je ziet dan de regels die erin zitten, elk met de grondstof, de hoeveelheid en het bedrag. Klopt het bedrag niet met de bon, dan zie je hier waar het verschil zit. Staat dezelfde grondstof twee keer op één bon, dan wordt die aangewezen — dat is bijna altijd twee keer inlezen en niet twee regels op de bon. Hetzelfde geldt voor een factuurnummer dat bij dezelfde leverancier op meer dan één datum staat: dan is de bon dubbel ingelezen of één keer met de verkeerde datum. Met de prullenbak achter een regel haal je die ene regel weg; met Hele factuur verwijderen gaat de bon in zijn geheel terug, inclusief het effect op je voorraad. Verbruik van een brouwsel blijft daarbij staan: dat hoort niet bij een bon.
Een brouwsel met terugwerkende kracht invoeren
Zet je de douanemodule aan terwijl je al jaren brouwt, dan wil je je oude brouwdagen er alsnog in. Dat kan. Maak het brouwsel aan zoals altijd en zet daarna in het logboek de brouwdatum terug naar de dag waarop je werkelijk brouwde; de moutstort in het grondstofboek verhuist mee. De uitslagdatum vul je apart in bij de uitslag, dus een bier van maart dat je in mei hebt uitgeslagen komt in beide tijdvakken op de goede plek.
Je huidige voorraad verandert er niet van, en dat hoort zo. Toen je de module aanzette is er een begintelling geschreven met de voorraad zoals die op dat moment in de kast stond. Een telling zét het saldo; alles wat daarvóór in het boek staat is er al in verwerkt. Voer je een brouwsel van 2024 in, dan komt de stort netjes in het boek te staan als spoor voor de douane, maar gaat je huidige voorraad niet nog een keer omlaag. Zou dat wél gebeuren, dan telde je dezelfde zak mout twee keer af.
Kijk niet raar op van een negatief saldo op een oude datum. Vraag je het saldo op van een dag vóór je begintelling, dan staat er alleen verbruik en nog geen inkoop, en komt er een negatief getal uit. Dat is geen fout in je administratie maar het gevolg van waar je begonnen bent te tellen. Wil je ook je oude inkopen kloppend hebben, boek dan de facturen van toen alsnog in met hun eigen datum — het factuuroverzicht en het grondstofboek nemen elke datum aan.
Je winkel noemt het anders dan de app
Een bon van Unibrew zegt Aroma mout type Amber 50 EBC; in de moutlijst heet diezelfde mout Aroma Amber 50 EBC van Dingemans. Zo gaat het bij bijna elke leverancier: de mouterij geeft een naam, de winkel schrijft er zijn eigen omschrijving omheen, en jij zoekt vervolgens iets dat er wél staat maar anders heet.
Daarom kent elk ingrediënt naast zijn naam een aantal andere schrijfwijzen. Je vindt de Aroma Amber dus ook op "amber", op "aromatic amber" en op de omschrijving van je bon. Datzelfde geldt in het zoekveld op het tabblad Ingrediënten. De namen zelf veranderen niet: daar hangen je recepten, je prijzen, je voorraad en je grondstofboek aan.
De factuurlezer gebruikt het ook. Lees je een bon in waarvan je een artikel nog nooit hebt gekoppeld, dan zet de app er een voorstel bij met de melding geraden uit de omschrijving — controleer of dit klopt. Dat is nadrukkelijk iets anders dan eerder gekoppeld: dat tweede is jouw eigen keuze van een vorige keer en die gaat altijd voor.
Een gok blijft een gok. Kijk er langs voor je boekt. De app raadt bewust liever niets dan iets: er moet minstens vier tekens overlap zijn, er wordt op hele woorden gezocht — citroenzuur wordt dus geen Citra — en passen er twee ingrediënten even goed, dan kiest de app er geen van beide. Maar helemaal uitsluiten kan ze het niet, en een verkeerd geboekte grondstof staat in het boek waar de douane in kijkt.
Boven elke keuzelijst staat een zoekveld. De lijst telt ruim zestig mouten en staat op alfabet, niet op leverancier — Weyermann tarwemout donker staat dus onder de T, tussen Special B en Tarwemout Geroosterd, en niet bij de andere Weyermann-mouten. Typ je "weyermann", dan houd je alleen die over; typ je "tarwe donker" of "weizenmalz dunkel", dan houd je er één over. Het veld kijkt naar dezelfde tekst als het zoekveld op het tabblad Ingrediënten, dus ook naar de andere schrijfwijzen. Ernaast staat hoeveel regels je overhoudt van hoeveel.
Wat je al gekozen hebt blijft altijd in de lijst staan, ook als je filter er niet op past. Anders zou een filter je koppeling weggooien zonder dat je iets hebt aangeklikt. Wissel je van categorie, dan wordt het filter geleegd — een zoekterm uit de moutlijst zou de hele hoplijst verbergen.
Bij een gist staat in de kolom Hoeveelheid een keuzelijst in plaats van een vast label: daar zet je ter plekke om tussen zakjes en gram. Kies je gram, dan wordt het gewicht dat op de bon staat meteen het pakgewicht van die gist — je hebt die doos immers net gekocht. Zolang je in zakjes telt en de bon een andere verpakkingsmaat noemt dan je hebt ingesteld, zegt de app dat erbij: "1 zakje" klopt niet met een doos van 500 gram.
Per regel kies je de categorie en het ingrediënt. De hoeveelheid volgt uit het aantal maal de verpakkingsmaat, omgerekend naar de eenheid van je voorraadscherm: twee zakken van 25 kg worden 50.000 gram, en gist telt in de eenheid die je bij die gist hebt gekozen. Past de eenheid van de bon niet bij die van het ingrediënt — kilo's op iets dat in milliliters telt — dan blijft het veld leeg en zegt de app dat je het zelf moet invullen. Een verkeerd getal is hier erger dan een leeg veld.
De prijs per eenheid wordt uit het regeltotaal gerekend, in de eenheid waarin je prijzentabel rekent, en gaat met een vinkje mee naar die tabel. Je kostprijs rekent daarna met wat je werkelijk hebt betaald in plaats van met de standaardprijs. Corrigeer je de hoeveelheid, dan beweegt de prijs mee: het regeltotaal ligt vast, dus minder geleverd is duurder per kilo.
De factuurdatum is verplicht en wordt niet stilzwijgend op vandaag gezet. Het is de datum die op de bon staat: daarmee valt je inkoop in het juiste tijdvak. Een bon van vorige maand die op vandaag wordt geboekt geeft een saldo dat klopt, maar op de verkeerde dag.
De tweede bestelling gaat vanzelf. Laat je het vinkje onderaan aanstaan, dan onthoudt de app dat "Château Pilsen 2RS 25 kg" bij jouw pilsmout hoort — ongeacht hoofdletters en accenten. De volgende bon van dezelfde leverancier staat meteen goed en je hoeft hem alleen nog na te kijken.
Een factuur is geen levering. Wat er op de bon staat is wat je hebt besteld en betaald; wat er in je kast ligt is wat er is aangekomen. Klopt de levering niet met de bon, pas de hoeveelheid dan aan vóór je boekt. En de app boekt nooit uit zichzelf: ze stelt regels voor, jij drukt op boeken.
Afvullen en uitslag
Eén regel per keer dat er bier uit de tank gaat. Dat is niet altijd één keer per brouwsel: een deel op fust vandaag, de rest op fles volgende week, met twee verschillende datums en misschien twee bestemmingen.
Heb je in het brouwdaglogboek al ingevuld hoeveel flessen je hebt gevuld, hoe groot ze zijn en hoeveel er op fust ging, dan neemt 📅 Overnemen uit logboek dat over. De flessen komen op het verpakkingsmiddel met dezelfde inhoud, en het fustvolume op de grootste fustmaat waar het een heel aantal van is. Past er iets niet — een flesmaat die je niet hebt ingesteld, of een aantal liter dat niet op een heel aantal fusten uitkomt — dan zegt de app dat in plaats van te gokken; een verkeerd aantal is erger dan een leeg veld. Het boeken doe je zelf: een uitslag is een moment waarop accijns verschuldigd wordt, en die uit een flessenteller afleiden zou aangiften opleveren die je nooit hebt gedaan.
Onder de keuzelijst staat wat de app over dit brouwsel weet: het batchnummer, de brouwdatum, de OG en FG met het alcoholpercentage dat daaruit volgt, en hoeveel liter er gebrouwen is, al is uitgeslagen en nog open staat. Heb je in het logboek een OG en een FG gemeten, dan staat daar Gemeten en rekent de accijns met jouw hydrometer — inclusief temperatuurcorrectie, want een FG uit de koeling leest bijna twee punten te hoog en dat is een kwart procent alcohol. Is er niets gemeten, dan staat er Uit het recept en weet je dat je aangifte op een voorspelling rust.
Het alcoholpercentage en de Plato-waarde staan in gewone invoervelden: overschrijf ze met wat je zelf hebt gemeten. Kies je een ander brouwsel, dan worden ze ververst — het zijn cijfers die bij dát bier horen. Blijf je op hetzelfde brouwsel, dan blijft staan wat je hebt ingetypt; met ↺ Uit brouwsel haal je de cijfers alsnog opnieuw op.
De uitslagdatum staat los van je brouwdatum, want de accijns wordt op de uitslag verschuldigd. Een brouwsel van december dat je in januari uitslaat hoort in het tijdvak van januari. Verlies en vernietiging vul je apart in: die gaan wel uit de tank maar niet als bier de deur uit, en ze tellen daarom niet mee in het bedrag — wel in de volumekring.
Onder het formulier staat het overzicht per tijdvak met de knop Dit kwartaal, en daaronder de volumekring per brouwsel: wat erin ging tegen wat eruit is gegaan, met een halve procent speling. Sluit een brouwsel niet, dan staat het daar in kleur. Onder elk batchnummer staat de stort die eraan is opgegaan, rechtstreeks uit het grondstofboek gelezen — dus per batch zie je in één regel wat erin ging en wat eruit kwam. Staat daar een waarschuwing dat er geen verbruik in het boek staat, dan is die batch nooit afgeboekt en klopt je grondstofkring niet. Met 🖨️ Afdrukken maak je er een pagina van die je bij je administratie kunt leggen.
Regeling, verpakkingen en bestemmingen
Standaard rekent de app met de Nederlandse regeling. Woon of brouw je elders, kies dan het rekenmodel dat jouw wet gebruikt — accijnsstelsels verschillen niet alleen in de bedragen maar in de manier van rekenen:
Model
Hoe het rekent
Onder meer
Per hl per %vol
tarief × alcoholpercentage, met een minimum per hectoliter
Nederland
Per hl per °Plato
tarief × graden Plato, met een minimum per hectoliter
België
Per liter pure alcohol
tarief × de hoeveelheid alcohol in het bier; geen minimum
Verenigd Koninkrijk
Bandtarieven
een vast bedrag per hectoliter per sterkteband
Duitsland
De tarieven staan in een tabel met een ingangsdatum. De nieuwste rij die al is ingegaan wint, dus een tariefwijziging is een regel erbij en verandert niets aan wat er al geboekt is. Binnen een rij staan de categorieën waarin een brouwerij kan vallen; bij ons zijn dat normaal en verlaagd. Welke voor jou geldt kies je bij Mijn categorie.
Bij bandtarieven geef je aan waarop je banden zijn ingedeeld — graden Plato of volumeprocent — en laat je de bovengrens van de laatste band leeg: die geldt voor alles daarboven.
Bij de verpakkingsmiddelen zet je de vormen waarin je afvult met hun inhoud in liter: een longneck van 33 cl is 0,33 en een fust van 20 L is 20. Daaruit volgen de liters op je uitslagregel. Een verpakking die in een geboekte uitslag voorkomt kun je niet verwijderen; die uitslag zou dan met terugwerkende kracht nul liter worden.
Bij de bestemmingen zet je neer waar het bier heen gaat en of daar accijns over verschuldigd is. Een bestemming die je uitvinkt — opslag onder schorsing, export — telt wel mee in je volumekring maar niet in het bedrag. Kies je geen bestemming, dan rekent de app met verschuldigd; dat is de veilige kant.
Als thuisbrouwer betaal je niets. Bier dat je thuis voor eigen gebruik brouwt is vrijgesteld van accijns. Het bedrag dat het receptscherm bij je kostprijs toont staat er puur ter informatie — bijvoorbeeld om te zien wat een recept in een commerciële context zou kosten. Dit is geen fiscaal advies, en buiten Nederland gelden andere tarieven.
Gereedschappen
Tool
Gebruik
SG ↔ Plato/Brix
Omrekening tussen eenheden
Refractometer
Corrigeer de refractometerwaarde na giststart (Sean Terrill)
Hydrometer temperatuurcorrectie
Corrigeer meting voor niet-20°C temperatuur (Kell/NIST)
Giststarter
Bereken hoeveel suiker/DME voor een bepaald startervolume en SG
SG verhogen
Hoeveel sacharose/dextrose voor een hogere OG
Verdunning
Wat gebeurt er met het SG als je verdunt met water
Bij elke tool staat in de app een korte uitleg van wat hij doet en wat je moet invullen. De velden met een oranje rand zijn uitkomsten, niet iets wat je zelf invult — daar verschijnt het antwoord zodra de invoer compleet is.
Verdunning en SG verhogen werken elk één kant op. Water verdunt en kan de SG alleen verlagen; suiker kan hem alleen verhogen. Vul je een doelwaarde de verkeerde kant op in, dan legt de app uit welke van de twee je nodig hebt.
Boodschappen
Kies op het tabblad 🛒 Boodschappen welke recepten je wilt brouwen en hoe vaak. De app telt alle ingrediënten op, trekt je voorraad ervan af en toont per regel wat je nog moet kopen, met de geschatte kosten op basis van je eigen prijzen. Een regel met een groen vinkje heb je al genoeg van.
Staat er een oranje vraagteken bij de kosten, dan is er voor dat ingrediënt nog geen prijs bekend. Vul die in op het tabblad Ingrediënten, kolom Prijs.
Een prijs van 0 mag en telt gewoon mee: zelf gekweekte hop of gist die je uit een vorige brouw hebt geoogst kost werkelijk niets. Dat is iets anders dan een lege cel — die betekent dat er nog niets is ingevuld, en dan blijft het vraagteken staan.
Gist telt in zakjes, niet in gram. Het tabblad Voorraad vraagt je gist in zakjes, dus doet de boodschappenlijst dat ook. Elf gram droge gist in je recept is één zakje; heb je er twee liggen, dan hoef je niets te kopen. Vloeibare gist telt per pak, en een starter kweek je uit één pak — het aantal liter starter zegt niets over wat je moet inslaan.
Met 🖨️ Print / PDF maak je er een lijst van om mee te nemen naar de winkel: per ingrediënt een afvinkvakje, de hoeveelheid die je moet kopen, en daarnaast in het klein wat je nodig hebt en wat er al ligt. De grootste hoeveelheid staat bovenaan, zodat de zware zakken meteen in het oog springen. Wat je al genoeg van hebt staat niet in de kooplijst maar wordt onderaan wel opgesomd, zodat je kunt zien dat het niet is vergeten. Kies in het printvenster Opslaan als PDF om hem op je telefoon mee te nemen.
Vergistingsprofiel
In de recepteditor kun je onder 🧊 Vergistingsprofiel een schema opbouwen: hoofdgisting, diacetylrust, dry-hop, koud wegzetten, lageren. Per stap geef je een temperatuur en een aantal dagen op. Op de brouwdag rekent het logboek dat om naar echte datums en laat het zien welke stap nu loopt en wanneer de volgende aan de beurt is. De startdatum kun je in het logboek aanpassen als je later bent begonnen dan de brouwdag.
Naast de temperatuur staat een tweede veld voor een eindtemperatuur. Laat je het leeg, dan loopt de hele stap op één temperatuur. Vul je er iets in, dan is het een ramp: je loopt in het opgegeven aantal dagen van de ene naar de andere temperatuur. Zo leg je een diacetylrust vast als 18 → 22 °C in drie dagen, of het koud wegzetten als 20 → 2 °C in twee dagen. De ramp verschijnt met een pijl in het logboek en in de tekst die je met 📋 Kopieer recept deelt.
Gistdosering en starter
Onder Gereedschappen berekent Gistdosering & starter hoeveel gistcellen je nodig hebt en hoeveel je er werkelijk hebt. Vul batchvolume, OG, biertype, gistvorm en productiedatum in. Het biertype is een keuze tussen ale en lager; de opslag voor zwaar bier volgt uit de OG die je hierboven invult. De app rekent met 0,75 miljoen cellen per mL per °P voor ales en 1,5 voor lagers, vanaf OG 1.061 met een derde erbovenop (White & Zainasheff), 20 miljard levensvatbare cellen per gram droge gist en 100 miljard per pak vloeibare gist. Vloeibare gist verliest ongeveer 0,7 % levensvatbaarheid per dag, droge gist veel minder.
De 20 miljard per gram is een optimistische aanname. Fabrikanten garanderen doorgaans minimaal 6 miljard per gram. Het getal komt overeen met wat andere brouwsoftware gebruikt, zodat je uitkomsten vergelijkbaar zijn — maar bij oude of slecht bewaarde gist zit je er te hoog mee.
Gemeten rendement
Zodra je in het logboek een OG-meting invoert, rekent de app terug wat je brouwzaalrendement werkelijk was, en vergelijkt dat met het percentage waarmee je het recept had berekend. In het overzicht staat het gemiddelde over al je brouwsels. Vul je bij de meting ook een volume in, dan wordt dat gebruikt in plaats van het receptvolume.
Het gaat over je graan, niet over je suiker. Suiker, kandij en moutextract lossen volledig op; door je maisch worden ze niet beter of slechter. Ze tellen daarom niet mee bij het terugrekenen — hun bijdrage gaat er eerst van je meting af, en wat overblijft wordt gedeeld door wat je graan had kunnen leveren. Wat je op Gisting of Bottelen hebt staan telt helemaal niet mee: dat zit er bij de OG-meting nog niet in.
⚠️ Een onmogelijke uitkomst wordt niet getoond. Levert je meting meer dan 120% op — vrijwel altijd een tikfout in de dichtheid of het volume — dan blijft de regel weg in plaats van een getal te tonen dat niets betekent.
Een recept dupliceren
Wil je variëren op een recept dat al werkt — een zwaardere versie, een andere hop, een proefbrouwsel op halve schaal — dan hoef je niets over te typen. Er zijn twee manieren, en het verschil zit in wanneer je kiest.
Vanuit de receptenlijst klik je op 📋 Dupliceer op de receptkaart. Je geeft een naam op en de kopie verschijnt direct onder het origineel, klaar om aan te passen.
Vanuit de recepteditor gebruik je 📄 Opslaan als nieuw recept. Handig als je al aan het sleutelen bent en halverwege bedenkt dat dit eigenlijk een nieuw recept moet worden: je aanpassingen gaan mee naar de kopie en het origineel blijft staan zoals het was.
⚠️ Let op het verschil met Opslaan: de gewone knop 💾 Recept Opslaan overschrijft het recept waar je in werkt. Wil je het origineel behouden, gebruik dan Opslaan als nieuw recept — anders is de oude versie alleen nog via de versiegeschiedenis terug te halen.
De kopie staat volledig los van het origineel: pas je er een moutgift of maischstap in aan, dan verandert er niets aan het recept waar hij vandaan komt. De versiegeschiedenis gaat bewust niet mee — een kopie is een nieuw recept en begint met een schone lei.
Bestaat de voorgestelde naam al, dan telt de app door: Tripel (kopie), Tripel (kopie 2), enzovoort. Dupliceer je een kopie, dan stapelt dat achtervoegsel niet op.
Versiegeschiedenis
Elke keer dat je een bestaand recept opslaat mét wijzigingen, wordt de vorige versie bewaard, samen met de datum en een notitie die je zelf kunt invullen. Met ↺ Terugzetten haal je een eerdere versie terug; de huidige stand wordt daarbij eerst bewaard, dus terugzetten is omkeerbaar. Er worden maximaal 20 versies per recept bewaard.
Je vindt hem onderin het bewerkscherm, vlak boven de knoppenbalk, in een kaart die dichtgeklapt begint. Klik op 🕘 Versiegeschiedenis om hem open te vouwen; ernaast staat hoeveel versies er bewaard zijn. Het veld Wat verander je? hoort bij de opslag die je gaat doen, niet bij een vorige — vul het in vóór je op Opslaan drukt. Laat je het leeg, dan wordt de versie gewoon zonder notitie bewaard.
Veiligheid
BROUWHULP '26 draait volledig op je eigen apparaat. Er is geen account, geen server die je gegevens bewaart en geen verbinding met andere websites — behalve de controle op een nieuwe versie, die alleen het versienummer ophaalt.
Bestanden van anderen
Het enige echte risico is een bestand van iemand anders: een BeerXML-recept of een JSON-back-up die je importeert. De app gaat ervan uit dat zo'n bestand kwaadaardig kán zijn. Alle namen en teksten worden onschadelijk gemaakt voordat ze op het scherm komen, sleutels die het gedrag van de app zouden kunnen veranderen worden verwijderd, en er gelden grenzen aan bestandsgrootte, aantal recepten en lengte van namen.
Wat je zelf kunt doen: importeer alleen bestanden van mensen die je vertrouwt, en maak vóór een grote import een back-up via Instellingen → Exporteer alles. Een import vervangt je recepten en brouwsels.
⚠️ Raakt het geheugen van je browser vol, dan zegt de app dat erbij. Je ziet dan na de import een melding dat alles wél is ingelezen maar níét bewaard: zolang je het tabblad open laat staan is er niets kwijt. Ruim eerst oude brouwdagen of recepten op — of exporteer ze eerst naar een bestand — en probeer het opnieuw.
Wat de app niet doet
Geen gegevens naar buiten sturen — het beveiligingsbeleid van de pagina blokkeert verbindingen met andere domeinen
Geen code uitvoeren die uit een bestand komt
Geen scripts, lettertypen of afbeeldingen van andere websites laden
Geen cookies, geen tracking, geen advertenties
Je gegevens staan in de browseropslag van dit ene apparaat. Wie fysiek toegang heeft tot je ontgrendelde apparaat kan erbij; versleuteling zou daar niets aan veranderen zolang de sleutel in dezelfde browser staat. Bewaar dus geen gevoelige informatie in de notitievelden.
Updates installeren
Werk je met de online versie, dan controleert de app bij elke keer openen zelf of er iets nieuwers is. Is dat zo, dan verschijnt er bovenin een balk met het nieuwe versienummer en wat er veranderd is, met een knop om meteen bij te werken. Je recepten en brouwsels blijven daarbij gewoon staan — die zitten in de opslag van je browser, niet in het bestand.
Je kunt de balk wegklikken met Later. Hij komt dan terug zodra je de app opnieuw opent, net zolang tot je bijwerkt.
⚠️ Een gedownload bestand controleert niet. Draai je BROUWHULP als los bestand van je schijf, dan kan de app niet nagaan of er een nieuwe versie is: het beveiligingsbeleid staat alleen verbindingen met de eigen oorsprong toe, en dat is bij een lokaal bestand je eigen map. Dat oprekken zou betekenen dat de app bij elke start contact zoekt met de server, en dat is precies wat hij belooft niet te doen. Kijk dus af en toe zelf op de downloadpagina.
Gebruik de knop 🔃 Update naast de versienummer in de header, of ga naar Instellingen → Versie & Updates → Forceer update om de cache te wissen en de nieuwste versie op te halen.
✅ Tip: Maak vóór een update altijd een JSON-backup via Instellingen → Exporteer alles. Dan kun je, mocht er iets misgaan, je recepten en brouwsels herstellen.
Formules & Berekeningen
Soortelijk gewicht (OG/FG)
totPunten = Σ(kg × punten × factor) waarbij factor = rendement/100 voor mout en 1.0 voor suiker/extract. Dan OG = 1 + (totPunten / volume) / 1000.
Alcohol (ABV)
ABV = 76.08 × (OG−FG) / (1.775−OG) × (FG/0.794) — nauwkeuriger dan de simpele benadering (OG−FG)×131.25, vooral bij zware bieren. Enkelvoudige suikers (sacharose, kandij) tellen als volledig vergistbaar in de FG-berekening.
Bitterheid (IBU — Tinseth)
bigness = 1.65 × 0.000125^(kookSG−1), waarbij kookSG het gemiddelde is van voorkook- en eind-SG
Whirlpool-hop rekent met de standtemperatuur en -tijd: U = 0,12 × isoFactor(T)^0,4 × (1 − e^(−t/20)), waarbij isoFactor de Arrhenius-verhouding is ten opzichte van 100 °C. Dry-hop levert geen IBU.
De methode kies je in Instellingen, en die keuze geldt voor de hele app. Zet je hem om, dan verspringen de bitterheidsgetallen van je recepten én van je brouwsels tegelijk: het overzicht en de grafiek rekenen bij elke weergave opnieuw en tonen dus nooit een getal uit een vorige berekening.
pH = pH_DI + (alkaliteit − zuurmoutMeq) / Σ(kg × buffer), waarbij pH_DI het op bufferend vermogen gewogen gemiddelde is van de pH die elke moutsoort in gedestilleerd water geeft. Zuurmout telt mee als negatieve alkaliteit: 347 mEq per kg, uit 3,13% melkzuur gedeeld door de molmassa 90,08 g/mol.
SG temperatuurcorrectie (Kell/NIST)
SG_corr = SG_gem × ρ(20°C) / ρ(T°C) waarbij ρ de Kell waterdichtheidsformule is (geijkt op NIST-data).
Veelgestelde vragen
Mijn data is weg na het updaten van de browser
Data staat in localStorage van de browser. Bij het wissen van browsercookies/-cache kan dit verloren gaan. Zet Instellingen → 🔁 Automatische backup aan: dan schrijft de app na elke wijziging een backup naar een map op je computer — bestanden op schijf overleven het wissen van browserdata (Chrome/Edge desktop). Op iPad/iPhone staat Apple dit niet toe: maak daar regelmatig een handmatige backup via 📁 Backup naar map… of Exporteer alles (JSON).
Kan ik de app op meerdere apparaten gebruiken?
Ja, maar de data wordt per browser opgeslagen. Gebruik de JSON-export/import om data over te zetten tussen apparaten.
Hoe importeer ik een recept uit een ander programma?
BROUWHULP '26 ondersteunt BeerXML in twee richtingen: importeer .xml-bestanden uit BeerSmith of Brewfather via 📥 Importeer BeerXML, en exporteer al je eigen recepten via 📤 Exporteer BeerXML — beide knoppen staan boven de receptenlijst.
Elk programma gebruikt zijn eigen ingrediëntnamen: waar Brewfather Pilsner Malt schrijft, kent BROUWHULP Pilsmout 3 EBC. Namen die hier niet bekend zijn worden bij de import automatisch opgenomen in je eigen ingrediënten, mét de kleur, het extract en het alfazuur uit het bestand. Na afloop somt de app op wélke dat waren, per soort gegroepeerd — dat is precies de lijst die je moet nakijken op wat je hier wel of niet kunt kopen.
Ze staan daarna gewoon op het tabblad Ingrediënten, herkenbaar aan het label eigen, en dáár vul je de prijs in. Zonder die stap zou de kostprijs op € 0 blijven staan zonder dat er een veld was om dat te verhelpen. Bevat het BeerXML-bestand zelf een prijs, dan wordt die meteen overgenomen; Brewfather exporteert die meestal niet. Importeer je hetzelfde recept nog eens, dan komt er niets dubbel bij.
Een regel die zo is ontstaan draagt naast eigen ook het label import. Zo zie je het verschil tussen wat jij hebt aangemaakt en wat een bestand heeft achtergelaten — en dat verschil heb je nodig, want na een paar geïmporteerde recepten staan er ingrediënten in je lijst die je nooit gaat kopen.
Opruimen. Bovenaan het tabblad Ingrediënten verschijnt een knop zodra er importregels zijn die je nergens voor nodig hebt. Hij verwijdert alleen wat in géén enkel recept, receptversie of brouwsel voorkomt en waar je geen voorraad van hebt; hun prijs gaat mee. Wat je zelf hebt aangemaakt blijft altijd staan, en je krijgt de namen te zien voordat er iets verdwijnt.
Loop de nieuwe regels wel even na. De kleur en het extract komen uit het bestand en kloppen doorgaans, maar bij hop leidt de app het onderscheid tussen bitter- en aromahop af uit het alfazuurpercentage, en bij overige ingrediënten wordt de categorie op kruiden gezet. Dat pas je in de tabel zelf aan.
De watervolumes komen uit het bestand zelf: BeerXML geeft per maischstap de hoeveelheid opgietwater, en die worden opgeteld tot je maischwater. Staat dat er niet in, dan rekent de app het uit met jouw eigen installatieprofiel — dezelfde som als achter de knop 💧 Vul watervolumes in uit mijn installatie.
Gist: pakken, gram en liters. BeerXML is hier rommelig: het veld AMOUNT is liters óf kilo's, en een aantal pakjes past in geen van beide. Brewfather schrijft twee zakjes droge gist als AMOUNT 2, wat als kilo's gelezen twee kilo gist zou zijn. De app kijkt daarom eerst naar DISPLAY_AMOUNT, waar de eenheid met zoveel woorden in staat ("2 pkg"). Ontbreekt dat, dan geldt de norm, met een plausibiliteitsgrens als vangnet: geen thuisbrouwer gebruikt meer dan een halve kilo gist, dus een klein geheel getal is dan vrijwel zeker een aantal verpakkingen. Wordt er bijgestuurd, dan krijg je dat na de import te zien met het oorspronkelijke getal erbij.
Ook de gistvorm komt mee. Dry wordt droge gist in gram, Liquid, Slant en Culture worden pakken. Meer dan een kwart liter vloeistof past in geen enkel pak — het grootste dat je koopt is een Wyeast XL van ongeveer 125 mL — dus dat leest de app als een starter in liters.
Recepten die je vóór versie 3.53 hebt geïmporteerd
Oudere versies namen de naam uit het bestand wel over, maar registreerden het ingrediënt nergens. Bij het opstarten haalt de app dat eenmalig in: elk ingrediënt in je recepten en brouwsels dat nergens in de database voorkomt, komt alsnog bij je eigen ingrediënten te staan — met de kleur en het extract die in het recept staan. Je hoeft daar niets voor te doen en er verandert niets aan je berekeningen; er komt alleen een prijsveld bij.
⚠️ Eén ding lost dat niet op. Of een ingrediënt suiker of moutextract is, staat alleen in het oorspronkelijke BeerXML-bestand. Oudere versies behandelden die als graan en pasten er het brouwzaalrendement op toe, waardoor de berekende OG te laag uitviel — bij een halve kilo suiker in 20 liter zo'n twee SG-punten. De app raadt dat bewust niet uit de naam. Staat er suiker, kandij of moutextract in een recept dat je vóór versie 3.53 hebt geïmporteerd, importeer dat bestand dan opnieuw en verwijder daarna pas het oude recept.
De versiecheck heeft een internetverbinding nodig en werkt alleen als de app gehost is (niet als lokaal bestand). Lokaal openen geeft een foutmelding — dat is normaal.
📖 Manual
Brewbuddy '26 · By Leonard Hamers · Bossche Brouwers
Brewbuddy '26 is a single HTML file — no installation required. Download the file and open it in your browser.
1
Download
Download BrouwHulp.html via the download button on the website.
2
Open
Open the file in Chrome, Firefox, Safari or Edge.
3
Done
The app works instantly, even offline. Your data is stored in the browser.
Install as an app (recommended)
You can install Brewbuddy '26 as a real app on your phone or laptop:
Android (Chrome): Open the app in Chrome → menu (⋮) → "Add to Home screen"
iPhone (Safari): Open the app in Safari → share icon → "Add to Home Screen"
Windows/Mac (Chrome): Click the install icon in the address bar
⚠️ Important: Your data is stored in the browser, not in the file itself. Make regular backups via Settings → Export everything (JSON).
Creating your first recipe
Go to the My Recipes tab and click + New Recipe. The recipe editor opens with default settings you can adjust right away.
Name your recipe and choose a beer style
Set the batch volume and efficiency (default 20L / 75%)
Add malt via the + Add button in the fermentables section
Add hops with timing and use
Select a yeast from the database
Save with 💾 Save Recipe
💡 Tip: The calculations on the right (OG, IBU, EBC, ABV) update live as you enter ingredients.
Brew day
When you brew, convert the recipe into a brew batch via 🍺 Create as Brew Batch. You are automatically taken to the log. The reverse also works: create an empty batch and attach a recipe on the spot via 📋 Attach Recipe — no tab switching. Use 🔁 Attach a different recipe to swap later.
The log contains:
The full recipe next to your brewing tools: grain bill (with share and EBC), hop additions, other ingredients and yeast
Mash step timers linked to your recipe schedule (or the default schedule)
Timers for mash, boil and stopwatch, with an alarm at every hop addition
Gravity readings per phase with temperature correction
Fermentation progress and carbonation calculation
Notes and tasting notes
What to aim for
Below the fermentation schedule sits the 🎯 What to aim for card: the numbers you tick off one after another on brew day, so you never have to open the recipe for them. It sits just above your mash steps, which is where you read them side by side.
Strike water
How hot the water you pour onto the grain must be
Mash water
What goes into the mash tun
Sparge water
What you rinse through it
Total water
What you need in total, losses included
Pre-boil volume
What stands in the kettle when you start boiling
Pre-boil gravity
What you measure in the full kettle before the boil
All six come from the brew's own copy, not from the recipe. Switch to a different rig on brew day or adjust the grain bill and they follow along.
Pre-boil gravity is your earliest check on efficiency. Measure lower than shown and your mash yielded less than the recipe assumes, so your OG will come out lower too; measure higher and the reverse. You know that before you start boiling, not once the yeast is in.
How hot should your strike water be?
Water poured onto cold grain cools down. How far depends on three things: how much grain there is, how cold it is, and how much water goes on. The app works it out from the heat balance between those masses — grain absorbs about two and a half times less heat per kilo than water — and adds the heat that disappears into a cold vessel.
You enter your grain temperature once under Settings → 🔧 My brewing equipment → Grain and vessel temperature. It sits with the equipment rather than the recipe, because it depends on where you keep your grain: a garage in January is not a kitchen cupboard. Leave it and the app uses 20 °C. If it freezes in your shed, enter a temperature below zero — that is not a typo but the very reason your strike water has to be hotter.
Whether the vessel counts is taken from the dropdown under Mash tun dead space. Set to stays behind it is a cooler or a separate tun: that sits cold and pulls heat out of your strike water. Set to comes along into the kettle it is a single vessel with a pump and an element, already up to temperature.
This is a starting point, not a promise. How much heat a vessel swallows depends on the material, the wall thickness and whether you preheated — the app cannot know that. Measure once what you actually get after mashing in, and adjust your grain temperature until it matches. After that it is right for every recipe on that rig.
Which step you strike at. The app uses the temperature of your first mash step — the same step that heads the countdown timers below. If your recipe has no mash schedule of its own, the log falls back on the standard schedule, so you strike at the protein rest. With no grain in the recipe at all, a dash stays there.
Following and steering the fermentation
The fermentation schedule in the log is editable, just like your grain bill and your hops. Per step you change the name, the temperature, an optional end temperature and the number of days; + Add step puts a phase in and ✕ takes one out. The dates beside them shift straight away, so you see at once when the next step is due.
A new step starts at the temperature the previous one ended on. That is almost always what you mean when you add a phase halfway through.
The recipe is left alone. If your primary fermentation runs two days longer than planned, you note it here — that is what happened that time, not a change to your plan. If you want to do it that way from now on, change it in the recipe editor.
If a brew has no schedule yet, the card is there anyway, with a button to start one. That way you can follow the fermentation of a recipe you never set a profile on.
The boil timer warns you at every hop addition
Link a recipe to your brew day and the boil timer reads the hop schedule along with it. Every addition with use Boil triggers the same alarm as a mash step: sound that repeats until you confirm, vibration on Android and a browser notification. Below the clock you also see which addition comes next and in how long, so you can weigh it out in advance.
The times are remaining boil time, the way brewers write them. A hop at 60 minutes therefore goes in straight away in a 60-minute boil, and only after half an hour in a 90-minute boil. If an addition is set to more minutes than your boil time, the app reports it at the start — any later is impossible.
Only additions with use Boil get their own alarm. First wort hops are already in before the timer runs, whirlpool and dry hops come afterwards, and hop extract goes in after fermentation. Hops at 0 minutes get no separate signal but are named in the final alarm — two alarms at the same moment is not an alarm but noise.
Resetting the boil with ↩ opens all the additions again. Handy if you have to start over because something went wrong.
Other ingredients count too. Orange peel, coriander, Irish moss — they were always in your recipe, but had only a phase and no timing, so the timer could do nothing with them. Every other ingredient with timing Boil now has a Time field in minutes of boil remaining, exactly as for hops. That matters here: coriander and peel give up their aroma to the steam, so ten minutes too early costs you half of it.
An other ingredient without a time sits at zero and gets no alarm of its own — fill in the field and it joins in. For any timing other than Boil you see a dash: a moment in the boil has no meaning there.
Your own batch numbers
The number at the top left of the log is free text. If you use your own series such as GB202, KB22 or 2026-014, simply type it in; letters, hyphens and leading zeroes are all fine.
The app counts on from the last block of digits and leaves the rest alone: GB202 becomes GB203, 2026-014 becomes 2026-015, and GB007 becomes GB008. Switch series by setting the most recently created batch to KB22 and the next one becomes KB23. So you type the prefix only once per series.
When you create a new batch, the next number is already offered in the name field. Press OK straight away and the batch is called GB203 and carries that number. Prefer a real name such as Tripel test brew? Then the batch gets that name and keeps GB203 as its number.
Under Settings → Next batch number you set what the very next batch will get, for instance when you move over from another program and want to carry on counting. The overview sorts batch numbers naturally, so GB9 comes before GB99 rather than after it.
Brew-day adjustments — without changing the recipe
The batch always works on a copy of the recipe. Everything you adjust in the log applies only to that brew day: change amounts, add (+ Add) or remove (✕) ingredients, and even swap the yeast — the new yeast's attenuation is taken over automatically. OG, FG, ABV, IBU and EBC are recalculated live. The original recipe in your library always stays unchanged. Useful when an ingredient is out of stock or a hop lot has a different alpha acid percentage.
Changing the batch volume — with or without scaling
Changing the batch volume now changes only the volume. Your grain bill, hop additions and yeast stay exactly as they are. You immediately see what happens to your beer: the same malt in fewer litres gives a higher gravity and more bitterness. That is precisely what you want to know when you got 18 litres out of the kettle instead of the 20 you expected.
What is recalculated are the boil volume and your mash and sparge water. That is not scaling but a consequence: they follow from your grain bill and your equipment profile, and would otherwise no longer be right at the new volume.
If you do want to convert the recipe to a different batch size, use the ⚖️ Scale button next to the volume field. It shows you the factor and a preview first, and the amounts only change after Apply. A line with that button appears after a volume change, so you do not have to go looking for it.
The volume field does not scale your ingredients. You type what you actually ended up with, and your grain bill stays as you wrote it. If you do want to scale, that is what the ⚖️ Scale button is for, with a preview and a confirmation.
The batch overview
The Overview tab shows a chart of your last twenty batches. The Show dropdown picks what you see in it: alcohol, bitterness, colour, original gravity, final gravity or your measured efficiency. That way you can tell at a glance whether your beers are getting more bitter or your efficiency is rising — something the table below does not show.
For original and final gravity the axis starts at 1.000 rather than zero. Otherwise 1.040 and 1.080 would barely differ on the scale. A batch for which you did not record that value gets no bar; a sliver would suggest a measurement that is not there.
Click a row in the table below to open the brew day log for that batch. This also works with the tab key and Enter.
Malt & Grains
Adding sugar or honey during fermentation
The malt table has an Add column with four moments. They run in brew-day order, and they decide which calculation the ingredient counts towards:
Moment
Mash water
Pre-boil gravity
Original gravity
Alcohol
Mash
yes
yes
yes
yes
Kettle
no
no
yes
yes
Fermentation
no
no
no
yes
Bottling
no
no
no
yes
Mash is the default and the ordinary case: grain and anything else you mash in. Kettle is for sugar or extract you only tip into the boil kettle — you see that in your original gravity but not in the reading you take before the boil, because it is not in there yet. Set it to Fermentation and a day field appears — day 3 by default. That is the usual choice: the primary is past its peak, so the yeast takes up the new sugar calmly instead of tearing through it. Bottling is for priming sugar and has no day.
Why the difference matters. Pre-boil gravity is a measurement you take on brew day: you read it from the kettle before you light the burner. Leave your candi sugar on Mash while you actually add it at flame-out, and the app expects a higher reading than you will see — sending you off to correct an efficiency that is perfectly fine.
This is what you use it for: honey in a tripel, candi sugar in a quadrupel, or plain sugar to dry out a strong beer without putting the yeast under osmotic pressure at pitching.
The app treats it differently from sugar in the kettle, and that difference is the whole reason this column exists:
Sugar in the kettle
Sugar on day 3
OG
counts
does not count
Pre-boil gravity
counts
does not count
IBU
counts
does not count
Alcohol
counts
counts
FG
no difference: simple sugar ferments out completely
The OG is the important one. You measure your original gravity on brew day, and the honey is not in there yet. If the app counted it anyway it would predict 1.086 where you measure 1.071, and you would go looking for an efficiency problem that does not exist. For the same reason it does not count towards bitterness: it was never in the kettle, so it never diluted the wort during the boil.
A second line under the OG shows the gravity including the late sugar. That figure is the one your alcohol percentage comes from — without it the alcohol appears out of nowhere.
A honey tripel, to make it concrete. 5.5 kg pilsner malt and 0.5 kg sugar in the kettle, 1 kg honey on day 3, 20 litres, 85 % attenuation. You measure OG 1.071 as if there were no honey, you get 10.8 % alcohol as if there were, and your IBU stays that of the recipe without honey.
The brew card, the printout and the share text add only on day 3 of fermentation, so you do not tip it into the kettle by mistake on the day. In BeerXML it travels as ADD_AFTER_BOIL with the day in the notes; a file that arrives without a day note falls back to day 3.
Anything set to Fermentation also stays out of the mash: out of the mash water, the water-to-grain ratio, the grain absorption and the mash pH. With honey that made no difference, because sugars and extracts are excluded there anyway. Set an ordinary malt to Fermentation — or import honey from another program without its type — and the difference is a whole kilo of grain, which is roughly a litre of mash water plus a litre left behind in the spent grain.
Priming sugar
The third choice in the Added column is Bottling. Enter your priming sugar that way in the malt list and it counts where it should:
Priming sugar
OG
does not count — you measure that in the fermenter
FG
does not count — you measure that just before bottling
IBU
does not count — the sugar never saw the kettle
Alcohol
does count — sugar makes alcohol in the bottle too
Seven grams per litre, an ordinary dose for 2.4 volumes of CO₂, adds about 0.4 % alcohol. That is not a rounding error: it is the difference between an 8.0 % tripel and an 8.4 % one.
Why not under Other ingredients? You can — Bottling has been in that list of moments for longer — but other ingredients carry no extract. The app does not know how many gravity points a kilo of coriander holds; for sugar in the malt list it does. So put priming sugar in the malt list and it counts. Under Other it stays a note on your brew sheet, which is exactly right for finings.
There is no day field with Bottling: bottling is not a day of fermentation. How much sugar you need for a given number of CO₂ volumes is what the Priming sugar tool works out — the two do not clash: the tool calculates what you need, the recipe row records what you add.
What does points/kg mean?
Points/kg is how many gravity points one kilo of an ingredient yields in one litre of wort, at 100 % efficiency. One kilo of sugar dissolved to one litre gives SG 1.384 — so sugar is 384 points. Pilsner malt does not reach that and sits around 300.
Maltsters do not print this figure; they give the extract content as a percentage. Converting:
What you have
Calculation
Example
Extract in %
% × 3.84
80 % → 307 points
PPG (US)
PPG × 8.35
37 PPG → 309 points
Yield as SG
(SG − 1) × 8350
1.037 → 309 points
In the + Add custom malt form you do not have to calculate anything: enter the extract percentage and the Points/kg field fills itself. It works the other way round too.
Two things to watch. A certificate usually states extract on a dry basis. Malt holds about 4 % moisture, so in practice you get slightly less: 80 % dry basis works out at roughly 76.8 %, so ~295 points. And do not enter your brewhouse efficiency here — that goes in the recipe, where it is applied to all the malt at once.
Names and list order
The brand name is not part of a malt's name. Pilsner malt is simply Pilsmout 3 EBC. The reason: the app is also used in English and Spanish, where different maltsters fill the shelves — a name with a Belgian maltster in it is wrong there. The supplier has not disappeared: it sits in its own Producer column on the Ingredients tab, and you can search on it.
The same goes for yeast: it is called SafAle US-05, not SafAle US-05 (Fermentis). The brand lives in the Producer column, where you can search and sort on it.
Your existing recipes keep working. The app converts old malt names once at startup, including your own prices and your stock. A backup you restore later and a BeerXML file you exported earlier are translated too. If you had created your own malt with exactly the name a default malt now carries, yours gets (eigen) added and your recipes follow it — otherwise the app would quietly start using the default malt's figures instead of yours.
When you add an ingredient yourself there is a Producer field for who you buy it from. That applies to malt, hops, yeast and other ingredients, and you can fill it in for existing own ingredients as well.
The supplier also appears where you actually need it: after the name in the recipe dropdown, in your stock and on the shopping list. That way you can tell apart three pilsner malts that differ only in EBC. For hops it shows the country of origin, since no brand is recorded for those. Only the name is stored.
Editing your own ingredients
Everything you entered for an ingredient of your own can be changed afterwards, straight in the table on the Ingredients tab. The name and the producer; for malt the points, EBC and type; for hops the alpha acid, type and origin; for yeast the attenuation, form and temperature; for other ingredients the type, unit, maximum dose and note. A change is saved immediately and carries through to your recipes.
The name can be changed too. Type in the name column and click elsewhere. The name is the key your recipes, your recipe versions, your brews, your price and your stock hang on, and all five move along with it — you do not have to re-enter anything, not even in a recipe that happens to be open. An empty name is refused, and so is a name that already exists: two ingredients sharing one name would share one stock line and one price without you noticing. A handful of names is off limits too, because the app uses them itself or they once belonged to a built-in ingredient — you will be told why.
That is how you tell apart three pilsner malts from different suppliers: give each its own name — Pilsner malt Dingemans, Pilsner malt Belgomalt — and fill in the producer. Each then has its own price, its own stock and its own points, and the recipe dropdown shows who it comes from after the name.
Yeast now asks for Dry or Liquid rather than a beer style. That is the only thing the app uses it for: dry yeast is dosed in grams, liquid yeast in packs. Anyone who added their own yeast earlier always got a dose in grams; those are now set to Dry and can be switched with one click. Nothing changes in your existing calculations until you do so.
All lists — malt, hops, yeast, other ingredients and beer styles — are in alphabetical order. For hops, malt and other ingredients that applies within the groups the dropdown uses (for other ingredients: Citrus, Fruit, Herbs and so on). Ingredients you add yourself appear at the bottom in their own group Custom malt / Custom hops / Custom yeast.
Choosing the beer style
The style list is grouped by beer type — lager, wheat beer, pale ale and IPA, amber and bitter, stout and porter, Belgian and French, sour and wild, strong beer, and fruit, spice and smoke. Within each group it is alphabetical, so the American IPA sits next to the English one instead of forty lines away.
Above the list is a search field. Type ipa, stout or weizen and the list shrinks to what matches; accents and capitals are ignored, so munchner also finds Münchner. Esc clears the field.
If the style you had already chosen falls outside your filter, it stays selected and the app says so. Searching cannot lose it.
The fermentables section contains a database of more than 80 malts and grains, organised in categories:
Category
Examples
Max. share
Base malt
Pilsner, Pale Ale, Munich
100%
Caramel/Crystal
Crystal 40L, Caramunich
25%
Roasted
Chocolate, Black Patent
15%
Unmalted grain
Oats, Wheat, Rye
40%
Sugar/Extract
Candi sugar, DME
20% (info)
⚠️ Warnings: Brewbuddy '26 automatically warns when specialty malt percentages get too high, based on Palmer's "How to Brew" and BJCP guidelines.
Hops
Add hop additions with weight, alpha acid percentage, use and timing. IBU is calculated with the Tinseth formula.
Use
Explanation
Boil
Standard bittering hops. IBU depends on boil time.
First wort (FWH)
Added before the boil. Mild bitterness, good integration.
Whirlpool
After the boil. Enter the stand time under boil time and the temperature under WP °C — bitterness follows from those
Dry hop
During fermentation. Pure aroma, no IBU.
Whirlpool: how the bitterness is calculated
A whirlpool addition gets a full IBU calculation, on temperature as well as stand time. Set the row to Whirlpool, enter the stand time under Time (min) and the wort temperature under WP °C. Leave the temperature empty and the app uses 80 °C.
By way of illustration, 50 g of 12 % alpha hops in 20 litres, thirty-minute stand:
Temperature
IBU
70 °C
10
80 °C
14
90 °C
20
99 °C
28
Why not simply Arrhenius
The temptation is to extend the reaction rate of isomerisation down to lower temperatures, as with the altitude correction. That gives 2 % utilisation at 80 °C and 14 % at 99 °C — a factor of seven. Measured values are far flatter: Rodammer, working with the laboratory of Bell's Brewery (AHA, 2017), measured 3.96 % at 82 °C against 4.36 % at 99 °C, thirty minutes each. A factor of 1.1, then, not seven.
Part of that bitterness probably comes not from iso-alpha acids but from humulinones, which simply dissolve at lower temperatures without isomerising. The app therefore uses a damped model: the kinetic factor to the power 0.4, a ceiling of 12 % utilisation and a time factor that rises quickly and then levels off. That matches the same series over time — 10 to 60 minutes at about 95 °C gave 3.6 to 5.1 %.
This remains an estimate. The spread between published whirlpool measurements is wide, and no model agrees with all of them. If you have your own beer analysed and are consistently off, do say so and I will look into it.
The stand time and temperature also appear on the brew sheet and in the shared text, so that on brew day you can see at what temperature to hop and for how long. Both travel in BeerXML.
Pellets, cones or T-45?
For each hop addition you pick the Form it came in. This feeds into utilisation:
Form
Utilisation
Notes
Pellets T-90
100 % (default)
By far the most common. The plant material is milled, so alpha acids are released more readily
Whole cones
90 %
Alpha acids are still locked in the leaf and the hop bed holds back more wort
T-45 / Cryo
100 %
Lupulin concentrate. No extra factor — see below
T-45 and Cryo must not be counted twice. These products give more bitterness per gram because their alpha acid content is roughly twice as high — that is printed on the packet. Enter that higher percentage under Alpha acid and the IBU works out by itself. Applying another factor of 2 on top would count the concentration twice.
Existing recipes are set to pellets, so your calculated IBU does not change. On export to BeerXML the form is written as Pellet or Leaf; BeerXML has no separate category for T-45 or Cryo.
Harvest year and storage — hop ageing
Alpha acids degrade through oxidation. Enter the harvest year and storage method per hop addition and the app calculates with the alpha acid actually left. The effective percentage appears below the IBU value once the loss exceeds 2%. Leave the year empty and no correction is applied.
Storage
Loss per year
Example: 12% α after 2 years
❄️ Freezer, airtight
±5%
10.9%
🧊 Fridge, airtight
±14%
9.0%
🏠 Room temperature, airtight
±30%
6.1%
📂 Room temperature, open package
±45%
3.8%
⚠️ Estimate: actual loss varies strongly by variety (Hop Storage Index ranges from 0.2 to 0.6). If your package states the alpha acid percentage, use that; the database value is only a typical figure.
Isomerised hop extract (tetrahop, isohop)
Under Use choose Extract (post-fermentation) for products such as Tetrahop Gold, Isohop, Hexahop or Redihop. These extracts already contain isomerised alpha acids: they need no boiling and are dosed after fermentation, usually just before packaging.
Enter the dose in mL in the weight field (density ≈ 1 g/mL)
Enter the product's percentage of iso-alpha acids in the alpha acid field (Tetrahop Gold: 10%, Isohop: 30%)
Boil time is irrelevant and is ignored
Bitterness is calculated at near-complete utilisation: IBU = mL × %iso × 1000 / batch volume. Example: 2 mL of Tetrahop Gold 10% in 20 L gives 10 IBU.
💡 Why extract? Useful for adjusting bitterness afterwards, and tetra/rho variants make beer light-stable (no skunky flavour in clear bottles).
💡 BU:GU ratio: A useful guideline is IBU / ((OG-1)×1000). Below 0.5 = malty, 0.5–0.8 = balanced, above 0.8 = bitter-forward.
Yeast
Select a yeast from the database (Fermentis, Lallemand, Mangrove Jack's, Wyeast, White Labs). If yours is not there, pick ✏️ Add your own yeast… at the bottom of the dropdown: you fill in name, attenuation and form, and it appears in your recipe and in your ingredient list at once — with price, stock and shopping list. You can also do it beforehand via Ingredients → Custom yeast. Attenuation is required: it determines your final gravity, so the app cannot fill it in for you. The right-hand panel shows your pitching rate and compares it with what you need. That figure comes from the same cell model as the Yeast pitching tool (White & Zainasheff):
Million cells per mL per °Plato
up to OG 1.061
from OG 1.061
Ale (top-fermenting)
0.75
1.0
Lager (bottom-fermenting)
1.5
2.0
Two independent reasons, and they stack. A lager ferments at 8–13 °C: cold yeast grows more slowly and multiplies less, so you make up the shortfall at the start rather than letting the yeast catch up on its own — and the faults of underpitching, diacetyl and sulphur and esters, stand out immediately in a clean beer. Heavy wort puts the yeast under osmotic pressure, so it multiplies less well; hence a third on top from 1.061. A strong lager faces both, which is how it arrives at 2.0.
A higher rate does not automatically mean more yeast. It applies per °Plato, and strong beer has more of them. A pilsner at 1.048 (11.9 °P) needs 357 billion cells for 20 litres; a tripel at 1.075 (18.2 °P) needs 364 — almost the same, despite the lower rate. Only a strong lager really pulls away: a doppelbock at 1.080 comes to over 570 billion, and that is a starter, not a packet.
Dry yeast provides roughly 20 billion viable cells per gram, a pack of liquid yeast 100 billion. For dry yeast the app gives the advice in grams, for liquid yeast in packs — liquid yeast is not sold by weight.
Dry yeast: the manufacturer's own figure
For dry yeast the app does not follow the cell model but the dosage the manufacturer publishes, in grams per hectolitre. That figure already contains their own cell count and their own viability, so it is more reliable than assuming 20 billion cells per gram — a number that differs between manufacturers and even between strains.
Fermentis: 50–80 g/hL for ale, 80–120 g/hL for lager at 12–18 °C — their own specification
Other brands: 50–100 g/hL for ale, 100–150 g/hL for lager — a general range, and the app says so rather than pretending it is a manufacturer figure
From 15 °Plato the whole range scales with the strength of the beer. Fermenting a lager below 12 °C pushes the advice up further: Fermentis recommends up to 200–300 g/hL for W-34/70 at 9 °C. The app reads that temperature from the first step of your fermentation profile.
Why the lower bound sits above the cell model. For an ordinary 20-litre ale the cell model lands just over 9 grams and Fermentis on at least 10. That gap is deliberate: a manufacturer keeps its floor generous because it does not want complaints about sluggish fermentation. If you count cells yourself, you may go lower.
More than one yeast in a recipe
The yeast card is a list, just like malt and hops. + Yeast adds a row; per row you pick the yeast, the form and the amount. More than six yeasts in one recipe is refused — that stops being a recipe and becomes an experiment.
The Added column says when it goes in:
Primary — into the fermenter on brew day. Pitching two or more together is a blend: their cell counts add up.
Later — a number of days after brew day, day 7 by default. For Brett or a second strain joining during the secondary.
Bottling — only at bottling, after fermentation is complete and any lagering. This is where a bottling yeast such as CBC-1 belongs.
Bottling yeast is not a day-7 yeast. CBC-1 does not go in somewhere during fermentation but into the bottling bucket, together with your sugar — and weeks of lagering can sit between the end of fermentation and that moment. Hence the separate Bottling choice, without a day field: a day of fermentation would be both the wrong number and the wrong picture.
The list holds two bottling yeasts: CBC-1 from Lallemand and SafAle F-2 from Fermentis. Fermentis gives F-2 a dose of 2 to 35 grams per hectolitre at 15–25 °C, and advises against sprinkling it straight into the beer: rehydrate it first in at least ten times its own weight of sterile water at 25 to 29 °C.
F-2 shows a dash instead of a percentage. That is not a missing figure but a deliberate blank: Fermentis publishes no attenuation for this yeast — its data sheet says "n/a". Nor does it ever see wort, only priming sugar. A number here would suggest a specification that does not exist, and that number would then feed into your FG.
A yeast set to Bottling does not count towards your attenuation. It goes in after primary fermentation and sometimes after weeks of lagering; by then it has nothing left to say about your final gravity. So a wheat beer with WB-06 (67%) and CBC-1 (75%) calculates with 67%, not 75%. The exception hangs on the moment and not on the strain: set US-05 to Bottling and it does not count either.
That difference is not cosmetic. A yeast that only joins on day 7 does not count towards your pitching rate, which is about the cells you put into the wort at the start. Pitch two at once and the panel adds up the cells of both and sets the total against what you need — a dose in grams per hectolitre would be meaningless there, because it applies per product.
Attenuation is the highest of your yeasts. When co-pitching, the most attenuative strain determines your final gravity in practice; fermentation does not stop halfway because half your yeast gets less far. A weighted average looks more scientific and is worse brewing. The attenuation field stays yours: whatever you enter is kept.
The shopping list, stock and cost price count every yeast, each in sachets. The brew card and the share text state per yeast when it goes in. In BeerXML each yeast gets its own YEAST element; a late addition travels as ADD_TO_SECONDARY with the reason in the notes. A file with several yeasts is read back the same way.
A recipe with one yeast simply has one row. If you read in a recipe that still keeps the yeast as a single field — an old backup, a BeerXML file — it automatically becomes that first row, with the same amount and the same form.
Grams, packs or a starter
Next to the yeast choice is Yeast form. Choose Dry and you enter grams as always. Choose Liquid and you count packs. Choose Starter and you enter the number of litres of starter you grew — no more converting on a scrap of paper.
The app converts all three to the same figure: the number of cells that ends up in your wort. The right-hand panel puts that next to what you need, so you can see at a glance whether your starter was big enough. A litre of 1.036 starter holds about 37 grams of extract and yields roughly 1.4 billion new cells per gram with a stir plate. Without one, reckon on about half; the app assumes a stir plate and says so.
A recipe without a yeast form is read as dry yeast in grams. That is the safe reading: a recipe that only records a number of grams is not suddenly a number of packs.
The yeast form in your recipe overrides the database. The same strain is sometimes sold both as dry granules and as a pack of liquid yeast. What you set in the Form column decides the unit of the advice — even when the database knows that product differently. Buy a strain listed as liquid in dry granules, set the form to Dry, and you get a dose in grams.
Leave the amount field empty and there is nothing to compare, so the panel answers the other question: how much do you need? For liquid yeast it shows the number of packs to buy, for a starter the number of litres that yields that many cells.
Liquid yeast: cells per pack differ by brand
Liquid yeast is sold by the pack, and packs are not equal. The app uses the brand's own figure: Omega 150 billion, Wyeast and White Labs 100 billion, unknown brands a cautious 100. The advice is therefore given in packs, not grams.
Mind the OG. For liquid yeast the app uses the cell model, and cell demand is directly proportional to °Plato. A quadrupel at 1.090 needs almost three times the yeast of a session beer at 1.035 for the same volume.
Below 70% of the recommended count the message turns red, between 70 and 90% orange, and above double the app warns about autolysis.
Other ingredients
Add herbs, fruits, spices and finings via the 🍊 Other Ingredients card. The database contains ~45 ingredients in categories:
For each ingredient you choose the moment it goes in. The list follows the brew day: mash, sparge water, boil, whirlpool, dry hop, secondary, bottling. Brewing salts that belong in your sparge water are therefore set to Sparge water; on the brew sheet and in the shared text they then appear in that place instead of among the boil additions.
🍊 Citrus (orange peel, lemon zest)
🍓 Fruits (raspberries, cherries, mango)
🌿 Herbs (coriander, ginger, lavender)
✨ Spices (vanilla, cinnamon, cardamom)
🧊 Finings (Irish moss, rice hulls, gelatin)
Each ingredient has a maximum dose per 20L as a reference. Exceeding it triggers a warning.
Mash schedule
Add mash steps with temperature and duration. On brew day these steps appear in the log as individual countdown timers — start a step and the timer counts down automatically. On completion you get a browser notification (if you granted permission).
Brewbuddy '26 also calculates automatically:
Grain absorption — according to your equipment profile
Pre-boil volume — mash water + sparge water − grain absorption − dead space
Water/grain ratio — for mash thickness
Single infusion or step mashing
Below the mash schedule there are two rows of buttons. Quick add puts a single rest into the schedule; Whole schedule replaces the entire schedule in one click.
Button
Schedule
What for
🍯 Single infusion 67°C
67°C · 60 min
By far the most used. At 67°C both beta and alpha amylase still work: enough fermentable sugar for a dry beer, enough dextrins for body
🍯 Single infusion + mash-out
67°C · 60 min, then 78°C · 10 min
Same rest, with an amylase stop. Thins the wort and makes sparging easier
🧬 Classic step mash
52 / 62 / 72 / 78°C
Protein rest and separate amylase rests. Worth it with wheat, rye or poorly modified malt
For a drier beer go lower — 64 to 65°C yields more fermentable sugar. For more body mash at 68 to 69°C. The conversion advice below the schedule shows straight away how many minutes that temperature needs as a minimum.
⚠️ Replaces the whole schedule: these three buttons discard what is there. If you built a schedule yourself the app asks for confirmation first; switching between the ready-made schedules happens without questions.
Setting up your own equipment
Every brewing setup evaporates differently. Under Settings → 🔧 My brewing equipment you enter five values that drive the whole water calculation:
Setting
Meaning
Default
Boil-off rate
Litres evaporating per hour
3.0 L/hour
Grain absorption
Liquid retained by the spent grain
0.8 L/kg
Mash thickness
Water per kilo of malt in the mash tun; 0 = all at once (BIAB)
3.0 L/kg
Fixed mash water
Always mash with the same volume? Enter it here; 0 = do not use
0 L
Kettle/trub loss
What stays behind after transfer
1.5 L
Mash tun dead space
Liquid below the false bottom
0 L
Cooling shrinkage
Volume loss from 100 °C to 20 °C
4%
Below the mash schedule the recipe editor shows the full water balance: what the grain retains, what boils off (rate × boil time), kettle loss and shrinkage — plus the required pre-boil and total water volume. If your mash and sparge water do not match, you see exactly how many litres you are short. The button 💧 Fill water volumes from my equipment fills mash water, sparge water and boil volume in one go.
If you brew on more than one system — a club kettle and a smaller rig at home — store them separately. Enter the values, click 💾 Save as equipment and give it a name such as Club kettle 190 L. Above the form a dropdown lets you switch between them in one click; every field and the water calculation follow along. Your equipment profiles are included in the backup.
⚠️ A fixed mash volume belongs to one kettle. Set 230 L and then brew a 20 L test batch and it will not fit, so the app caps it and tells you. Switch equipment in that case rather than editing the numbers.
If you always mash with the same volume — the working capacity of your mash tun, say — enter it under Fixed mash water. It takes precedence over mash thickness and stays the same whether you use 50 or 60 kilos of malt; the sparge water absorbs the difference. If you work per kilo instead, leave this field at 0.
Sugar and malt extract do not count towards the water calculation. They dissolve, retain no water and usually never enter the mash tun at all. So only the grain determines grain absorption, mash thickness and the water-to-grain ratio. In the right-hand column Total grain and Total sugar are therefore listed separately; the second line appears only when the recipe actually contains sugar or extract.
Sugar and extract do not count here. Only grain holds water back in the spent grain, so only grain determines your mash water and your grain absorption. In a recipe with 10 kg of candi sugar that is a difference of over 8 litres. In your OG the sugar counts normally, of course.
Mash thickness determines how the total water is split between mashing and sparging. Classic mashing with a sparge sits between 2.5 and 4 litres per kilo; if you brew in one go at full volume without sparging (BIAB), enter 0. This number decides the split entirely: mash thinner than you enter here and you are assigned too little mash water and far too much sparge water. So enter what you actually do.
Dead space is added on top. If you have a false bottom, a pump or a manifold, there is liquid under your grain bed that takes no part in the mash. Enter it under Mash tun dead space and the app adds it to your mash water. A Grainfather G30 with 3.5 L of dead space and 2.7 L/kg therefore gets 5.65 × 2.7 + 3.5 = 18.8 L of mash water for 5.65 kg of grain. Leave those 3.5 L out and your grain sits in 11.8 L, a thickness of 2.08 instead of 2.7 — a quarter thicker than you asked for. The total water does not change; water simply moves from sparging to mashing.
Does that dead space stay behind, or carry over? That differs per system, and it makes exactly that many litres of difference to your total water. Hence the selector under the field.
Stays behind (loss) — a cooler with a manifold, a separate lauter tun, or any system where you transfer the wort to another kettle. Whatever sits below the false bottom does not come along, so you have to make it up.
Carries over into the kettle — a single vessel with a pump: Grainfather, Braumeister, Robobrew, Anvil Foundry, Brewzilla. That liquid sits in the very kettle you are about to boil in; you lift out the malt pipe and it comes along. It is not a loss then, just water that is not in your grain bed — which is exactly why it belongs with your mash water and not with your total.
The default is stays behind, as the app always had it. With an all-in-one system you set it once and it is right from then on.
Do you heat your sparge water in a separate vessel? Then there is a third place where water stays behind: below the tap and around the heating element. Enter it under Hot liquor tank loss. If you heat sparge water in the same kettle, or do not sparge at all, leave it at 0.
Does your dead space stay behind, or come along? Under the field Mash tun dead space there is a dropdown. With two separate vessels that liquid stays behind and is a loss; with a single vessel and a pump — Grainfather, Braumeister, Klarstein — it simply goes into the boil and is not a loss. With the dropdown set wrong, the app prepares exactly those litres too much. The water balance under your recipe says so as soon as a dead space is being counted as a loss.
This works differently from your mash tun dead space, deliberately so. Water below your false bottom still counts towards mash thickness; water in your hot liquor tank counts towards nothing. So your mash and sparge water do not change — running more over your grain bed than the recipe calls for would be nonsense. What changes is how much you put in that vessel and how much you prepare in total. The water balance under your recipe adds both figures as soon as you enter a loss.
The water/grain ratio the app shows with your grain bill is therefore the thickness in the grain bed: mash water minus dead space, divided by your grain. That is the number you mean when you say 2.7 L/kg — not what you pour into the vessel. With a fixed mash volume no such correction happens, because that number is your vessel's working volume and already includes the dead space.
Mash water in an existing recipe does not follow along. It is stored as a number in the recipe. If you later change your equipment profile — a different mash thickness, a dead space you did not have before — older recipes keep their old number. The water tab then shows a line with what your profile would give now, and a button to take those values. The app does not overwrite automatically: some recipes deviate on purpose.
More than one brewing rig
If you brew at home one week and on a club kettle the next, save both as profiles in your settings. On the recipe you then choose which rig it is written for. Leave that field empty and the recipe calculates with the rig from your settings — exactly as it always did, so nothing changes for your existing recipes.
That choice drives everything your kettle decides: mash water, sparge water and kettle volume, the water/grist ratio below the malt list — which subtracts your vessel's dead space — and the boiling point. That last one shows up in the bitterness: if the profile holds an altitude or a boil temperature of its own, the wort boils cooler, the alpha acids isomerise more slowly and the IBU comes out lower. Screen, recipe list and brew sheet then all say the same number.
The brew log carries the same choice, starting from whatever the recipe said. Brewed somewhere else that day? Switch it over: the mash water, sparge water, kettle volume and bitterness of that one brew are recalculated for that rig straight away — on the brew sheet you print and in the overview as well. Beside the dropdown you see what comes out.
Couple a different recipe to a brew that already sits on a rig, and the recipe moves to that rig rather than the other way round. On brew day the vessel you are standing at counts, not the one the plan was written for.
The recipe is left alone. Switching in the log changes that one brew only. The recipe is what you planned, the log is what actually happened, and those two belong apart. Your grain bill, hops, yeast and measured efficiency stay untouched as well: a different kettle changes your water, not your grist.
Delete a profile a recipe or brew still points to and the app falls back on your settings. Not silently: the vanished name stays in the dropdown marked as no longer existing, and a line appears saying your settings are being used instead. Otherwise your water calculation would change without anything warning you.
💡 Measure it yourself: determine your boil-off by measuring volume before and after the boil: (pre-boil − post-boil) ÷ boil time in hours. Do this once and all your recipes will be accurate.
Bottling: what actually came out
In the brew day log, under 🍾 Packaging & Carbonation, enter how many bottles you filled and how big they are. If part went into a keg, add that too. The app works out your bottled volume and puts your loss beside it: the difference from the batch size in your recipe, in litres and as a percentage.
The volume in the priming calculation follows along automatically, because that is exactly the beer you are priming. Type a figure there yourself and it stays — useful if you prime in a bottling bucket and do not bottle everything.
Why this is more than trivia. Your loss sits in the yeast bed, the tubing and what is left in the fermenter. If it runs consistently above ten percent, your kettle loss or dead space in Settings is set too low — and then your mash and sparge water come out short too. The number from counting bottles is a check on your whole water calculation.
Priming sugar: which kind and how much
The app works out how much sugar you need for the number of CO₂ volumes you want, allowing for the carbon dioxide already in the beer — which depends on the temperature the beer last sat at. Hence that temperature field: beer kept at 20 °C holds less CO₂ of its own than beer that was crashed cold, and so needs more sugar.
There are ten kinds to choose from. Behind each name is the factor: how many times more you need compared with plain table sugar. That factor follows from the fermentable share of the product — factor = 1 ÷ fermentable fraction.
Table sugar (sucrose) — ×1.00, by definition
Candi or soft brown sugar — ×1.03
Dextrose (glucose monohydrate) — ×1.11
Honey and sugar syrup — ×1.25, both about 80% fermentable
LME (liquid malt extract) — ×1.79, because that is DME with roughly 20% water added
These are typical values. Honey ranges from 78 to 82 percent fermentable, syrups differ by brand and malt extract by manufacturer. If you know the fermentable fraction of your product, work it out yourself: take the grams of table sugar the app gives and divide by your fraction. Molasses is deliberately absent: it ranges from 45 to 60 percent and carries so much flavour that you would not pick it for the carbonation — a figure that can be tens of percent out helps nobody.
What priming sugar does to your beer
That sugar ferments too, and you notice it two ways. It adds alcohol, and the water you dissolve it in dilutes your beer and increases your final volume. Enter that water under Dissolving water next to the sugar type; below the result you then see what it comes to on balance.
The alcohol follows straight from your CO₂ target, not from the type of sugar. Every molecule of sugar yields four molecules of alcohol and four of CO₂ — 184.3 against 176.0 grams by mass. So the same carbonation means the same alcohol, whether you use table sugar or malt extract.
An example: 20 litres of 6.0% beer to 2.4 volumes of CO₂ at 20 °C. That needs another 1.55 volumes, good for about 81 mL of alcohol — +0.40%. Dissolve the sugar in 0.3 litres of water and you end up at 20.3 litres and 6.31%. Net +0.31%, then: dilution eats a quarter of the gain.
Calculating boil-off instead of measuring it
Once the wort boils the temperature is fixed: all the energy left after heat losses goes into turning water into steam. That costs 2.26 MJ per litre, and that figure is independent of boil time, of how much is in the kettle and of how wide that kettle is. So if you know the power of your element, you do not need to measure.
Under Settings → 🔧 My brewing equipment, next to Boil-off, enter the power in watts and the percentage of the time the element is actually on during the boil. The app works it out: 1800 W for one hour is 6.48 MJ, divided by 2.26 gives 2.87 litres per hour. Use this puts that value in the field.
It is an upper bound. Part of your power leaks away through the wall, the lid and the extraction hood, and that part evaporates nothing. Kettle shape does matter there — through those losses, not through the evaporation itself. On gas, much of the flame's heat never enters the kettle at all. Measuring stays more accurate; this sum is a starting point and a sanity check on a measurement that looks odd.
What this means for scaling. Boil-off is not a percentage of your batch. Twice as much wort under the same element evaporates roughly the same litres per hour, not twice as many. That is why the app recalculates the boil volume from your equipment profile when you change the batch size, instead of scaling it proportionally.
Printing a recipe or saving it as PDF
Want the recipe on paper for brew day? Click 🖨️ Print / PDF in the recipe editor (or top right of the recipe summary in the log). A clean brew sheet opens in plain language with all key figures, water volumes, the mash schedule with tick boxes, grain bill, hop schedule, yeast and blank fields to write down your readings and notes. Choose Save as PDF in the print dialog to keep it instead of printing.
At the bottom are two ruled blocks to write in by hand: Brew day notes with eight lines and Tasting notes with six. They run the full width of the sheet, so a sentence actually fits. The lines are 8 mm apart — the height of ordinary handwriting — and a block is never split across a page break.
The water block opens with which water you are using. Not just how many litres of mash and sparge water, but whether that is your tap water, a profile you saved yourself, or diluted water — with the percentage and the number of litres of RO water alongside. If the app has no profile name, the six ion figures appear instead. The sheet only knows this if you clicked 📋 Copy into <name> on the water tab; if you never did, the line stays away rather than asserting something.
The brew sheet follows the order in which you work, not the order in which you typed the rows: the grain bill with the heaviest sack first, the hops from first wort through the boil and whirlpool to the dry hop, and the other ingredients from mash to bottling. In the recipe editor the rows stay where you put them — a row that jumps away while you are adjusting a weight is unworkable.
💡 BeerXML is something else: that export is meant for exchanging recipes with other brewing software (Brewfather, BeerSmith) and is not readable on paper. Use the print button for that.
Sharing your recipe on a forum
A forum post, an e-mail or a chat message does not need a PDF but text you can paste. In the recipe editor click 📋 Copy recipe: the key figures, the grain bill with percentages, the hop schedule, the other ingredients, the yeast, the mash schedule, the fermentation schedule and your notes go to your clipboard as plain text. Paste with Ctrl+V, or ⌘V on a Mac.
The water block and the blank fields are left out. Those are for brew day and tell a reader nothing — your mash water depends on your equipment, not on the recipe.
Brewing at altitude — boiling temperature and bitterness
Above sea level water boils below 100 °C. Alpha acids therefore isomerise more slowly and bitterness comes out lower — a difference that is far from negligible at high altitude. Enter your altitude above sea level under Settings → 🔧 My brewing equipment; the app calculates the boiling point and corrects every IBU calculation automatically. If you know your actual boiling temperature (measured with a thermometer), enter it under Boiling temperature — it overrides the altitude calculation. Altitude and boiling temperature belong to the equipment profile: if a recipe has picked a rig of its own, the bitterness is calculated with that rig's boiling point.
Leave the Boiling temperature field empty if you want altitude to be taken into account. A value there always wins, even over an altitude you enter later — type 300 m while 100 °C is still in the field and nothing changes in your IBU. The app now warns about this. The empty field shows, in grey, the temperature that follows from your altitude.
Altitude
Boiling point
IBU for a 60-min boil
0 m (sea level)
100.0 °C
100%
1000 m
96.7 °C
−13%
2000 m (e.g. Mexico City)
93.4 °C
−24%
2850 m (Quito)
90.5 °C
−32%
3400 m (Cusco)
88.7 °C
−35%
3650 m (La Paz)
87.9 °C
−37%
The boiling point follows from the barometric altitude formula combined with the Antoine equation for water; the isomerisation rate from the Arrhenius equation using the constants of Malowicki & Shellhammer (2005). Isomerised hop extract is not corrected — it is already converted.
💡 Want the same bitterness anyway? Increase your hop charge or extend the boil; the app shows the result immediately.
Conversion advice — avoid under-mashing
Below the mash schedule (and next to the timers in the log) an advice box shows the total saccharification time. The app adds up all rests between 60 and 73°C and compares that with the time needed at your highest saccharification temperature for full starch conversion:
Saccharification temperature
Advised minimum time
70–73°C (alpha-amylase optimum)
25 min
67–69°C
35 min
64–66°C
45 min
62–63°C
60 min
60–61°C (beta only, effectively)
90 min
Adjust one step and the advice recalculates instantly, showing how many minutes you are short. This prevents incomplete conversion and lower efficiency.
⚠️ Note: this is a time-and-temperature guideline. Only an iodine test confirms that the starch has fully converted. Poorly modified malt, a coarse crush or a thick mash require longer times.
Calculations & calc panel
All calculations update live. The calc panel (right side of the recipe editor) shows:
Value
Explanation
OG
Original gravity
FG
Final gravity (based on attenuation)
ABV
Alcohol percentage
IBU
Bitterness (Tinseth or Rager)
EBC
Colour (Morey formula)
Pre-boil SG
Expected gravity before the boil
BU:GU
Bitterness/gravity ratio
Pitching rate
Yeast dose per litre, with advice
Cost
Calculated from your prices
Enter your own purchase prices on the Ingredients tab, in the Price column next to each ingredient (malt €/kg, hops €/100 g, yeast €/gram, other ingredients €/100 g or per piece). Leave a field empty and the app uses the default price shown in grey. Changes are saved immediately; ↺ Default prices resets a whole category.
Click Show cost breakdown per ingredient below the cost figure to see how it is built up: per ingredient the name with its cost, and underneath the arithmetic (for example 5 kg × € 2.35/kg). The total is at the bottom. Ingredients without a known price are shown in orange and count as € 0 — the cost is then too low.
Where your original gravity comes from
Under Original gravity (OG) in the calculation panel there is a fold-out: Show gravity breakdown per ingredient. It works like the cost breakdown, but in gravity points.
The grain bill is one line, with the total grain weight and the efficiency used. Per malt the contribution is already in the malt table itself; repeating it here would make the list long without adding anything. Sugar and malt extract each get their own line, because that is usually the question: which part of my gravity does not come from the grain. Behind each line a bar shows its share as a percentage.
The total is at the bottom, and it is exactly the figure shown above it. Late additions — sugar during fermentation, priming sugar — sit below in grey with their moment, and do not count towards that total: they are not in your wort yet when you measure the OG. What they would add together is stated as well, because that is the figure the alcohol calculation uses.
The lines are rounded so that they visibly add up to the total, and the percentages to a hundred. Round each line on its own and two of them may go up, leaving the sum a thousandth off — you then read 0.058 + 0.011 with 1.068 below it. The app therefore distributes first and rounds after, as in apportioning seats: no line is ever more than one thousandth away from its own value.
Excise duty (theoretical)
Below the cost figure the app shows what Dutch beer excise duty would be owed if you sold this beer commercially. You get two amounts: the standard rate, which applies to breweries producing more than 200,000 hl per year, and the reduced rate for independent breweries up to 200,000 hl per year. Both are charged per hectolitre per percent alcohol by volume, with the same minimum amount per hectolitre for either: on light beers that minimum applies rather than the alcohol content. The rates come from the Dutch customs excise tariff list. If you brew at home for your own use you are exempt and owe nothing; the amounts are shown for information.
As a home brewer you pay nothing. Beer brewed at home for your own use is exempt from excise duty (Dutch Excise Act, art. 5(3)(c)). The figure is shown purely for information — for instance to see what a recipe would cost in a commercial setting. This is not tax advice, and rates outside the Netherlands differ.
Timers
The timers keep running when your screen locks. They read the clock rather than counting seconds, so a phone going to sleep — or a tab moving to the background — will not make them fall behind. Come back and the correct time is there straight away, and hop additions that came due in the meantime are still announced.
Besides the mash steps the log has two timers: a boil timer and a stopwatch. The boil timer counts down: enter the number of minutes and click ▶ Start. Link a recipe and its boil time is already filled in. At zero you get the same alarm as a mash step — sound that repeats until you acknowledge it, a vibration on Android and a browser notification. You may still change the time while boiling; the elapsed time is kept.
The log has three general timers — Mash, Boil and Stopwatch — and alongside them the mash step timers from your recipe. If the recipe has no mash schedule, the four default steps are ready: protein rest 52°C/15 min, beta amylase 62°C/45 min, alpha amylase 72°C/20 min and mash-out 78°C/10 min. Click ▶ Start on a step to start its countdown; adjust each step's duration directly in the table — even while the timer is running.
When a step finishes you get an audible alert (three beeps, repeated every 5 seconds until acknowledged), a pulsing green banner in the log, a flashing row in the step table and — on Android — a vibration. Click ✓ Got it to stop the alarm. Sound is enabled the moment you press ▶ Start, because browsers (especially on iPhone) only allow audio after a user action.
Gravity readings & fermentation progress
Record gravity readings per phase (pre-boil, OG, primary fermentation, FG). Enter the temperature too — Brewbuddy '26 automatically shows the reading corrected to 20°C. That applies to every temperature except 20°C itself, including 0°C: measure the FG of a beer that has been cold-crashed and your hydrometer reads almost two points high.
Leave the Date & time field empty for a reading you are taking right now. Fill it in and you add an older reading afterwards — useful when moving a logbook over from another program. The reading then takes its own place in time rather than going to the bottom of the list: fermentation progress reads the most recent measurement, and that should be the last one.
Once you have an OG reading and a later reading, a fermentation progress bar appears with the current attenuation percentage and current ABV.
Carbonation
The carbonation calculator is at the bottom of the log. Enter: desired CO₂ volumes, beer temperature at bottling and beer volume. Brewbuddy '26 calculates how many grams of sugar (or honey, DME) you need.
Water
The pH of your source water belongs to your tap, so it is stored: it goes into your water settings and into a profile you save yourself. Pick that profile later and your measured pH is back. The built-in profiles — Pilsen, Burton, Dublin — do not have one: those are ion profiles, not water samples, so they leave your measurement alone.
The water tab lets you enter your source water profile and choose a target profile. Brewbuddy '26 calculates which minerals to add (gypsum, calcium chloride, Epsom salt, sodium and magnesium salts).
Entering and saving your own water
You are not limited to the built-in profiles: simply type the values of your own tap water into the six ion fields. Then click 💾 Save as profile and give it a name — it appears at the top of the list under "🧑🍳 My own water" and can be recalled with one click, also as target water. Use 🗑️ to delete one. Your profiles are included in backups and the JSON export.
Your water values stay put; there is nothing to link. The water tab is one set of settings for the whole app, not something per recipe or per installation. If you always brew in the same brewery, enter your water once, save it, and you will find it again at every start — including the chosen profile name in the picker. Picking a profile from the list is therefore only for putting the six fields back on those values, not something to repeat each brew day.
⚠️ Saving does not happen by itself. At the bottom of the results panel is 💾 Save water settings; without that click your values are gone once you close the app. The 💾 Save as profile button does both at once: it stores the profile and saves your current water settings.
For brewers using RO or distilled water there are two salt-free starting profiles: Demineralised / RO water (all ions zero) and Rainwater. Ideal as a base to build up with salts yourself.
A style the app does not know stays put. Recipes from Brewfather or BeerSmith often carry an English style name such as "Belgian Tripel". It is not in the list, but it is added below it with an asterisk — just like an ingredient that is not in the database. Search the styles and your choice stays selected even when it falls outside the filter; a line underneath says it is hidden.
💡 Where to find your water values? Most water companies publish an analysis per postcode on their website. Look for calcium, magnesium, sodium, chloride, sulphate and bicarbonate (or "hardness" and "HCO₃"). If in doubt, have your water analysed once.
Copying your water treatment into the recipe
The water tab does the maths, the recipe keeps the result. As long as your salt additions live only on the water tab, they are not on your brew sheet, not on your shopping list and not in your cost price — and there is only one water tab, while you may have ten recipes.
So link a recipe and click 📋 Copy into <name> below the analysis. The button puts into that recipe:
the mash and sparge water as entered here;
every salt and acid addition that is not zero, as a row under Other ingredients, timed Mash or Sparge water;
which water it is: the source profile name, the dilution percentage and the six ion values. These appear at the top of the water block on the brew sheet, so the paper says whether you are brewing with tap water, RO water or a blend.
A profile name that no longer fits is not quoted. The picker stays on "Dublin" even after you adjust an ion field by hand. On screen that is fine, because the figures sit right beside it — on a printed sheet they do not. If anything differs from the profile, the sheet prints the six ion values instead of a name.
The brewing salts are ordinary database ingredients, under the group 🧂 Brewing salts. They therefore count towards the shopping list and the cost price, and you can enter your own purchase price for them on the Ingredients tab.
Pressing again replaces, it does not stack. Adjust the salt table and click again, and the new state takes the place of the old one. Rows you typed in yourself at the mash or sparge moment go with it; anything at another moment — lactic acid at bottling, oak spirals in secondary — is left alone.
Lactic acid carries its strength in the name, because one millilitre of 80% is not the same as one millilitre of 88%. Dilute to, say, 30% yourself and that percentage appears in the name, with the ingredient marked by an asterisk in the picker.
⚠️ Nothing happens on its own. The water settings are stored once and belong to no recipe. Change something about your water later and the copied rows in your recipe do not follow — click the button again.
Which acid should you use?
Acid
Strength
What else it does
Lactic acid 80%
10.5 mEq/mL
What is normally sold in the Netherlands and Belgium. Above ~400 mg/L in the beer it becomes noticeable as a slight tartness
Lactic acid 88%
11.8 mEq/mL
The American standard, and what most English-language literature assumes. Same acid, 12% stronger per mL
Phosphoric acid 75%
12.1 mEq/mL
Flavour-neutral — phosphate largely precipitates with calcium in the mash. Same dose in mL as lactic acid
Hydrochloric acid 10%
2.88 mEq/mL
Adds chloride, which accentuates maltiness. Needs over four times the volume
Lactic and 75% phosphoric acid are almost equally strong: where you need 3 mL of lactic, roughly the same amount of phosphoric does the job. The difference is flavour. If you have to acidify heavily — soft water with a lot of dark malt, or a pale lager with hard water — phosphoric acid keeps you below the taste threshold.
⚠️ Check your label: lactic acid is sold in several strengths, and that makes a large difference in dosing. Below the lactic acid row in the salts table, enter your own percentage under strength; the app immediately shows how many mEq per millilitre that works out to. 80% is the norm in the Netherlands and Belgium, while American recipes and literature almost always mean 88%.
Diluting it yourself — usually a good idea
Concentrated lactic acid is corrosive, and on a 20-litre batch you only dose a few millilitres of it. One drop too many is already 10% of your addition. Many brewers therefore dilute to, say, 30% first: you work in whole millilitres instead of tenths, and less can go wrong if you spill.
Simply enter your own percentage in the strength field. The app derives the solution's density from a measurement table and calculates the strength from that, so 30% is just as accurate as 80%. For orientation: 80% ≈ 10.5 mEq/mL, 50% ≈ 6.2, 30% ≈ 3.6, 10% ≈ 1.1.
⚠️ Dilute by weight, not by volume. A lactic acid percentage is a mass percentage (w/w). To go from 80% to 30%, weigh out 100 grams of 80% lactic acid and make it up to 267 grams with water — not to 267 millilitres. The general sum: new weight = old weight × old percentage ÷ new percentage. Diluting by volume puts you over 10% off, which throws away the very precision you were after.
Not sure it worked out? Measure it
Under Tools you will find 🧪 Measure lactic acid strength. Enter your refractometer or hydrometer reading there and you get the mass percentage back, with a button to put it straight into the water tab.
The hydrometer is the more accurate: for that the app simply reads the same density table backwards. It does need a full trial jar of your acid.
The refractometer needs only two drops, but the Brix scale is calibrated for sugar, not lactic acid. The app therefore converts in two steps: from Brix to refractive index via the sugar scale, and from refractive index to mass percentage via a straight line between water and pure lactic acid. Expect roughly one percentage point of uncertainty — plenty good enough, because the alternative is guessing and that easily costs ten percent.
Either way, measure at 20 °C, because that is the temperature both tables are based on.
Diluting tap water with RO or distilled water
With hard water and a pale lager in mind, diluting is often easier than acidifying. Under Dilute with RO/distilled water enter what part of your total water is RO — as a percentage or in litres, whichever suits you. The other field follows.
Dilution is linear: one part tap water to one part RO halves every ion. Nothing reacts and nothing precipitates; it is the same amount of dissolved matter in more water. RO, deionised and distilled water count as zero here; in practice RO retains a few mg/L, and that disappears against the uncertainty in your own water report.
The six ion fields remain your water report. They do not change because you dilute — that is what your water utility measures. What actually goes into the kettle is on the line below. That way you do not lose your own figures and you cannot dilute twice over.
Everything that follows from your water uses the diluted figures: the ion overview, residual alkalinity, mash pH and sparge pH. The salts you add come on top of the diluted water, which is right — you dissolve them in the mixture.
⚠️ Diluting lowers everything, including what you wanted to keep. Along with the bicarbonate go your calcium and sulphate. Usually that is no obstacle: you top those up with brewing salts, and that is exactly why this order works — dilute until your alkalinity is right, then add salts until your profile is right.
Letting the app work out the salts for your target
Above the salt table sits ⚗️ Calculate salts for target profile. It looks at your source water — after dilution — and at the target profile you picked, and fills in the six brewing salts that get you closest. Below it you see, per ion, where you end up against where you were heading.
Calcium chloride comes as granules or as a liquid 36% solution. Next to the button there is I use liquid calcium chloride (36%): tick it and the button works in millilitres and leaves the granule field alone. The tick belongs to your brewery and is stored with your water settings. Both forms deliver the same ions — the app swaps the salt inside the calculation itself, so calcium and chloride both come out right, not just one of them.
Do not convert by hand. One millilitre of solution holds about 0.65 grams of granules — put a gram figure in the millilitre field and you are 55% too high. What the button fills in is right; if you enter something yourself, check the unit on the row.
The mash and sparge additions get the same concentration, so different weights: you treat your water, not your mash. Clear salts puts everything back to zero.
⚠️ Salts can only add. If your source water is already above target for an ion — often bicarbonate with hard water — no salt exists that lowers it. The app tells you which ions those are; the only way down is diluting with RO or distilled water. So dilute first, then calculate the salts.
If the calculation picks chalk, the app warns about it. Chalk is the only way to add bicarbonate without sodium, but it only half dissolves in the mash — expect less effect than shown, or use baking soda and accept the extra sodium.
The acids are left alone. Those belong to pH, not to the ion profile. How much lactic acid you need is already stated under the calculated mash pH and beside the sparge water — a separate sum, and it does not change when you press the salt button.
It is a least-squares calculation: six salts, six ions, and the condition that an amount can never be negative. A perfect hit is usually impossible — gypsum brings calcium and sulphate in a fixed ratio, so if your target does not have that ratio it becomes a compromise. That is why the deviation per ion is stated.
Your sparge water pH
That is a different question from mash pH. There your grain bill decides; here it is the water itself. Sparge water that is too alkaline draws tannins from the husks in the last runnings, which you taste as dry astringency. The rule of thumb: stay below pH 6.
Enter the pH of your source water with your water report. Without that measurement the app does not calculate this, deliberately so: how much carbon dioxide sits in your tap water depends on your plumbing and your tap, and cannot be derived from the rest of the analysis. Pretending your water is in equilibrium with the air gives a pH that is far off.
The method is the carbonate equilibrium: pH = 6.38 + log(HCO₃⁻ / CO₂). Acid converts bicarbonate into carbon dioxide — mole for mole off the one and onto the other. Your measured source pH fixes the starting point, so the carbon dioxide content does not have to be guessed.
If your sparge water comes out above 6 the app says so and works out how much more lactic acid is needed to reach 5.8, accounting for what you already added. Once all the bicarbonate is gone the pH drops away steeply; that is where this model stops, and the app says so honestly instead of inventing a figure.
Demineralised, RO and distilled water
Brew with water that carries no bicarbonate and there is no buffer. The carbonate equilibrium above does not apply: your sparge water pH is simply the pH you measure, and adding more water does not change it.
That is also the answer to whether you should acidify: no. Demineralised and RO water sit at around pH 6 already, below the point where tannin extraction starts, and there is nothing to buffer away. The app says there is no buffer and leaves out the acid advice.
Add acid anyway and the pH drops steeply. Nothing holds it back: half a millimole of lactic acid per litre already takes roughly neutral water down to pH 3.6. The app works that out with the weak-acid approximation [H⁺] = √(Ka × C) for lactic acid (pKa 3.86). With phosphoric acid the result is lower still.
Mash pH — link your recipe first
Mash pH depends mostly on your grain bill: dark and caramel malts are acidic, base malt much less so. So pick a recipe at the top of the water tab under Link recipe. The app takes over the mash water volume and calculates pH from that specific grain bill. Without a linked recipe it deliberately shows a dash instead of a misleading number.
The model uses each malt's pH in distilled water and its buffering capacity per kilo. Your water's alkalinity pushes that pH up, acid pushes it down — and every extra millilitre of acid keeps working, even after all bicarbonate has been neutralised. When pH is too high the app shows roughly how many millilitres of lactic acid you need, using the strength you selected in the salts table.
Granules or liquid? Mind the unit
Calcium chloride comes in two forms, and they are certainly not interchangeable. The granules you buy as a powder are the dihydrate CaCl₂·2H₂O: one gram delivers 273 mg of calcium. The liquid 36% solution is entered in millilitres: one millilitre delivers 176 mg of calcium and 312 mg of chloride.
The salts table therefore has two separate rows. Enter the liquid on Calcium chloride 36% liquid (ml), not on the granules row above it.
⚠️ The common mistake: entering millilitres on the granules row. You are then 55% off — the app calculates with more calcium than you actually add. The other way round: 1 mL of liquid ≈ 0.65 g of granules.
The arithmetic behind it: the 36% solution has a density of about 1.35 g/mL, so one millilitre contains 0.486 grams of anhydrous CaCl₂. Of that, 36.1% is calcium and 63.9% chloride. Those figures match what the manufacturer prints on the bottle: 1 mL per 10 litres gives 17.6 mg/L of calcium and 31.2 mg/L of chloride.
Metabisulfite-based antioxidants
Products such as Antioxin SBT, or plain potassium metabisulfite, scavenge oxygen and keep your beer fresh for longer. They do one thing that is easy to overlook: the sulfite largely oxidises to sulfate, which shifts your water profile. In a soft-water pilsner a single dose can treble the sulfate level and push the chloride-to-sulfate balance from round to dry and bitter.
So fill in the Antioxidant (metabisulfite) row in the salts table: the number of grams, and below it the percentage of potassium metabisulfite printed on the packaging. That way the field works for any brand. Antioxin SBT contains 45%, Antioxin SB 46.8%, plain KMS 100%.
Product
Dose
Extra sulfate
Antioxin SBT
0.5 g per 10 L
about 17 ppm
Antioxin SBT
1.0 g per 10 L
about 34 ppm
Potassium metabisulfite
1.0 g per 10 L
about 75 ppm
The arithmetic. Potassium metabisulfite (K₂S₂O₅, 222.31 g/mol) yields two sulfur atoms per molecule and therefore two sulfate ions of 96.06 g/mol. Complete conversion would give 0.864 grams of sulfate per gram. It never gets that far: some sulfite binds to carbonyls and some escapes with the CO₂. The app therefore uses the practical factor of 0.87 common in winemaking — 0.752 grams of sulfate per gram of metabisulfite. Treat it as an order of magnitude, not as two decimals.
⚠️ Only what goes in before or during the mash: leave this empty for an antioxidant you dose after fermentation, such as Antioxin SB. The water tab models your mash water, and such a late addition contributes only 3 to 10 ppm anyway — lost in the noise.
Two things the app deliberately ignores. Potassium is not tracked: it appears in none of the target profiles and has no flavour threshold at the levels reachable here. And the ascorbic acid often present in these products is indeed an acid, but its effect on mash pH stays below 0.05 — smaller than the uncertainty of the pH model itself.
Acidifying with acidulated malt instead of an acid dose
Acidulated malt — Sauermalz — is ordinary base malt that has been soured with lactic acid bacteria. You weigh it out like any other ingredient and it lowers the mash pH without you having to reach for a pipette.
Add it in the recipe editor's malt section; it sits in the dropdown under the group 🍋 Acidulated malt. Enter the weight and you are done: as soon as the recipe is linked in the water tab, the acidification is included in the mash pH shown there. Below the pH the app reports exactly how much acid the malt contributes and how many millilitres of lactic acid that equals.
⚠️ Do not double dose: the acidulated malt is already in the calculated pH. If you also enter lactic acid in the acid table, you are acidifying twice.
Share of acidulated malt
Effect on mash pH
1% of the grist
about 0.1 lower
2%
about 0.2 lower
3%
about 0.3 lower
This is Weyermann's rule of thumb, and the app works to the same order of magnitude. The arithmetic behind it: at pH 5.45 acidulated malt has an effective lactic acid content of roughly 3.13%, so one kilo delivers 31.3 grams of lactic acid. Divided by the molar mass of 90.08 g/mol that is 347 mEq of acid per kilo — the same unit the app uses for an acid dose. A hundred grams of acidulated malt therefore equals about 3 mL of 88% lactic acid.
Stay below 5% of the grist; above 10% the app warns you, because the beer turns noticeably tart. For styles that want exactly that, such as Berliner Weisse or Gose, you can go higher. In extract and colour acidulated malt behaves like pilsner malt, so your OG and EBC barely change.
⚠️ Still an estimate: real values vary by malt batch and water source. Measure your mash pH after 10–15 minutes with a calibrated meter; aim for 5.2–5.6 (measured at room temperature).
Track how much malt, hops, yeast and other ingredients you have in stock. Four buttons sit at the top: 🌾 Malt & Grains, 🌿 Hops, 🧫 Yeast and 🧂 Other ingredients. For malt and hops the figure turns red once you drop below the threshold; yeast is counted in packets.
Other ingredients carry the unit that belongs to them: grams for coriander, millilitres for lactic acid, pieces for an oak spiral. There is deliberately no "nearly out" threshold — one threshold for a category mixing grams of spice with litres of acid is an invented number. Whatever you are short of for the recipes you want to brew appears on the shopping list, which is where it belongs.
Yeast counts in sachets by default, but you can switch that to grams per yeast. That is there for anyone who buys a 500 gram brick: a sachet cannot be split, a brick can, and then you want to count in grams. Next to the stock field are a dropdown for the unit and a field for the weight of one package — a sachet of dry yeast is 11.5 g, a pack of liquid yeast about 100 g, your brick 500 g.
Switch a yeast over and the app converts your stock on the spot and says what it did: three sachets of 11.5 grams become 34.5 grams. Nothing changes behind your back, and the choice applies to that yeast only — most brewers have both sachets and bricks in the fridge. Changing the package weight leaves your stock alone; there is not suddenly more or less, only one package weighs differently.
Your shopping list, your cost price and the raw material ledger in the excise module all follow that choice. If a yeast counts in sachets, a recipe calling for 23 grams is rounded up to two sachets: half a sachet does not exist in the shop. If it counts in grams, 23 grams is simply 23 grams, and 477 grams are left in your brick.
Your brewing salts are here too. Since the water tab puts salts into your recipe as ingredients, gypsum, calcium chloride and lactic acid count towards your shopping list. Enter what is in the cupboard here and they drop off the buying list.
Customs and excise duty
This module is off by default and you will find it under ⚙️ Settings → 🛃 Customs and excise duty. If you brew at home for your own use, leave it off: own use is exempt and there is nothing to declare. If you hold a licence — a tax warehouse, or the equivalent in your country — a 🛃 Excise tab appears with three panels.
This is an aid, not a replacement for your statutory records. What counts as the prescribed registration is set out in your licence, not in this app. Use it to keep and check your own books, and hold the result up against what your supervisory authority asks of you.
The three balances
An inspection comes down to three sums that each have to balance on their own:
What does not add up is kilos of malt against litres of beer: that depends on your efficiency and is not a checkable identity. Anyone offering it as proof proves nothing. The three balances above do add up, each on its own, and together they account for the chain from raw material to duty paid.
Switching it on
When you switch the module on, the app writes an opening stocktake dated today for every raw material you hold stock of. That is your zero point: without it your first purchase would become the entire balance, since the ledger would have no opening figure. Switching it off erases nothing — your ledger stays, and only the inventory screen goes back to reading the loose number.
Raw material ledger
The ledger consists of entries, not balances. Every entry carries a date, a kind and a quantity, and that quantity is always positive: the kind determines the direction.
Kind
What it does
Stocktake
sets the balance to what you counted; everything before it no longer counts
Purchase
adds, with supplier and amount
Use
subtracts, with the batch number it went to
Write-off
subtracts without beer having been made of it — spoiled, spilled, discarded
Entries are added up by date. If you record two things on the same day, the order in which you enter them counts: a stocktake you enter after a use on that same day also counts after that use. That is how you write it down and therefore how you mean it.
When you create a brew, the whole grain bill goes into the ledger automatically as use, on the brew date and with the batch number attached. That way every kilo of malt can be traced to the batch it disappeared into. The units are the same as on the inventory screen: malt and hops in grams, yeast in sachets or grams as you choose, other ingredients in their own unit.
If you adjust something in the log on brew day — a weight, an extra addition, an ingredient removed, a different yeast quantity — the use is recorded again. So the ledger holds what actually went into the kettle, not what you intended. Change the batch number and it moves along to the ledger entries; link a different recipe to the brew and that grain bill replaces the old one.
If you switch the module on with a log already full of brews, the grain bill of all of those brews goes into the ledger too, each on its own brew date. Your balance does not change because of it: those entries sit before your opening stocktake, and a stocktake sets the balance. What you do get is traceability across your existing batches — exactly the column a raw material inspection looks at.
Your inventory screen follows the ledger. As long as the module is on, the ledger is the truth and the inventory screen shows the balance that follows from it. Type a figure there and the app writes a stocktake — you are, after all, saying how much is on the shelf. For a raw material nothing has ever been recorded about, the loose number stays, so your store does not look empty on the day you switch the module on.
Reading an order or invoice
Purchases are the one thing the app cannot derive from your own data: your order confirmation is nowhere in BROUWHULP '26. To save you retyping it line by line, there is a paste box below the raw material ledger. Open your supplier's invoice, select the text and paste it in; the app finds the article lines and proposes purchase entries. Headers, shipping costs, subtotals and VAT are skipped.
Why pasting rather than dragging in a PDF: reading a PDF properly takes a library of about a megabyte, and even then it cannot read a scanned invoice. This app has no dependencies at all and that is its strongest security argument. Selecting text is something anyone can do, in any reader, including on a phone — and it works with every supplier.
If the amounts are not on the same line as the description, the app takes them from the lines below. Text from a PDF rarely comes out one table row at a time: often each column lands on its own line, or the whole column row runs together as 18568 1.00 63.99 63.99 1 — article number, quantity, unit price, total, line number. The last amount is the line total. The quantity comes from the column written as "1.00" that is not the last amount; if there is none, from the last whole number that can pass for a quantity. A number above a thousand is an article number, not an order.
Below the paste box is 🧾 Recorded invoices: every invoice you have processed, newest first, with date, invoice number, supplier, the number of recorded lines and the amount. That tells you at a glance whether you have already entered an invoice. The amount is the sum of the lines you recorded and therefore not necessarily the invoice total: lines you unticked or could not link are not in it. That is why the line count sits next to it. Click an invoice to unfold it: you then see the lines it contains, each with the raw material, the quantity and the amount. If the amount does not match the invoice, this is where you see the difference. A raw material that appears twice on one invoice is flagged — that is nearly always the invoice read in twice rather than two lines on the paper. The same goes for an invoice number that appears on more than one date for the same supplier: the invoice was recorded twice, or once with the wrong date. The bin behind a line removes that one line; Delete whole invoice takes the whole invoice back out, stock effect included. Consumption from a brew stays put: that does not belong to an invoice.
Entering a brew retroactively
If you switch the customs module on after years of brewing, you will want your old brew days in it after all. You can. Create the brew as usual and then set the brew date in the log back to the day you actually brewed; the grain bill moves along with it in the raw-material ledger. The release date is entered separately with the release, so a beer brewed in March and released in May lands in the right period on both counts.
Your current stock does not change, and that is correct. When you switched the module on, an opening count was written with the stock as it stood in your cupboard at that moment. A count sets the balance; everything in the ledger before it is already accounted for. Enter a brew from 2024 and its grain bill lands neatly in the ledger as a trail for the customs authority, but your current stock does not drop a second time. If it did, you would be deducting the same sack of malt twice.
Do not be alarmed by a negative balance on an old date. Ask for the balance on a day before your opening count and you will find consumption but no purchases yet, so a negative number comes out. That is not an error in your records but a consequence of where you started counting. If you want your old purchases to add up too, record those invoices as well with their own dates — the invoice overview and the raw-material ledger accept any date.
Your shop calls it something else than the app does
An invoice may say Aroma mout type Amber 50 EBC while the malt list calls that same malt Aroma Amber 50 EBC from Dingemans. It goes like that with nearly every supplier: the maltster gives a name, the shop wraps its own description around it, and you end up hunting for something that is there but under a different name.
So every ingredient carries a set of alternative spellings alongside its name. You will find the Aroma Amber on "amber", on "aromatic amber" and on the description from your invoice. The same applies to the search box on the Ingredients tab. The names themselves do not change: your recipes, prices, stock and raw-material ledger all hang on them.
The invoice reader uses it too. Read in an invoice with an article you have never linked, and the app fills in a proposal marked guessed from the description — check that this is right. That is deliberately something other than linked before: the latter is your own choice from a previous time, and it always takes precedence.
A guess stays a guess. Look it over before you record it. The app would rather guess nothing than something: at least four characters must overlap, matching is on whole words — so citric acid does not become Citra — and if two ingredients fit equally well it picks neither. But it cannot rule it out entirely, and a raw material recorded against the wrong ingredient sits in the ledger the customs authority reads.
Above every dropdown there is a search box. The list holds over sixty malts and is sorted alphabetically, not by supplier — Weyermann dark wheat malt therefore sits under T, between Special B and Roasted Wheat Malt, and not next to the other Weyermann malts. Type "weyermann" and only those remain; type "dark wheat" or "weizenmalz dunkel" and one remains. The box looks at the same text as the search box on the Ingredients tab, so it sees the alternative spellings too. Beside it you see how many entries are left out of how many.
Whatever you have already chosen always stays in the list, even when your filter does not match it. Otherwise a filter would throw away your link without you clicking anything. Switch category and the filter is cleared — a search term from the malt list would hide the entire hop list.
For a yeast the Quantity column holds a dropdown rather than a fixed label: that is where you switch between sachets and grams on the spot. Choose grams and the weight printed on the invoice immediately becomes that yeast's package weight — you just bought that box, after all. As long as you count in sachets and the invoice names a different package size than you have set, the app says so: "1 sachet" does not match a 500 gram box.
Per line you choose the category and the ingredient. The quantity follows from the count times the package size, converted to the unit your inventory screen uses: two 25 kg sacks become 50,000 grams, and yeast counts in the unit you chose for that yeast. If the invoice unit does not match the ingredient's — kilos on something measured in millilitres — the field stays empty and the app says you have to fill it in yourself. A wrong figure is worse here than an empty field.
The price per unit is worked out from the line total, in the unit your price table uses, and goes into that table if you leave the tick box on. Your cost price then uses what you actually paid rather than the default price. Correct the quantity and the price moves with it: the line total is fixed, so less delivered means more per kilo.
The invoice date is required and is not silently set to today. It is the date printed on the invoice: that puts your purchase in the right period. An invoice from last month recorded on today's date gives a balance that adds up, but on the wrong day.
The second order goes by itself. Leave the tick box at the bottom on and the app remembers that "Château Pilsen 2RS 25 kg" belongs to your pilsner malt — regardless of capitals and accents. The next invoice from the same supplier comes out right straight away and you only have to check it.
An invoice is not a delivery. What is on the invoice is what you ordered and paid for; what is on your shelf is what arrived. If the delivery does not match the invoice, adjust the quantity before you record it. And the app never records anything by itself: it proposes lines, you press record.
Packaging and release
One entry per time beer leaves the tank. That is not always once per brew: part into kegs today, the rest into bottles next week, with two different dates and possibly two destinations.
If you have already recorded in the brew day log how many bottles you filled, how big they are and how much went into kegs, 📅 Copy from log brings that over. The bottles go onto the packaging type with the same capacity, and the keg volume onto the largest keg size it divides into as a whole number. If something does not fit — a bottle size you have not set up, or a number of litres that does not come out as a whole number of kegs — the app says so rather than guessing; a wrong count is worse than an empty field. Recording it is up to you: a release is the moment duty becomes payable, and deriving that from a bottle counter would produce declarations you never made.
Below the dropdown is what the app knows about this brew: the batch number, the brew date, the OG and FG with the alcohol percentage that follows from them, and how many litres were brewed, have already been released and are still open. If you recorded an OG and an FG in the log, it says Measured and the duty is calculated from your hydrometer — including temperature correction, because an FG straight from the cold store reads almost two points high and that is a quarter of a percent of alcohol. If nothing was measured, it says From the recipe and you know your declaration rests on a prediction.
The alcohol percentage and the Plato figure are ordinary input fields: overwrite them with what you measured yourself. Pick a different brew and they are refreshed — they are figures belonging to that beer. Stay on the same brew and what you typed stays; ↺ From brew fetches the figures again anyway.
The release date is separate from your brew date, because duty becomes payable on release. A December brew that you release in January belongs in the January period. Loss and destruction go in separately: they do leave the tank but not as beer out of the door, so they do not count towards the amount — they do count in the volume balance.
Below the form is the summary per period with a This quarter button, and below that the volume balance per brew: what went in against what has gone out, with half a percent of slack. A brew that does not balance is shown in colour. Under each batch number is the grain bill it consumed, read straight from the raw material ledger — so per batch you see in one line what went in and what came out. If it warns that no use is recorded in the ledger, that batch was never written off and your raw material balance does not add up. 🖨️ Print turns it into a page you can file with your records.
Scheme, packaging and destinations
By default the app uses the Dutch scheme. If you live or brew elsewhere, choose the calculation model your law uses — excise systems differ not only in the amounts but in the way they calculate:
Model
How it calculates
Used by
Per hl per %vol
rate × alcohol percentage, with a minimum per hectolitre
Netherlands
Per hl per °Plato
rate × degrees Plato, with a minimum per hectolitre
Belgium
Per litre of pure alcohol
rate × the alcohol contained in the beer; no minimum
United Kingdom
Band rates
a fixed amount per hectolitre per strength band
Germany
The rates sit in a table with a start date. The most recent row that has already come into force wins, so a rate change is one row added and changes nothing about what has already been recorded. Within a row are the categories a brewery can fall into; in the Netherlands those are normaal and verlaagd. Which one applies to you is set under My category.
For band rates you state what your bands are based on — degrees Plato or alcohol by volume — and you leave the upper limit of the last band empty: it applies to everything above.
Under packaging types you enter the forms you package into with their capacity in litres: a 33 cl longneck is 0.33 and a 20 L keg is 20. The litres on your release entry follow from that. A packaging type that appears in a recorded release cannot be deleted; that release would retroactively become zero litres.
Under destinations you record where the beer goes and whether duty is payable on it. A destination you untick — storage under suspension, export — counts in your volume balance but not in the amount. If you pick no destination, the app assumes duty is payable; that is the safe side.
As a home brewer you pay nothing. Beer brewed at home for your own use is exempt from excise duty. The figure the recipe screen shows next to your cost price is there purely for information — for instance to see what a recipe would cost in a commercial setting. This is not tax advice, and rates outside the Netherlands differ.
Tools
Tool
Use
SG ↔ Plato/Brix
Conversion between units
Refractometer
Correct the refractometer reading during fermentation (Sean Terrill)
Hydrometer temperature correction
Correct a reading taken at non-20°C temperature (Kell/NIST)
Yeast starter
Calculate sugar/DME for a given starter volume and gravity
Raise gravity
How much sucrose/dextrose for a higher OG
Dilution
What happens to the gravity when you dilute with water
Each tool in the app carries a short explanation of what it does and what to enter. The fields with an orange border are results, not something you fill in yourself — the answer appears there once your input is complete.
Dilution and raising gravity each work in one direction only. Water dilutes and can only lower gravity; sugar can only raise it. Enter a target the wrong way round and the app tells you which of the two you need.
Shopping
On the 🛒 Shopping tab you pick which recipes you want to brew and how often. The app adds up every ingredient, subtracts your stock and shows per line what you still need to buy, with estimated costs based on your own prices. A green tick means you already have enough.
An orange question mark in the cost column means no price is known for that ingredient yet. Enter it on the Ingredients tab, Price column.
A price of 0 is allowed and counts normally: hops you grew yourself, or yeast harvested from an earlier brew, genuinely cost nothing. That is different from an empty cell, which means nothing has been entered yet and keeps the question mark.
Yeast counts in sachets, not in grams. The Stock tab asks for your yeast in sachets, so the shopping list uses the same unit. Eleven grams of dry yeast in your recipe is one sachet; with two in the cupboard you need to buy nothing. Liquid yeast counts per pack, and a starter is grown from a single pack — the number of litres of starter says nothing about what to buy.
🖨️ Print / PDF turns it into a list to take to the shop: a tick box per ingredient, the amount to buy, and beside it in smaller type what you need and what you already have. The largest quantity comes first, so the heavy sacks stand out straight away. Anything you have enough of is left out of the buying list but listed at the bottom, so you can see it was not forgotten. Choose Save as PDF in the print dialog to carry it on your phone.
Fermentation profile
In the recipe editor, under 🧊 Fermentation profile, you can build a schedule: primary, diacetyl rest, dry hop, cold crash, lagering. Each step gets a temperature and a number of days. On brew day the log converts this into real dates and shows which step is running and when the next one is due. You can adjust the start date in the log if you started later than the brew day.
Next to the temperature there is a second field for an end temperature. Leave it empty and the whole step runs at one temperature. Fill it in and the step becomes a ramp: you move from one temperature to the other over the given number of days. That is how you record a diacetyl rest as 18 → 22 °C over three days, or a cold crash as 20 → 2 °C over two. The ramp shows with an arrow in the log and in the text you share with 📋 Copy recipe.
Yeast pitching and starter
Under Tools, Yeast pitching & starter calculates how many yeast cells you need and how many you actually have. The beer type is a choice between ale and lager; the surcharge for strong beer follows from the OG you enter above. It uses 0.75 million cells per mL per °P for ales and 1.5 for lagers, with a third on top from OG 1.061 (White & Zainasheff), 20 billion viable cells per gram of dry yeast and 100 billion per liquid pack. Liquid yeast loses about 0.7 % viability per day; dry yeast much less.
The 20 billion per gram is an optimistic assumption. Manufacturers typically guarantee at least 6 billion per gram. The figure matches what other brewing software uses so your results are comparable — but for old or poorly stored yeast it is too high.
Measured efficiency
As soon as you log an OG reading, the app works backwards to your actual brewhouse efficiency and compares it with the figure you designed the recipe with. The overview shows the average across all your batches.
It is about your grain, not your sugar. Sugar, candi and malt extract dissolve completely; your mash makes them neither better nor worse. They are therefore left out of the calculation — their contribution is subtracted from your reading first, and what remains is divided by what your grain could have delivered. Anything set to Fermentation or Bottling does not count at all: it is not in the beer yet when you take the OG reading.
⚠️ An impossible result is not shown. If your reading works out above 120% — almost always a typo in the gravity or the volume — the line stays away rather than showing a figure that means nothing.
Duplicating a recipe
If you want to vary on a recipe that already works — a stronger version, a different hop, a trial batch at half scale — there is no need to retype anything. There are two ways, and the difference is when you decide.
From the recipe list, click 📋 Duplicate on the recipe card. You give it a name and the copy appears right below the original, ready to be changed.
From the recipe editor, use 📄 Save as new recipe. Handy when you are already tinkering and realise halfway through that this should really become a separate recipe: your changes travel to the copy and the original stays as it was.
⚠️ Mind the difference with Save: the ordinary 💾 Save recipe button overwrites the recipe you are working in. To keep the original, use Save as new recipe — otherwise the old state is only retrievable through the version history.
The copy is fully independent: change a malt weight or a mash step in it and nothing happens to the recipe it came from. The version history deliberately does not travel along — a copy is a new recipe and starts with a clean slate.
If the suggested name already exists, the app counts on: Tripel (kopie), Tripel (kopie 2), and so on. Duplicating a copy does not stack the suffix.
Version history
Every time you save an existing recipe with changes, the previous version is kept along with the date and a note you can write yourself. ↺ Restore brings an earlier version back; the current state is saved first, so restoring is reversible. Up to 20 versions are kept per recipe.
You find it at the bottom of the editor, just above the button bar, in a card that starts collapsed. Click 🕘 Version history to fold it open; beside it stands how many versions are kept. The field What are you changing? belongs to the save you are about to make, not to a previous one — fill it in before you press Save. Leave it empty and the version is simply kept without a note.
Security
Brewbuddy '26 runs entirely on your own device. There is no account, no server storing your data and no connection to other websites — apart from the version check, which only fetches a version number.
Files from other people
The one real risk is a file from someone else: a BeerXML recipe or a JSON backup you import. The app assumes such a file may be malicious. All names and text are neutralised before they reach the screen, keys that could alter the app's behaviour are stripped, and limits apply to file size, number of recipes and length of names.
What you can do: only import files from people you trust, and make a backup via Settings → Export everything before a large import. An import replaces your recipes and batches.
⚠️ If your browser's storage fills up, the app says so. After the import you will see a message that everything was read in but NOT saved: nothing is lost as long as you keep the tab open. Remove old brew days or recipes first — or export them to a file — and try again.
What the app does not do
Send data anywhere — the page's security policy blocks connections to other domains
Execute code that comes from a file
Load scripts, fonts or images from other websites
Use cookies, tracking or advertising
Your data lives in the browser storage of this one device. Anyone with physical access to your unlocked device can read it; encryption would not change that as long as the key sits in the same browser. So do not keep sensitive information in the notes fields.
Installing updates
If you use the online version, the app checks by itself whether something newer exists each time you open it. If so, a bar appears at the top with the new version number and what changed, plus a button to update straight away. Your recipes and batches stay put — they live in your browser's storage, not in the file.
You can dismiss the bar with Later. It returns the next time you open the app, until you update.
⚠️ A downloaded file does not check. If you run Brewbuddy as a loose file from your disk, the app cannot find out whether a new version exists: the security policy only allows connections to its own origin, which for a local file is your own folder. Relaxing that would mean the app contacts the server every time it starts, which is exactly what it promises not to do. So check the download page yourself now and then.
Use the 🔃 Update button next to the version number in the header, or go to Settings → Version & Updates → Force update to clear the cache and fetch the latest version.
✅ Tip: Always make a JSON backup via Settings → Export everything before updating. That way you can restore your recipes and batches if anything goes wrong.
Formulas & Calculations
Gravity (OG/FG)
totPoints = Σ(kg × points × factor) where factor = efficiency/100 for malt and 1.0 for sugar/extract. Then OG = 1 + (totPoints / volume) / 1000.
Alcohol (ABV)
ABV = 76.08 × (OG−FG) / (1.775−OG) × (FG/0.794) — more accurate than the simple (OG−FG)×131.25, especially for strong beers. Simple sugars (sucrose, candi) count as fully fermentable in the FG calculation.
Bitterness (IBU — Tinseth)
bigness = 1.65 × 0.000125^(boilSG−1), where boilSG is the average of pre-boil and final gravity
Whirlpool hops use stand temperature and time: U = 0.12 × isoFactor(T)^0.4 × (1 − e^(−t/20)), where isoFactor is the Arrhenius ratio relative to 100 °C. Dry hops contribute no IBU.
You pick the method under Settings, and that choice applies app-wide. Switch it and the bitterness figures of your recipes and your brews move together: the overview and the graph recalculate on every view, so they never show a number from an earlier calculation.
pH = pH_DI + (alkalinity − acidMaltMeq) / Σ(kg × buffer), where pH_DI is the buffer-weighted average of the pH each malt gives in distilled water. Acidulated malt counts as negative alkalinity: 347 mEq per kg, from 3.13% lactic acid divided by the molar mass of 90.08 g/mol.
Gravity temperature correction (Kell/NIST)
SG_corr = SG_meas × ρ(20°C) / ρ(T°C) where ρ is the Kell water density formula (calibrated on NIST data).
FAQ
My data is gone after a browser update
Data lives in the browser's localStorage. Clearing browser cookies/cache can erase it. Enable Settings → 🔁 Auto-backup: the app then writes a backup to a folder on your computer after every change — files on disk survive clearing browser data (Chrome/Edge desktop). Apple does not allow this on iPad/iPhone: make regular manual backups there via 📁 Back up to folder… or Export everything (JSON).
Can I use the app on multiple devices?
Yes, but data is stored per browser. Use the JSON export/import to transfer data between devices.
How do I import a recipe from another program?
Brewbuddy '26 supports BeerXML in both directions: import .xml files from BeerSmith or Brewfather via 📥 Import BeerXML, and export all your own recipes via 📤 Export BeerXML — both buttons sit above the recipe list.
Every program uses its own ingredient names: where Brewfather writes Pilsner Malt, this app knows Pilsmout 3 EBC. Names it does not recognise are added automatically to your own ingredients during import, along with the colour, extract and alpha acid from the file. Afterwards the app reports how many that was.
They then sit on the Ingredients tab, marked with the label custom, and that is where you enter the price. Without this step the cost would stay at € 0 with no field anywhere to fix it. If the BeerXML file carries a price of its own it is taken over straight away; Brewfather usually does not export one. Importing the same recipe again adds nothing twice.
An entry created this way carries the label imported next to custom. That way you can tell what you created yourself from what a file left behind — and you need that difference, because after a few imported recipes your list holds ingredients you are never going to buy.
Cleaning up. A button appears at the top of the Ingredients tab as soon as there are imported entries you have no use for. It only removes what appears in no recipe, recipe version or brew and that you have no stock of; their price goes with them. Anything you created yourself always stays, and you see the names before anything disappears.
Do check the new rows. Colour and extract come from the file and are usually right, but for hops the app infers bitter versus aroma from the alpha acid percentage, and miscellaneous ingredients are filed under herbs. You can correct both in the table itself.
The water volumes come from the file itself: BeerXML records the infusion amount per mash step, and those are added up to give your mash water. If the file does not have them, the app works them out from your own equipment profile — the same arithmetic as behind the 💧 Fill water volumes from my equipment button.
Yeast: packages, grams and litres. BeerXML is messy here: the AMOUNT field is litres or kilograms, and a package count fits neither. Brewfather writes two sachets of dry yeast as AMOUNT 2 — and until version 4.14 the app read that as two kilos. It now looks at DISPLAY_AMOUNT first, which spells out the unit ("2 pkg"). If that is missing the standard applies, with a plausibility limit as a backstop: no homebrewer uses more than half a kilo of yeast, so a small whole number is almost certainly a package count. If anything is adjusted you are told after the import, with the original figure alongside.
The yeast form comes across as well. Dry becomes dry yeast in grams; Liquid, Slant and Culture become packages. More than a quarter of a litre fits in no package — the largest you can buy is a Wyeast XL of about 125 mL — so the app reads that as a starter in litres.
Recipes you imported before version 3.53
Older versions did take the name from the file but registered the ingredient nowhere. On startup the app now makes up for that once: every ingredient in your recipes and batches that appears nowhere in the database is added to your own ingredients — with the colour and extract stored in the recipe. You need do nothing, and none of your calculations change; a price field is simply added.
⚠️ One thing this does not solve. Whether an ingredient is sugar or malt extract exists only in the original BeerXML file. Older versions treated those as grain and applied the brewhouse efficiency to them, so the calculated OG came out too low — with half a kilo of sugar in 20 litres, some two gravity points. The app deliberately does not guess this from the name. If a recipe you imported before version 3.53 contains sugar, candi or malt extract, import that file again and only then delete the old recipe.
The version check needs an internet connection and only works when the app is hosted (not as a local file). Opening locally shows an error — that is normal.
📖 Manual
Compañero de cervezas '26 · Por Leonard Hamers · Bossche Brouwers
Compañero de cervezas '26 es un único archivo HTML — no requiere instalación. Descarga el archivo y ábrelo en tu navegador.
1
Descargar
Descarga BrouwHulp.html con el botón de descarga de la web.
2
Abrir
Abre el archivo en Chrome, Firefox, Safari o Edge.
3
Listo
La app funciona al instante, incluso sin conexión. Tus datos se guardan en el navegador.
Instalar como app (recomendado)
Puedes instalar Compañero de cervezas '26 como una app real en tu móvil o portátil:
Android (Chrome): Abre la app en Chrome → menú (⋮) → "Añadir a pantalla de inicio"
iPhone (Safari): Abre la app en Safari → icono de compartir → "Añadir a pantalla de inicio"
Windows/Mac (Chrome): Pulsa el icono de instalación en la barra de direcciones
⚠️ Importante: Tus datos se guardan en el navegador, no en el archivo. Haz copias de seguridad periódicas en Ajustes → Exportar todo (JSON).
Tu primera receta
Ve a la pestaña Mis Recetas y pulsa + Nueva Receta. El editor se abre con valores predeterminados que puedes ajustar de inmediato.
Pon nombre a tu receta y elige un estilo de cerveza
Configura el volumen del lote y la eficiencia (por defecto 20L / 75%)
Añade malta con el botón + Añadir de la sección de fermentables
Añade lúpulo con su momento y uso
Selecciona una levadura de la base de datos
Guarda con 💾 Guardar Receta
💡 Consejo: Los cálculos de la derecha (OG, IBU, EBC, ABV) se actualizan en vivo mientras introduces ingredientes.
Día de cocción
Cuando vayas a elaborar, convierte la receta en un lote con 🍺 Crear como Lote. Irás automáticamente al diario. También funciona al revés: crea un lote vacío y vincula una receta al momento con 📋 Vincular Receta — sin cambiar de pestaña. Con 🔁 Vincular otra receta la cambias después.
En el diario encontrarás:
La receta completa junto a tus herramientas: maltas (con proporción y EBC), lúpulos, otros ingredientes y levadura
Temporizadores de macerado vinculados a tu receta (o al programa estándar)
Temporizadores de macerado, hervido y cronómetro, con alarma en cada adición de lúpulo
Mediciones de densidad por fase con corrección de temperatura
Progreso de fermentación y cálculo de carbonatación
Notas y notas de cata
A qué apuntas
Debajo del esquema de fermentación está la tarjeta 🎯 A qué apuntas: las cifras que vas marcando una tras otra el día de cocción, sin tener que abrir la receta. Queda justo encima de tus pasos de macerado, que es donde las lees una al lado de la otra.
Agua de golpe
Lo caliente que debe estar el agua que viertes sobre el grano
Agua de macerado
Lo que entra en la cuba de macerado
Agua de lavado
Lo que haces pasar a través
Agua total
Lo que debes preparar en total, pérdidas incluidas
Volumen pre-hervido
Lo que hay en la olla cuando empiezas a hervir
Densidad pre-hervido
Lo que mides en la olla llena, antes del hervido
Las seis salen de la copia del lote y no de la receta. Si el día de cocción cambias de equipo o ajustas la carga de maltas, se mueven con ello.
La densidad pre-hervido es tu comprobación más temprana del rendimiento. Si mides menos de lo que aquí figura, tu macerado ha rendido menos de lo que supone la receta y tu OG también saldrá más baja; si mides más, al revés. Lo sabes antes de empezar a hervir, no cuando ya has echado la levadura.
¿Qué temperatura debe tener el agua de golpe?
El agua que viertes sobre grano frío se enfría. Cuánto depende de tres cosas: cuánto grano hay, lo frío que está y cuánta agua le echas. La app lo calcula con el balance térmico entre esas masas — el grano absorbe por kilo unas dos veces y media menos calor que el agua — y añade el calor que se pierde en un recipiente frío.
La temperatura de tu grano la introduces una vez en Ajustes → 🔧 Mi equipo de elaboración → Temperatura del grano y del recipiente. Va con el equipo y no con la receta, porque depende de dónde guardas el grano: un garaje en enero no es un armario de cocina. Si no pones nada, la app usa 20 °C. Si hiela en tu cobertizo, pon tranquilamente una temperatura bajo cero — no es una errata, sino justo el motivo por el que tu agua de golpe debe ir más caliente.
Si el recipiente cuenta o no se deduce del desplegable bajo Espacio muerto de la cuba. En se queda es una nevera portátil o una cuba aparte: está fría y roba calor a tu agua de golpe. En va con el mosto a la olla es un único recipiente con bomba y resistencia, ya a temperatura.
Esto es un punto de partida, no una promesa. El calor que se traga un recipiente depende del material, del grosor de la pared y de si lo has precalentado — la app no puede saberlo. Mide una vez lo que realmente obtienes tras macerar y ajusta la temperatura del grano hasta que cuadre. A partir de ahí vale para cualquier receta en ese equipo.
Sobre qué paso se golpea. La app usa la temperatura de tu primer paso de macerado — el mismo paso que encabeza los temporizadores de abajo. Si tu receta no tiene esquema propio, el diario recurre al esquema estándar, así que golpeas en el descanso proteico. Si la receta no lleva grano, se queda un guion.
Seguir y dirigir la fermentación
El esquema de fermentación del diario es editable, igual que tu carga de maltas y tus lúpulos. Por paso cambias el nombre, la temperatura, una temperatura final opcional y el número de días; con + Añadir paso metes una fase y con ✕ quitas una. Las fechas de al lado se desplazan al momento, así que ves enseguida cuándo toca el siguiente paso.
Un paso nuevo empieza a la temperatura en la que terminó el anterior. Es casi siempre lo que quieres decir cuando añades una fase a mitad de camino.
La receta queda intacta. Si tu fermentación principal dura dos días más de lo previsto, lo anotas aquí — eso es lo que pasó esa vez, no un cambio en tu plan. Si quieres hacerlo así a partir de ahora, cámbialo en el editor de recetas.
Si un lote aún no tiene esquema, la tarjeta está igualmente, con un botón para empezar uno. Así puedes seguir la fermentación de una receta en la que no habías puesto un perfil.
El temporizador de cocción avisa en cada adición de lúpulo
Si vinculas una receta a tu día de cocción, el temporizador lee también el programa de lúpulo. Cada adición con uso Cocción dispara la misma alarma que un escalón de macerado: sonido que se repite hasta que confirmas, vibración en Android y una notificación del navegador. Debajo del reloj ves además cuál es la siguiente adición y dentro de cuánto, para que puedas pesarla con antelación.
Los tiempos son tiempo restante de cocción, tal como los anotan los cerveceros. Un lúpulo a 60 minutos entra por tanto de inmediato en una cocción de 60 minutos, y solo tras media hora en una de 90. Si una adición está puesta a más minutos que tu tiempo de cocción, la app la avisa al arrancar — más tarde ya no es posible.
Solo las adiciones con uso Cocción reciben alarma propia. El lúpulo de primer mosto ya está dentro antes de que arranque el temporizador, el whirlpool y el dry hop vienen después, y el extracto de lúpulo entra tras la fermentación. El lúpulo a 0 minutos no recibe señal aparte pero se nombra en la alarma final — dos alarmas en el mismo instante no son una alarma sino ruido.
Reiniciar la cocción con ↩ vuelve a abrir todas las adiciones. Útil si tienes que empezar de nuevo porque algo salió mal.
Los demás ingredientes también cuentan. Piel de naranja, cilantro, musgo irlandés — siempre estuvieron en tu receta, pero solo tenían una fase y ningún momento, así que el temporizador no podía hacer nada con ellos. Cada ingrediente adicional con momento Cocción tiene ahora un campo Tiempo en minutos de cocción restantes, igual que el lúpulo. Y ahí importa: el cilantro y la piel ceden su aroma al vapor, así que diez minutos antes de tiempo te cuesta la mitad.
Un ingrediente adicional sin tiempo está a cero y no recibe alarma propia — rellena el campo y participará. Con cualquier momento que no sea Cocción verás un guion: ahí un instante de la cocción no significa nada.
Tus propios números de lote
El número arriba a la izquierda del diario es texto libre. Si usas tu propia serie como GB202, KB22 o 2026-014, escríbela sin más; letras, guiones y ceros a la izquierda valen todos.
La aplicación sigue contando a partir del último bloque de cifras y deja el resto intacto: GB202 pasa a GB203, 2026-014 pasa a 2026-015, y GB007 pasa a GB008. Cambia de serie poniendo el lote creado más recientemente en KB22 y el siguiente será KB23. Así solo escribes el prefijo una vez por serie.
Al crear un lote nuevo, el siguiente número ya aparece propuesto en el campo del nombre. Si pulsas OK directamente, el lote se llama GB203 y lleva ese número. ¿Prefieres un nombre de verdad, por ejemplo Tripel de prueba? Entonces el lote recibe ese nombre y conserva GB203 como número.
En Ajustes → Próximo número de lote defines qué recibirá el siguiente lote, por ejemplo si vienes de otro programa y quieres seguir contando. El resumen ordena los números de lote de forma natural, así que GB9 va antes que GB99 y no después.
Ajustes del día de cocción — sin cambiar la receta
El lote trabaja siempre sobre una copia de la receta. Todo lo que ajustes en el diario vale solo para ese día: cambiar cantidades, añadir (+ Añadir) o eliminar (✕) ingredientes, e incluso cambiar la levadura — la atenuación de la nueva levadura se toma automáticamente. OG, FG, ABV, IBU y EBC se recalculan en vivo. La receta original de tu biblioteca no cambia nunca. Útil cuando falta un ingrediente o un lote de lúpulo tiene otro porcentaje de ácido alfa.
Cambiar el volumen del lote — con o sin escalar
Al cambiar el volumen del lote solo cambia el volumen. Tu malta, tus adiciones de lúpulo y tu levadura se quedan como están. Así ves de inmediato qué le pasa a tu cerveza: la misma malta en menos litros da una densidad más alta y más amargor. Es justo lo que quieres saber cuando sacaste 18 litros de la olla en lugar de los 20 que esperabas.
Lo que sí se recalcula es el volumen de hervido y el agua de maceración y lavado. Eso no es escalar sino una consecuencia: se derivan de tu malta y de tu perfil de equipo, y de lo contrario ya no serían correctos con el nuevo volumen.
Si sí quieres convertir la receta a otro tamaño de lote, usa el botón ⚖️ Escalar junto al campo de volumen. Primero te muestra el factor y una vista previa, y las cantidades solo cambian tras Aplicar. Después de cambiar el volumen aparece una línea con ese botón, para que no tengas que buscarlo.
El campo de volumen no escala tus ingredientes. Escribes lo que realmente obtuviste y tu carga de maltas se queda como la escribiste. Si sí quieres escalar, para eso está el botón ⚖️ Escalar, con vista previa y confirmación.
El resumen de lotes
La pestaña Resumen muestra un gráfico de tus últimos veinte lotes. Con la lista Mostrar eliges qué ves en él: alcohol, amargor, color, densidad inicial, densidad final o tu rendimiento medido. Así ves de un vistazo si tus cervezas se vuelven más amargas o si sube tu rendimiento, algo que la tabla de abajo no muestra.
En la densidad inicial y final el eje empieza en 1.000 y no en cero. De lo contrario 1.040 y 1.080 apenas se distinguirían en la escala. Un lote del que no anotaste ese valor no recibe barra; una barra mínima sugeriría una medición que no existe.
Haz clic en una fila de la tabla de abajo para abrir el registro de ese lote. También funciona con el tabulador y Enter.
Malta y granos
Añadir azúcar o miel durante la fermentación
La tabla de maltas tiene una columna Añadir con cuatro momentos, en el orden del día de elaboración. Deciden en qué cálculo cuenta el ingrediente:
Momento
Agua de macerado
Densidad pre-hervido
Densidad inicial
Alcohol
Macerado
sí
sí
sí
sí
Olla
no
no
sí
sí
Fermentación
no
no
no
sí
Embotellado
no
no
no
sí
Macerado es el valor por defecto y el caso normal: el grano y todo lo que macera contigo. Olla es para el azúcar o el extracto que echas solo en la olla de cocción — eso se ve en tu densidad inicial pero no en la lectura que tomas antes de hervir, porque todavía no está ahí. Si la pones en Fermentación aparece un campo de día — día 3 por defecto. Es la elección habitual: la fermentación principal ya pasó su punto álgido y la levadura asimila el nuevo azúcar con calma en vez de arrasarlo de golpe. Embotellado es para el azúcar de cebado y no lleva día.
Por qué importa la diferencia. La densidad pre-hervido es una medición que haces el día de elaboración: la lees de la olla antes de encender el fuego. Si dejas tu azúcar candi en Macerado pero lo añades al apagar el fuego, la app espera una lectura más alta de la que verás, y acabas corrigiendo un rendimiento que no tiene nada malo.
Para esto sirve: miel en una tripel, azúcar cande en una quadrupel, o azúcar simple para secar una cerveza fuerte sin someter la levadura a presión osmótica al inicio.
La app lo calcula de forma distinta al azúcar en la caldera, y esa diferencia es la razón de ser de esta columna:
Azúcar en la caldera
Azúcar el día 3
OG
cuenta
no cuenta
Densidad precocción
cuenta
no cuenta
IBU
cuenta
no cuenta
Alcohol
cuenta
cuenta
FG
sin diferencia: el azúcar simple fermenta por completo
La OG es lo más importante de esa lista. Mides tu densidad inicial el día de cocción, y la miel todavía no está. Si la app la contara, predeciría 1.086 donde tú mides 1.071 y buscarías un problema de rendimiento que no existe. Por lo mismo no cuenta para el amargor: nunca estuvo en la caldera y por tanto tampoco diluyó el mosto durante la cocción.
Bajo la OG aparece una segunda línea con la densidad incluyendo el azúcar tardío. De ese número sale tu porcentaje de alcohol — sin esa línea el alcohol parece salir de la nada.
Una tripel con miel, para concretar. 5,5 kg de malta pilsen y 0,5 kg de azúcar en la caldera, 1 kg de miel el día 3, 20 litros, 85 % de atenuación. Mides OG 1.071 como si no hubiera miel, obtienes 10,8 % de alcohol como si la hubiera, y tu IBU sigue siendo el de la receta sin miel.
La ficha de cocción, la impresión y el texto para compartir añaden solo el día 3 de la fermentación, para que no acabe en la caldera por error. En BeerXML viaja como ADD_AFTER_BOIL con el día en las notas; si llega un archivo sin nota de día, la app vuelve al día 3.
Lo que está en Fermentación tampoco cuenta en la maceración: ni en el agua de maceración, ni en la relación agua/grano, ni en la absorción del grano, ni en el pH. Con la miel no se notaba, porque los azúcares y extractos ya quedan fuera. Si pones una malta normal en Fermentación — o importas miel de otro programa sin su tipo — la diferencia es un kilo entero de grano, es decir alrededor de un litro de agua de maceración más otro que se queda en el bagazo.
Azúcar de cebado
La tercera opción de la columna Añadir es Embotellado. Si introduces así tu azúcar de cebado en la lista de maltas, cuenta donde debe contar:
Azúcar de cebado
OG
no cuenta — la mides en el fermentador
FG
no cuenta — la mides justo antes de embotellar
IBU
no cuenta — el azúcar nunca vio la caldera
Alcohol
sí cuenta — también en la botella el azúcar da alcohol
Siete gramos por litro, una dosis normal para 2,4 volúmenes de CO₂, aportan alrededor de 0,4 % de alcohol. No es un redondeo: es la diferencia entre una tripel de 8,0 y una de 8,4 %.
¿Por qué no en Otros ingredientes? Puedes hacerlo — Embotellado lleva más tiempo en esa lista de momentos — pero los otros ingredientes no llevan extracto. La app no sabe cuántos puntos de densidad tiene un kilo de cilantro; del azúcar en la lista de maltas sí. Pon el azúcar de cebado en la lista de maltas y contará. En Otros queda como una nota en tu ficha, que es justo lo correcto para los clarificantes.
No hay campo de día en Embotellado: embotellar no es un día de fermentación. Cuánto azúcar necesitas para un número dado de volúmenes de CO₂ lo calcula la herramienta Azúcar de cebado — no se estorban: la herramienta calcula lo que necesitas y la fila de la receta registra lo que añades.
¿Qué significa puntos/kg?
Puntos/kg es cuántos puntos de densidad aporta un kilo de un ingrediente en un litro de mosto, con un rendimiento del 100 %. Un kilo de azúcar disuelto hasta un litro da una densidad de 1.384 — por eso el azúcar son 384 puntos. La malta pilsner no llega a eso y ronda los 300.
Las malterías no publican esta cifra; dan el contenido de extracto en porcentaje. La conversión:
Lo que tienes
Cálculo
Ejemplo
Extracto en %
% × 3,84
80 % → 307 puntos
PPG (EE. UU.)
PPG × 8,35
37 PPG → 309 puntos
Rendimiento como densidad
(SG − 1) × 8350
1.037 → 309 puntos
En el formulario + Añadir malta propia no tienes que calcular nada: introduce el porcentaje de extracto y el campo Puntos/kg se rellena solo. También funciona al revés.
Dos advertencias. El certificado suele indicar el extracto en base seca. La malta contiene un 4 % de humedad, así que en la práctica obtienes algo menos: un 80 % en base seca equivale a un 76,8 %, es decir ~295 puntos. Y no introduzcas aquí el rendimiento de tu sala de cocción — eso va en la receta, donde se aplica a toda la malta a la vez.
Nombres y orden de las listas
La marca no forma parte del nombre de la malta. La malta pilsner es simplemente Pilsmout 3 EBC. El motivo: la app también se usa en inglés y español, y allí hay otras malterías en el estante; un nombre con una maltería belga dentro no encaja. El proveedor sigue presente: está en su propia columna Productor en la pestaña Ingredientes, y puedes buscar por él.
Lo mismo vale para la levadura: se llama SafAle US-05, no SafAle US-05 (Fermentis). La marca está en la columna Productor, donde puedes buscarla y ordenar por ella.
Tus recetas siguen funcionando. La app convierte los nombres antiguos una vez al arrancar, incluidos tus precios y tu stock. También se traducen una copia de seguridad restaurada más tarde y un archivo BeerXML exportado antes. Si habías creado tu propia malta con el nombre que ahora lleva una malta estándar, la tuya recibe (eigen) y tus recetas la siguen; de lo contrario la app pasaría a usar en silencio las cifras de la malta estándar en vez de las tuyas.
Al añadir un ingrediente propio hay un campo Productor para indicar a quién se lo compras. Vale para malta, lúpulo, levadura y otros ingredientes, y también puedes rellenarlo en los que ya tenías.
El proveedor aparece también donde de verdad hace falta: detrás del nombre en la lista de la receta, en el inventario y en la lista de la compra. Así distingues tres maltas pilsen que solo se diferencian en EBC. En el lúpulo se muestra el país de origen, porque de esos no consta marca. Solo se guarda el nombre.
Modificar tus propios ingredientes
Todo lo que has introducido en un ingrediente propio se puede cambiar después, directamente en la tabla de la pestaña Ingredientes. El nombre y el productor; en la malta los puntos, el EBC y el tipo; en el lúpulo el alfa ácido, el tipo y el origen; en la levadura la atenuación, la forma y la temperatura; en otros ingredientes el tipo, la unidad, la dosis máxima y la nota. El cambio se guarda al instante y se aplica a tus recetas.
El nombre también se puede cambiar. Escribe en la columna del nombre y haz clic fuera. El nombre es la clave de la que dependen tus recetas, las versiones de receta, tus cocciones, el precio y el stock, y los cinco se actualizan a la vez: no tienes que volver a introducir nada, ni siquiera en una receta que tengas abierta. Un nombre vacío se rechaza, y uno que ya existe también: dos ingredientes con el mismo nombre compartirían una línea de stock y un precio sin que te dieras cuenta. Unos pocos nombres tampoco se admiten, porque la app los usa internamente o pertenecieron antes a un ingrediente de la base de datos incluida — se te explicará por qué.
Así distingues tres maltas pilsen de proveedores distintos: dale a cada una su propio nombre — Malta pilsen Dingemans, Malta pilsen Belgomalt — y rellena el productor. Cada una tiene entonces su precio, su stock y sus puntos, y en la lista desplegable de la receta aparece detrás del nombre de quién viene.
En la levadura ahora eliges Seca o Líquida en vez de un estilo de cerveza. Es lo único para lo que la app lo usa: la levadura seca se dosifica en gramos y la líquida en paquetes. Quien añadió antes una levadura propia siempre recibía una dosis en gramos; ahora figuran como Seca y se cambian con un clic. Nada cambia en tus cálculos actuales hasta que tú lo hagas.
Todas las listas — malta, lúpulo, levadura, otros ingredientes y estilos de cerveza — están en orden alfabético. En lúpulo, malta y otros ingredientes eso vale dentro de los grupos que usa la lista desplegable (en otros ingredientes: Cítricos, Frutas, Hierbas, etc.). Los ingredientes que añades tú aparecen abajo, en su propio grupo Malta propia / Lúpulo propio / Levadura propia.
Elegir el estilo
La lista de estilos está agrupada por tipo de cerveza: lager, cerveza de trigo, pale ale e IPA, ámbar y bitter, stout y porter, belga y francesa, ácida y silvestre, cerveza fuerte, y fruta, especias y humo. Dentro de cada grupo va en orden alfabético, así que la IPA americana queda junto a la inglesa en vez de cuarenta líneas más abajo.
Encima de la lista hay un campo de búsqueda. Escribe ipa, stout o weizen y la lista se reduce; no cuentan acentos ni mayúsculas, así que munchner también encuentra Münchner. Esc vacía el campo.
Si el estilo que ya habías elegido queda fuera del filtro, se mantiene seleccionado y la app lo indica. Buscar no puede hacerte perderlo.
La sección de fermentables contiene una base de datos de más de 80 maltas y granos, organizados por categorías:
Categoría
Ejemplos
Proporción máx.
Malta base
Pilsner, Pale Ale, Múnich
100%
Caramelo/Crystal
Crystal 40L, Caramunich
25%
Tostada
Chocolate, Black Patent
15%
Grano sin maltear
Avena, Trigo, Centeno
40%
Azúcar/Extracto
Azúcar candi, DME
20% (info)
⚠️ Avisos: Compañero de cervezas '26 avisa automáticamente cuando los porcentajes de maltas especiales son demasiado altos, según "How to Brew" de Palmer y las guías BJCP.
Lúpulo
Añade adiciones de lúpulo con peso, porcentaje de ácido alfa, uso y momento. El IBU se calcula con la fórmula de Tinseth.
Uso
Explicación
Hervido
Lúpulo de amargor estándar. El IBU depende del tiempo de hervido.
Primer mosto (FWH)
Añadido antes del hervido. Amargor suave, buena integración.
Whirlpool
Tras el hervido. Introduce el tiempo de reposo en el tiempo de hervido y la temperatura en WP °C — el amargor se deduce de ahí
Dry hop
Durante la fermentación. Aroma puro, sin IBU.
Whirlpool: cómo se calcula el amargor
Una adición en whirlpool recibe un cálculo de IBU completo, según temperatura y tiempo de reposo. Pon la fila en Whirlpool, introduce el tiempo de reposo en Tiempo (min) y la temperatura del mosto en WP °C. Si dejas la temperatura vacía, la app usa 80 °C.
A modo de ilustración, 50 g de lúpulo al 12 % alfa en 20 litros, treinta minutos de reposo:
Temperatura
IBU
70 °C
10
80 °C
14
90 °C
20
99 °C
28
Por qué no simplemente Arrhenius
La tentación es prolongar la velocidad de reacción de la isomerización hacia temperaturas más bajas, como en la corrección por altitud. Eso da un 2 % de aprovechamiento a 80 °C y un 14 % a 99 °C — un factor siete. Los valores medidos son mucho más planos: Rodammer, junto con el laboratorio de Bell's Brewery (AHA, 2017), midió 3,96 % a 82 °C frente a 4,36 % a 99 °C, treinta minutos en ambos casos. Un factor 1,1, pues, no siete.
Parte de ese amargor probablemente no procede de los iso-alfa-ácidos sino de las humulinonas, que a temperaturas más bajas simplemente se disuelven sin isomerizar. Por eso la app usa un modelo amortiguado: el factor cinético elevado a 0,4, un techo del 12 % de aprovechamiento y un factor de tiempo que sube rápido y luego se aplana. Encaja con la misma serie a lo largo del tiempo — de 10 a 60 minutos a unos 95 °C dio del 3,6 al 5,1 %.
Sigue siendo una estimación. La dispersión entre las mediciones publicadas de whirlpool es amplia y ningún modelo coincide con todas. Si analizas tu propia cerveza y te desvías de forma sistemática, dímelo y lo reviso.
El tiempo de reposo y la temperatura también aparecen en la ficha de cocción y en el texto para compartir, de modo que el día de la cocción ves a qué temperatura lupular y durante cuánto tiempo. Ambos viajan en BeerXML.
¿Pellets, flores o T-45?
Para cada adición de lúpulo eliges la Forma en que viene. Eso influye en el aprovechamiento:
Forma
Aprovechamiento
Observaciones
Pellets T-90
100 % (predeterminado)
Con diferencia el más usado. El material vegetal está molido, así que los alfa ácidos se liberan mejor
Flores enteras
90 %
Los alfa ácidos siguen encerrados en la hoja y la cama de lúpulo retiene más mosto
T-45 / Cryo
100 %
Concentrado de lupulina. Sin factor adicional — ver abajo
T-45 y Cryo no se cuentan dos veces. Estos productos dan más amargor por gramo porque su contenido de alfa ácidos es aproximadamente el doble — viene impreso en el envase. Introduce ese porcentaje más alto en Alfa ácido y el IBU sale solo. Si la app aplicara además un factor 2, contarías la concentración dos veces.
Las recetas existentes están en pellets, así que tu IBU calculado no cambia. Al exportar a BeerXML la forma se escribe como Pellet o Leaf; BeerXML no tiene una categoría propia para T-45 ni Cryo.
Año de cosecha y conservación — envejecimiento del lúpulo
Los ácidos alfa se degradan por oxidación. Introduce el año de cosecha y el método de conservación por adición y la app calculará con el ácido alfa realmente restante. El porcentaje efectivo aparece bajo el valor de IBU cuando la pérdida supera el 2%. Si dejas el año vacío no se aplica corrección.
Conservación
Pérdida anual
Ejemplo: 12% α tras 2 años
❄️ Congelador, hermético
±5%
10,9%
🧊 Nevera, hermético
±14%
9,0%
🏠 Temperatura ambiente, hermético
±30%
6,1%
📂 Temperatura ambiente, paquete abierto
±45%
3,8%
⚠️ Estimación: la pérdida real varía mucho según la variedad (el Hop Storage Index va de 0,2 a 0,6). Si tu paquete indica el porcentaje de ácido alfa, úsalo; el valor de la base de datos es solo orientativo.
Extracto de lúpulo isomerizado (tetrahop, isohop)
En Uso elige Extracto (tras fermentar) para productos como Tetrahop Gold, Isohop, Hexahop o Redihop. Estos extractos ya contienen ácidos alfa isomerizados: no necesitan hervir y se dosifican tras la fermentación, normalmente justo antes de envasar.
Introduce la dosis en mL en el campo de peso (densidad ≈ 1 g/mL)
Introduce el porcentaje de iso-alfa del producto en el campo de ácido alfa (Tetrahop Gold: 10%, Isohop: 30%)
El tiempo de hervido es irrelevante y se ignora
El amargor se calcula con utilización casi completa: IBU = mL × %iso × 1000 / volumen del lote. Ejemplo: 2 mL de Tetrahop Gold 10% en 20 L dan 10 IBU.
💡 ¿Por qué extracto? Útil para ajustar el amargor después, y las variantes tetra/rho hacen la cerveza estable a la luz (sin sabor a "mofeta" en botellas transparentes).
💡 Relación BU:GU: Una guía útil es IBU / ((OG-1)×1000). Menos de 0.5 = maltosa, 0.5–0.8 = equilibrada, más de 0.8 = amarga.
Levadura
Selecciona una levadura de la base de datos (Fermentis, Lallemand, Mangrove Jack's, Wyeast, White Labs). Si la tuya no está, elige ✏️ Añadir tu propia levadura… al final de la lista desplegable: rellenas nombre, atenuación y forma, y aparece al instante en tu receta y en tu lista de ingredientes — con precio, stock y lista de la compra. También puedes hacerlo antes en Ingredientes → Levadura propia. La atenuación es obligatoria: determina tu densidad final, así que la app no puede rellenarla por ti. El panel derecho muestra tu tasa de inoculación y la compara con la que necesitas. Esa cifra sale del mismo modelo celular que la herramienta de inoculación (White y Zainasheff):
Millones de células por mL y °Plato
hasta OG 1.061
desde OG 1.061
Ale (alta fermentación)
0,75
1,0
Lager (baja fermentación)
1,5
2,0
Dos motivos independientes, y se suman. Una lager fermenta a 8–13 °C: en frío la levadura crece más despacio y se multiplica menos, así que compensas la falta desde el principio en lugar de dejar que la levadura lo recupere sola — y los defectos de inocular poco, diacetilo y azufre y ésteres, saltan a la vista en una cerveza limpia. El mosto denso somete a la levadura a presión osmótica y se multiplica peor; de ahí un tercio más desde 1.061. Una lager fuerte tiene ambas cosas, y por eso llega a 2,0.
Una tasa más alta no significa automáticamente más levadura. Se aplica por °Plato, y la cerveza fuerte tiene más. Una pilsner de 1.048 (11,9 °P) necesita 357 mil millones de células para 20 litros; una tripel de 1.075 (18,2 °P) necesita 364 — casi lo mismo, pese a la tasa menor. Solo una lager fuerte se desmarca de verdad: una doppelbock de 1.080 llega a más de 570 mil millones, y eso es un starter, no un sobre.
La levadura seca aporta unos 20 mil millones de células viables por gramo; un sobre líquido, 100 mil millones. Para la seca la app aconseja en gramos y para la líquida en sobres, porque no se vende al peso.
Levadura seca: la cifra del fabricante
Para la levadura seca la app no sigue el modelo celular sino la dosificación que publica el fabricante, en gramos por hectolitro. Esa cifra ya incluye su propio recuento celular y su propia viabilidad, así que es más fiable que suponer 20 mil millones de células por gramo, un número que varía entre fabricantes e incluso entre cepas.
Fermentis: 50–80 g/hL para ale, 80–120 g/hL para lager a 12–18 °C — su propia especificación
Otras marcas: 50–100 g/hL para ale, 100–150 g/hL para lager — un rango general, y la app lo indica en lugar de fingir que es una cifra del fabricante
A partir de 15 °Plato todo el rango escala con la fuerza de la cerveza. Fermentar una lager por debajo de 12 °C sube más el consejo: Fermentis recomienda hasta 200–300 g/hL para W-34/70 a 9 °C. La app toma esa temperatura del primer paso de tu perfil de fermentación.
Por qué el mínimo queda por encima del modelo celular. Para una ale normal de 20 litros el modelo celular da algo más de 9 gramos y Fermentis al menos 10. La diferencia es intencionada: un fabricante mantiene su mínimo holgado porque no quiere quejas por fermentaciones lentas. Quien cuenta células puede bajar.
Varias levaduras en una receta
La tarjeta de levadura es una lista, igual que la de maltas y lúpulos. Con + Levadura añades una fila; en cada fila eliges la levadura, la forma y la cantidad. Más de seis levaduras en una receta se rechaza — eso deja de ser una receta y pasa a ser un experimento.
La columna Se añade indica cuándo entra:
Fermentación principal — al fermentador el día de cocción. Inocular dos o más juntas es un blend: sus recuentos celulares se suman.
Más tarde — unos días después, el día 7 por defecto. Para Brett o una segunda cepa que participa en la secundaria.
Embotellado — solo al embotellar, tras la fermentación completa y la posible maduración en frío. Aquí es donde va una levadura de embotellado como CBC-1.
La levadura de embotellado no es una levadura del día 7. La CBC-1 no entra en algún momento de la fermentación sino en el cubo de embotellado, junto con el azúcar — y entre el final de la fermentación y ese momento pueden pasar semanas de maduración. De ahí la opción aparte Embotellado, sin campo de día: un día de fermentación sería el número equivocado y la imagen equivocada.
En la lista hay dos levaduras de embotellado: CBC-1 de Lallemand y SafAle F-2 de Fermentis. Fermentis indica para la F-2 una dosis de 2 a 35 gramos por hectolitro a 15–25 °C, y desaconseja espolvorearla directamente en la cerveza: rehidrátala primero en al menos diez veces su propio peso de agua estéril a 25–29 °C.
La F-2 muestra un guion en vez de un porcentaje. No es un dato que falte sino un vacío deliberado: Fermentis no publica atenuación para esta levadura — su ficha técnica dice "n/a". Tampoco ve mosto nunca, solo azúcar de cebado. Un número aquí sugeriría una especificación que no existe, y ese número entraría luego en tu FG.
Una levadura puesta en Embotellado no cuenta para tu atenuación. Entra después de la fermentación principal y a veces tras semanas de maduración; para entonces ya no tiene nada que decir sobre tu densidad final. Así que una cerveza de trigo con WB-06 (67%) y CBC-1 (75%) calcula con 67%, no con 75%. La excepción depende del momento y no de la cepa: si pones US-05 en Embotellado, tampoco cuenta.
Esa diferencia no es cosmética. Una levadura que se incorpora el día 7 no cuenta para tu tasa de inoculación, que trata de las células que echas al mosto al principio. Si inoculas dos a la vez, el panel suma las células de ambas y las compara con lo que necesitas — una dosis en gramos por hectolitro no tendría sentido ahí, porque se aplica por producto.
La atenuación es la más alta de tus levaduras. Al co-inocular, la cepa más atenuante determina en la práctica tu densidad final; la fermentación no se detiene a medias porque la mitad de tu levadura llegue menos lejos. Una media ponderada parece más científica y es peor cerveza. El campo de atenuación sigue siendo tuyo: lo que introduzcas se mantiene.
La lista de la compra, el stock y el coste cuentan todas las levaduras, cada una en sobres. La ficha de cocción y el texto para compartir indican por levadura cuándo entra. En BeerXML cada levadura tiene su propio elemento YEAST; una adición tardía viaja como ADD_TO_SECONDARY con el motivo en las notas. Un archivo con varias levaduras se lee de la misma manera.
Una receta con una levadura tiene simplemente una fila. Si lees una receta que aún guarda la levadura como campo suelto — una copia de seguridad antigua, un archivo BeerXML — pasa automáticamente a ser esa primera fila, con la misma cantidad y la misma forma.
Gramos, sobres o un starter
Junto a la elección de levadura está Forma de levadura. Con Seca introduces gramos como siempre. Con Líquida cuentas sobres. Con Starter pones los litros de starter que has cultivado, sin conversiones a mano.
La app convierte las tres a la misma cifra: las células que acaban en tu mosto. El panel derecho la pone junto a la que necesitas, así ves de un vistazo si tu starter era suficiente. Un litro de starter de 1.036 lleva unos 37 gramos de extracto y rinde alrededor de 1,4 mil millones de células nuevas por gramo con agitador. Sin agitador, cuenta con la mitad; la app calcula con agitador y lo indica.
Una receta sin forma de levadura se lee como levadura seca en gramos. Es la lectura segura: una receta que solo guarda un número de gramos no es de pronto un número de sobres.
La forma de levadura de tu receta manda sobre la base de datos. La misma cepa se vende a veces en gránulos secos y también en sobre líquido. Lo que pongas en la columna Forma decide la unidad del consejo — aunque la base de datos conozca ese producto de otra manera. Si compras en gránulos una cepa listada como líquida, pon la forma en Seca y obtendrás una dosis en gramos.
Si dejas el campo de cantidad vacío no hay nada que comparar, así que el panel responde a la otra pregunta: ¿cuánto necesitas? Con levadura líquida muestra los sobres que debes comprar; con un starter, los litros que dan esas células.
Levadura líquida: las células por sobre varían por marca
La levadura líquida se vende por sobres, y los sobres no son iguales. La app usa la cifra de cada marca: Omega 150 mil millones, Wyeast y White Labs 100 mil millones, y para marcas desconocidas unos prudentes 100. Por eso el consejo se da en sobres y no en gramos.
Atención a la OG. Para la levadura líquida la app usa el modelo celular, y la necesidad de células es directamente proporcional a los °Plato. Un quadrupel de 1.090 necesita casi el triple de levadura que una cerveza de sesión de 1.035 al mismo volumen.
Por debajo del 70% de lo recomendado el aviso se pone rojo; entre el 70 y el 90%, naranja; y por encima del doble la app advierte del riesgo de autólisis.
Otros ingredientes
Añade hierbas, frutas, especias y clarificantes en la tarjeta 🍊 Otros Ingredientes. La base de datos contiene ~45 ingredientes por categorías:
Para cada ingrediente eliges el momento en que entra. La lista sigue el día de cocción: macerado, agua de lavado, hervido, whirlpool, dry hop, secundaria, embotellado. Las sales que van en el agua de lavado se marcan como Agua de lavado; así aparecen en ese punto de la hoja y del texto compartido, y no entre las adiciones del hervido.
🍊 Cítricos (piel de naranja, ralladura de limón)
🍓 Frutas (frambuesas, cerezas, mango)
🌿 Hierbas (cilantro, jengibre, lavanda)
✨ Especias (vainilla, canela, cardamomo)
🧊 Clarificantes (musgo irlandés, cáscara de arroz, gelatina)
Cada ingrediente tiene una dosis máxima por 20L como referencia. Si la superas, aparece un aviso.
Programa de macerado
Añade pasos de macerado con temperatura y duración. El día de cocción, estos pasos aparecen en el diario como temporizadores de cuenta atrás individuales — inicia un paso y el temporizador cuenta automáticamente. Al terminar recibes una notificación del navegador (si diste permiso).
Compañero de cervezas '26 también calcula automáticamente:
Absorción del grano — según tu perfil de equipo
Volumen pre-hervido — agua de macerado + lavado − absorción − espacio muerto
Relación agua/malta — densidad del macerado
Infusión única o macerado escalonado
Debajo del programa de macerado hay dos filas de botones. Con Añadir rápido pones un solo escalón; con Programa completo sustituyes todo el programa de una vez.
Botón
Programa
Para qué
🍯 Infusión única 67°C
67°C · 60 min
De lejos el más usado. A 67°C siguen trabajando la beta y la alfa amilasa: bastante azúcar fermentable para una cerveza seca, bastantes dextrinas para el cuerpo
🍯 Infusión única + mash-out
67°C · 60 min, luego 78°C · 10 min
El mismo escalón, con parada de amilasas. Aclara el mosto y facilita el lavado
🧬 Macerado escalonado clásico
52 / 62 / 72 / 78°C
Descanso proteico y escalones de amilasa separados. Merece la pena con trigo, centeno o malta poco modificada
Para una cerveza más seca baja la temperatura — 64 a 65°C da más azúcar fermentable. Para más cuerpo macera a 68 o 69°C. El consejo de conversión bajo el programa muestra al instante cuántos minutos necesita esa temperatura como mínimo.
⚠️ Sustituye todo el programa: estos tres botones descartan lo que haya. Si has creado un programa propio, la aplicación pide confirmación; cambiar entre los programas predefinidos ocurre sin preguntas.
Configurar tu propio equipo
Cada equipo evapora de forma distinta. En Ajustes → 🔧 Mi equipo de elaboración introduces cinco valores que rigen todo el cálculo del agua:
Ajuste
Significado
Predeterminado
Evaporación
Litros que se evaporan por hora
3,0 L/hora
Absorción del grano
Líquido retenido por el bagazo
0,8 L/kg
Densidad del macerado
Agua por kilo de malta en la cuba; 0 = todo de una vez (BIAB)
3,0 L/kg
Agua de macerado fija
¿Maceras siempre con el mismo volumen? Ponlo aquí; 0 = no usar
0 L
Pérdida olla/trub
Lo que queda tras el trasvase
1,5 L
Espacio muerto
Líquido bajo el fondo falso
0 L
Contracción al enfriar
Pérdida de volumen de 100 °C a 20 °C
4%
Bajo el programa de macerado, el editor muestra el balance de agua completo: lo que retiene el grano, lo que se evapora (tasa × tiempo), la pérdida en la olla y la contracción — más el volumen pre-hervido y total necesarios. Si tu agua de macerado y lavado no cuadran, ves exactamente cuántos litros faltan. El botón 💧 Rellenar volúmenes según mi equipo lo rellena todo de una vez.
Si elaboras en más de un equipo — una olla del club y otra más pequeña en casa — guárdalos por separado. Introduce los valores, pulsa 💾 Guardar como equipo y dale un nombre como Olla del club 190 L. Encima del formulario hay una lista con la que cambias entre ellos de un clic; todos los campos y el cálculo del agua cambian con él. Tus equipos se incluyen en la copia de seguridad.
⚠️ Un volumen fijo de macerado pertenece a una sola olla. Si fijas 230 L y luego haces un lote de prueba de 20 L no cabrá, así que la aplicación lo limita y te avisa. En ese caso cambia de equipo en vez de editar los números.
Si maceras siempre con el mismo volumen — la capacidad útil de tu cuba, por ejemplo — indícalo en Agua de macerado fija. Tiene prioridad sobre la densidad y se mantiene igual uses 50 o 60 kilos de malta; el agua de lavado absorbe la diferencia. Si en cambio calculas por kilo, deja este campo en 0.
El azúcar y el extracto de malta no cuentan en el cálculo del agua. Se disuelven, no retienen agua y normalmente ni siquiera entran en la cuba. Solo el grano determina la absorción, la densidad del macerado y la relación agua/grano. Por eso en la columna derecha aparecen Malta total y Azúcar total por separado; la segunda línea solo se muestra si la receta lleva azúcar o extracto.
El azúcar y el extracto no cuentan aquí. Solo el grano retiene agua en el bagazo, así que solo el grano determina tu agua de maceración y la absorción del grano. En una receta con 10 kg de azúcar cande eso supone más de 8 litros de diferencia. En tu OG el azúcar sí cuenta con normalidad.
La densidad del macerado determina cómo se reparte el agua total entre macerar y lavar. El macerado clásico con lavado va de 2,5 a 4 litros por kilo; si maceras de una vez al volumen completo sin lavar (BIAB), pon 0. Este número determina el reparto por completo: si maceras más fino de lo que pones aquí, se te asigna demasiada poca agua de macerado y muchísima de lavado. Pon lo que realmente haces.
El espacio muerto se suma aparte. Si tienes un fondo filtrante, una bomba o un colector, hay líquido bajo tu cama de grano que no participa en el macerado. Introdúcelo en Espacio muerto del macerador y la app lo suma a tu agua de macerado. Un Grainfather G30 con 3,5 L de espacio muerto y 2,7 L/kg recibe entonces, con 5,65 kg de malta, 5,65 × 2,7 + 3,5 = 18,8 L de agua de macerado. Si dejas fuera esos 3,5 L, tu grano queda en 11,8 L, una densidad de 2,08 en vez de 2,7 — una cuarta parte más espeso de lo que pediste. El agua total no cambia; solo se desplaza agua del lavado al macerado.
¿Ese espacio muerto se queda atrás o pasa a la olla? Depende del equipo, y supone exactamente esos litros de diferencia en tu agua total. Por eso hay una lista debajo del campo.
Se queda atrás (pérdida) — una nevera con colector, una cuba de filtrado aparte, o cualquier sistema en el que trasvases el mosto a otra olla. Lo que queda bajo el fondo filtrante no viene contigo, así que tienes que reponerlo.
Pasa a la olla — un solo recipiente con bomba: Grainfather, Braumeister, Robobrew, Anvil Foundry, Brewzilla. Ese líquido está en la misma olla en la que vas a hervir; levantas el cesto y viene contigo. Entonces no es una pérdida, solo agua que no está en la cama de grano — que es justo por lo que pertenece a tu agua de macerado y no a tu total.
El valor por defecto es se queda atrás, como siempre lo hizo la app. Con un sistema todo en uno lo cambias una vez y ya está.
¿Calientas el agua de lavado en un recipiente aparte? Entonces hay un tercer sitio donde queda agua: bajo el grifo y alrededor de la resistencia. Introdúcelo en Pérdida del depósito de agua caliente. Si calientas el agua de lavado en la misma olla, o no lavas, déjalo en 0.
¿Tu espacio muerto se queda o pasa a la olla? Bajo el campo Espacio muerto del macerador hay una lista desplegable. Con dos recipientes separados ese líquido se queda y es una pérdida; con un solo recipiente y bomba — Grainfather, Braumeister, Klarstein — pasa a la cocción y no es una pérdida. Si la lista está mal puesta, la app prepara justo esos litros de más. El balance de agua bajo tu receta lo indica en cuanto un espacio muerto se cuenta como pérdida.
Esto funciona distinto que el espacio muerto del macerador, y es a propósito. El agua bajo el fondo filtrante todavía cuenta para la densidad del macerado; el agua del depósito no cuenta para nada. Por eso tu agua de macerado y de lavado no cambian — hacer correr más de lo que pide la receta sobre la cama de grano sería absurdo. Lo que cambia es cuánto pones en ese recipiente y cuánto preparas en total. El balance de agua bajo tu receta añade ambas cifras en cuanto introduces una pérdida.
La relación agua/grano que la app muestra junto a tu carga de malta es por eso la densidad en la cama de grano: el agua de macerado menos el espacio muerto, dividida por tu malta. Ese es el número al que te refieres cuando hablas de 2,7 L/kg — no lo que viertes en el recipiente. Con un volumen de macerado fijo esa corrección no se aplica, porque ese número es el volumen útil de tu recipiente y ya incluye el espacio muerto.
El agua de macerado de una receta existente no se actualiza sola. Se guarda como número en la receta. Si después cambias tu perfil de equipo — otra densidad de macerado, un espacio muerto que antes no tenías — las recetas antiguas conservan su número anterior. En la pestaña de agua aparece entonces una línea con lo que daría tu perfil ahora, y un botón para adoptar esos valores. La app no sobrescribe automáticamente: algunas recetas se desvían a propósito.
Más de un equipo de elaboración
Si elaboras alternando entre casa y una olla de club, guarda ambos como perfil en tus ajustes. En la receta eliges después para qué equipo está escrita. Si dejas ese campo vacío, la receta calcula con el equipo de tus ajustes — exactamente como siempre lo hizo, así que tus recetas existentes no cambian.
Esa elección gobierna todo lo que depende de tu olla: el agua de macerado, el agua de lavado y el volumen de olla, la relación agua/grano bajo la lista de maltas — que resta el espacio muerto de tu recipiente — y el punto de ebullición. Eso último se nota en el amargor: si el perfil lleva una altitud sobre el nivel del mar o una temperatura de cocción propia, el mosto hierve más frío, los alfa-ácidos isomerizan más despacio y el IBU sale más bajo. La pantalla, la lista de recetas y la hoja de cocción dicen entonces el mismo número.
El diario de elaboración lleva esa misma elección, partiendo de lo que dijera la receta. ¿Elaboraste ese día en otro sitio? Cámbialo: el agua de macerado, el agua de lavado, el volumen de olla y el amargor de ese lote se recalculan al momento para ese equipo — también en la hoja de cocción que imprimes y en el resumen. Junto al desplegable ves lo que sale.
Si en el diario vinculas otra receta a un lote que ya está en un equipo, es la receta la que se muda a ese equipo y no al revés. El día de cocción cuenta el recipiente en el que estás, no aquel para el que se escribió el plan.
La receta queda intacta. Cambiarlo en el diario afecta solo a ese lote. La receta es lo que planeaste, el diario es lo que realmente pasó, y esas dos cosas van separadas. Tu carga de maltas, lúpulos, levadura y rendimiento medido tampoco se tocan: otra olla cambia tu agua, no tu grano.
Si eliminas un perfil al que aún apunta una receta o un lote, la aplicación vuelve a tus ajustes. No en silencio: el nombre desaparecido permanece en el desplegable marcado como inexistente, y aparece una línea que dice que se usan tus ajustes. De lo contrario tu cálculo de agua cambiaría sin que nada te avisara.
💡 Mídelo tú mismo: calcula tu evaporación midiendo el volumen antes y después del hervido: (pre-hervido − post-hervido) ÷ tiempo en horas. Hazlo una vez y todas tus recetas serán precisas.
Embotellado: lo que salió de verdad
En el diario del día de cocción, en 🍾 Envasado y carbonatación, indica cuántas botellas has llenado y de qué tamaño. Si parte ha ido a barril, añádelo. La app calcula tu volumen embotellado y pone al lado tu pérdida: la diferencia con el volumen de lote de tu receta, en litros y en porcentaje.
El volumen del cálculo de priming sigue esa cifra automáticamente, porque es justo la cerveza que vas a cebar. Si escribes tú un número, se mantiene: útil si cebas en un cubo de embotellado y no lo embotellas todo.
Por qué esto no es una curiosidad. Tu pérdida está en la cama de levadura, el tubo y lo que queda en el fermentador. Si supera de forma constante el diez por ciento, tu pérdida en la olla o tu espacio muerto en Ajustes están demasiado bajos, y entonces tu agua de macerado y de lavado también salen cortas. El número de contar botellas es una comprobación de todo tu cálculo de agua.
Azúcar de cebado: qué tipo y cuánto
La app calcula cuánto azúcar necesitas para los volúmenes de CO₂ que quieras, teniendo en cuenta el gas que ya hay en la cerveza, que depende de la temperatura a la que ha estado. De ahí ese campo: una cerveza a 20 °C retiene menos CO₂ propio que una enfriada en frío, y necesita más azúcar.
Puedes elegir entre diez tipos. Tras cada nombre está el factor: cuántas veces más necesitas respecto al azúcar de mesa. Ese factor sale de la parte fermentable del producto: factor = 1 ÷ fracción fermentable.
Azúcar de mesa (sacarosa) — ×1,00, por definición
Azúcar candi o moreno — ×1,03
Dextrosa (glucosa monohidrato) — ×1,11
Miel y jarabe de azúcar — ×1,25, ambos alrededor del 80% fermentable
Jarabe candi belga — ×1,30 · jarabe de agave — ×1,32
DME (extracto seco de malta) — ×1,43 · jarabe de arce — ×1,52
LME (extracto líquido de malta) — ×1,79, porque es DME con un 20% de agua
Son valores típicos. La miel va del 78 al 82 por ciento fermentable, los jarabes varían por marca y el extracto de malta por fabricante. Si conoces la fracción fermentable de tu producto, calcúlalo tú: toma los gramos de azúcar de mesa que indica la app y divídelos por tu fracción. La melaza no está a propósito: va del 45 al 60 por ciento y aporta tanto sabor que no la elegirías por la carbonatación; una cifra que puede fallar decenas de por ciento no ayuda a nadie.
Qué le hace el azúcar de cebado a tu cerveza
Ese azúcar también fermenta, y lo notas de dos maneras. Añade alcohol, y el agua en la que lo disuelves diluye tu cerveza y aumenta el volumen final. Introduce esa agua en Agua de disolución, junto al tipo de azúcar; debajo del resultado verás lo que queda en balance.
El alcohol se deduce directamente de tu objetivo de CO₂, no del tipo de azúcar. Cada molécula de azúcar da cuatro moléculas de alcohol y cuatro de CO₂ — 184,3 frente a 176,0 gramos en masa. La misma carbonatación implica el mismo alcohol, uses azúcar de mesa o extracto de malta.
Un ejemplo: 20 litros de cerveza al 6,0% hasta 2,4 volúmenes de CO₂ a 20 °C. Hacen falta otros 1,55 volúmenes, que dan unos 81 mL de alcohol — +0,40%. Si disuelves el azúcar en 0,3 litros de agua, acabas en 20,3 litros y 6,31%. Neto +0,31%: la dilución se come una cuarta parte de la ganancia.
Calcular la evaporación en vez de medirla
En cuanto el mosto hierve la temperatura queda fija: toda la energía que sobra tras las pérdidas se emplea en convertir agua en vapor. Eso cuesta 2,26 MJ por litro, y esa cifra no depende del tiempo de hervido, de cuánto hay en la olla ni de lo ancha que sea. Si conoces la potencia de tu resistencia, no necesitas medir.
En Ajustes → 🔧 Mi equipo de elaboración, junto a Evaporación, introduce la potencia en vatios y el porcentaje del tiempo que la resistencia está realmente encendida. La app lo calcula: 1800 W durante una hora son 6,48 MJ, divididos por 2,26 dan 2,87 litros por hora. Con Aplicar pasas ese valor al campo.
Es un máximo. Parte de la potencia se escapa por la pared, la tapa y la campana, y esa parte no evapora nada. Ahí sí influye la forma de la olla, pero a través de esas pérdidas, no del hervido en sí. Con gas, además, buena parte del calor de la llama nunca entra en la olla. Medir sigue siendo más exacto; este cálculo sirve de punto de partida y de comprobación.
Qué significa para el escalado. La evaporación no es un porcentaje del lote. El doble de mosto bajo la misma resistencia evapora aproximadamente los mismos litros por hora, no el doble. Por eso la app recalcula el volumen de hervido desde tu perfil de equipo cuando cambias el tamaño del lote, en lugar de escalarlo proporcionalmente.
Imprimir la receta o guardarla como PDF
¿Quieres la receta en papel para el día de cocción? Pulsa 🖨️ Imprimir / PDF en el editor de recetas (o arriba a la derecha del resumen en el diario). Se abre una hoja limpia en lenguaje normal con todas las cifras clave, los volúmenes de agua, el programa de macerado con casillas, la carga de malta, el lúpulo, la levadura y campos en blanco para anotar tus mediciones. Elige Guardar como PDF en el diálogo de impresión para conservarla.
Abajo hay dos bloques rayados para escribir a mano: Notas del día con ocho renglones y Notas de cata con seis. Ocupan todo el ancho de la hoja, así que cabe una frase de verdad. Los renglones están a 8 mm — la altura de la escritura a mano normal — y un bloque nunca se parte por un salto de página.
El bloque de agua empieza por qué agua usas. No solo cuántos litros de agua de macerado y de lavado, sino si es tu agua del grifo, un perfil que guardaste tú mismo o agua diluida — con el porcentaje y los litros de agua de ósmosis al lado. Si la app no tiene un nombre de perfil, salen en su lugar las seis cifras de iones. La hoja solo lo sabe si pulsaste 📋 Copiar en <nombre> en la pestaña de agua; si nunca lo hiciste, la línea no aparece en vez de afirmar algo.
La hoja sigue el orden en que trabajas, no el orden en que escribiste las filas: la carga de malta con el saco más pesado arriba, el lúpulo desde el primer mosto pasando por el hervido y el whirlpool hasta el dry hop, y los demás ingredientes del macerado al embotellado. En el editor de recetas las filas se quedan donde las pusiste: una fila que salta mientras ajustas un peso es inmanejable.
Compartir tu receta en un foro
Un mensaje de foro, un correo o un chat no necesitan un PDF, sino texto que puedas pegar. En el editor de recetas pulsa 📋 Copiar receta: las cifras clave, la carga de malta con porcentajes, el programa de lúpulo, los demás ingredientes, la levadura, el macerado, la fermentación y tus notas pasan al portapapeles como texto plano. Pega con Ctrl+V, o ⌘V en un Mac.
El bloque de agua y los campos en blanco se omiten. Son para el día de cocción y no le dicen nada a quien lee: tu agua de macerado depende de tu equipo, no de la receta.
💡 BeerXML es otra cosa: esa exportación sirve para intercambiar recetas con otros programas (Brewfather, BeerSmith) y no se lee bien en papel. Para eso usa el botón de imprimir.
Elaborar en altitud — temperatura de hervido y amargor
Por encima del nivel del mar el agua hierve por debajo de 100 °C. Los ácidos alfa se isomerizan más despacio y el amargor resulta menor — una diferencia nada despreciable a gran altitud. Introduce tu altitud sobre el nivel del mar en Ajustes → 🔧 Mi equipo de elaboración; la app calcula el punto de ebullición y corrige automáticamente todos los cálculos de IBU. Si conoces tu temperatura real de hervido (medida con termómetro), introdúcela en Temperatura de hervido — prevalece sobre el cálculo por altitud. La altitud y la temperatura de hervido pertenecen al perfil del equipo: si una receta ha elegido su propio equipo, el amargor se calcula con el punto de ebullición de ese equipo.
Deja vacío el campo Temperatura de hervido si quieres que se tenga en cuenta la altitud. Un valor ahí siempre prevalece, incluso sobre una altitud que introduzcas después: si pones 300 m mientras el campo marca 100 °C, tu IBU no cambia. La app ahora lo advierte. El campo vacío muestra en gris la temperatura que se deduce de tu altitud.
Altitud
Punto de ebullición
IBU con 60 min de hervido
0 m (nivel del mar)
100,0 °C
100%
1000 m
96,7 °C
−13%
2000 m (p. ej. Ciudad de México)
93,4 °C
−24%
2850 m (Quito)
90,5 °C
−32%
3400 m (Cusco)
88,7 °C
−35%
3650 m (La Paz)
87,9 °C
−37%
El punto de ebullición se obtiene de la fórmula barométrica junto con la ecuación de Antoine para el agua; la velocidad de isomerización, de la ecuación de Arrhenius con las constantes de Malowicki y Shellhammer (2005). El extracto de lúpulo isomerizado no se corrige — ya está convertido.
💡 ¿Quieres el mismo amargor? Aumenta la dosis de lúpulo o alarga el hervido; la app muestra el resultado al instante.
Consejo de conversión — evita macerar poco tiempo
Debajo del programa de macerado (y junto a los temporizadores del diario) aparece un aviso con el tiempo total de sacarificación. La app suma todos los descansos entre 60 y 73°C y los compara con el tiempo necesario a tu temperatura de sacarificación más alta para una conversión completa del almidón:
Temperatura de sacarificación
Tiempo mínimo aconsejado
70–73°C (óptimo de alfa-amilasa)
25 min
67–69°C
35 min
64–66°C
45 min
62–63°C
60 min
60–61°C (prácticamente solo beta)
90 min
Al ajustar un paso, el consejo se recalcula al instante y muestra cuántos minutos faltan. Así evitas una conversión incompleta y una menor eficiencia.
⚠️ Atención: es una orientación basada en tiempo y temperatura. Solo una prueba de yodo confirma que el almidón se ha convertido del todo. Una malta mal modificada, una molienda gruesa o un macerado espeso requieren más tiempo.
Cálculos y panel
Todos los cálculos se actualizan en vivo. El panel (a la derecha del editor) muestra:
Valor
Explicación
OG
Densidad original
FG
Densidad final (según atenuación)
ABV
Porcentaje de alcohol
IBU
Amargor (Tinseth o Rager)
EBC
Color (fórmula de Morey)
Densidad pre-hervido
Densidad esperada antes del hervido
BU:GU
Relación amargor/densidad
Tasa de inoculación
Dosis de levadura por litro, con consejo
Coste
Calculado con tus precios
Introduce tus propios precios de compra en la pestaña Ingredientes, en la columna Precio junto a cada ingrediente (malta €/kg, lúpulo €/100 g, levadura €/gramo, otros ingredientes €/100 g o por unidad). Si dejas un campo vacío, la app usa el precio estándar que aparece en gris. Los cambios se guardan al instante; con ↺ Precios estándar restableces toda una categoría.
Haz clic en Mostrar desglose de costes por ingrediente debajo del coste para ver cómo se compone: por ingrediente el nombre con su coste y, debajo, la operación (por ejemplo 5 kg × € 2,35/kg). El total está abajo. Los ingredientes sin precio conocido aparecen en naranja y cuentan como € 0 — el coste queda entonces demasiado bajo.
De dónde sale tu densidad inicial
Bajo Densidad inicial (OG) en el panel de cálculos hay un desplegable: Mostrar el desglose de la densidad por ingrediente. Funciona como el desglose de costes, pero en puntos de densidad.
La carga de malta va en una sola línea, con el peso total de grano y el rendimiento con el que se ha calculado. La aportación por malta ya está en la propia tabla de maltas; repetirla aquí alargaría la lista sin aportar nada. El azúcar y el extracto de malta reciben cada uno su línea, porque esa suele ser la pregunta: qué parte de mi densidad no viene del grano. Detrás de cada línea una barra muestra su participación en porcentaje.
El total está abajo y es exactamente la cifra que aparece encima. Las adiciones tardías — azúcar durante la fermentación, azúcar de cebado — quedan debajo en gris con su momento, y no cuentan en ese total: todavía no están en tu mosto cuando mides la OG. Lo que aportarían juntas también se indica, porque esa es la cifra con la que trabaja el cálculo del alcohol.
Las líneas se redondean de modo que sumen visiblemente el total, y los porcentajes cien. Si redondeas cada línea por separado, dos pueden subir y la suma queda una milésima desviada — lees entonces 0,058 + 0,011 con 1.068 debajo. Por eso la app reparte primero y redondea después, como en el reparto de escaños: ninguna línea se aleja más de una milésima de su propio valor.
Impuestos especiales (teórico)
Debajo del coste, la app muestra el impuesto especial neerlandés sobre la cerveza que se debería si vendieras esta cerveza comercialmente. Verás dos importes: la tarifa normal, que se aplica a las cervecerías que producen más de 200.000 hl al año, y la tarifa reducida para cervecerías independientes de hasta 200.000 hl al año. Ambas se calculan por hectolitro y por grado de alcohol en volumen, con el mismo importe mínimo por hectolitro para las dos: en cervezas ligeras cuenta ese mínimo y no el porcentaje de alcohol. Las tarifas proceden de la lista de tarifas de la aduana neerlandesa. Si elaboras en casa para consumo propio estás exento y no pagas nada; los importes son solo informativos.
Como cervecero casero no pagas nada. La cerveza elaborada en casa para consumo propio está exenta (Ley de impuestos especiales de los Países Bajos, art. 5.3.c). La cifra es meramente informativa — por ejemplo para ver lo que costaría una receta en un contexto comercial. No es asesoramiento fiscal, y fuera de los Países Bajos las tarifas son distintas.
Temporizadores
Los temporizadores siguen corriendo cuando se bloquea la pantalla. Leen el reloj en lugar de contar segundos, así que un móvil que se duerme — o una pestaña que pasa a segundo plano — no los atrasa. Al volver, la hora correcta está ahí de inmediato, y las adiciones de lúpulo que tocaban entretanto se avisan igualmente.
Además de los pasos de macerado, el diario tiene dos temporizadores: uno de hervido y un cronómetro. El de hervido cuenta atrás: introduce los minutos y pulsa ▶ Iniciar. Si vinculas una receta, su tiempo de cocción ya viene puesto. Al llegar a cero suena la misma alarma que en un paso de macerado — sonido que se repite hasta que lo confirmas, vibración en Android y una notificación del navegador. Puedes cambiar el tiempo durante la cocción; el tiempo transcurrido se conserva.
El diario tiene tres temporizadores generales: Macerado, Hervido y Cronómetro. Además, Compañero de cervezas '26 muestra los temporizadores de pasos de macerado de tu receta. Si la receta no tiene programa de macerado, los cuatro pasos estándar están listos: descanso proteico 52°C/15 min, beta amilasa 62°C/45 min, alfa amilasa 72°C/20 min y mash-out 78°C/10 min. Pulsa ▶ Iniciar en un paso para empezar la cuenta atrás; la duración de cada paso se ajusta directamente en la tabla — incluso con el temporizador en marcha.
Cuando un paso termina recibes una señal sonora (tres pitidos, repetidos cada 5 segundos hasta confirmar), un aviso verde pulsante en el diario, una fila parpadeante en la tabla y — en Android — una vibración. Pulsa ✓ Entendido para detener la alarma. El sonido se activa al pulsar ▶ Iniciar, ya que los navegadores (sobre todo en iPhone) solo permiten audio tras una acción del usuario.
Mediciones y progreso de fermentación
Registra mediciones de densidad por fase (pre-hervido, OG, fermentación primaria, FG). Introduce también la temperatura — Compañero de cervezas '26 muestra automáticamente la densidad corregida a 20°C. Vale para cualquier temperatura salvo los 20°C mismos, también 0°C: si mides la FG de una cerveza que ha estado en frío, tu densímetro marca casi dos puntos de más.
Deja vacío el campo Fecha y hora para una medición que hagas ahora mismo. Si lo rellenas, añades a posteriori una medición más antigua — práctico al trasladar un diario desde otro programa. La medición ocupa entonces su propio lugar en el tiempo en vez de ir al final de la lista: el progreso de fermentación lee la medición más reciente, y esa debe ser la última.
Con una medición de OG y otra posterior, aparece una barra de progreso de fermentación con el porcentaje de atenuación actual y el ABV actual.
Carbonatación
La calculadora de carbonatación está al final del diario. Introduce: volúmenes de CO₂ deseados, temperatura de la cerveza al embotellar y volumen. Compañero de cervezas '26 calcula cuántos gramos de azúcar (o miel, DME) necesitas.
Agua
El pH de tu agua de origen pertenece a tu grifo, así que se guarda: va en tus ajustes de agua y en un perfil que guardes tú. Si eliges ese perfil más tarde, tu pH medido vuelve a estar ahí. Los perfiles incluidos — Pilsen, Burton, Dublín — no tienen ninguno: son perfiles de iones, no muestras de agua, así que dejan tu medición en paz.
En la pestaña de agua introduces el perfil de tu agua de origen y eliges un perfil objetivo. Compañero de cervezas '26 calcula qué minerales añadir (yeso, cloruro de calcio, sal de Epsom, sales de sodio y magnesio).
Introducir y guardar tu propia agua
No estás limitado a los perfiles incluidos: escribe los valores de tu agua del grifo en los seis campos de iones. Después pulsa 💾 Guardar como perfil y dale un nombre — aparecerá arriba en la lista bajo "🧑🍳 Mi propia agua" y podrás cargarlo con un clic, también como agua objetivo. Con 🗑️ eliminas uno. Tus perfiles se incluyen en las copias de seguridad y en la exportación JSON.
Tus valores de agua se quedan; no hay nada que vincular. La pestaña de agua es un único conjunto de ajustes para toda la app, no algo por receta ni por instalación. Si siempre elaboras en la misma fábrica, introduce tu agua una vez, guárdala, y la encontrarás en cada arranque — incluido el nombre del perfil en la lista. Elegir un perfil de la lista sirve por tanto solo para devolver los seis campos a esos valores, no para repetirlo cada día de cocción.
⚠️ Guardar no ocurre solo. Abajo en el panel de resultados está 💾 Guardar ajustes de agua; sin esa pulsación tus valores desaparecen al cerrar. El botón 💾 Guardar como perfil hace las dos cosas a la vez: registra el perfil y guarda tus ajustes de agua actuales.
Para quien usa agua de ósmosis o destilada hay dos perfiles de partida sin sales: Agua desmineralizada / ósmosis (todos los iones a cero) y Agua de lluvia. Ideales como base para construir con sales.
Un estilo que la app no conoce se queda. Las recetas de Brewfather o BeerSmith suelen llevar un nombre de estilo en inglés como "Belgian Tripel". No está en la lista, pero se añade debajo con un asterisco — igual que un ingrediente que no está en la base de datos. Si buscas entre los estilos, tu elección se mantiene aunque quede fuera del filtro; debajo se indica que está oculto.
💡 ¿Dónde encontrar tus valores? La mayoría de compañías de agua publican un análisis por código postal. Busca calcio, magnesio, sodio, cloruro, sulfato y bicarbonato (o "dureza" y "HCO₃"). Si dudas, analiza tu agua una vez.
¿Qué ácido elegir?
Ácido
Fuerza
Qué más hace
Ácido láctico 80%
10,5 mEq/mL
Lo que se vende habitualmente en los Países Bajos y Bélgica. Por encima de ~400 mg/L en la cerveza se nota como una ligera acidez
Ácido láctico 88%
11,8 mEq/mL
El estándar estadounidense, y lo que da por supuesto casi toda la literatura en inglés. Mismo ácido, un 12% más fuerte por mL
Ácido fosfórico 75%
12,1 mEq/mL
Neutro de sabor — el fosfato precipita en gran parte con el calcio en el macerado. Misma dosis en mL que el láctico
Ácido clorhídrico 10%
2,88 mEq/mL
Aporta cloruro, que acentúa el carácter maltoso. Requiere más de cuatro veces el volumen
El láctico y el fosfórico al 75% tienen casi la misma fuerza: donde necesitas 3 mL de láctico, aproximadamente lo mismo de fosfórico hace el trabajo. La diferencia está en el sabor. Si tienes que acidificar mucho — agua blanda con mucha malta oscura, o una lager pálida con agua dura — el fosfórico te mantiene por debajo del umbral de percepción.
⚠️ Mira la etiqueta: el ácido láctico se vende en varias concentraciones, y eso supone una diferencia grande en la dosis. Debajo de la fila del ácido láctico en la tabla de sales, introduce tu propio porcentaje en concentración; la app muestra al instante cuántos mEq por mililitro salen. En los Países Bajos y Bélgica lo normal es el 80%, mientras que las recetas y la literatura estadounidenses casi siempre se refieren al 88%.
Diluirlo tú mismo — normalmente buena idea
El ácido láctico concentrado es corrosivo, y en un lote de 20 litros solo dosificas unos pocos mililitros. Una gota de más ya es el 10% de tu adición. Por eso muchos cerveceros lo diluyen primero al 30%, por ejemplo: trabajas con mililitros enteros en vez de décimas, y hay menos que pueda salir mal si se derrama.
Introduce sin más tu propio porcentaje en el campo de concentración. La app deduce la densidad de la disolución de una tabla de medidas y calcula la fuerza a partir de ahí, así que el 30% es tan exacto como el 80%. Como orientación: 80% ≈ 10,5 mEq/mL, 50% ≈ 6,2, 30% ≈ 3,6, 10% ≈ 1,1.
⚠️ Diluye en peso, no en volumen. El porcentaje de ácido láctico es un porcentaje en masa (w/w). Para pasar del 80% al 30%, pesa 100 gramos de ácido láctico al 80% y complétalo hasta 267 gramos con agua — no hasta 267 mililitros. La cuenta general: peso nuevo = peso viejo × porcentaje viejo ÷ porcentaje nuevo. Diluir en volumen te deja más de un 10% desviado, y así pierdes justo la precisión que buscabas.
¿No estás seguro de que haya salido bien? Mídelo
En Herramientas encontrarás 🧪 Medir la concentración del ácido láctico. Introduce ahí tu lectura del refractómetro o del hidrómetro y obtendrás el porcentaje en masa, con un botón para pasarlo directamente a la pestaña de agua.
El hidrómetro es el más exacto: para eso la app simplemente lee la misma tabla de densidades al revés. Eso sí, necesita una probeta llena de tu ácido.
Al refractómetro le bastan dos gotas, pero la escala Brix está calibrada para el azúcar, no para el ácido láctico. Por eso la app convierte en dos pasos: de Brix a índice de refracción mediante la escala del azúcar, y de índice de refracción a porcentaje en masa mediante una recta entre el agua y el ácido láctico puro. Cuenta con alrededor de un punto porcentual de incertidumbre — más que suficiente, porque la alternativa es adivinar y eso cuesta fácilmente un diez por ciento.
En ambos casos, mide a 20 °C, que es la temperatura para la que valen las dos tablas.
Diluir el agua del grifo con agua osmotizada o destilada
Con agua dura y una pilsner en mente, diluir suele ser más sencillo que acidificar. En Diluir con agua osmotizada/destilada indica qué parte de tu agua total es osmotizada — en porcentaje o en litros, lo que te resulte más cómodo. El otro campo se ajusta solo.
Diluir es lineal: una parte de agua del grifo con una de osmosis reduce a la mitad cada ion. Nada reacciona y nada precipita; es la misma cantidad de materia disuelta en más agua. El agua osmotizada, desionizada y destilada cuentan aquí como cero; en la práctica la osmosis conserva unos pocos mg/L, y eso desaparece frente a la incertidumbre de tu propio análisis.
Los seis campos de iones siguen siendo tu análisis. No cambian porque diluyas — ahí está lo que mide tu compañía de aguas. Lo que realmente entra en la olla aparece en la línea de abajo. Así no pierdes tus propios datos ni diluyes dos veces seguidas.
Todo lo que se deriva de tu agua usa los valores diluidos: el resumen de iones, la alcalinidad residual, el pH de macerado y el pH del agua de lavado. Las sales que añades van sobre el agua ya diluida, que es lo correcto: las disuelves en la mezcla.
⚠️ Diluir baja todo, también lo que querías conservar. Con el bicarbonato bajan también tu calcio y tu sulfato. Normalmente no es un problema: eso lo repones con sales de elaboración, y por eso funciona este orden — diluye hasta que tu alcalinidad cuadre y después añade sales hasta que cuadre tu perfil.
Dejar que la app calcule las sales para tu objetivo
Encima de la tabla de sales está ⚗️ Calcular sales para el perfil objetivo. Mira tu agua de origen — ya diluida — y el perfil objetivo que has elegido, y rellena las seis sales de elaboración que más te acercan. Debajo ves, por ion, dónde acabas frente a dónde querías llegar.
El cloruro de calcio se compra en gránulos o como disolución líquida al 36%. Junto al botón está Uso cloruro de calcio líquido (36%): márcalo y el botón calculará en mililitros y dejará en paz el campo de los gránulos. La marca pertenece a tu cervecería y se guarda con tus ajustes de agua. Ambas formas aportan los mismos iones — la app sustituye la sal dentro del propio cálculo, así que el calcio y el cloruro salen bien los dos, no solo uno.
No lo conviertas a mano. Un mililitro de disolución contiene unos 0,65 gramos de gránulos — si pones una cifra en gramos en el campo de mililitros, te pasas un 55%. Lo que rellena el botón es correcto; si lo introduces tú, mira la unidad de la fila.
Las adiciones de macerado y de lavado reciben la misma concentración, así que pesos distintos: tratas tu agua, no tu macerado. Con Borrar sales lo dejas todo a cero.
⚠️ Las sales solo pueden sumar. Si tu agua de origen ya está por encima del objetivo para un ion — a menudo el bicarbonato con agua dura — no existe ninguna sal que lo baje. La app te dice cuáles son; la única forma de bajarlo es diluir con agua osmotizada o destilada. Diluye primero y calcula las sales después.
Si el cálculo elige creta, la app te avisa. La creta es la única manera de añadir bicarbonato sin sodio, pero en el macerado solo se disuelve a medias — cuenta con menos efecto del indicado, o usa bicarbonato y acepta el sodio extra.
Los ácidos no se tocan. Pertenecen al pH, no al perfil de iones. Cuánto ácido láctico necesitas ya aparece bajo el pH de macerado calculado y junto al agua de lavado — es otra cuenta, y no cambia al pulsar el botón de sales.
Es un cálculo por mínimos cuadrados: seis sales, seis iones y la condición de que una cantidad nunca puede ser negativa. Un acierto perfecto suele ser imposible — el yeso aporta calcio y sulfato en una proporción fija, así que si tu objetivo no tiene esa proporción acaba siendo un compromiso. Por eso se indica la desviación por ion.
El pH del agua de lavado
Es una pregunta distinta a la del pH de macerado. Allí manda tu carga de malta; aquí se trata del agua en sí. Un agua de lavado demasiado alcalina extrae taninos de las cáscaras en los últimos litros, y eso se nota como aspereza seca. La regla: quédate por debajo de pH 6.
Introduce para ello el pH de tu agua de origen junto a tu análisis. Sin esa medición la app no calcula esto, y es a propósito: cuánto dióxido de carbono lleva tu agua del grifo depende de tu instalación y de tu grifo, y no se deduce del resto del análisis. Suponer que tu agua está en equilibrio con el aire da un pH muy desviado.
El método es el equilibrio del carbonato: pH = 6,38 + log(HCO₃⁻ / CO₂). El ácido convierte bicarbonato en dióxido de carbono — mol a mol, de uno al otro. Tu pH de origen medido fija el punto de partida, así no hay que adivinar el contenido de CO₂.
Si tu agua de lavado sale por encima de 6, la app lo avisa y calcula cuánto ácido láctico falta para llegar a 5,8, descontando lo que ya añadiste. Cuando todo el bicarbonato se ha ido el pH cae en picado; ahí termina este modelo, y la app lo dice honestamente en lugar de inventarse una cifra.
Agua desmineralizada, de ósmosis y destilada
Si elaboras con agua sin bicarbonato, no hay tampón. El equilibrio del carbonato de arriba no se aplica: el pH de tu agua de lavado es sencillamente el que mides, y no cambia por añadir más agua.
Eso responde también a si debes acidificar: no. El agua desmineralizada y la de ósmosis ya están en torno a pH 6, por debajo del punto donde empieza la extracción de taninos, y no hay nada que tamponar. La app indica que no hay tampón y omite el consejo de acidificación.
Si aun así añades ácido, el pH cae en picado. No hay nada que lo frene: medio milimol de ácido láctico por litro ya lleva un agua casi neutra a pH 3,6. La app lo calcula con la aproximación de ácido débil [H⁺] = √(Ka × C) para el ácido láctico (pKa 3,86). Con ácido fosfórico el resultado es aún menor.
pH de macerado — vincula primero tu receta
El pH de macerado depende sobre todo de tu carga de malta: las maltas oscuras y caramelo son ácidas, la malta base mucho menos. Por eso elige una receta arriba en la pestaña de agua con Vincular receta. La app toma el volumen de agua de macerado y calcula el pH a partir de esa carga concreta. Sin receta vinculada muestra deliberadamente un guion en vez de un número engañoso.
El modelo usa el pH de cada malta en agua destilada y su capacidad tampón por kilo. La alcalinidad del agua sube ese pH, el ácido lo baja — y cada mililitro extra de ácido sigue actuando, incluso tras neutralizar todo el bicarbonato. Si el pH es demasiado alto, la app indica aproximadamente cuántos mililitros de ácido láctico necesitas, calculado con la concentración que hayas elegido en la tabla de sales.
Pasar el tratamiento del agua a la receta
La pestaña de agua calcula, la receta guarda. Mientras tus adiciones de sales solo estén en la pestaña de agua, no aparecen en tu hoja de elaboración, ni en la lista de la compra, ni en el coste — y solo hay una pestaña de agua, mientras que puedes tener diez recetas.
Vincula por tanto una receta y pulsa 📋 Copiar en <nombre> debajo del análisis. El botón coloca en esa receta:
el agua de macerado y de lavado tal como está aquí introducida;
cada adición de sal o ácido que no sea cero, como fila bajo Otros ingredientes, con el momento Macerado o Agua de lavado;
qué agua es: el nombre del perfil de origen, el porcentaje de dilución y los seis valores de iones. Aparecen arriba del bloque de agua de la hoja de cocción, para que en el papel conste si elaboras con agua del grifo, de ósmosis o una mezcla.
Un nombre de perfil que ya no encaja no se menciona. La lista sigue en "Dublin" aunque hayas ajustado a mano un campo de iones. En pantalla eso da igual, porque las cifras están al lado — en una hoja impresa no. Si algo se aparta del perfil, la hoja imprime los seis valores de iones en lugar de un nombre.
Las sales de elaboración son ingredientes normales de la base de datos, bajo el grupo 🧂 Sales de elaboración. Cuentan por tanto en la lista de la compra y en el coste, y puedes poner tu propio precio de compra en la pestaña Ingredientes.
Volver a pulsar sustituye, no acumula. Ajusta la tabla de sales y pulsa de nuevo, y el nuevo estado ocupa el lugar del anterior. Las filas que hayas escrito tú mismo en el momento de macerado o de lavado entran en ello; todo lo que esté en otro momento — ácido láctico en el embotellado, espirales de roble en la secundaria — queda intacto.
El ácido láctico lleva su concentración en el nombre, porque un mililitro al 80% no es lo mismo que un mililitro al 88%. Si lo diluyes tú mismo a, digamos, el 30%, ese porcentaje aparece en el nombre y el ingrediente sale con un asterisco en la lista.
⚠️ Nada ocurre solo. Los ajustes de agua se guardan una sola vez y no pertenecen a ninguna receta. Si más adelante cambias algo de tu agua, las filas copiadas en la receta no se actualizan — vuelve a pulsar el botón.
¿Granulado o líquido? Fíjate en la unidad
El cloruro de calcio existe en dos formas, y desde luego no son intercambiables. El granulado que compras en polvo es el dihidrato CaCl₂·2H₂O: un gramo aporta 273 mg de calcio. La solución líquida al 36% se introduce en mililitros: un mililitro aporta 176 mg de calcio y 312 mg de cloruro.
Por eso la tabla de sales tiene dos filas separadas. Introduce el líquido en Cloruro de calcio 36% líquido (ml), no en la fila del granulado que está encima.
⚠️ El error habitual: introducir mililitros en la fila del granulado. Te desvías entonces un 55% — la aplicación calcula con más calcio del que realmente añades. A la inversa: 1 mL de líquido ≈ 0,65 g de granulado.
El cálculo de fondo: la solución al 36% tiene una densidad de unos 1,35 g/mL, así que un mililitro contiene 0,486 gramos de CaCl₂ anhidro. De eso, el 36,1% es calcio y el 63,9% cloruro. Esas cifras coinciden con lo que el fabricante imprime en el envase: 1 mL por 10 litros da 17,6 mg/L de calcio y 31,2 mg/L de cloruro.
Antioxidantes a base de metabisulfito
Productos como Antioxin SBT, o metabisulfito potásico puro, capturan oxígeno y mantienen la cerveza fresca más tiempo. Hacen algo que se pasa por alto fácilmente: el sulfito se oxida en gran medida a sulfato, lo que desplaza tu perfil de agua. En una pilsner de agua blanda una sola dosis puede triplicar el sulfato y llevar la relación cloruro-sulfato de redonda a seca y amarga.
Rellena por tanto la fila Antioxidante (metabisulfito) en la tabla de sales: los gramos, y debajo el porcentaje de metabisulfito potásico que figura en el envase. Así el campo sirve para cualquier marca. Antioxin SBT contiene 45%, Antioxin SB 46,8%, el KMS puro 100%.
Producto
Dosis
Sulfato adicional
Antioxin SBT
0,5 g por 10 L
unos 17 ppm
Antioxin SBT
1,0 g por 10 L
unos 34 ppm
Metabisulfito potásico
1,0 g por 10 L
unos 75 ppm
El cálculo. El metabisulfito potásico (K₂S₂O₅, 222,31 g/mol) aporta dos átomos de azufre por molécula y por tanto dos iones sulfato de 96,06 g/mol. La conversión completa daría 0,864 gramos de sulfato por gramo. Nunca llega tan lejos: parte del sulfito se une a carbonilos y parte escapa con el CO₂. La aplicación usa por eso el factor práctico 0,87 habitual en enología — 0,752 gramos de sulfato por gramo de metabisulfito. Tómalo como un orden de magnitud, no como dos decimales.
⚠️ Solo lo que entra antes o durante el macerado: deja esto vacío para un antioxidante que dosifiques después de la fermentación, como Antioxin SB. La pestaña de agua modela el agua de macerado, y esa adición tardía aporta apenas 3 a 10 ppm — se pierde en el ruido.
Dos cosas que la aplicación ignora a propósito. El potasio no se registra: no aparece en ningún perfil objetivo y no tiene umbral de sabor en los niveles alcanzables aquí. Y el ácido ascórbico que suelen llevar estos productos es efectivamente un ácido, pero su efecto sobre el pH se queda por debajo de 0,05 — menor que la incertidumbre del propio modelo de pH.
Acidificar con malta acidulada en lugar de una dosis de ácido
La malta acidulada — Sauermalz — es malta base corriente acidificada con bacterias lácticas. La pesas como cualquier otro ingrediente y baja el pH del macerado sin tener que recurrir a una pipeta.
Añádela en la sección de maltas del editor de recetas; está en la lista bajo el grupo 🍋 Malta acidulada. Introduce el peso y listo: en cuanto vincules la receta en la pestaña de agua, la acidificación queda incluida en el pH de macerado que se muestra. Debajo del pH la aplicación indica cuánto ácido aporta la malta y a cuántos mililitros de ácido láctico equivale.
⚠️ No dosifiques dos veces: la malta acidulada ya está en el pH calculado. Si además introduces ácido láctico en la tabla de ácidos, estarás acidificando dos veces.
Proporción de malta acidulada
Efecto sobre el pH
1% de la carga
unos 0,1 menos
2%
unos 0,2 menos
3%
unos 0,3 menos
Esta es la regla práctica de Weyermann, y la aplicación trabaja en el mismo orden de magnitud. El cálculo de fondo: a pH 5,45 la malta acidulada tiene un contenido efectivo de ácido láctico de aproximadamente 3,13%, así que un kilo aporta 31,3 gramos de ácido láctico. Dividido por la masa molar de 90,08 g/mol resulta en 347 mEq de ácido por kilo — la misma unidad con la que la aplicación calcula una dosis de ácido. Cien gramos de malta acidulada equivalen por tanto a unos 3 mL de ácido láctico 88%.
Mantente por debajo del 5% de la carga; por encima del 10% la aplicación avisa, porque la cerveza queda perceptiblemente ácida. Para estilos que buscan justamente eso, como Berliner Weisse o Gose, puedes subir más. En extracto y color la malta acidulada se comporta como malta pilsner, así que tu OG y EBC apenas cambian.
⚠️ Sigue siendo una estimación: los valores reales varían según el lote de malta y el agua. Mide el pH tras 10–15 minutos con un medidor calibrado; busca 5,2–5,6 (medido a temperatura ambiente).
Perfiles objetivo incluidos: Pilsen, Burton, Dublín, Viena, Múnich, Dortmund y agua blanda.
Inventario
Controla cuánta malta, lúpulo, levadura y otros ingredientes tienes en stock. Arriba hay cuatro botones: 🌾 Malta y granos, 🌿 Lúpulo, 🧫 Levadura y 🧂 Otros ingredientes. En malta y lúpulo la cifra se pone roja al bajar del umbral; la levadura se cuenta en sobres.
Los otros ingredientes llevan la unidad que les corresponde: gramos para el cilantro, mililitros para el ácido láctico, unidades para una espiral de roble. A propósito no hay umbral de "casi agotado" — un solo umbral para una categoría que mezcla gramos de especias con litros de ácido es un número inventado. Lo que te falte para las recetas que quieres elaborar sale en la lista de la compra, que es donde corresponde.
La levadura se cuenta por defecto en sobres, pero puedes cambiarlo a gramos por levadura. Está pensado para quien compra un bloque de 500 gramos: un sobre no se puede partir, un bloque sí, y entonces quieres contar en gramos. Junto al campo de existencias hay una lista para la unidad y un campo para el peso de un envase — un sobre de levadura seca son 11,5 g, un pack de levadura líquida unos 100 g, tu bloque 500 g.
Si cambias una levadura, la app convierte tus existencias en el acto y te dice qué ha hecho: tres sobres de 11,5 gramos pasan a ser 34,5 gramos. Nada cambia a tus espaldas, y la elección vale solo para esa levadura — la mayoría de cerveceros tiene sobres y bloques en la nevera. Cambiar el peso del envase deja tus existencias intactas; no hay de repente más ni menos, solo pesa distinto un envase.
Tu lista de la compra, tu coste y el libro de materias primas del módulo de aduana siguen esa elección. Si una levadura se cuenta en sobres, una receta que pide 23 gramos se redondea hacia arriba a dos sobres: medio sobre no existe en la tienda. Si se cuenta en gramos, 23 gramos son 23 gramos, y quedan 477 gramos en tu bloque.
Tus sales de elaboración también están aquí. Desde que la pestaña de agua pone las sales como ingredientes en tu receta, el yeso, el cloruro de calcio y el ácido láctico cuentan en tu lista de la compra. Introduce aquí lo que tienes en el armario y desaparecen de la lista.
Aduana e impuestos especiales
Este módulo está desactivado por defecto y lo encuentras en ⚙️ Ajustes → 🛃 Aduana e impuestos especiales. Si elaboras en casa para consumo propio, déjalo desactivado: el consumo propio está exento y no hay nada que declarar. Si tienes una licencia — en los Países Bajos un depósito fiscal, o su equivalente en tu país — aparece una pestaña 🛃 Aduana con tres paneles.
Esto es una ayuda, no un sustituto de tu contabilidad legal. Lo que cuenta como registro obligatorio figura en tu licencia y no en esta app. Úsalo para llevar y comprobar tus propios libros, y contrasta el resultado con lo que te exige tu autoridad de control.
Los tres cuadres
Una inspección se reduce a tres sumas que deben cuadrar cada una por su cuenta:
Lo que no cuadra son los kilos de malta frente a los litros de cerveza: eso depende de tu rendimiento y no es una igualdad comprobable. Quien lo presente como prueba no prueba nada. Los tres cuadres anteriores sí cuadran, cada uno por su cuenta, y juntos justifican la cadena desde la materia prima hasta el impuesto pagado.
Activarlo
Al activar el módulo, la app escribe un recuento inicial con fecha de hoy para cada materia prima de la que tengas existencias. Ese es tu punto cero: sin esa línea tu primera compra pasaría a ser todo el saldo, porque el libro no tendría cifra de partida. Desactivarlo no borra nada — tu libro se mantiene y solo la pantalla de inventario vuelve a leer la cifra suelta.
Libro de materias primas
El libro está formado por líneas, no por saldos. Cada línea lleva una fecha, un tipo y una cantidad, y esa cantidad es siempre positiva: el tipo determina la dirección.
Tipo
Qué hace
Recuento
fija el saldo en lo que has contado; todo lo anterior deja de contar
Compra
suma, con proveedor e importe
Consumo
resta, con el número de lote al que fue
Baja
resta sin que se haya hecho cerveza con ello — estropeado, derramado, desechado
Las líneas se suman por fecha. Si anotas dos cosas el mismo día, cuenta el orden en que las introduces: un recuento que introduces después de un consumo de ese mismo día también cuenta después de ese consumo. Así es como lo escribes y por tanto como lo quieres decir.
Al crear un lote, toda la carga de malta entra automáticamente en el libro como consumo, con la fecha de elaboración y el número de lote. Así cada kilo de malta se puede rastrear hasta el lote en el que desapareció. Las unidades son las mismas que en la pantalla de inventario: malta y lúpulo en gramos, levadura en sobres o gramos a tu elección, otros ingredientes en su propia unidad.
Si el día de la cocción cambias algo en el diario — un peso, una adición más, un ingrediente menos, otra cantidad de levadura — el consumo se vuelve a anotar. Así el libro guarda lo que realmente entró en la olla y no lo que tenías previsto. Si cambias el número de lote, este se traslada también a las líneas del libro; si vinculas otra receta al lote, esa carga sustituye a la anterior.
Si activas el módulo cuando ya tienes un diario lleno de lotes, la carga de todos esos lotes entra también en el libro, cada una con su propia fecha de elaboración. Tu saldo no cambia por ello: esas líneas están antes de tu recuento inicial, y un recuento fija el saldo. Lo que sí obtienes es la trazabilidad de tus lotes existentes — justo la columna que mira una inspección de materias primas.
Tu inventario sigue al libro. Mientras el módulo esté activo, el libro es la verdad y la pantalla de inventario muestra el saldo que se deriva de él. Si escribes una cifra ahí, la app anota un recuento — al fin y al cabo estás diciendo cuánto hay. Para una materia prima sobre la que nunca se ha anotado nada, la cifra suelta se mantiene, para que tu almacén no parezca vacío el día que activas el módulo.
Leer un pedido o una factura
Las compras son lo único que la app no puede deducir de tus propios datos: tu confirmación de pedido no está en ninguna parte de BROUWHULP '26. Para que no tengas que teclearla línea por línea, debajo del libro de materias primas hay un cuadro para pegar. Abre la factura de tu proveedor, selecciona el texto y pégalo; la app busca las líneas de artículo y propone líneas de compra. Cabeceras, gastos de envío, subtotales e IVA se omiten.
Por qué pegar y no arrastrar un PDF: leer bien un PDF exige una biblioteca de casi un megabyte, y aun así no lee una factura escaneada. Esta app no tiene ninguna dependencia y ese es su argumento de seguridad más fuerte. Seleccionar texto lo puede hacer cualquiera, en cualquier lector, también en el móvil — y funciona con todos los proveedores.
Si los importes no están en la misma línea que la descripción, la app los toma de las líneas de debajo. El texto de un PDF pocas veces sale por filas de tabla: a menudo cada columna cae en su propia línea, o toda la fila va seguida como 18568 1,00 63,99 63,99 1 — número de artículo, cantidad, precio unitario, total, número de línea. El último importe es el total de la línea. La cantidad sale de la columna escrita como "1,00" que no es el último importe; si no la hay, del último número entero que pueda pasar por cantidad. Un número por encima de mil es un número de artículo, no un pedido.
Debajo del cuadro para pegar está 🧾 Facturas registradas: cada factura que has procesado, la más reciente arriba, con fecha, número de factura, proveedor, el número de líneas registradas y el importe. Así ves de un vistazo si ya has introducido una factura. El importe es la suma de las líneas que registraste y por tanto no necesariamente el total de la factura: las líneas que desmarcaste o no pudiste vincular no están incluidas. Por eso el número de líneas figura al lado. Haz clic en una factura para desplegarla: verás las líneas que contiene, cada una con la materia prima, la cantidad y el importe. Si el importe no cuadra con la factura, aquí ves dónde está la diferencia. Una materia prima que aparece dos veces en la misma factura queda señalada — casi siempre es la factura leída dos veces y no dos líneas en el papel. Lo mismo vale para un número de factura que aparece en más de una fecha con el mismo proveedor: la factura se registró dos veces, o una vez con la fecha equivocada. La papelera de una línea quita solo esa línea; con Eliminar la factura entera la factura vuelve atrás por completo, incluido su efecto en el stock. El consumo de un lote se mantiene: eso no pertenece a una factura.
Introducir un lote con efecto retroactivo
Si activas el módulo de aduana después de años elaborando, querrás meter también tus antiguas jornadas de elaboración. Se puede. Crea el lote como siempre y luego, en el diario, retrasa la fecha de elaboración al día en que realmente elaboraste; la carga de maltas se desplaza con ella en el libro de materias primas. La fecha de salida se introduce aparte con la salida, así que una cerveza elaborada en marzo y despachada en mayo cae en el periodo correcto por ambos lados.
Tu stock actual no cambia, y así debe ser. Cuando activaste el módulo se escribió un recuento inicial con el stock tal como estaba entonces en tu armario. Un recuento fija el saldo; todo lo anterior en el libro ya está incluido en él. Si introduces un lote de 2024, su carga de maltas queda en el libro como rastro para la aduana, pero tu stock actual no baja otra vez. Si lo hiciera, estarías descontando el mismo saco de malta dos veces.
No te asustes si ves un saldo negativo en una fecha antigua. Si pides el saldo de un día anterior a tu recuento inicial, encontrarás consumo pero todavía ninguna compra, y sale un número negativo. No es un error de tu administración sino la consecuencia de dónde empezaste a contar. Si quieres que tus compras antiguas también cuadren, registra aquellas facturas con sus propias fechas — el resumen de facturas y el libro de materias primas aceptan cualquier fecha.
Tu tienda lo llama de otra manera que la aplicación
Una factura puede decir Aroma mout type Amber 50 EBC mientras que la lista de maltas llama a esa misma malta Aroma Amber 50 EBC de Dingemans. Pasa con casi todos los proveedores: la maltería da un nombre, la tienda le envuelve su propia descripción, y tú acabas buscando algo que sí está pero con otro nombre.
Por eso cada ingrediente lleva, junto a su nombre, una serie de grafías alternativas. Encontrarás la Aroma Amber buscando "amber", "aromatic amber" o la descripción de tu factura. Lo mismo vale para el buscador de la pestaña Ingredientes. Los nombres en sí no cambian: de ellos cuelgan tus recetas, tus precios, tu stock y tu libro de materias primas.
El lector de facturas también lo usa. Si lees una factura con un artículo que nunca has vinculado, la aplicación rellena una propuesta con el aviso deducido de la descripción — comprueba que sea correcto. Eso es deliberadamente distinto de vinculado antes: esto último es tu propia elección de una vez anterior, y siempre tiene prioridad.
Una deducción sigue siendo una deducción. Repásala antes de registrar. La aplicación prefiere no deducir nada a deducir cualquier cosa: deben coincidir al menos cuatro caracteres, la búsqueda es por palabras completas — así que el ácido cítrico no se convierte en Citra — y si dos ingredientes encajan igual de bien no elige ninguno. Pero no puede descartarlo del todo, y una materia prima registrada en el ingrediente equivocado queda en el libro que lee la aduana.
Encima de cada lista desplegable hay un buscador. La lista tiene más de sesenta maltas y está ordenada alfabéticamente, no por proveedor — la malta de trigo oscura de Weyermann queda por tanto bajo la T, entre Special B y Malta de Trigo Tostada, y no junto a las demás maltas Weyermann. Escribe "weyermann" y solo quedan esas; escribe "tarwe donker" o "weizenmalz dunkel" y queda una. El buscador mira el mismo texto que el de la pestaña Ingredientes, así que también ve las grafías alternativas. A su lado ves cuántas entradas quedan de cuántas.
Lo que ya has elegido permanece siempre en la lista, aunque tu filtro no lo encuentre. De lo contrario un filtro tiraría tu vínculo sin que hayas hecho clic en nada. Si cambias de categoría el filtro se vacía — un término de búsqueda de la lista de maltas ocultaría toda la lista de lúpulos.
En una levadura, la columna Cantidad lleva una lista desplegable en vez de una etiqueta fija: ahí cambias entre sobres y gramos sobre la marcha. Si eliges gramos, el peso que figura en la factura pasa a ser el peso de envase de esa levadura — al fin y al cabo acabas de comprar esa caja. Mientras cuentes en sobres y la factura indique otro tamaño de envase del que tienes configurado, la app te lo dice: "1 sobre" no encaja con una caja de 500 gramos.
Por línea eliges la categoría y el ingrediente. La cantidad sale del número por el tamaño del envase, convertido a la unidad de tu pantalla de inventario: dos sacos de 25 kg pasan a ser 50.000 gramos, y la levadura cuenta en la unidad que hayas elegido para esa levadura. Si la unidad de la factura no encaja con la del ingrediente — kilos en algo que se mide en mililitros — el campo se queda vacío y la app te dice que lo rellenes tú. Una cifra equivocada aquí es peor que un campo vacío.
El precio por unidad se calcula a partir del total de la línea, en la unidad que usa tu tabla de precios, y pasa a esa tabla si dejas la casilla marcada. Tu coste usará entonces lo que realmente has pagado en lugar del precio estándar. Si corriges la cantidad, el precio se mueve con ella: el total de la línea es fijo, así que menos entregado sale más caro por kilo.
La fecha de factura es obligatoria y no se pone en la de hoy sin decirlo. Es la fecha que figura en la factura: así tu compra cae en el periodo correcto. Una factura del mes pasado registrada con la fecha de hoy da un saldo que cuadra, pero en el día equivocado.
El segundo pedido va solo. Si dejas marcada la casilla de abajo, la app recuerda que "Château Pilsen 2RS 25 kg" corresponde a tu malta pilsen — sin importar mayúsculas ni acentos. La siguiente factura del mismo proveedor sale bien de entrada y solo tienes que revisarla.
Una factura no es una entrega. Lo que pone en la factura es lo que has pedido y pagado; lo que hay en tu almacén es lo que ha llegado. Si la entrega no coincide con la factura, ajusta la cantidad antes de registrar. Y la app nunca registra por su cuenta: propone líneas, tú pulsas registrar.
Envasado y salida
Una línea por cada vez que sale cerveza del tanque. No siempre es una vez por lote: una parte en barril hoy, el resto en botella la semana que viene, con dos fechas distintas y quizá dos destinos.
Si en el diario de cocción ya has anotado cuántas botellas has llenado, de qué tamaño son y cuánto ha ido a barril, 📅 Copiar del diario lo trae aquí. Las botellas van al tipo de envase con la misma capacidad, y el volumen de barril al mayor tamaño de barril del que sea un número entero. Si algo no encaja — un tamaño de botella que no has configurado, o unos litros que no dan un número entero de barriles — la app lo dice en lugar de adivinar; una cantidad equivocada es peor que un campo vacío. Registrarlo lo haces tú: una salida es el momento en que se devenga el impuesto, y deducirlo de un contador de botellas produciría declaraciones que nunca hiciste.
Debajo de la lista está lo que la app sabe de este lote: el número de lote, la fecha de elaboración, la OG y la FG con el porcentaje de alcohol que se deriva de ellas, y cuántos litros se han elaborado, ya han salido y quedan pendientes. Si en el diario has medido una OG y una FG, ahí pone Medido y el impuesto se calcula con tu densímetro — con corrección de temperatura incluida, porque una FG recién sacada de la cámara marca casi dos puntos de más y eso es un cuarto de punto de alcohol. Si no se ha medido nada, pone De la receta y sabes que tu declaración se apoya en una previsión.
El porcentaje de alcohol y el valor Plato son campos normales: sobrescríbelos con lo que hayas medido tú. Si eliges otro lote, se actualizan — son cifras que pertenecen a esa cerveza. Si sigues en el mismo lote, se mantiene lo que hayas escrito; con ↺ Del lote vuelves a traer las cifras de todos modos.
La fecha de salida es independiente de tu fecha de elaboración, porque el impuesto se devenga en la salida. Un lote de diciembre que sacas en enero pertenece al periodo de enero. La pérdida y la destrucción se indican por separado: salen del tanque pero no como cerveza por la puerta, así que no cuentan para el importe — sí cuentan en el cuadre de volumen.
Debajo del formulario está el resumen por periodo con el botón Este trimestre, y bajo él el balance de volumen por lote: lo que entró frente a lo que ha salido, con medio punto porcentual de holgura. Un lote que no cuadra aparece en color. Bajo cada número de lote está la carga que consumió, leída directamente del libro de materias primas — así por lote ves en una línea qué entró y qué salió. Si avisa de que no hay consumo en el libro, ese lote nunca se dio de baja y tu cuadre de materias primas no encaja. Con 🖨️ Imprimir obtienes una página que puedes archivar con tu contabilidad.
Régimen, envases y destinos
Por defecto la app calcula con el régimen neerlandés. Si vives o elaboras en otro sitio, elige el modelo de cálculo que usa tu ley — los sistemas de impuestos especiales difieren no solo en los importes sino en la forma de calcular:
Modelo
Cómo calcula
Lo usan
Por hl y %vol
tarifa × porcentaje de alcohol, con un mínimo por hectolitro
Países Bajos
Por hl y °Plato
tarifa × grados Plato, con un mínimo por hectolitro
Bélgica
Por litro de alcohol puro
tarifa × el alcohol contenido en la cerveza; sin mínimo
Reino Unido
Tarifas por banda
un importe fijo por hectolitro y banda de graduación
Alemania
Las tarifas están en una tabla con fecha de entrada en vigor. Gana la fila más reciente que ya haya entrado en vigor, así que un cambio de tarifa es una fila más y no altera nada de lo ya anotado. Dentro de una fila están las categorías en las que puede encajar una cervecería; en los Países Bajos son normaal y verlaagd. Cuál se te aplica se elige en Mi categoría.
Para las tarifas por banda indicas según qué están divididas tus bandas — grados Plato o porcentaje de alcohol — y dejas vacío el límite superior de la última banda: se aplica a todo lo que esté por encima.
En tipos de envase pones las formas en que envasas con su capacidad en litros: una longneck de 33 cl es 0,33 y un barril de 20 L es 20. De ahí salen los litros de tu línea de salida. Un tipo de envase que aparece en una salida registrada no se puede borrar; esa salida pasaría retroactivamente a cero litros.
En destinos anotas adónde va la cerveza y si se devenga impuesto por ello. Un destino que desmarcas — almacenamiento en régimen suspensivo, exportación — cuenta en tu cuadre de volumen pero no en el importe. Si no eliges destino, la app supone que el impuesto es exigible; ese es el lado seguro.
Como cervecero casero no pagas nada. La cerveza elaborada en casa para consumo propio está exenta del impuesto especial. La cifra que la pantalla de receta muestra junto a tu coste está ahí solo a título informativo — por ejemplo para ver lo que costaría una receta en un contexto comercial. No es asesoramiento fiscal, y fuera de los Países Bajos las tarifas son distintas.
Herramientas
Herramienta
Uso
Densidad ↔ Plato/Brix
Conversión entre unidades
Refractómetro
Corrige la lectura del refractómetro durante la fermentación (Sean Terrill)
Corrección de temperatura del densímetro
Corrige lecturas tomadas fuera de 20°C (Kell/NIST)
Starter de levadura
Calcula el azúcar/DME para un volumen y densidad de starter
Subir densidad
Cuánta sacarosa/dextrosa para una OG mayor
Dilución
Qué pasa con la densidad al diluir con agua
Cada herramienta de la app lleva una breve explicación de lo que hace y de lo que debes introducir. Los campos con borde naranja son resultados, no algo que rellenes tú — la respuesta aparece ahí en cuanto los datos están completos.
Diluir y subir densidad funcionan en un solo sentido cada uno. El agua diluye y solo puede bajar la densidad; el azúcar solo puede subirla. Si introduces un objetivo al revés, la app te indica cuál de las dos necesitas.
Compras
En la pestaña 🛒 Compras eliges qué recetas quieres elaborar y cuántas veces. La app suma todos los ingredientes, resta tu stock y muestra por línea lo que aún debes comprar, con el coste estimado según tus propios precios. Una marca verde significa que ya tienes suficiente.
Un signo de interrogación naranja en la columna de coste indica que aún no hay precio para ese ingrediente. Introdúcelo en la pestaña Ingredientes, columna Precio.
Un precio de 0 es válido y cuenta con normalidad: el lúpulo que cultivas tú o la levadura recogida de una elaboración anterior no cuestan nada. Es distinto de una celda vacía, que significa que aún no has puesto nada y mantiene el interrogante.
La levadura se cuenta en sobres, no en gramos. La pestaña Stock te pide la levadura en sobres, así que la lista de la compra usa la misma unidad. Once gramos de levadura seca en tu receta son un sobre; con dos en el armario no necesitas comprar nada. La levadura líquida cuenta por paquete, y un starter se cultiva a partir de un solo paquete — los litros de starter no dicen nada sobre lo que debes comprar.
Con 🖨️ Imprimir / PDF obtienes una lista para llevar a la tienda: una casilla por ingrediente, la cantidad que debes comprar y, al lado y en letra pequeña, lo que necesitas y lo que ya tienes. La cantidad mayor va primero, para que los sacos pesados destaquen enseguida. Lo que ya tienes en cantidad suficiente no aparece en la lista de compra, pero sí al final, para que veas que no se ha olvidado. Elige Guardar como PDF en el diálogo de impresión para llevarla en el móvil.
Perfil de fermentación
En el editor de recetas, en 🧊 Perfil de fermentación, puedes construir un esquema: fermentación primaria, reposo de diacetilo, dry hop, choque de frío, lagering. Cada paso lleva una temperatura y un número de días. El día de cocción el diario lo convierte en fechas reales y muestra qué paso está en curso y cuándo toca el siguiente.
Junto a la temperatura hay un segundo campo para una temperatura final. Si lo dejas vacío, todo el paso va a una sola temperatura. Si lo rellenas, el paso es una rampa: pasas de una temperatura a la otra en los días indicados. Así registras un reposo de diacetilo como 18 → 22 °C en tres días, o un choque de frío como 20 → 2 °C en dos. La rampa aparece con una flecha en el diario y en el texto que compartes con 📋 Copiar receta.
Inoculación y starter
En Herramientas, Inoculación y starter calcula cuántas células de levadura necesitas y cuántas tienes realmente. El tipo de cerveza es una elección entre ale y lager; el recargo para cerveza fuerte se deduce de la OG que introduces arriba. Usa 0,75 millones de células por mL y °P para ales y 1,5 para lagers, con un tercio más a partir de OG 1.061 (White y Zainasheff), 20 mil millones de células viables por gramo de levadura seca y 100 mil millones por sobre líquido. La levadura líquida pierde alrededor de un 0,7 % de viabilidad al día; la seca mucho menos.
Los 20 mil millones por gramo son una suposición optimista. Los fabricantes suelen garantizar al menos 6 mil millones por gramo. La cifra coincide con la que usan otros programas para que tus resultados sean comparables — pero con levadura vieja o mal conservada se queda alta.
Rendimiento medido
En cuanto registras una medición de OG, la app calcula hacia atrás tu rendimiento real de sala de cocción y lo compara con el porcentaje con el que diseñaste la receta. El resumen muestra la media de todos tus lotes.
Se trata de tu grano, no de tu azúcar. El azúcar, el candi y el extracto de malta se disuelven por completo; tu macerado no los mejora ni los empeora. Por eso quedan fuera del cálculo: su aportación se resta primero de tu medición, y lo que queda se divide entre lo que tu grano podía dar. Lo que esté en Fermentación o Embotellado no cuenta en absoluto: todavía no está en la cerveza cuando mides la OG.
⚠️ Un resultado imposible no se muestra. Si tu medición sale por encima del 120% — casi siempre un error al teclear la densidad o el volumen — la línea no aparece en vez de mostrar una cifra que no significa nada.
Duplicar una receta
Si quieres variar sobre una receta que ya funciona — una versión más fuerte, otro lúpulo, un lote de prueba a media escala — no hace falta volver a escribir nada. Hay dos maneras, y la diferencia está en cuándo decides.
Desde la lista de recetas, pulsa 📋 Duplicar en la tarjeta. Le das un nombre y la copia aparece justo debajo del original, lista para modificar.
Desde el editor de recetas, usa 📄 Guardar como receta nueva. Útil cuando ya estás retocando y a mitad de camino ves que esto debería ser una receta aparte: tus cambios se van con la copia y el original se queda como estaba.
⚠️ Ojo con la diferencia respecto a Guardar: el botón normal 💾 Guardar receta sobrescribe la receta en la que trabajas. Para conservar el original usa Guardar como receta nueva — de lo contrario el estado anterior solo se recupera desde el historial de versiones.
La copia es totalmente independiente: si cambias un peso de malta o un escalón de macerado, la receta de origen no se ve afectada. El historial de versiones no se copia a propósito — una copia es una receta nueva y empieza de cero.
Si el nombre propuesto ya existe, la aplicación va contando: Tripel (kopie), Tripel (kopie 2), y así sucesivamente. Duplicar una copia no acumula el sufijo.
Historial de versiones
Cada vez que guardas una receta existente con cambios, se conserva la versión anterior junto con la fecha y una nota que puedes escribir tú. ↺ Restaurar recupera una versión anterior; el estado actual se guarda antes, así que restaurar es reversible. Se conservan hasta 20 versiones por receta.
Lo encuentras abajo en el editor, justo encima de la barra de botones, en una tarjeta que empieza plegada. Pulsa 🕘 Historial de versiones para desplegarla; a su lado aparece cuántas versiones hay guardadas. El campo ¿Qué cambias? corresponde al guardado que vas a hacer, no a uno anterior — rellénalo antes de pulsar Guardar. Si lo dejas vacío, la versión simplemente se conserva sin nota.
Seguridad
Compañero de cervezas '26 funciona por completo en tu propio dispositivo. No hay cuenta, ni servidor que guarde tus datos, ni conexión con otros sitios web — salvo la comprobación de versión, que solo descarga un número de versión.
Archivos de otras personas
El único riesgo real es un archivo de otra persona: una receta BeerXML o una copia de seguridad JSON que importas. La app parte de la base de que ese archivo puede ser malicioso. Todos los nombres y textos se neutralizan antes de llegar a la pantalla, se eliminan las claves que podrían alterar el comportamiento de la app y se aplican límites al tamaño del archivo, al número de recetas y a la longitud de los nombres.
Lo que puedes hacer tú: importa solo archivos de personas en quienes confíes y haz una copia de seguridad en Ajustes → Exportar todo antes de una importación grande. Una importación sustituye tus recetas y lotes.
⚠️ Si el almacenamiento de tu navegador se llena, la app te lo dice. Tras la importación verás un aviso de que todo se ha leído pero NO se ha guardado: no se pierde nada mientras mantengas la pestaña abierta. Elimina primero días de elaboración o recetas antiguos — o expórtalos a un archivo — y vuelve a intentarlo.
Lo que la app no hace
Enviar datos a ninguna parte — la política de seguridad de la página bloquea las conexiones con otros dominios
Ejecutar código procedente de un archivo
Cargar scripts, fuentes o imágenes de otros sitios web
Usar cookies, rastreo ni publicidad
Tus datos residen en el almacenamiento del navegador de este único dispositivo. Cualquiera con acceso físico a tu dispositivo desbloqueado puede leerlos; cifrarlos no cambiaría nada mientras la clave esté en el mismo navegador. Así que no guardes información sensible en los campos de notas.
Instalar actualizaciones
Si usas la versión en línea, la aplicación comprueba por sí sola si hay algo más nuevo cada vez que la abres. Si lo hay, aparece una barra arriba con el nuevo número de versión y lo que ha cambiado, además de un botón para actualizar de inmediato. Tus recetas y lotes se conservan — están en el almacenamiento del navegador, no en el archivo.
Puedes cerrar la barra con Más tarde. Vuelve la próxima vez que abras la aplicación, hasta que actualices.
⚠️ Un archivo descargado no comprueba nada. Si ejecutas la aplicación como archivo suelto desde tu disco, no puede averiguar si hay una versión nueva: la política de seguridad solo permite conexiones con su propio origen, que en un archivo local es tu propia carpeta. Relajarla significaría que la aplicación contacta con el servidor cada vez que arranca, que es justo lo que promete no hacer. Así que consulta la página de descarga de vez en cuando.
Usa el botón 🔃 Actualizar junto al número de versión en la cabecera, o ve a Ajustes → Versión y Actualizaciones → Forzar actualización para borrar la caché y obtener la última versión.
✅ Consejo: Antes de actualizar, haz siempre una copia JSON en Ajustes → Exportar todo. Así podrás restaurar tus recetas y lotes si algo falla.
Fórmulas y cálculos
Densidad (OG/FG)
totPuntos = Σ(kg × puntos × factor) donde factor = eficiencia/100 para malta y 1.0 para azúcar/extracto. Luego OG = 1 + (totPuntos / volumen) / 1000.
Alcohol (ABV)
ABV = 76.08 × (OG−FG) / (1.775−OG) × (FG/0.794) — más precisa que la aproximación simple (OG−FG)×131.25, sobre todo en cervezas fuertes. Los azúcares simples (sacarosa, candi) cuentan como totalmente fermentables en el cálculo de la FG.
Amargor (IBU — Tinseth)
bigness = 1.65 × 0.000125^(SGhervido−1), donde SGhervido es el promedio de la densidad pre-hervido y final
BTF = (1 − e^(−0.04 × T)) / 4.15
IBU = (AA/100) × peso × bigness × BTF × 1000 / volumen del lote
El lúpulo de whirlpool usa la temperatura y el tiempo de reposo: U = 0,12 × isoFactor(T)^0,4 × (1 − e^(−t/20)), donde isoFactor es la relación de Arrhenius respecto a 100 °C. El dry hop no aporta IBU.
El método se elige en Ajustes y esa elección vale para toda la app. Si lo cambias, las cifras de amargor de tus recetas y de tus lotes se mueven a la vez: el resumen y el gráfico recalculan en cada vista, así que nunca muestran un número de un cálculo anterior.
pH = pH_DI + (alcalinidad − meqMaltaAcidulada) / Σ(kg × tampón), donde pH_DI es la media ponderada por capacidad tampón del pH que cada malta da en agua destilada. La malta acidulada cuenta como alcalinidad negativa: 347 mEq por kg, a partir de 3,13% de ácido láctico dividido por la masa molar de 90,08 g/mol.
Corrección de temperatura (Kell/NIST)
SG_corr = SG_med × ρ(20°C) / ρ(T°C) donde ρ es la fórmula de densidad del agua de Kell (calibrada con datos NIST).
Preguntas frecuentes
Mis datos desaparecieron tras actualizar el navegador
Los datos viven en el localStorage del navegador. Borrar cookies/caché puede eliminarlos. Activa Ajustes → 🔁 Copia automática: la app escribe una copia en una carpeta de tu ordenador tras cada cambio — los archivos en disco sobreviven al borrado de datos del navegador (Chrome/Edge de escritorio). Apple no lo permite en iPad/iPhone: haz allí copias manuales con 📁 Copia de seguridad en carpeta… o Exportar todo (JSON).
¿Puedo usar la app en varios dispositivos?
Sí, pero los datos se guardan por navegador. Usa la exportación/importación JSON para transferirlos entre dispositivos.
¿Cómo importo una receta de otro programa?
Compañero de cervezas '26 admite BeerXML en ambos sentidos: importa archivos .xml de BeerSmith o Brewfather con 📥 Importar BeerXML, y exporta todas tus recetas con 📤 Exportar BeerXML — ambos botones están encima de la lista de recetas.
Cada programa usa sus propios nombres de ingredientes: donde Brewfather escribe Pilsner Malt, esta aplicación conoce Pilsmout 3 EBC. Los nombres que no reconoce se añaden automáticamente a tus propios ingredientes durante la importación, junto con el color, el extracto y el alfa ácido del archivo. Al terminar la aplicación indica cuántos fueron.
Aparecen entonces en la pestaña Ingredientes, con la etiqueta propio, y ahí es donde introduces el precio. Sin este paso el coste se quedaría en € 0 sin ningún campo para corregirlo. Si el archivo BeerXML trae un precio, se toma directamente; Brewfather normalmente no lo exporta. Volver a importar la misma receta no duplica nada.
Una entrada creada así lleva la etiqueta importado junto a propio. Así distingues lo que has creado tú de lo que ha dejado un archivo — y esa diferencia hace falta, porque tras unas cuantas recetas importadas tu lista contiene ingredientes que nunca vas a comprar.
Limpiar. En la parte superior de la pestaña Ingredientes aparece un botón en cuanto hay entradas importadas que no necesitas. Solo elimina lo que no aparece en ninguna receta, versión de receta ni cocción y de lo que no tienes stock; su precio se va con ellas. Lo que has creado tú siempre se queda, y ves los nombres antes de que desaparezca nada.
Revisa las filas nuevas. El color y el extracto vienen del archivo y suelen ser correctos, pero en el lúpulo la aplicación deduce amargor o aroma a partir del porcentaje de alfa ácido, y los ingredientes varios se clasifican como hierbas. Ambas cosas se corrigen en la propia tabla.
Los volúmenes de agua salen del propio archivo: BeerXML registra la cantidad de infusión por escalón de macerado, y se suman para dar tu agua de macerado. Si el archivo no los trae, la aplicación los calcula con tu propio perfil de equipo — el mismo cálculo que hay detrás del botón 💧 Rellenar volúmenes según mi equipo.
Levadura: sobres, gramos y litros. BeerXML es confuso aquí: el campo AMOUNT son litros o kilos, y un número de sobres no encaja en ninguno. Brewfather escribe dos sobres de levadura seca como AMOUNT 2, que leído como kilos serían dos kilos de levadura. Por eso la app mira primero DISPLAY_AMOUNT, donde la unidad viene escrita ("2 pkg"). Si falta, se aplica la norma, con un límite de plausibilidad como red de seguridad: ningún cervecero casero usa más de medio kilo de levadura, así que un número entero pequeño es casi seguro una cantidad de sobres. Si se corrige algo, se te avisa tras la importación, con la cifra original al lado.
La forma de la levadura también se importa ahora. Dry pasa a levadura seca en gramos; Liquid, Slant y Culture pasan a sobres. Más de un cuarto de litro no cabe en ningún sobre — el mayor que se vende es un Wyeast XL de unos 125 mL — así que la app lo lee como un starter en litros. Antes toda receta importada se leía como levadura seca, de modo que la levadura líquida recibía una dosis en gramos.
Recetas importadas antes de la versión 3.53
Las versiones anteriores sí tomaban el nombre del archivo, pero no registraban el ingrediente en ningún sitio. Al arrancar, la aplicación lo compensa una sola vez: cada ingrediente de tus recetas y lotes que no aparezca en la base de datos se añade a tus propios ingredientes — con el color y el extracto guardados en la receta. No tienes que hacer nada y ningún cálculo cambia; simplemente aparece un campo de precio.
⚠️ Una cosa que esto no resuelve. Si un ingrediente es azúcar o extracto de malta solo consta en el archivo BeerXML original. Las versiones antiguas los trataban como grano y les aplicaban el rendimiento de sala, con lo que la OG calculada salía demasiado baja — con medio kilo de azúcar en 20 litros, unos dos puntos de densidad. La aplicación no lo adivina a partir del nombre a propósito. Si una receta que importaste antes de la versión 3.53 lleva azúcar, cande o extracto de malta, vuelve a importar ese archivo y solo después borra la receta antigua.
¿Puedo compartir Compañero de cervezas '26 con otros cerveceros?