Calculate the monthly ad spend needed to hit your sales goals.
Total number of sales/conversions you want.
Percentage of visitors who buy.
Average cost per click for your keywords.
Average revenue generated per sale.
Your PPC Forecast
Required Monthly Budget$0.00
Estimated Traffic (Clicks)0
Cost Per Acquisition (CPA)$0.00
Estimated ROAS0.0x
Total Projected Monthly Revenue$0.00
How to Calculate Your PPC Budget
Determining your PPC (Pay-Per-Click) budget is critical for campaigns on Google Ads, Bing, or Social Media. Instead of guessing, this calculator uses a "bottom-up" approach based on your revenue goals and historical performance data.
Monthly Budget: Traffic Needed × Cost Per Click (CPC)
Cost Per Acquisition (CPA): Total Budget ÷ Monthly Sales Goal
ROAS (Return on Ad Spend): Total Revenue ÷ Total Spend
Why These Metrics Matter
Conversion Rate: This is the percentage of website visitors who complete a desired action. If your conversion rate is low, your cost per acquisition will be high, requiring a larger budget for the same number of sales.
CPC (Cost Per Click): This is determined by the competitiveness of your industry. Highly competitive niches like Legal or Insurance often see much higher CPCs than eCommerce or local services.
Practical Example
Imagine you want to generate 20 sales per month. You know your website converts at 2% and your average CPC is $2.00. Your average order is worth $150.
To get 20 sales at a 2% conversion rate, you need 1,000 clicks (20 / 0.02).
1,000 clicks at $2.00 each equals a $2,000 monthly budget.
Your revenue would be $3,000 (20 x $150).
Your ROAS would be 1.5x ($3,000 / $2,000).
function calculatePPC() {
var targetSales = parseFloat(document.getElementById('targetSales').value);
var convRate = parseFloat(document.getElementById('convRate').value);
var avgCPC = parseFloat(document.getElementById('avgCPC').value);
var avgAOV = parseFloat(document.getElementById('avgAOV').value);
// Error handling
if (isNaN(targetSales) || isNaN(convRate) || isNaN(avgCPC) || isNaN(avgAOV) || convRate <= 0) {
alert("Please enter valid positive numbers. Conversion rate must be greater than 0.");
return;
}
// Calculations
var decimalConvRate = convRate / 100;
var trafficNeeded = Math.ceil(targetSales / decimalConvRate);
var totalBudget = trafficNeeded * avgCPC;
var cpa = totalBudget / targetSales;
var totalRevenue = targetSales * avgAOV;
var roas = totalRevenue / totalBudget;
// Update UI
document.getElementById('resBudget').innerHTML = '$' + totalBudget.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('resTraffic').innerHTML = trafficNeeded.toLocaleString();
document.getElementById('resCPA').innerHTML = '$' + cpa.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('resROAS').innerHTML = roas.toFixed(2) + 'x';
document.getElementById('resRev').innerHTML = '$' + totalRevenue.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
// Show results
document.getElementById('ppc-results').style.display = 'block';
}