ROI Calculator

ROI Calculator

Calculate your potential ROI with Aleran. Start by answering the short questions below and see how quickly and significantly you could see results – from increased sales, lowered costs and a return on investment.
What percentage of your overall annual sales volume is done online, via eCommerce Percentage of Annual eCommerce Sales
%
The number of personnel who are part of your process of selling to your customers – entering and reviewing quotes & orders, answering customer inquiries, etc. Number of Individuals Managing and Processing Sales Orders
people
Approximate value for overall company sales in your selected currency. This information is important for correlating the overall impact. Current Sales Revenue
This information is used to personalize your results to your region. Your HQ Region
ROI with Aleran
___ _ USD
your first year
Increased Sales
___ _ USD
your first year
Cost Savings
___ _ USD
your first year
Positive ROI
__ mo. or less
Compared to manual process

Your report is almost here

Just add a few more details and you are ready to download it

First Name
Last Name
Email
"); printWindow.document.close(); printWindow.focus(); printWindow.print(); } const populateTemplate = (template, data) => { if (template.nodeType === 3 && template.nodeValue.includes('\{{')) { if (new RegExp('{{PositiveMonthsROI}}').test(template.nodeValue)) { if (data['PositiveMonthsROI'].split(' ')[0] < 6) { template.parentNode.parentNode.classList.add('green'); } else { template.parentNode.parentNode.classList.add('pink'); } } if (new RegExp('{{eCommerceSales}}').test(template.nodeValue)) { let width = (data['eCommerceSales'] / 100) * 50; template.parentElement.parentElement.querySelector('.bar').style = "width: " + width + 'px;'; } template.nodeValue = template.nodeValue.replace(/{{\s*([^}]+)\s*}}/g, (match, key) => data[key] || match); } else if (template.nodeType === 1) { for (const childNode of template.childNodes) { populateTemplate(childNode, data); } } ; return template; } const pushHistory = (data) => { if (data) { updateHistory(data); return; } const calculatedData = { HQRegion: hqRegion, eCommerceSales: eCommerceSalesPercentage, processorsValue: processorsValue, increasedSales: formatCalculatedNumber(increasedSalesCalculated, currency), ROI: formatCalculatedNumber(ROICalculated, currency), costSavings: formatCalculatedNumber(costSavingCalculated, currency), PositiveMonthsROI: ROIMonths, }; updateHistory([calculatedData]); updateHistoryData(calculatedData); } const resetInputs = () => { document.getElementById("eCommerce-sales").value = ""; document.getElementById("processors").value = ""; document.getElementById("sales-revenue").value = ""; document.getElementById("currency").selectedIndex = 0; document.getElementById("hq-region").selectedIndex = 0; document.getElementById("user-firstname").value = ""; document.getElementById("user-lastname").value = ""; document.getElementById("user-email").value = ""; document.getElementById("download-report").disabled = true; } const setDownloadButtonState = (isDisabled) => { const setButtonState = (button) => button.disabled = isDisabled; setButtonState(document.getElementById("download-report-first")); setButtonState(document.getElementById("download-report-second")); }; const setElementDisplayState = (elementId, isVisible) => { let element = document.getElementById(elementId); if (element) { element.style.display = isVisible ? "block" : "none"; } } const saveHistory = (name, value) => { localStorage.setItem(name, encodeURIComponent(JSON.stringify(value))) } const submitGravityForm = () => { var fieldsArray = { 5: "Email", 6: "First Name", 7: "eCommerce Sales", 8: "Processors", 9: "Current Sales Revenue", 11: "HQ Region", 12: "Last Name" } var formData = { "input_5": document.getElementById("user-email").value, "input_6": document.getElementById("user-firstname").value, "input_7": eCommerceSalesPercentage, "input_8": processorsValue, "input_9": salesRevenueValue, "input_11": hqRegion, "input_12": document.getElementById("user-lastname").value, }; $.ajax({ type: "POST", url: API_ENDPOINT, data: formData, success: function (response) { if (response.is_valid === true) { downloadAggregatedReport ? downloadPDF(false, 'l') : downloadPDF(true, 'p'); setElementDisplayState("overlay", false); } }, error: function (error) { var response = Object.entries(error.responseJSON.validation_messages)[0]; displayErrorMessage(fieldsArray[response[0]] + ": " + response[1]); return false; }, }); } const updateHistory = (data) => { const historyArticle = document.getElementById('history'); const historyTable = document.getElementById('history-table'); data.forEach((obj) => { const rowCount = historyTable.querySelectorAll('.table-row.data').length; if (rowCount >= 5) { historyTable.removeChild(historyTable.childNodes[3]);//Removes the row historyTable.removeChild(historyTable.childNodes[3]);//Removes the spacer } if (rowCount > 0) { createTemplateInstance('row-separator', 'history-table'); } createTemplateInstance('table-row', 'history-table', true, obj); }); if (historyTable.querySelectorAll('.table-row.data').length > 0) { historyArticle.style = 'display: flex;'; } } const updateHistoryData = (calculatedData) => { var historyTableContent = getHistoryData(cookieName); if (historyTableContent.length > historyTableMaxElements) { historyTableContent.splice(0, 1); } historyTableContent.push(calculatedData); saveHistory(cookieName, historyTableContent); } const validateUserNameEmailInputs = () => { var isEmailFilled = false; var isNameFilled = false; var userEmail = document.getElementById("user-email").value; var userFirstName = document.getElementById("user-firstname").value; var userLastName = document.getElementById("user-lastname").value; const emailReg = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9-]+\.{1}[a-zA-Z]{2,}$/; if ((userEmail.trim().length > 0) && (emailReg.test(userEmail))) { isEmailFilled = true; } else { displayErrorMessage("Please provide a valid Email"); } if ((userFirstName.trim().length >= 3) && (userLastName.trim().length >= 3)) { isNameFilled = true; } else { displayErrorMessage("Please fill your Name"); } if (isEmailFilled && isNameFilled) { displayErrorMessage(""); return true; } } const setDownloadAggregatedReport = (value) => { downloadAggregatedReport = value; }; document .getElementById("eCommerce-sales") .addEventListener("input", function (input) { if (input.currentTarget.value < 0) input.currentTarget.value = 0; if (input.currentTarget.value > 100) input.currentTarget.value = 100; }); document .getElementById("processors") .addEventListener("input", function (input) { if (input.currentTarget.value < 0) input.currentTarget.value = 0; }); document .getElementById("sales-revenue") .addEventListener("input", function (input) { if (input.currentTarget.value < 0) input.currentTarget.value = 0; if (parseFloat(input.currentTarget.value.replace(/,/g, "")) >= 1e12) { input.currentTarget.value = 1e12; } const separator = ","; const reg = new RegExp(`^-?\\d*[${separator}${"."}]?(\\d{0,3}${separator})*(\\d{3}${separator})?\\d{0,3}$`); const key = input.data || this.value.substr(-1); if (reg.test(key)) { input.target.value = numberSeparator(input.target.value); } else { input.target.value = input.target.value.substring( 0, input.target.value.length - 1 ); input.preventDefault(); return false; } }); document .getElementById("sales-revenue") .addEventListener("input", function (input) { if (input.currentTarget.value < 0) input.currentTarget.value = 0; if (parseFloat(input.currentTarget.value.replace(/,/g, "")) >= 1e12) { input.currentTarget.value = 1e12; } const separator = ","; const reg = new RegExp(`^-?\\d*[${separator}${"."}]?(\\d{0,3}${separator})*(\\d{3}${separator})?\\d{0,3}$`); const key = input.data || this.value.substr(-1); if (reg.test(key)) { input.target.value = numberSeparator(input.target.value); } else { input.target.value = input.target.value.substring( 0, input.target.value.length - 1 ); input.preventDefault(); return false; } }); window.addEventListener('load', loadHistoryTableFromCookie); return { Calculate: () => { getInputs(); calculate(); if (checkInputsValidity()) { pushHistory(); } displayValues(); setDownloadButtonState(false); }, Reset: () => { displayValues(true); resetInputs(); setDownloadButtonState(true); }, Download: () => { if (validateUserNameEmailInputs()) { submitGravityForm(); } }, Print: () => { openPrintWindow(); }, OpenPopUp: (aggregatedReport = false) => { setElementDisplayState("overlay", true); setDownloadAggregatedReport(aggregatedReport); }, Cancel: () => { setElementDisplayState("overlay", false); } }; })();

Will you also be at the SUN Conference in February? See how Aleran + Infor SyteLine simplifies to sell smarter

X