5 min read
CAC Diagnostic
Upload aggregated acquisition data, filter performance by channel, campaign, country and segment, and see exactly where customer acquisition cost is deteriorating. Every calculation runs locally in your browser; nothing is uploaded to or stored by IndustryContents.
Methodology
What the tool measures, how each metric is derived, and the validation rules applied to your CSV before any chart is drawn.
Overview
CAC Diagnostic turns a row-level marketing performance export into acquisition efficiency metrics: cost per lead, cost per qualified lead, cost per opportunity, and blended CAC, broken down by channel, campaign, country, segment and time.
Every number is derived from the rows currently in scope, meaning after your filters are applied. Nothing is pre-aggregated or cached from a previous session; change a filter and every card, chart and table recalculates from the underlying rows.
Data schema
One row represents one funnel record for a given date and combination of channel, campaign, country and segment. Column names are case-insensitive.
| Column | Status | Notes |
|---|---|---|
date | Required | Any readable date format. |
spend | Required | Non-negative. One currency per file. |
leads | Required | Non-negative integer. |
qualified_leads | Required | Must not exceed leads. |
opportunities | Required | Must not exceed qualified leads. |
customers | Required | Must not exceed opportunities. |
channel, campaign, country, segment | Recommended | Power the filters and breakdown charts. |
revenue | Recommended | Non-negative. Treated as 0 if omitted. |
Validation rules
Applied to every row before it enters any calculation. A row that fails is excluded and reported with its row number and reason, for example: “Row 17: 42 opportunities cannot exceed 30 qualified leads.”
Required columns present
All required columns exist in the header.
Readable, numeric values
Date is a readable date; spend, leads, qualified leads, opportunities and customers are numeric.
No negative values
Every numeric field must be zero or positive.
Funnel ordering
Qualified leads cannot exceed leads, opportunities cannot exceed qualified leads, customers cannot exceed opportunities. The funnel can only narrow, never widen.
Single currency
Currency symbols are not mixed with plain numbers within spend or revenue across the file.
Calculations
Every ratio is computed from the sum of the underlying rows in scope, never averaged row by row. Averaging each row’s CAC and then averaging those averages misweights small rows against large ones. A blank denominator, for example zero customers, returns “Not available” rather than a divide-by-zero error.
CPL
Total spend divided by total leads.
CPQL
Total spend divided by total qualified leads.
Cost per opportunity
Total spend divided by total opportunities.
CAC
Total spend divided by total customers.
Lead qualification rate
Total qualified leads divided by total leads.
Qualified to opportunity rate
Total opportunities divided by total qualified leads.
Win rate
Total customers divided by total opportunities.
Revenue per customer
Total revenue divided by total customers.
Rounding: currency metrics round to 2 decimal places; rates round to 4 decimal places before display as a percentage.
Period comparison
Current period is your active date filter. Previous period is the immediately preceding window of equal length: a 30-day current period compares against the 30 days directly before it. Cost metrics show relative change; rate metrics show the change in percentage points. If either period has no matching rows, its metrics show “Not available” rather than a misleading zero.
How to use it
A walkthrough for anyone using the tool for the first time.
Getting data in
Upload your CSV. Download the template for a correctly formatted starting point, or prepare your own file matching the schema above. The file never leaves your browser.
Try sample data. Load a realistic synthetic dataset to explore the dashboard before your own data is ready.
Enter totals manually. For a quick comparison without a prepared file, enter aggregate totals for one period, or for two periods to see a full comparison. Filters and breakdowns are unavailable in this mode since there is no row-level detail.
Reading the dashboard
Diagnostic summary
A plain-language read of what changed between your current and previous period, and where the largest deterioration appears. States what changed, not why.
KPI totals
Spend, leads, qualified leads, opportunities, customers and revenue for the current filter selection.
Acquisition funnel
Spend through won customers, with the conversion rate labelled on each stage transition.
Performance breakdown
CAC by channel, country and segment, plus a monthly CAC trend line.
Period comparison table
Every metric, previous period versus current period, with the direction of change.
Efficiency detail and underlying rows
Collapsed by default; expand for the full metric grid or the raw filtered rows.
FAQ
Is my data uploaded anywhere? No. Parsing, validation and every calculation happen in your browser.
What if I do not have channel, campaign, country or segment data? Those columns are recommended, not required. The dashboard still works with fewer filter options.
What does “Not available” mean? The denominator for that ratio was zero for the current selection, so no meaningful number can be shown.