score = (x) -> if x == "Yes" 10 else if x == "Partially" 5 else 0 weights = [0.25, 0.125, 0.125, 0.25, 0.25] assessments_of_impacts_on_nature = [impacts_on_nature, impacts_on_upstream_value_chain, impacts_on_downstream_value_chain, impacts_on_stakeholder, impacts_on_nature_including_biodiversity] weights.reduce((weighted_sum, weight, index) -> weighted_sum + weight*score(assessments_of_impacts_on_nature[index]) , 0)