function calculate_p_value(visits_per_version, baseline_conversion_rate, expected_increase) {
var visits_versiona = visits_per_version;
var visits_versionb = visits_per_version;
var baseline_conversion_percentage = baseline_conversion_rate * 0.01;
var expected_increase_percentage = expected_increase * 0.01;
var baseline_conversions_abs = baseline_conversion_percentage * visits_versiona;
var versionb_conversions_abs = baseline_conversions_abs * (1 + (expected_increase_percentage));
var versionb_conversion_percentage = versionb_conversions_abs / visits_versionb;
var std_error = Math.sqrt(
(baseline_conversion_percentage * (1 - baseline_conversion_percentage) / visits_versiona)
+ (versionb_conversion_percentage * (1 - versionb_conversion_percentage) / visits_versionb)
);
var z_value = (versionb_conversion_percentage - baseline_conversion_percentage) / std_error;
var p_value = get_p_value_from_z_value(z_value);
if (p_value > 0.5)
p_value = 1 - p_value;
p_value = Math.round(p_value * 1000) / 1000;
return p_value;
}