Created
April 3, 2015 19:03
-
-
Save saurshaz/53bdb8f53827484be9e9 to your computer and use it in GitHub Desktop.
// source http://jsbin.com/cucotu
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> | |
<script data-require="jquery@2.1.3" data-semver="2.1.3" src="http://code.jquery.com/jquery-2.1.3.min.js"></script> | |
<link rel="stylesheet" href="style.css" /> | |
<link data-require="bootstrap@3.3.2" data-semver="3.3.2" rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" /> | |
<script data-require="bootstrap@3.3.2" data-semver="3.3.2" src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script> | |
<!--<script src="script.js"></script>--> | |
<script> | |
var calcSimple = function() { | |
var price = parseFloat($("#totalPrice").val()); | |
var duration = parseFloat($("#duration").val()); | |
var cost = parseFloat($("#costOfAqusition").val()); | |
$("#valMachineSimple").html(((price * duration) - cost)); | |
}; | |
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(); | |
}); | |
$('#btnCalculateSimple').click(function() { | |
calcSimple(); | |
}); | |
}); | |
</script> | |
</head> | |
<body> | |
<div id="complex"> | |
<div class="well">Calculator for Customer Lifetime Value</div> | |
<div class="input-grp"> | |
<span> | |
<input type="text" id="averageOrderValue" placeholder="average Order Value" /> | |
</span> | |
<br><br> | |
<span> | |
<input type="text" id="repeatPurchaseRate" placeholder="repeat Purchase Rate" /> | |
</span> | |
<br><br> | |
<span> | |
<input type="text" id="timeBetweenPurchases" placeholder="time Between Purchases" /> | |
</span> | |
<br><br> | |
<span> | |
<input type="text" id="grossMargin" placeholder="gross Margin" /> | |
</span> | |
<br><br> | |
<span> | |
<input type="text" id="costOfCapital" placeholder="cost Of Capital" /> | |
</span> | |
<br><br> | |
<span> | |
<input type="text" id="customerAcquisitionCost" placeholder="customer Acquisition Cost" /> | |
</span> | |
</div> | |
<br> | |
<input type="button" class="btn-primary" id="btnCalculate" value="calculate" /> | |
<br><br> | |
<div class="well">Lifetime value of customer is :: | |
<p id="valMachine"></p> | |
</div> | |
</div> | |
<br> | |
<div id="simple"> | |
<div id="complex"> | |
<div class="well"> | |
<p>the lifetime value of a gym member who spends $20 every month for 3 years. The value of that customer would be: $20 X 12 months X 3 years = $720 in total revenue (or $240 per year)</p> | |
</div> | |
<div class="input-grp"> | |
<span> | |
<input type="text" id="totalPrice" placeholder="total price" /> | |
</span> | |
<span> | |
<input type="text" id="duration" placeholder="duration" /> | |
</span> | |
<span> | |
<input type="text" id="costOfAqusition" placeholder="cost of aqusition" /> | |
</span> | |
<br><br> | |
<span class="button-group"> | |
<input type="button" class="btn-primary" id="btnCalculateSimple" value="calculate" /> | |
</span> | |
</div> | |
<br> | |
<div class="well"> | |
Profits Actually Made is :: | |
<div id="valMachineSimple"></div> | |
</div> | |
</div> | |
</div> | |
<script id="jsbin-source-html" type="text/html"><!DOCTYPE html> | |
<html> | |
<head> | |
<script data-require="jquery@2.1.3" data-semver="2.1.3" src="http://code.jquery.com/jquery-2.1.3.min.js"><\/script> | |
<link rel="stylesheet" href="style.css" /> | |
<link data-require="bootstrap@3.3.2" data-semver="3.3.2" rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" /> | |
<script data-require="bootstrap@3.3.2" data-semver="3.3.2" src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"><\/script> | |
<\!--<script src="script.js"><\/script>--> | |
<script> | |
var calcSimple = function() { | |
var price = parseFloat($("#totalPrice").val()); | |
var duration = parseFloat($("#duration").val()); | |
var cost = parseFloat($("#costOfAqusition").val()); | |
$("#valMachineSimple").html(((price * duration) - cost)); | |
}; | |
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(); | |
}); | |
$('#btnCalculateSimple').click(function() { | |
calcSimple(); | |
}); | |
}); | |
<\/script> | |
</head> | |
<body> | |
<div id="complex"> | |
<div class="well">Calculator for Customer Lifetime Value</div> | |
<div class="input-grp"> | |
<span> | |
<input type="text" id="averageOrderValue" placeholder="average Order Value" /> | |
</span> | |
<br><br> | |
<span> | |
<input type="text" id="repeatPurchaseRate" placeholder="repeat Purchase Rate" /> | |
</span> | |
<br><br> | |
<span> | |
<input type="text" id="timeBetweenPurchases" placeholder="time Between Purchases" /> | |
</span> | |
<br><br> | |
<span> | |
<input type="text" id="grossMargin" placeholder="gross Margin" /> | |
</span> | |
<br><br> | |
<span> | |
<input type="text" id="costOfCapital" placeholder="cost Of Capital" /> | |
</span> | |
<br><br> | |
<span> | |
<input type="text" id="customerAcquisitionCost" placeholder="customer Acquisition Cost" /> | |
</span> | |
</div> | |
<br> | |
<input type="button" class="btn-primary" id="btnCalculate" value="calculate" /> | |
<br><br> | |
<div class="well">Lifetime value of customer is :: | |
<p id="valMachine"></p> | |
</div> | |
</div> | |
<br> | |
<div id="simple"> | |
<div id="complex"> | |
<div class="well"> | |
<p>the lifetime value of a gym member who spends $20 every month for 3 years. The value of that customer would be: $20 X 12 months X 3 years = $720 in total revenue (or $240 per year)</p> | |
</div> | |
<div class="input-grp"> | |
<span> | |
<input type="text" id="totalPrice" placeholder="total price" /> | |
</span> | |
<span> | |
<input type="text" id="duration" placeholder="duration" /> | |
</span> | |
<span> | |
<input type="text" id="costOfAqusition" placeholder="cost of aqusition" /> | |
</span> | |
<br><br> | |
<span class="button-group"> | |
<input type="button" class="btn-primary" id="btnCalculateSimple" value="calculate" /> | |
</span> | |
</div> | |
<br> | |
<div class="well"> | |
Profits Actually Made is :: | |
<div id="valMachineSimple"></div> | |
</div> | |
</div> | |
</div> | |
</body> | |
</html> | |
</script> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment