Created
April 3, 2015 08:11
-
-
Save saurshaz/980259e396bf1e8737fc to your computer and use it in GitHub Desktop.
CLV computation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html> | |
<head> | |
<link rel="stylesheet" href="style.css"> | |
<script src="//code.jquery.com/jquery-1.9.1.min.js"></script> | |
<!--<script src="script.js"></script>--> | |
<script> | |
var calculateClv = function(a, b, c, d, e, f) { | |
c = c ? c : 30, d = d ? d : 1, e = e ? e : 0, f = f ? f : 0; | |
var g = -1 * f, | |
h = 0, | |
j = a * d, | |
k = Math.pow(1 - e, 1 / 365), | |
l = 1825, | |
m = [], | |
n = 0; | |
for (i = 0; l > i; i++) i % c == 0 && (j = a * d, j *= Math.pow(b, n), j *= Math.pow(k, h), g += j, m.push(g), h += c, n++); | |
return m | |
} | |
var calc = function() { | |
var averageOrderValue = parseFloat($("#averageOrderValue").val()); | |
var repeatPurchaseRate = parseFloat($("#repeatPurchaseRate").val()) / 100; | |
var timeBetweenPurchases = parseInt($("#timeBetweenPurchases").val()); | |
var grossMargin = parseFloat($("#grossMargin").val()) / 100; | |
var costOfCapital = parseFloat($("#costOfCapital").val()) / 100; | |
var customerAcquisitionCost = parseFloat($("#customerAcquisitionCost").val()); | |
var clvSeries = calculateClv(averageOrderValue, repeatPurchaseRate, timeBetweenPurchases, grossMargin, costOfCapital, customerAcquisitionCost); | |
var rpr10 = repeatPurchaseRate + .1 * (1 - repeatPurchaseRate); | |
var rpr20 = repeatPurchaseRate + .2 * (1 - repeatPurchaseRate); | |
var rpr30 = repeatPurchaseRate + .3 * (1 - repeatPurchaseRate); | |
var clv_rpr_10 = calculateClv(averageOrderValue, rpr10, timeBetweenPurchases, grossMargin, costOfCapital, customerAcquisitionCost); | |
var clv_rpr_20 = calculateClv(averageOrderValue, rpr20, timeBetweenPurchases, grossMargin, costOfCapital, customerAcquisitionCost); | |
var clv_rpr_30 = calculateClv(averageOrderValue, rpr30, timeBetweenPurchases, grossMargin, costOfCapital, customerAcquisitionCost); | |
var aov10 = averageOrderValue + .1 * averageOrderValue; | |
var aov20 = averageOrderValue + .2 * averageOrderValue; | |
var aov30 = averageOrderValue + .3 * averageOrderValue; | |
var clv_aov_10 = calculateClv(aov10, repeatPurchaseRate, timeBetweenPurchases, grossMargin, costOfCapital, customerAcquisitionCost); | |
var clv_aov_20 = calculateClv(aov20, repeatPurchaseRate, timeBetweenPurchases, grossMargin, costOfCapital, customerAcquisitionCost); | |
var clv_aov_30 = calculateClv(aov30, repeatPurchaseRate, timeBetweenPurchases, grossMargin, costOfCapital, customerAcquisitionCost); | |
debugger; | |
var computed_clv = clvSeries[clvSeries.length - 1]; | |
$('#valMachine').html(computed_clv); | |
//alert(computed_clv.formatMoney(2)) | |
}; | |
$(document).ready(function() { | |
$('#btnCalculate').click(function() { | |
calc(); | |
//alert('calculate'); | |
/** var averageOrderValue = parseFloat($("#avgOrderValue").val()); | |
var repeatPurchaseRate = parseFloat($("#repurchaseRate").val()) / 100; | |
var timeBetweenPurchases = parseInt($("#timeBetweenPurchases").val()); | |
var grossMargin = parseFloat($("#grossMargin").val()) / 100; | |
var costOfCapital = parseFloat($("#costOfCapital").val()) / 100; | |
var customerAcquisitionCost = parseFloat($("#customerAcquisitionCost").val()); | |
//var clvSeries = calculateClv(averageOrderValue, repeatPurchaseRate, timeBetweenPurchases, grossMargin, costOfCapital, customerAcquisitionCost);*/ | |
//alert(clvSeries); | |
}); | |
}); | |
</script> | |
</head> | |
<body> | |
average Order Value | |
<input type="text" id="averageOrderValue" placeholder="averageOrderValue"> | |
<br>repeat Purchase Rate | |
<input type="text" id="repeatPurchaseRate" placeholder="repeatPurchaseRate"> | |
<br>time Between Purchases | |
<input type="text" id="timeBetweenPurchases" placeholder="timeBetweenPurchases"> | |
<br>gross Margin | |
<input type="text" id="grossMargin" placeholder="grossMargin"> | |
<br>cost Of Capital | |
<input type="text" id="costOfCapital" placeholder="costOfCapital"> | |
<br>customer Acquisition Cost | |
<input type="text" id="customerAcquisitionCost" placeholder="customerAcquisitionCost"> | |
<br> | |
<input type="button" id="btnCalculate" value="calculate"> | |
<div id="valMachine"></div> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment