@beerwright/core
    Preparing search index...

    Variable FLAVOR_CURVEConst

    FLAVOR_CURVE: Readonly<Record<"hop" | "malt", number>> = ...

    Maps a raw sum to 0–5 with one saturating curve per wheel: 5·(1 − exp(−raw/k)).

    Hop raw is grams per liter × score × use factor, so at hop: 12 a Pils with 1.5 g/L of Saaz (floral 4) in an 80 °C whirlpool reads floral about 1.7, 5 g/L of a score-4 dry hop reads about 4, and a hazy IPA's 15 g/L reads 5. Malt raw is grist share × score × potency.

    The k constants are a first calibration, tuned by hand against six made-up recipes: a Pils, a Weissbier, a dry stout, a West Coast IPA, a NEIPA and a saison. They haven't been checked against real medal-winning recipes yet.