def strike_water_temp(init_grain_temp: float,
                      strike_water_vol: float,
                      grain_wt: float,
                      target_mash_temp,
                      equip_temp_loss: float = 1) -> float:
    """Computes strike water temperature based primarily on initial mash temp.

    Calculation here http://howtobrew.com/book/section-3/
    the-methods-of-mashing/calculations-for-boiling-water-additions

    Args:
    init_grain_temp: Initial grain temp in F
    strike_water_vol: Strike water volume in gal
    grain_wt: Grain weight in lbs
    target_mash_temp: Target mash temp in F
    equip_temp_loss: Equipment temperature loss in F (default is 1)


    Returns:
    Strike water temperature in F i.e. temp to heat water before adding grain
    """
    # multiply vol by 4 to convert to quarts per pound
    r = strike_water_vol * 4.0/grain_wt
    t2 = target_mash_temp + equip_temp_loss
    return (0.2/r) * (t2 - init_grain_temp) + t2