@beerwright/core
    Preparing search index...

      @beerwright/core

      The brewing calculation engine behind Beerwright.

      It's plain TypeScript with no DOM, no I/O and no framework, so it runs the same in a browser, a Cloudflare Worker or a test runner.

      Every function works in one set of units: kilograms, liters, degrees Celsius, specific gravity and ppm. Convert at the edges with the functions in the Units category.

      Start at calculateRecipe. It runs the other modules and returns the recipe's numbers, with an explanation of how each one was worked out. The Start here guide walks through it, and through the units and defaults the rest of the package shares.

      One guide per area: what you'd build with it, the functions to call first, and a worked example whose numbers are checked by the tests.

      Recipe
      Water and mash pH
      Hops
      Yeast and starters
      Decoction
      Packaging
      Blending, mead and spirits

      The formulas behind the numbers, where each one comes from, and what it leaves out.

      The engine, formula by formula
      Gravity, IBU and color
      Volume corrections
      Refractometer and hydrometer
      Carbonation and packaging
      Sizing a decoction

      A whole recipe in, every number out. Start with calculateRecipe, then recipeChecks for what's worth knowing before brew day. The recipe's input types, the equipment profile and the engine-wide defaults live here too. See the Recipe guide.

      calculateRecipe
      recipeChecks
      bandStatus
      bodyAttenuationShift
      fermentTempOutside
      findNamedSchedule
      resolveCalculationOptions
      resolveEquipmentProfile
      Band
      CalculationOptions
      EquipmentProfile
      FermentableAddition
      FermentationStep
      MashStep
      RecipeCheckInput
      RecipeInput
      StyleBands
      BatchVolumeBasis
      EquipmentProfileInput
      FermentableClass
      FermentableUse
      FermentationStepType
      MashStepType
      SpargeType
      VolumeBasis
      CheckBase
      DilutionShareL
      FermentableContribution
      IonComparison
      NamedSchedule
      RecipeCalculation
      RecipeCheckResult
      RecipeVitals
      RecipeWaterCalculation
      BandStatus
      RecipeCheck
      RecipeCheckSeverity
      ResolvedCalculationOptions
      ScheduleKind
      StyleBandVital
      BODY_MASH_SCHEDULES
      DEFAULT_CALCULATION_OPTIONS
      DEFAULT_CARBONATION_VOLUMES
      DEFAULT_DECOCTION_BOIL_OFF_L_PER_HOUR
      DEFAULT_EQUIPMENT_PROFILE
      DEFAULT_FIRST_WORT_MULTIPLIER
      DEFAULT_GRAIN_TEMP_C
      DEFAULT_HOP_FORM_MULTIPLIERS
      DEFAULT_ISO_EXTRACT_RECOVERY
      DEFAULT_MASH_STANDING_LOSS_C_PER_HOUR
      DEFAULT_MOISTURE_PERCENT_BY_CLASS
      DEFAULT_STEEP_EFFICIENCY_PERCENT
      DEFAULT_TARGET_MASH_PH
      DEFAULT_WHIRLPOOL_COOLING_RATE_PER_MIN
      DEFAULT_WHIRLPOOL_TEMP_C
      FERMENT_TEMP_TOLERANCE_C
      FERMENTATION_SCHEDULES
      FERMENTER_HEADSPACE_FRACTION
      FULL_BODY_TEMP_C
      GRAIN_DISPLACEMENT_L_PER_KG
      GRAIN_SPECIFIC_HEAT_RATIO
      LIGHT_BODY_TEMP_C
      MASH_PH_BAND
      MASH_SACCHARIFICATION_MAX_C
      MASH_SACCHARIFICATION_MIN_C
      MASH_SCHEDULES
      MASH_TEMP_ATTENUATION_MAX_SHIFT
      MASH_TEMP_ATTENUATION_POINTS_PER_C
      MASH_TEMP_ATTENUATION_REFERENCE_C
      MAX_SUCROSE_PPG
      MEDIUM_BODY_TEMP_C
      PITCH_ADEQUATE_FRACTION
      PITCH_WARNING_FRACTION
      POINTS_PER_KG_PER_L_PER_PPG
      PRESSURE_LAGER_CRASH_PSI
      PRESSURE_LAGER_PRIMARY_PSI
      TECHNIQUE_MASH_SCHEDULES

      Extract, efficiency, original and final gravity, attenuation, ABV and calories, the volume waterfall, and the corrections for hydrometer and refractometer readings. Start with abv, correctHydrometerReading, refractometerFinalGravityRaw and planVolumes. The Recipe guide has them in use.

      abv
      correctHydrometerReading
      planVolumes
      refractometerFinalGravityRaw
      abvAdvanced
      abvSimple
      alcoholByWeightPercent
      apparentAttenuationPercent
      applyBoilShrinkage
      beerVolumeFromWeight
      blend
      boilDownToTargetGravity
      boilOffVolume
      brewhouseEfficiencyFromMeasurement
      calibrateWortCorrectionFactor
      caloriesPer12UsFlOz
      caloriesPer330ml
      caloriesPerLitre
      correctRefractometerBrix
      correctVolumeToReference
      decoctionVolume
      dilutionToTargetGravity
      effectiveMashTempC
      fermentableAttenuationFraction
      fermentableEfficiencyFraction
      fermentableMaxPointLitres
      fermentablePointLitres
      fermentablePointsPerKgPerL
      fermentablePpg
      fermentableStage
      gravityAfterDilution
      gristKgForTargetOg
      infusionTemperature
      infusionVolume
      isMashGrain
      isNoSparge
      mashEfficiencyFromMeasurement
      mashGrainMass
      mashTemperatureAttenuationShift
      mashThicknessFromStrike
      platoToSgExact
      predictFinalGravity
      predictGravities
      projectVolumes
      realAttenuationPercent
      realExtractPlato
      refractometerFinalGravity
      refractometerToGravity
      removeBoilShrinkage
      resolveAttenuationPercent
      splitStrikeAndSparge
      strikeWaterTemperature
      sugarToTargetGravity
      totalGristMass
      volumeWarningEntries
      volumeWarnings
      waterDensityKgPerM3
      yeastApparentAttenuationPercent
      BeerWeightInput
      BlendComponent
      DecoctionInput
      FinalGravityInput
      GravityPredictionInput
      GravityVolumes
      GristShare
      InfusionInput
      InfusionTemperatureInput
      MeasuredEfficiencyInput
      StrikeTemperatureInput
      VolumeInputs
      AbvFormula
      FermentingSampleModel
      BlendResult
      FinalGravityPrediction
      GravityPrediction
      VolumeAdjustment
      VolumeWarningEntry
      VolumeWaterfall
      VolumeWarningId
      DEFAULT_HYDROMETER_CALIBRATION_TEMP_C
      DEFAULT_WORT_CORRECTION_FACTOR
      LITRES_PER_12_US_FL_OZ
      REFERENCE_VOLUME_TEMP_C
      WATER_DENSITY_AT_REFERENCE_KG_PER_L
      hydrometerCorrectionExplained
      refractometerFinalGravityExplained
      refractometerGravityExplained
      volumeCorrectionExplained

      Bitterness by Tinseth, Rager or Garetz, whirlpool and hop-stand additions, and the alpha acid a hop loses in storage. Start with calculateIbu and agedAlphaAcidPercent. See the Hops guide.

      agedAlphaAcidPercent
      calculateIbu
      alphaAcidFraction
      alphaAcidUnits
      bitternessGravity
      buGuRatio
      fixedTemperatureStandEffectiveBoilMinutes
      garetzTemperatureFactor
      garetzUtilization
      harvestDateForCropYear
      hopAlphaRemaining
      hopAlphaRemainingFromDates
      hopAlphaRemainingSinceHarvest
      hopDecayRateConstant
      hopTemperatureFactor
      isomerisationRateConstant
      ragerGravityAdjustment
      ragerUtilization
      relativeIsomerisationRate
      standEffectiveBoilMinutes
      storageIndexFromRemaining
      tinsethBignessFactor
      tinsethBoilTimeFactor
      tinsethUtilization
      HopAddition
      HopLotDates
      HopStorage
      HopStorageSinceHarvest
      IbuInput
      StandModelOptions
      WhirlpoolOptions
      BitternessGravityBasis
      HopForm
      HopPackaging
      HopStoragePlace
      HopUse
      IbuFormula
      WhirlpoolModel
      HopIbuContribution
      IbuResult
      DEFAULT_ALPHA_LOST_SIX_MONTHS
      FRESH_STORAGE_INDEX
      HOP_PACKAGINGS
      HOP_STORAGE_FACTORS
      HOP_STORAGE_PLACE_TEMPERATURES
      HOP_STORAGE_PLACES
      HOP_STORAGE_REFERENCE_C
      MALOWICKI_EA_OVER_R
      MALOWICKI_PRE_EXPONENTIAL
      TRADE_STORAGE
      hopFreshnessExplained

      Malt color units to SRM by Morey, Daniels or Mosher, conversions between SRM, EBC and Lovibond, and a hex swatch for the beer. Start with calculateColor and srmToHex. The formulas are on the Gravity, IBU and color page.

      calculateColor
      srmToHex
      danielsSrm
      ebcToSrm
      gristSharesForTargetSrm
      lovibondToSrm
      maltColorUnits
      moreySrm
      mosherSrm
      srmFromMcu
      srmToEbc
      srmToLovibond
      ColorFormula
      ColorResult
      TargetSrmRefusal
      TargetSrmSolution
      SRM_HEX_TABLE

      Water profiles, salt and acid additions, two salt solvers, and a mash pH prediction from the grist. Start with solveWaterRule or solveWaterProfile for the salts, applySalts for salts the brewer chose, and predictMashPh for the pH. See the Water and mash pH guide.

      applySalts
      predictMashPh
      solveWaterProfile
      solveWaterRule
      acidAdjustment
      acidConcentrationPercent
      acidifyWater
      acidMilliequivalentsAtPh
      acidMillimoles
      acidMillimolesPerGram
      acidMillimolesPerMillilitre
      acidSolutionDensity
      acidStrengthMEqPerUnit
      addProfiles
      alkaliBaseMEqPerGramAtPh
      alkalinityAtPh
      alkalinityFromBicarbonate
      alkalinityMEq
      alkalinityMEqPerLitre
      alkalinityPpm
      bicarbonateFromAlkalinity
      blendProfiles
      calciumHardnessPpm
      carbonateProtonsDonated
      chargeBalanceErrorPercent
      crystalMaltPhDefaults
      diluteProfile
      equivalentsPerMillimole
      estimateKettleBufferingMEqPerPh
      fromIonAmounts
      inferMaltPhClass
      ionMEqPerLitre
      ionMEqPerLitreAll
      ionPpm
      ionsFromSalts
      isMeasured
      kettleAcidDose
      kettleBufferingEstimate
      kettleBufferingPerLitreMEqPerPh
      magnesiumHardnessPpm
      observedKettleBuffering
      profileDelta
      protonsDonatedPerMolecule
      residualAlkalinityMEq
      residualAlkalinityMEqPerLitre
      residualAlkalinityPpm
      resolveMaltTitrations
      saltAlkalinityMEqPerGram
      saltAlkalinityPpmPerGramPerLitre
      saltContributionBreakdown
      saltIonPpmPerGramPerLitre
      scaleProfile
      solveAdditionsForTargetPh
      sulfateChlorideBalance
      sulfateChlorideRatio
      toIonAmounts
      totalCarbonateMMolPerLitre
      totalHardnessPpm
      unmeasuredIons
      unmeasuredUnion
      waterBufferingMEqPerPhPerLitre
      waterProfile
      waterProfileWarnings
      withUnmeasured
      AcidAddition
      AcidAdjustmentInput
      BlendPart
      FermentablePhProperties
      KettleBufferingInput
      MashPhInput
      MashPhOptions
      RecipeWaterInput
      SaltAddition
      WaterProfile
      WaterProfileInput
      WaterRule
      WaterRuleSolverInput
      WaterSolverInput
      WaterVolumes
      AcidId
      AlkalinityModel
      CellarAcid
      IonAmounts
      MaltPhClass
      MashPhAgent
      SaltId
      SaltSplitStrategy
      WaterIon
      WaterTreatmentTarget
      AcidAdjustmentResult
      IonFit
      KettleAcidDoseResult
      KettleBufferingEstimate
      MaltPhDefaults
      MaltTitration
      MashPhContributions
      MashPhResult
      MashPhSolution
      SaltSplit
      TreatedWater
      WaterAcidificationResult
      WaterRuleSolverResult
      WaterRuleVerdict
      WaterSolverResult
      KettleBufferingBasis
      ResolvedMashPhOptions
      SulfateChlorideBalance
      AcidDefinition
      DensityPoint
      SaltDefinition
      SaltStoichiometry
      ACID_DEFINITIONS
      ACID_EQUIVALENT_WEIGHTS
      ALKALINITY_PER_BICARBONATE
      BICARBONATE_PER_ALKALINITY
      CACO3_EQUIVALENT_WEIGHT
      CARBONIC_PKA
      CAUTION_SALTS
      CELLAR_ACID_LABELS
      CRYSTAL_BUFFERING_MAX
      CRYSTAL_DI_PH_MAX
      CRYSTAL_DI_PH_MIN
      DEFAULT_ACIDULATED_MALT_PERCENT_LACTIC
      DEFAULT_CALCIUM_FLOOR_PPM
      DEFAULT_ION_TOLERANCE_PPM
      DEFAULT_ION_WEIGHTS
      DEFAULT_KETTLE_TARGET_PH
      DEFAULT_MASH_PH_OPTIONS
      DEFAULT_SOLVER_SALTS
      DEFAULT_SPARGE_TARGET_PH
      EQUIVALENT_WEIGHT_G_PER_EQ
      ION_ADVISORY_RANGE_PPM
      ION_CHARGE
      ION_LABELS
      KOLBACH_CALCIUM_DIVISOR
      KOLBACH_MAGNESIUM_DIVISOR
      MALT_PH_DEFAULTS
      MAX_SULFATE_CHLORIDE_RATIO
      MIN_SULFATE_CHLORIDE_RATIO
      MOLAR_MASS_G_PER_MOL
      PKW
      PPM_CACO3_PER_DH
      RO_WATER
      SALT_DEFINITIONS
      SALT_IDS
      SULFATE_CHLORIDE_BAND_TARGETS
      SULFATE_CHLORIDE_LABELS
      SULFATE_CHLORIDE_MEANINGFUL_PPM
      SULFATE_FROM_SULFUR
      TA_REFERENCE_ACID
      WATER_IONS
      acidAdjustmentExplained
      residualAlkalinityExplained
      sulfateChlorideExplained

      Pitch rates, cell counts, viability by age, starters and dry-yeast sachets. Start with pitchPlan and planStarter. See the Yeast and starters guide.

      pitchPlan
      planStarter
      attenuationRange
      availableCells
      bestByFromManufactureDate
      cellsNeeded
      defaultPitchRate
      dryDosageBand
      dryPitchPlan
      dryYeastSachets
      growStarter
      manufactureDateFromBestBy
      packRetentionPer30Days
      packViability
      pitchGravityPlato
      pitchRateAchieved
      slurryViability
      starterDmeGrams
      starterGrowth
      starterGrowthRate
      starterVolumeL
      targetPitchCells
      viabilityFraction
      viabilityFromManufactureDate
      PitchPlanInput
      PitchRateInput
      StarterPlanOptions
      ViabilityOptions
      YeastOnHand
      YeastSelection
      YeastStarter
      StarterMethod
      YeastForm
      YeastType
      DrySachetPlan
      PitchedStarter
      PitchPlan
      StarterPlan
      StarterStep
      StarterYield
      ALE_PITCH_RATE
      CELLS_PER_GRAM_DRY_BILLION
      CELLS_PER_LIQUID_PACK_BILLION
      DEFAULT_MAX_STEP_L
      DEFAULT_PITCH_RATES
      DRY_DOSAGE_G_PER_HL
      DRY_SACHET_GRAMS
      GROWTH_CEASES_INOCULATION_RATE
      GROWTH_DECLINE_INTERCEPT
      GROWTH_DECLINE_SLOPE
      GROWTH_PLATEAU_INOCULATION_RATE
      LAGER_PITCH_RATE
      LOW_PITCH_RATE
      MAX_GROWTH_PER_GRAM
      PUREPITCH_RETENTION_PER_30_DAYS
      SHELF_LIFE_MONTHS
      STARTER_DME_GRAMS_PER_LITRE
      STARTER_GRAVITY
      STARTER_VOLUME_INCREMENT_L
      UNSTIRRED_GROWTH_PER_GRAM
      VIABILITY_RETENTION_PER_30_DAYS
      pitchPlanExplained
      starterPlanExplained

      Sizing each decoction pull from a heat balance, and planning a whole schedule. Start with decoctionPull and planDecoctions. See the Decoction guide.

      decoctionPull
      planDecoctions
      decoctionEvaporation
      decoctionWarnings
      findDecoctionSchedule
      renderDecoctionIssue
      resolvePullRatio
      thicknessRatioLPerKg
      DecoctionPlanInput
      DecoctionPullInput
      DecoctionRigOptions
      DecoctionScheduleStep
      DecoctionSpec
      DecoctionThickness
      DecoctionIssue
      DecoctionPlan
      DecoctionPull
      DecoctionQuantity
      DecoctionSchedulePreset
      MashAfterDecoction
      DecoctionIssueCode
      DecoctionQuantityKind
      DECOCTION_DOMINATES_MASH_FRACTION
      DECOCTION_LONG_BREW_DAY_MINUTES
      DECOCTION_MASH_THICKENED_L_PER_KG
      DECOCTION_SCHEDULES
      DEFAULT_DECOCTION_BOIL_MINUTES
      DEFAULT_DECOCTION_RAMP_MINUTES
      DEFAULT_DECOCTION_RETURN_MINUTES
      DEFAULT_DECOCTION_RETURN_TEMP_C
      MEDIUM_DECOCTION_RATIO_L_PER_KG

      COâ‚‚ volumes from temperature and pressure, priming sugar, and sulfite and sorbate doses. Start with primingSugar and pressureFromCo2Volumes. See the Packaging guide.

      pressureFromCo2Volumes
      primingSugar
      barToPsi
      carbonationFromPrimingSugar
      co2VolumesFromKilopascals
      co2VolumesFromPressure
      co2VolumesToGramsPerLitre
      fermentationTempForResidualCo2
      gramsPerLitreToCo2Volumes
      kilopascalsToPsi
      peakFermentationTempC
      psiToBar
      psiToKilopascals
      residualCo2Volumes
      scheduleResidualCo2
      sorbateDose
      sorbicAcidForAbv
      sulfiteDose
      PrimingInput
      SorbateDoseInput
      SulfiteDoseInput
      PrimingSugar
      PrimingResult
      ResidualCo2
      SorbateDoseResult
      SulfiteDoseResult
      CIDER_SULFITE_PH_CEILING
      DEFAULT_MOLECULAR_SO2_MG_L
      GRAMS_CO2_PER_VOLUME_PER_LITRE
      KMS_SO2_FRACTION
      POTASSIUM_SORBATE_SORBIC_FRACTION
      PRIMING_SUGAR_CO2_YIELD
      PRIMING_SUGAR_LABELS
      SO2_PKA
      SORBIC_ACID_BY_ABV
      SORBIC_ACID_LIMIT_MG_L
      forcedCarbonationExplained
      primingSugarExplained
      sorbateDoseExplained
      sulfiteDoseExplained

      Blends of finished beers, the Pearson square, mead and cider musts with their nutrient schedules, and proofing and sweetening a spirit. Start with evaluateBlend, pearsonSquare, sugarToGravity and proofAndSweeten. See the Blending, mead and spirits guide.

      evaluateBlend
      mixSpirits
      pearsonSquare
      proofAndSweeten
      sugarToGravity
      abvToMassFraction
      acidShockStarter
      blendComponentResidualCo2
      blendPh
      bottlesOfSize
      dissolvedSugarVolumeLPerKg
      ethanolWaterDensityKgPerL
      fruitSugarKilograms
      massFractionToAbv
      nutrientSchedule
      pearsonSquareRefusal
      sucroseEquivalentFraction
      sugarAdditionSucroseKilograms
      sugarConcentrationToBrix
      syrupSugarKgPerL
      titratableAcidityGramsPerLitre
      wholeFruitSucroseKilograms
      BlendAdditionTiming
      BlendComponentInput
      BlendFlavourInput
      BlendFruitInput
      BlendHopInput
      BlendInput
      BlendSpiritInput
      BlendSugarInput
      BlendWholeFruitInput
      NutrientScheduleInput
      PearsonSquareInput
      ProofAndSweetenInput
      SpiritMixComponent
      SugarToGravityInput
      BlendAdditionInput
      MustSugar
      NutrientDemand
      Sweetener
      AcidShockStarter
      BlendComponentResult
      BlendEvaluation
      NutrientAddition
      NutrientScheduleResult
      PearsonSquareResult
      ProofAndSweetenResult
      SpiritMixResult
      SugarToGravityResult
      ACID_SHOCK_STARTER_LITRES_PER_GRAM
      ACID_SHOCK_YEAST_GRAMS_PER_GALLON
      ADDITION_FERMENTED_DAYS
      BARREL_AGED_RESIDUAL_FACTOR
      DEFAULT_TA_SAMPLE_ML
      EXTRACT_CO2_VOLUMES_PER_GRAVITY_POINT
      MUST_SUGAR_LABELS
      MUST_SUGAR_POINTS_L_PER_KG
      MUST_SUGAR_PPG
      NUTRIENT_DEMAND_LABELS
      SUCROSE_POINTS_PER_POUND_PER_GALLON
      TOSNA_ADDITION_LABELS
      TOSNA_ADDITIONS
      TOSNA_GRAMS_PER_GALLON_PER_PPM
      TOSNA_NITROGEN_FACTORS
      WHOLE_FRUITS
      blendExplanations
      mixSpiritsExplained
      nutrientScheduleExplained
      pearsonSquareExplained
      proofAndSweetenExplained
      sugarToGravityExplained

      A recipe's flavor profile on three wheels (malt, hops and fermentation), and how well it fits a style's bands. Start with flavorProfile, then flavorFit.

      flavorFit
      flavorProfile
      bandFor
      hopUseFactor
      FlavorHop
      FlavorInput
      FlavorMalt
      FlavorYeast
      StyleFlavorBands
      AxisOf
      AxisScores
      FermentationAxis
      FlavorBand
      FlavorWheel
      HopAxis
      MaltAxis
      WheelValues
      FlavorContribution
      FlavorFit
      FlavorMiss
      FlavorProfile
      FIT_WORST_WHEEL_LEAD
      FLAVOR_AXES
      FLAVOR_AXIS_LABELS
      FLAVOR_CURVE
      FLAVOR_WHEEL_LABELS
      FLAVOR_WHEELS
      UNCHARACTERISTIC

      The engine works in kilograms, liters, °C and specific gravity. These convert at the edges. Start with sgToPlato and gallonsToLitres, and see Start here for which unit each field expects.

      gallonsToLitres
      sgToPlato
      brixToSg
      celsiusDeltaToFahrenheit
      celsiusToFahrenheit
      fahrenheitDeltaToCelsius
      fahrenheitToCelsius
      fluidOuncesToLitres
      gramsToKg
      gravityPointsToSg
      imperialGallonsToLitres
      imperialQuartsToLitres
      kgToGrams
      kgToOunces
      kgToPounds
      kgToPoundsOunces
      litresToFluidOunces
      litresToGallons
      litresToImperialGallons
      litresToImperialQuarts
      litresToMillilitres
      litresToQuarts
      millilitresToLitres
      ouncesToKg
      platoToSg
      poundsToKg
      quartsToLitres
      sgToBrix
      sgToGravityPoints
      Celsius
      Days
      Fraction
      Ibu
      Kilograms
      Litres
      Lovibond
      Minutes
      Percent
      Plato
      SpecificGravity
      Srm
      KG_PER_OUNCE
      KG_PER_POUND
      LITRES_PER_IMPERIAL_GALLON
      LITRES_PER_IMPERIAL_QUART
      LITRES_PER_US_FLUID_OUNCE
      LITRES_PER_US_GALLON
      LITRES_PER_US_QUART

      The working behind every headline number, and the bibliography it cites. Start with the Explanation type, then referenceExplanations for every explanation of one worked example. Start here shows how to display one.

      referenceExplanations
      ALCHEMY_OVERLORD_HOP_STORAGE
      ASBC_METHODS
      BOULTON_WINEMAKING_1996
      BRAUKAISER_CARBONATION
      BYO_MR_WIZARD_KEG_PRIMING
      CO2_SOLUBILITY_TABLES
      CORE_VERSION
      CRANE_BLENDING_SHEET
      DANIELS_DESIGNING_1996
      EXPLANATION_FAMILIES
      EXPLANATION_FAMILY_LABELS
      GARETZ_HOP_STORAGE_1994
      GARETZ_USING_HOPS_1994
      HARNED_DAVIS_1943
      HOSOM_MIBU_2018
      HYDROMETER_CORRECTION_POLYNOMIAL
      ILAND_GRAPES_AND_WINE_2004
      KELL_1975
      KOLBACH_1953
      LAWSON_HANSON_1974
      LEA_CRAFT_CIDER_2008
      MALOWICKI_2005
      MARGALIT_WINE_CHEMISTRY_2004
      MILK_THE_FUNK_PACKAGING
      MOREY_1999
      MOSHER_COMPANION_1994
      MOUTELA_TOSNA
      MR_MALTY_VIABILITY
      NICKERSON_LIKENS_HSI
      OIML_R22_1975
      PALMER_HOW_TO_BREW
      PALMER_KAMINSKI_WATER_2013
      PEYNAUD_KNOWING_WINE_1984
      RAGER_1990
      SCHRAMM_COMPLEAT_MEADMAKER_2003
      SRM_COLOUR_CHART
      TECHNIQUES_HOME_WINEMAKING_PH
      TERRILL_REFRACTOMETER_2011
      TINSETH_1997
      TONSMEIRE_BLENDING_2014
      TROESTER_BREWING_WATER
      TROESTER_MASH_PH
      TROESTER_NHC_2013
      TROESTER_YEAST_GROWTH_2012
      WHITE_ZAINASHEFF_2010
      ZYMURGY_ABV_1995
      explain
      explained
      referenceExplanationsByFamily
      withNotes
      Explained
      Explanation
      ExplanationSpec
      ReferenceExample
      Source
      ExplainInputs
      ExplainValue
      ExplanationFamily
      Start here
      OIML_MAX_TEMP_C
      OIML_MIN_TEMP_C