Calculate the return on investment for your email campaigns based on delivery, engagement, and conversion metrics.
Campaign Projections
Total Opens0
Total Clicks0
Total Sales0
Total Revenue$0.00
Net Profit$0.00
Campaign ROI0%
How to Calculate Email Marketing ROI
Email marketing remains one of the most effective digital channels, often yielding returns as high as $36 for every $1 spent. Understanding your ROI helps you justify your budget and optimize your strategy for better engagement.
The Formula:
ROI is calculated by taking the (Total Revenue – Campaign Cost) divided by the Campaign Cost, then multiplying by 100 to get a percentage.
Key Metrics Explained
Open Rate: The percentage of recipients who opened your email. High open rates usually indicate effective subject lines.
Click-Through Rate (CTR): The percentage of people who clicked a link within your email. This measures how compelling your content and call-to-action (CTA) are.
Conversion Rate: The percentage of people who clicked through and then completed the desired action (e.g., a purchase or sign-up).
Average Order Value (AOV): The average dollar amount spent each time a customer completes a transaction.
Example Calculation
Imagine you send an email to 10,000 subscribers:
20% Open Rate = 2,000 Opens
5% CTR = 100 Clicks
10% Conversion Rate = 10 Sales
$100 Average Order Value = $1,000 Revenue
If the campaign cost $100, your ROI is 900%.
function calculateEmailROI() {
var listSize = parseFloat(document.getElementById("em_list_size").value);
var openRate = parseFloat(document.getElementById("em_open_rate").value);
var ctr = parseFloat(document.getElementById("em_ctr").value);
var convRate = parseFloat(document.getElementById("em_conv_rate").value);
var avgValue = parseFloat(document.getElementById("em_avg_value").value);
var cost = parseFloat(document.getElementById("em_cost").value);
// Validation
if (isNaN(listSize) || isNaN(openRate) || isNaN(ctr) || isNaN(convRate) || isNaN(avgValue) || isNaN(cost)) {
alert("Please enter valid numerical values in all fields.");
return;
}
// Logic
var totalOpens = listSize * (openRate / 100);
var totalClicks = totalOpens * (ctr / 100);
var totalSales = totalClicks * (convRate / 100);
var totalRevenue = totalSales * avgValue;
var netProfit = totalRevenue – cost;
var roi = 0;
if (cost > 0) {
roi = (netProfit / cost) * 100;
} else if (totalRevenue > 0) {
roi = 100; // Technical infinite, but display 100 for zero cost logic
}
// Update Results
document.getElementById("res_opens").innerText = Math.round(totalOpens).toLocaleString();
document.getElementById("res_clicks").innerText = Math.round(totalClicks).toLocaleString();
document.getElementById("res_sales").innerText = Math.round(totalSales).toLocaleString();
document.getElementById("res_revenue").innerText = "$" + totalRevenue.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById("res_profit").innerText = "$" + netProfit.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById("res_roi").innerText = roi.toFixed(2) + "%";
// Show Results
document.getElementById("em-roi-results").style.display = "block";
// Smooth scroll to results
document.getElementById("em-roi-results").scrollIntoView({ behavior: 'smooth', block: 'nearest' });
}