# How to benchmark your ad performance

> Benchmark ad performance against your own last 12 weeks, not a made-up industry average. Set green, amber and red bands for cost per result, with an example.
- **Author**: Marxx
- **Published**: 2026-10-23
- **Category**: Reporting
- **URL**: https://marxx.ai/library-guides/how-to-benchmark-your-ad-performance

---

Benchmark your ad performance against your own last 12 weeks, not an industry average. Work out the middle and spread of each metric, set green, amber and red bands, and check each week against them.

Use rivals only to find ideas. This page quotes no industry averages. No public number matches your price, product, city and audience, so a borrowed average misleads more than it helps.

## Pick four metrics

| Metric | What it tells you | Better is |
|---|---|---|
| [Cost per result](/glossary/cpa) | What an outcome costs you | Lower |
| [CPM](/glossary/cpm) | What it costs to reach 1,000 people | Lower |
| [CTR](/glossary/ctr) | Whether the ad earns a click | Higher |
| [Hook rate](/glossary/hook-rate) | Whether the first seconds hold people | Higher |

## Steps

1. Pull one value per week for the last 12 weeks, for one campaign type only.
2. Mark any sale or festival week, or leave it out.
3. Sort the 12 values from low to high.
4. Find the **median**, the middle value.
5. Find the **lower quartile** and **upper quartile**. These are the middle of the lowest six and the middle of the highest six.
6. Set the bands. For a cost, green is at or below the lower quartile, red is above the upper quartile, and amber sits between.
7. Redo the bands every quarter.

## A worked example

Say your weekly cost per purchase for 12 weeks was, in rupees: 520, 480, 610, 450, 500, 560, 530, 470, 590, 505, 540, 495.

Sorted: 450, 470, 480, 495, 500, 505, 520, 530, 540, 560, 590, 610.

- Median: (505 + 520) / 2 = INR 512.50
- Lower quartile: (480 + 495) / 2 = INR 487.50
- Upper quartile: (540 + 560) / 2 = INR 550

| Band | Cost per purchase |
|---|---|
| Green | INR 488 or less |
| Amber | INR 489 to INR 550 |
| Red | Above INR 550 |

Next week lands at INR 575, which is red. One red week is a prompt to look, not to panic. Two in a row means act. Check tracking, creative fatigue and whether a competitor sale moved your costs.

## Check your bands against break-even

A band is only your normal. It is not your limit. Say you earn INR 800 per sale before ad costs. Then even your red band at INR 550 is profitable, so a red week is a warning, not a loss. If your green band sat above INR 800, you would have a business problem that no benchmark can fix. Work out your own limit with [break-even ROAS](/glossary/break-even-roas).

## What peers can tell you

The Meta Ad Library shows how many ads a rival runs and for how long, but not their results. Use that to find angles to test, not numbers to match.

## Mistakes to avoid

- **Mixing campaign types.** Cold prospecting and retargeting have different normal costs.
- **Comparing sale weeks with normal weeks.**
- **Using fewer than eight weeks of data.**
- **Chasing the benchmark instead of your margin.**

Put the bands at the top of your [weekly ad report](/guides/how-to-build-a-weekly-ad-report) so each number shows its colour.

We make Marxx. It sends alerts and digests from your Meta ad account, so a week outside your usual range reaches you without a manual check.

## FAQ

### What is a good CTR or cost per click?

It depends on your product and audience, so no single number is right. Use your own median as the starting point and aim to beat your green band.

### How many weeks of data do I need?

Twelve is a good start. With fewer than eight, one odd week can distort the bands.

### Should I benchmark by ad or by campaign?

Start by campaign type. Compare single ads only against other ads in the same campaign type and period.

---
- [More Reporting articles](https://marxx.ai/library-guides/category/reporting)
- [All articles](https://marxx.ai/library-guides)