How Labelizer decides each bucket

How Labelizer decides each bucket

The exact rules Labelizer applies to every product, the thresholds behind them and how your settings change the outcome.

Running the Product Labelizer script instead? The rules below apply there too. The standalone script fills the same buckets on the same conditions; only the place you enter the settings differs.

Labelizer does not judge products by feel. Every product in a run is put through the same short list of rules, in a fixed order, and the first rule it satisfies decides its bucket. This guide is that list, written out.

You do not need this page to use Labelizer. Read it when you want to know why a specific product landed where it did, or when you are deciding what to change in your settings to move products between buckets. For the shorter conceptual version, see Understand Labelizer buckets and results.

The inputs

Two kinds of input feed the rules. The first is what the product actually did in your selected date range: its clicks, its conversions, and either its ROAS (conversion value divided by cost) or its costPerConversion, depending on the bucket type of the project.

The second is your project settings, plus one value Labelizer calculates for itself:

InputWhere it comes from
targetROASThe Target ROAS setting, used when the bucket type is ROAS
targetCPAThe Target CPA setting, used when the bucket type is CPA
indexMarginThe Index margin setting, a percentage
clickMultiplierThe Click multiplier setting
averageConversionRateCalculated per run: all conversions in the run divided by all clicks, expressed as a percentage

averageConversionRate is the important one to understand, because it is not something you set. It is the account's own conversion rate across everything included in the run, so the click thresholds below adapt to your account instead of being a fixed number. If a run has no clicks at all, Labelizer falls back to a default of 5%.

The thresholds

Before looking at any product, Labelizer turns those inputs into four numbers.

Two click thresholds decide whether a product has enough traffic to be judged at all:

minimumClicks   = 100 / averageConversionRate
overIndexClicks = (100 * clickMultiplier) / averageConversionRate

minimumClicks is the number of clicks at which you would expect roughly one conversion at your average conversion rate. Below that, a product with zero conversions has not really been tested yet. overIndexClicks is the same idea multiplied by your Click multiplier: over-index is a claim about consistent performance, so it asks for more evidence.

Two performance thresholds sit either side of your target, at the distance set by Index margin:

overIndexROAS = targetROAS + (indexMargin / 100 * targetROAS)
nearIndexROAS = targetROAS - (indexMargin / 100 * targetROAS)

In CPA projects the margin runs the other way, because a lower cost per conversion is better:

overIndexCPA = targetCPA - (indexMargin / 100 * targetCPA)
nearIndexCPA = targetCPA + (indexMargin / 100 * targetCPA)

The rules, in order

Labelizer walks this list top to bottom and stops at the first match. Order matters: a product that would satisfy both the index and the near-index rule is labeled index, because index is checked first.

Over-index

The product is clearly beating the target, on enough traffic to trust it.

clicks > overIndexClicks
and ROAS >= overIndexROAS

Both halves are required. A product with a spectacular ROAS on twelve clicks does not qualify, because twelve clicks is noise, not a result.

Index

The product is meeting the target on a normal amount of traffic.

clicks >= minimumClicks
and ROAS >= targetROAS

Near-index

The product is below target but within the margin you allowed.

ROAS >= nearIndexROAS

There is no click condition here. A product that reaches this ROAS has, by definition, generated conversion value, so the traffic question has answered itself.

Under-index

The product had a real chance and did not take it.

conversions > 1
or clicks > minimumClicks

Either condition is enough. Reaching this rule means the product has already failed every ROAS condition above it, so what is being tested here is only whether it had enough exposure for that failure to mean something.

No-index

Everything that reaches the bottom of the list. In practice this is products with too few clicks and too few conversions to say anything about, including products in your Merchant Center catalog that got no Google Ads traffic at all in the date range.

No-index is not a verdict. It is the absence of one. See Why Labelizer did not update custom labels if you expected data here and did not get it.

The same rules in CPA projects

If the project's bucket type is CPA, the shape is identical and only the performance comparisons change. Every CPA rule also requires the product to have at least one conversion, since a product with no conversions has no cost per conversion to compare.

BucketCondition
Over-indexclicks > overIndexClicks and conversions > 0 and costPerConversion <= overIndexCPA
Indexclicks >= minimumClicks and conversions > 0 and costPerConversion <= targetCPA
Near-indexconversions > 0 and costPerConversion <= nearIndexCPA
Under-indexconversions > 1 or clicks > minimumClicks
No-indexEverything else

A worked example

Take a ROAS project with Target ROAS 5, Index margin 20% and Click multiplier 3, running on an account whose conversion rate over the selected range works out to 2%.

The thresholds become:

minimumClicks   = 100 / 2       = 50 clicks
overIndexClicks = (100 * 3) / 2 = 150 clicks
overIndexROAS   = 5 + (20% of 5) = 6.0
nearIndexROAS   = 5 - (20% of 5) = 4.0

Four products, same run:

ProductClicksConversionsROASBucketWhy
A400127.1Over-indexPast 150 clicks and past 6.0
B400105.4IndexPast 50 clicks and past 5.0, but not past 6.0
C9024.3Near-indexBelow 5.0 but still above 4.0
D12011.8Under-indexBelow 4.0, and 120 clicks is past the 50 click threshold
E800.0No-indexNot enough clicks or conversions to reach any rule

What to change to move products

Reading the rules backwards tells you which setting to reach for.

  • Too many products in near-index and under-index. Your Target ROAS or Target CPA may be set beyond what the account can currently deliver. Check it against your actual account performance rather than your ambition.
  • Buckets swing between runs. Widen the Index margin so products near the boundary do not cross it on normal week-to-week variance, or lengthen the date range so each product carries more data.
  • Almost nothing reaches over-index. Lower the Click multiplier. At 3 you are asking for three times the clicks that a single expected conversion needs, which a long-tail catalog may rarely reach.
  • Too much in no-index. Usually a data problem rather than a settings problem: a short date range, filters that exclude most of the account, or a catalog much larger than the set of products that actually get traffic.

One setting sits outside the rules entirely. No-index protection, under Advanced, stops a product that previously held any active bucket from falling back to no-index; it lands in under-index instead. Products genuinely new to the catalog can still start in no-index. Use it when you have campaigns segmented on the labels and you do not want a quiet week to pull products out of their ad groups.

See Change Labelizer settings after setup for how to apply any of this to an existing project.