For "From results", enter the ad spend and whichever of impressions, clicks and conversions you know. For "From targets", enter the target CPA, expected CVR and target conversions (and the expected CTR if you know it) to get the max CPC, clicks needed and budget needed.
Table of Contents
-
What you can do on this page
-
What is this calculation used for?
-
How to Use
-
Formulas and figures
-
Formula for the cost per click (CPC)
-
Formula for the cost per 1,000 impressions (CPM)
-
Formula for the cost per acquisition (CPA)
-
Formulas for the click-through rate (CTR) and the conversion rate (CVR)
-
CPA from CPC and CVR (linking formula 1)
-
CPC from CPM and CTR (linking formula 2)
-
Working back from targets (max CPC, clicks needed and budget needed)
-
-
Symbols and terms
-
Good to know before you start
-
How to calculate it in Excel
-
How to calculate it in Google Sheets
-
How to calculate it in Python
-
How to write it in LaTeX and other math languages (copy and paste)
-
How to have ChatGPT do the calculation
-
DataChef Features
-
Related Features
-
NumberChef Calculators List
What you can do on this page
- From ad spend, impressions, clicks and conversions (just the ones you know), get CPC (cost per click), CPM (cost per 1,000 impressions) and CPA (cost per acquisition), plus CTR (click-through rate) and CVR (conversion rate), all at once
- "With a $50 target CPA and a 2% CVR, what is the most I can pay per click? What budget do I need for 20 conversions?" You can also work back from targets (max CPC, clicks needed and budget needed) on this page
- The formulas that link the three costs, \(\mathrm{CPA} = \mathrm{CPC} \div \mathrm{CVR}\) and \(\mathrm{CPC} = \mathrm{CPM} \div 1000 \div \mathrm{CTR}\) (with CVR and CTR as decimals), are explained clearly, including why they work
- One figure shows the flow from impressions to clicks to conversions, with the cost at each step
- Explanations of the formulas and copy-and-paste formulas for Excel, Google Sheets and Python are all on this page
What is this calculation used for?
If you spend $2,000 a month on ads for an online store or a class, and get 500 clicks and 20 sign-ups, the CPC is \(2000 \div 500 = 4\) dollars and the CPA is \(2000 \div 20 = 100\) dollars.
If the gross profit left from one sign-up is $160, spending $100 to keep $160 means the ads are worth continuing; if the gross profit is only $80, you lose more the more you advertise. Putting CPA next to gross profit is all it takes to decide.
"Next month we want 30 conversions, at up to $60 each, and our CVR has been 2.5%." Then the budget needed is \(60 \times 30 = 1800\) dollars, the max CPC is \(60 \times 0.025 = 1.50\) dollars and the clicks needed are \(30 \div 0.025 = 1200\).
People who manage ads do this every month to build a budget plan, and set their max CPC bids at $1.50 or less. If the expected CVR turns out wrong, so do the results, so it is normal to check the actual CVR mid-month and adjust the plan.
Say a social media ad has a CPM of $8, a CTR of 0.8% and a CVR of 2%, and a search ad has a CPC of $2 and a CVR of 4%. The social ad's CPC is \(8 \div 1000 \div 0.008 = 1\) dollar and its CPA is \(1 \div 0.02 = 50\) dollars. The search ad's CPA is \(2 \div 0.04 = 50\) dollars.
Even for ads billed in different ways, converting to CPA with the linking formulas lets you compare what one conversion costs. In this example, the search ad costs twice as much per click, yet the CPA is the same (the rates are assumptions and vary a lot by platform and product).
If printing and mailing 10,000 postcards costs $4,000 and brings 20 inquiries, the cost per 1,000 pieces is \(4000 \div 10000 \times 1000 = 400\) dollars (the same idea as CPM) and the cost per inquiry is \(4000 \div 20 = 200\) dollars (the same idea as CPA).
"Cost per 1,000" and "cost per result" work just as well outside the internet: print ads, billboards, trade shows. Put them next to your online CPA to compare where to spend your money.
If you pay a job board $2,000, the job posting is viewed 8,000 times and you get 16 applications, the cost per application is \(2000 \div 16 = 125\) dollars and the cost per 1,000 views is \(2000 \div 8000 \times 1000 = 250\) dollars.
In recruiting these are called cost per applicant and cost per hire, but the calculation is the same as CPA. Line up the cost per applicant of several job boards to decide where to put your budget.
If a company pays a creator $6,000 for one sponsored video and the video gets 500,000 views, the company's cost per 1,000 views is \(6000 \div 500000 \times 1000 = 12\) dollars.
The company compares this number with the CPM of its own ads to see whether the fee is worth it, and creators can use their view counts to explain a rough basis for their rates. Views are not the same as the number of people who actually watched, so treat the number as a guide.
Formulas and figures
Symbols and terms
Symbols
| \(\mathrm{CPC}\) | C P C | Cost per click, found with \(\mathrm{CPC} = \mathrm{Cost} \div \mathrm{Clicks}\). |
| \(\mathrm{CPM}\) | C P M | Cost per mille (cost per 1,000 impressions); "mille" is Latin for 1,000. Found with \(\mathrm{CPM} = \mathrm{Cost} \div \mathrm{Imp} \times 1000\). |
| \(\mathrm{CPA}\) | C P A | Cost per acquisition, also called cost per action. Found with \(\mathrm{CPA} = \mathrm{Cost} \div \mathrm{CV}\). |
| \(\mathrm{CTR}\) | C T R | Click-through rate. "Click-through" means clicking an ad and going through to the next page. Found with \(\mathrm{CTR} = \mathrm{Clicks} \div \mathrm{Imp} \times 100\) (%). |
| \(\mathrm{CVR}\) | C V R | Conversion rate, found with \(\mathrm{CVR} = \mathrm{CV} \div \mathrm{Clicks} \times 100\) (%). |
| \(\mathrm{Cost}\) | cost | Ad spend, using the word "cost" itself as the symbol. The unit is dollars. |
| \(\mathrm{Imp}\) | imp | Impressions, from the first three letters of "impression" (one showing of an ad). |
| \(\mathrm{Clicks}\) | clicks | The number of times the ad was clicked. |
| \(\mathrm{CV}\) | C V | Conversions, from "conversion": the number of results such as purchases or sign-ups. |
| \(\mathrm{CPC}_{\max}\) | C P C max | Max CPC. The "max" (maximum) below the line means the highest cost per click that still meets the target CPA. |
| \(\mathrm{CPA}_{\mathrm{target}},\ \mathrm{CV}_{\mathrm{target}}\) | C P A target, C V target | The target values you enter in the reverse mode. "target" is added below the line to tell them apart from the actual \(\mathrm{CPA}\) and \(\mathrm{CV}\). |
| \(\mathrm{Budget}\) | budget | The budget needed: an estimate of the ad spend needed to get the target number of conversions. |
Terms
| cost per click (CPC) | The ad cost for each click. It is the most basic cost for pay-per-click ads such as search ads and social media ads, and it has the same definition as "Avg. CPC" in ad platforms (cost ÷ clicks). The max CPC bid you set is a limit, which is different from the actual average CPC. |
| cost per 1,000 impressions (CPM) | The cost for every 1,000 times an ad is shown. The key point is that it is per 1,000, not per impression. It is common for ads billed just for being shown (CPM billing), such as display and video ads. |
| cost per acquisition (CPA) | The ad cost for each conversion (result). It shows how much it cost to win one customer, and it is the central measure for judging whether ads pay off. Decide what counts as a conversion (a purchase, a sign-up, a request for information and so on) and keep it fixed. |
| conversion | One occurrence of the result an ad is for. The word means a viewer "converting" into a customer. It depends on your goal - a purchase for an online store, an inquiry for real estate, a sign-up for an app. |
| impression | One showing of an ad on screen. If the same person sees it 3 times, that counts as 3 impressions (different from reach, which counts people). |
| click-through rate (CTR) | The percentage of ad impressions that were clicked. It shows whether the headline and image catch the eye. The denominator is impressions. |
| conversion rate (CVR) | The percentage of clicks that led to a conversion. It shows whether the page people land on after clicking (the landing page) and the product are appealing. The denominator is clicks (some people use sessions instead; this page always uses clicks). |
| max CPC | The most you can pay for one click and still meet the target CPA, found as "target CPA × CVR". If you keep your actual bids at or below this, the CPA stays within the target as long as the expected CVR holds. |
| target CPA | A target set in advance for the most ad spend you will pay for one conversion. The basic way to set it is to work back from the gross profit of the product (the profit left when one sells). With a CPA above the gross profit, looking only at that one sale, the more you advertise the more you lose (for products with repeat purchases, future profit such as customer lifetime value may also be counted). |
| CPM bidding | A way of paying for ads where you are charged per 1,000 impressions. Whichever way you pay, the actual costs (CPM, CPC, CPA) are calculated with the same formulas and can be converted into each other. |
| pay per click (PPC) | A way of paying for ads where you are charged for each click (CPC billing). Whichever way you pay, the actual costs (CPM, CPC, CPA) are calculated with the same formulas and can be converted into each other. |
| view-through conversion | A conversion by someone who saw the ad without clicking it and converted later through another route. The CVR and CPA on this page assume that some of the people who click convert, so view-through conversions are not counted. |
Good to know before you start
Here is what helps you use the calculation on this page with real understanding, not just by pressing the button.
| Unit rates (Grade 6) |
|
| Percents (Grade 6) |
|
| Multiplying and dividing decimals (Grades 5–6) |
|
| Expressions and rearranging equations (Grades 7–8) |
|
| Multiplying fractions and canceling (Grades 5–6) |
|
How to calculate it in Excel
| Ad spend Cost ($) | 120 |
| Impressions Imp | 20000 |
| Clicks | 40 |
| Conversions CV | 4 |
| Cost per click CPC ($) | =B1/B3 |
| Cost per 1,000 impressions CPM ($) | =B1/B2*1000 |
| Cost per acquisition CPA ($) | =B1/B4 |
| Impressions Imp | 20000 |
| Clicks | 40 |
| Conversions CV | 4 |
| Click-through rate CTR (%) | =B2/B1*100 |
| Conversion rate CVR (%) | =B3/B2*100 |
| CPM ($) | 6 |
| Click-through rate CTR (%) | 0.2 |
| Conversion rate CVR (%) | 10 |
| Cost per click CPC ($) | =B1/1000/(B2/100) |
| Cost per acquisition CPA ($) | =B4/(B3/100) |
| Target CPA ($) | 50 |
| Expected CVR (%) | 2 |
| Target conversions | 20 |
| Max CPC ($) | =B1*B2/100 |
| Clicks needed | =ROUNDUP(B3/(B2/100),0) |
| Budget needed ($) | =B1*B3 |
In the first table, B1 to B4 are inputs, and B5 shows 3 (CPC), B6 shows 6 (CPM) and B7 shows 30 (CPA). The second table shows 0.2 (CTR) in B4 and 10 (CVR) in B5; the third shows 3 (CPC) in B4 and 30 (CPA) in B5; the fourth shows 1 (max CPC) in B4, 1000 (clicks needed) in B5 and 1000 (budget needed) in B6. Just replace the inputs with your own numbers.
How to calculate it in Google Sheets
| Ad spend Cost ($) | 120 |
| Impressions Imp | 20000 |
| Clicks | 40 |
| Conversions CV | 4 |
| Cost per click CPC ($) | =B1/B3 |
| Cost per 1,000 impressions CPM ($) | =B1/B2*1000 |
| Cost per acquisition CPA ($) | =B1/B4 |
| Impressions Imp | 20000 |
| Clicks | 40 |
| Conversions CV | 4 |
| Click-through rate CTR (%) | =B2/B1*100 |
| Conversion rate CVR (%) | =B3/B2*100 |
| CPM ($) | 6 |
| Click-through rate CTR (%) | 0.2 |
| Conversion rate CVR (%) | 10 |
| Cost per click CPC ($) | =B1/1000/(B2/100) |
| Cost per acquisition CPA ($) | =B4/(B3/100) |
| Target CPA ($) | 50 |
| Expected CVR (%) | 2 |
| Target conversions | 20 |
| Max CPC ($) | =B1*B2/100 |
| Clicks needed | =ROUNDUP(B3/(B2/100),0) |
| Budget needed ($) | =B1*B3 |
How to calculate it in Python
import math
cost = 120 # ad spend ($)
impressions = 20000 # impressions
clicks = 40 # clicks
conversions = 4 # conversions
cpc = cost / clicks # cost per click
cpm = cost / impressions * 1000 # cost per 1,000 impressions
cpa = cost / conversions # cost per acquisition
ctr = clicks / impressions * 100 # click-through rate (%)
cvr = conversions / clicks * 100 # conversion rate (%)
print(f"CPC: ${cpc} CPM: ${cpm} CPA: ${cpa}")
print(f"CTR: {ctr}% CVR: {cvr}%")
print(f"Check the linking formula CPA = CPC / (CVR/100) = ${cpc / (cvr / 100)}")
# Working back: max CPC, clicks needed and budget needed from target CPA, expected CVR and target conversions
target_cpa = 50
assumed_cvr = 2
target_cv = 20
max_cpc = target_cpa * assumed_cvr / 100
clicks_needed = math.ceil(target_cv / (assumed_cvr / 100))
budget = target_cpa * target_cv
print(f"Max CPC: ${max_cpc} Clicks needed: {clicks_needed} Budget needed: ${budget}")
How to write it in LaTeX and other math languages (copy and paste)
CPC = Cost ÷ Clicks
\mathrm{CPC} = \dfrac{\mathrm{Cost}}{\mathrm{Clicks}}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi mathvariant="normal">CPC</mi>
<mo>=</mo>
<mfrac><mi mathvariant="normal">Cost</mi><mi mathvariant="normal">Clicks</mi></mfrac>
</mrow>
</math>
CPC = Cost/Clicks
cost/clicks
CPC := Cost/Clicks;
CPC = Cost/Clicks;
CPC = Cost/Clicks
CPM = Cost ÷ Imp × 1000
\mathrm{CPM} = \dfrac{\mathrm{Cost}}{\mathrm{Imp}} \times 1000
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi mathvariant="normal">CPM</mi>
<mo>=</mo>
<mfrac><mi mathvariant="normal">Cost</mi><mi mathvariant="normal">Imp</mi></mfrac>
<mo>×</mo>
<mn>1000</mn>
</mrow>
</math>
CPM = Cost/Imp xx 1000
cost/imp*1000
CPM := Cost/Imp*1000;
CPM = Cost/Imp*1000;
CPM = Cost/Imp × 1000
CPA = Cost ÷ CV
\mathrm{CPA} = \dfrac{\mathrm{Cost}}{\mathrm{CV}}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi mathvariant="normal">CPA</mi>
<mo>=</mo>
<mfrac><mi mathvariant="normal">Cost</mi><mi mathvariant="normal">CV</mi></mfrac>
</mrow>
</math>
CPA = Cost/CV
cost/cv
CPA := Cost/CV;
CPA = Cost/CV;
CPA = Cost/CV
CTR = Clicks ÷ Imp × 100, CVR = CV ÷ Clicks × 100
\mathrm{CTR} = \dfrac{\mathrm{Clicks}}{\mathrm{Imp}} \times 100,\quad \mathrm{CVR} = \dfrac{\mathrm{CV}}{\mathrm{Clicks}} \times 100
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi mathvariant="normal">CTR</mi>
<mo>=</mo>
<mfrac><mi mathvariant="normal">Clicks</mi><mi mathvariant="normal">Imp</mi></mfrac>
<mo>×</mo>
<mn>100</mn>
<mo>,</mo>
<mi mathvariant="normal">CVR</mi>
<mo>=</mo>
<mfrac><mi mathvariant="normal">CV</mi><mi mathvariant="normal">Clicks</mi></mfrac>
<mo>×</mo>
<mn>100</mn>
</mrow>
</math>
CTR = Clicks/Imp xx 100, CVR = CV/Clicks xx 100
{clicks/imp*100, cv/clicks*100}
CTR := Clicks/Imp*100; CVR := CV/Clicks*100;
CTR = Clicks/Imp*100; CVR = CV/Clicks*100;
CTR = Clicks/Imp × 100, CVR = CV/Clicks × 100
CPA = CPC ÷ (CVR/100)
\mathrm{CPA} = \dfrac{\mathrm{CPC}}{\mathrm{CVR}/100}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi mathvariant="normal">CPA</mi>
<mo>=</mo>
<mfrac>
<mi mathvariant="normal">CPC</mi>
<mrow><mi mathvariant="normal">CVR</mi><mo>/</mo><mn>100</mn></mrow>
</mfrac>
</mrow>
</math>
CPA = CPC/(CVR/100)
cpc/(cvr/100)
CPA := CPC/(CVR/100);
CPA = CPC/(CVR/100);
CPA = CPC/(CVR/100)
CPC = CPM ÷ 1000 ÷ (CTR/100)
\mathrm{CPC} = \dfrac{\mathrm{CPM}}{1000 \times \mathrm{CTR}/100}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi mathvariant="normal">CPC</mi>
<mo>=</mo>
<mfrac>
<mi mathvariant="normal">CPM</mi>
<mrow><mn>1000</mn><mo>×</mo><mi mathvariant="normal">CTR</mi><mo>/</mo><mn>100</mn></mrow>
</mfrac>
</mrow>
</math>
CPC = CPM/(1000 xx CTR/100)
cpm/(1000*ctr/100)
CPC := CPM/(1000*CTR/100);
CPC = CPM/(1000*CTR/100);
CPC = CPM/(1000 × CTR/100)
CPC_max = CPA_target × (CVR/100), Clicks_needed = CV_target ÷ (CVR/100), Budget = CPA_target × CV_target
\mathrm{CPC}_{\max} = \mathrm{CPA}_{\mathrm{target}} \times \dfrac{\mathrm{CVR}}{100},\quad \mathrm{Clicks}_{\mathrm{needed}} = \dfrac{\mathrm{CV}_{\mathrm{target}}}{\mathrm{CVR}/100},\quad \mathrm{Budget} = \mathrm{CPA}_{\mathrm{target}} \times \mathrm{CV}_{\mathrm{target}}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<msub><mi mathvariant="normal">CPC</mi><mi>max</mi></msub>
<mo>=</mo>
<msub><mi mathvariant="normal">CPA</mi><mi>target</mi></msub>
<mo>×</mo>
<mfrac><mi mathvariant="normal">CVR</mi><mn>100</mn></mfrac>
<mo>,</mo>
<msub><mi mathvariant="normal">Clicks</mi><mi>needed</mi></msub>
<mo>=</mo>
<mfrac>
<msub><mi mathvariant="normal">CV</mi><mi>target</mi></msub>
<mrow><mi mathvariant="normal">CVR</mi><mo>/</mo><mn>100</mn></mrow>
</mfrac>
<mo>,</mo>
<mi mathvariant="normal">Budget</mi>
<mo>=</mo>
<msub><mi mathvariant="normal">CPA</mi><mi>target</mi></msub>
<mo>×</mo>
<msub><mi mathvariant="normal">CV</mi><mi>target</mi></msub>
</mrow>
</math>
CPC_max = CPA_target xx (CVR/100), Clicks_needed = CV_target/(CVR/100), Budget = CPA_target xx CV_target
{cpaTarget*cvr/100, cvTarget/(cvr/100), cpaTarget*cvTarget}
CPCmax := CPAtarget*CVR/100; ClicksNeeded := CVtarget/(CVR/100); Budget := CPAtarget*CVtarget;
CPCmax = CPAtarget*CVR/100; ClicksNeeded = CVtarget/(CVR/100); Budget = CPAtarget*CVtarget;
CPC_max = CPA_target × (CVR/100), Clicks_needed = CV_target/(CVR/100), Budget = CPA_target × CV_target
How to have ChatGPT do the calculation
You are a calculation assistant for managing online ads. Do the following calculation by actually running Python code, and base your answer only on the numbers from the execution result (do not answer by mental math or guessing). Last month's ad results were: ad spend $120, 20,000 impressions, 40 clicks and 4 conversions. Find each of the following: 1. CPC (ad spend ÷ clicks) 2. CPM (ad spend ÷ impressions × 1000, per 1,000 impressions) 3. CPA (ad spend ÷ conversions) 4. CTR (clicks ÷ impressions × 100, in %) and CVR (conversions ÷ clicks × 100, in %) 5. A check that the linking formula CPA = CPC ÷ (CVR ÷ 100) matches the result of 3 6. For a different plan: with a target CPA of $50, an expected CVR of 2% and 20 target conversions, the max CPC (target CPA × CVR ÷ 100), the clicks needed (target conversions ÷ (CVR ÷ 100), rounded up) and the budget needed (target CPA × target conversions) Show the formulas you used and the numbers from the execution result.
How to Use
-
1Enter your numbersType the numbers you want to calculate with into the input fields
-
2CalculatePress the "Calculate" button
-
3Check the resultThe result appears on the spot. The same page also explains the idea behind the calculation and the formula
DataChef Features
No technical knowledge required.
Intuitive and user-friendly operation.
Can be used without registering personal information.
Automatic file deletion by clicking "download".
and rapid file conversion.
No attribution required.
No need to contact us for commercial use permission.
