fistulaCell(`mapDict(x, f) = Dict.fromList(map(Dict.keys(x), {|key| [key, f(value)]}))
to_mean(x) = mapDict(x, mean)
vpi_analysis(f, params, other) = {
mean_params = to_mean(params)
vou = max([mean(f(params)), other])
Dict.fromList(map(Dict.keys(mean_params), {|key| max(mean(SampleSet.map(params[key], {|s| f(Dict.merge(mean_params, Dict.fromList([[key, s]])))})), other) - vou}))
}
vpi_analysis(total_value_per_dollar, params, vou(charities))`, [params, total_value_per_dollar, all_charities])