Measure the profitability of your email campaigns instantly.
Campaign Results
Total Revenue:$0.00
Net Profit:$0.00
Return on Investment (ROI):0%
Conversions:0
How to Understand Your Email Marketing ROI
Email marketing remains one of the highest-performing digital channels. To truly understand its value, you must look beyond opens and clicks to actual revenue generated relative to your investment. This calculator helps you determine if your email automation, newsletters, or blast campaigns are actually contributing to your bottom line.
The ROI Formula
ROI = [(Revenue – Cost) / Cost] x 100
Key Metrics Explained
Campaign Cost: Include everything—software fees (Mailchimp, Klaviyo), copywriter costs, and design fees.
Open Rate & CTR: These determine your "funnel efficiency." High opens with low clicks suggest a mismatch between your subject line and content.
Conversion Rate: The percentage of people who clicked the email and completed a purchase.
Average Order Value (AOV): The average dollar amount spent each time a customer completes an order via your email link.
Example Calculation
Suppose you spend $500 on a campaign sent to 10,000 subscribers.
If you have a 20% open rate (2,000 opens), a 5% CTR (100 clicks), and a 10% conversion rate (10 sales) with a $100 AOV,
your revenue is $1,000. Your ROI would be 100%.
function calculateEmailROI() {
var cost = parseFloat(document.getElementById('campCost').value);
var sent = parseFloat(document.getElementById('totalSent').value);
var openRate = parseFloat(document.getElementById('openRate').value);
var clickRate = parseFloat(document.getElementById('clickRate').value);
var convRate = parseFloat(document.getElementById('convRate').value);
var aov = parseFloat(document.getElementById('avgOrder').value);
if (isNaN(cost) || isNaN(sent) || isNaN(openRate) || isNaN(clickRate) || isNaN(convRate) || isNaN(aov)) {
alert("Please fill in all fields with valid numbers.");
return;
}
// Step 1: Calculate total opens
var totalOpens = sent * (openRate / 100);
// Step 2: Calculate total clicks (CTR is usually based on opens or delivered, here we use standard opens)
var totalClicks = totalOpens * (clickRate / 100);
// Step 3: Calculate total conversions
var totalConversions = totalClicks * (convRate / 100);
// Step 4: Calculate Revenue
var totalRevenue = totalConversions * aov;
// Step 5: Calculate Profit
var netProfit = totalRevenue – cost;
// Step 6: Calculate ROI
var roiPercentage = 0;
if (cost > 0) {
roiPercentage = (netProfit / cost) * 100;
} else if (totalRevenue > 0) {
roiPercentage = 100; // Simplified for zero cost
}
// Display Results
document.getElementById('roi-results').style.display = 'block';
document.getElementById('resRevenue').innerText = '$' + totalRevenue.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('resProfit').innerText = '$' + netProfit.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('resROI').innerText = roiPercentage.toFixed(2) + '%';
document.getElementById('resConversions').innerText = Math.floor(totalConversions).toLocaleString();
// Scroll to results
document.getElementById('roi-results').scrollIntoView({ behavior: 'smooth', block: 'nearest' });
}