Calculate combined CPA without averaging campaign CPAs
A combined cost per acquisition answers how much recorded advertising spend supported one recorded outcome across a defined portfolio. It is not the average of the numbers displayed beside its campaigns. Before calculating anything, decide which outcomes belong together, which currency you will report in and whether the period is sufficiently complete. A neat number built from incompatible outcomes is still a bad report.
The denominator defines the report
Use combined CPA = sum of eligible spend / sum of eligible results. Eligibility means the same outcome definition, reporting period and attribution basis. A submitted application and a completed purchase should not share the denominator. Neither should a website purchase count and a platform's broader result count simply because both columns are called conversions. Keep a separate subtotal for each business question; label the source and definition beside it.
Educational example, not a client case: campaign A spends 100 currency units and records 10 compatible leads, giving CPA 10. Campaign B spends 900 and records 30 leads, giving CPA 30. Averaging 10 and 30 produces 20, but total spend of 1,000 divided by 40 leads produces 25. B accounts for more results and therefore receives more weight. Weighting campaign CPAs by their lead counts also gives 25, provided every required CPA exists.
That shortcut breaks for a zero-result campaign: its individual CPA is undefined, but its spend still belongs in the portfolio numerator. If campaign C spends another 200 with zero leads, the correct total becomes 1,200 / 40 = 30. Dropping C because its CPA is blank hides a real cost. Unknown results are different from observed zero results: an incomplete import must be marked partial, not silently filled with zero.
What a weighted total protects
- Keep a reconciliation row containing eligible spend, eligible results and calculated CPA. A reviewer should reproduce the answer without trusting a dashboard widget.
- Separate portfolio efficiency from changes in portfolio composition. A shift toward a more expensive market can raise the total even when each market improves.
- Retain excluded rows with a reason. This shows whether the report measures the entire account or only the portion with compatible, available data.
Build and reconcile the calculation
- Write the outcome definition first: for example, unique accepted leads under one agreed qualification rule. Choose a mature date range and identify the source used for each count.
- Export or inspect the relevant stored rows. Include zero-result rows; isolate missing days and incompatible outcome types. Reconcile campaign spend with the account total before calculating a ratio.
- If currencies differ, convert spend using an explicitly selected dated-rate method before summing. Do not add native-currency amounts or average already converted CPAs without checking their denominators.
- Calculate the total and the contribution of each segment. Show both raw totals and segment CPAs so that a large campaign cannot disappear behind the aggregate.
- Compare periods using the same inclusion rules. In AdAce Ads, use available stored data in the permitted client context; ask AI for a read-only reconciliation and a textual explanation, without propose_change or other tool writes.
When the combined figure is misleading
- This is a reporting method, not evidence that advertising caused every counted lead. Attribution and duplicate-counting differences require their own reconciliation.
- If the compatible result total is zero, report spend and zero outcomes with CPA undefined. If essential data is unavailable, identify coverage and defer a precise portfolio comparison.
- A lower combined CPA does not prove better lead quality or profitability. Add downstream acceptance and sales outcomes before reallocating money.
Sources and further reading



Try it on your own accounts
Create a workspace, connect Google or Meta in a couple of clicks and see your accounts clearly. Changes follow your approvals or the policy you configure.
Create your workspace