@beerwright/core
    Preparing search index...

    Interface RecipeWaterCalculation

    The water and mash-pH section. Only present when the recipe has water data.

    interface RecipeWaterCalculation {
        alkalinityPpmAsCaCO3: number;
        dilutedSourceProfile: WaterProfile;
        dilutionFraction: number;
        dilutionWaterL: number;
        kettleBufferingMEqPerPhPerLitre: number;
        mashDilution: DilutionShareL;
        mashPh: MashPhResult;
        mashPhCorrection?: MashPhSolution;
        mashProfile: WaterProfile;
        mashVolumeL: number;
        residualAlkalinityPpm: number;
        saltSplit: readonly SaltSplit[];
        sourceProfile: WaterProfile;
        sourceWaterL: number;
        spargeAcid?: WaterAcidificationResult;
        spargeDilution: DilutionShareL;
        spargeProfile: WaterProfile;
        spargeVolumeL: number;
        sulfateChlorideBalance: SulfateChlorideBalance;
        sulfateChlorideRatio: number;
        targetComparison?: readonly IonComparison[];
        targetMashPh: number;
        totalProfile: WaterProfile;
        warnings: readonly string[];
    }
    Index
    alkalinityPpmAsCaCO3: number

    Total-water alkalinity, ppm as CaCO₃.

    dilutedSourceProfile: WaterProfile

    Source after RO dilution.

    dilutionFraction: number

    Share of the brewing water that's dilution water, 0 to 1, as the recipe gave it.

    dilutionWaterL: number

    The dilution in litres: how much RO (or whatever dilutionProfile names) goes into the strike + sparge water. The stored fraction is a ratio for the chemistry, but on brew day the brewer measures litres. 40 % of a 30 L liquor is 12 L in jugs from the shop. Zero when nothing is diluted.

    kettleBufferingMEqPerPhPerLitre: number

    How strongly the wort in the kettle is expected to resist an acid dose, in mEq per pH unit per litre of pre-boil wort.

    It's per litre because the volume that matters is the one the brewer reads off the sight glass on the day, not the planned one. Multiply by the measured pre-boil volume to get estimateKettleBufferingMEqPerPh's answer. We compute it here so sizing a kettle dose doesn't need the pH model run again. See kettleBufferingPerLitreMEqPerPh for the assumption behind it. It's a first estimate, and the brewer's own before-and-after readings should replace it.

    mashDilution: DilutionShareL

    The same blend per vessel. Strike and sparge water are usually prepared separately, often hours apart, so each needs its own share of the dilutant measured out. These sum to the totals above. The sparge entry is all zeros for no-sparge and BIAB systems.

    mashPh: MashPhResult

    The mash-pH prediction, with its per-term breakdown.

    mashPhCorrection?: MashPhSolution

    What it would take to reach targetMashPh with 88 % lactic acid, on top of whatever is already dosed. Absent when the target is already met or the mash pH is undefined.

    mashProfile: WaterProfile

    Water in the mash tun, after dilution and salts.

    mashVolumeL: number

    Mash water volume, liters.

    residualAlkalinityPpm: number

    Mash-water residual alkalinity, ppm as CaCO₃.

    saltSplit: readonly SaltSplit[]

    How each salt was divided between the vessels.

    sourceProfile: WaterProfile

    Water as drawn.

    sourceWaterL: number

    The source water left in the blend after the dilutant's share.

    Sparge acidification, when asked for.

    spargeDilution: DilutionShareL

    The sparge water's share of the blend. See mashDilution.

    spargeProfile: WaterProfile

    Sparge water, after dilution and salts.

    spargeVolumeL: number

    Sparge water volume, liters.

    sulfateChlorideBalance: SulfateChlorideBalance

    The descriptive band for the treated total water's SO₄:Cl.

    sulfateChlorideRatio: number

    SO₄:Cl of the treated total water, or NaN when there's no ratio because one ion wasn't measured or both are zero. sulfateChlorideBalance says which.

    targetComparison?: readonly IonComparison[]

    The achieved water against targetProfile, when one was supplied.

    targetMashPh: number

    The mash pH aimed for: the recipe's own, or DEFAULT_TARGET_MASH_PH.

    totalProfile: WaterProfile

    Volume-weighted total, which is what reaches the kettle.

    warnings: readonly string[]

    Problems with the water worth telling the brewer about, as sentences.