Your feed, labelled by performance.
Performance Labelizer runs hourly across your Merchant Center products, classifies each into one of 5 performance tiers (heroes, rising stars, potential, underperformers, unproven) using ROAS or CPA thresholds, and ships the labels back to Merchant Center as a TSV feed. Pure heuristic — same inputs, same tier, every time.
Every product, every hour.
Each hour the cron checks every connected Merchant Center configuration. For configs whose schedule fires (daily / weekly / monthly per config), the processor pulls the last N days of Shopping performance, runs each product through the bucket calculator, and emits a TSV feed back to Merchant Center.
Out: a tiered product feed.
Below is a sample classification from a recent run. Feed health score (% of products in heroes + rising stars), tier distribution across the 4 actionable tiers, and a sample of individual products with their current tier and any change since the previous run.
Five tiers, deterministic thresholds.
Bucket calculation is pure heuristic. Each product's last N-day ROAS (or CPA, in CPA mode) is compared to your target with click-volume safeguards. Same metrics always produce the same tier — no model, no inference, no LLM.
ROAS ≥ target × 1.2 with click confidence.
Default ROAS mode: hero = ROAS ≥ 1.2 × target AND clicks ≥ (100 × click_multiplier) / avg_conversion_rate. Click multiplier defaults to 3, so heroes need 3× the click volume of rising stars at the same ROAS.
ROAS ≥ target with baseline click volume.
Rising star = ROAS ≥ target AND clicks ≥ 100 / avg_conversion_rate. The capacity-to-scale tier — these products are doing what you asked but haven't accumulated the click volume to be heroes yet.
ROAS ≥ target × 0.8.
The watch tier. Within 80% of your target ROAS. Not a hero, not a clear loser — needs another cycle to declare. Most products that aren't heroes-or-underperformers land here.
Spending without returning.
Underperformer = conversions > 1 OR clicks > a configurable threshold, with ROAS below the potential floor. Real spend, real activity, but the returns aren't there. Tier drift (hero → underperformer) emits an email alert.
Below the click floor — held out.
Products without enough click volume to classify confidently. Held out of the tier feed; not labeled as anything until they accumulate enough data. Re-evaluated every run.
ROAS or CPA · daily, weekly, or monthly.
Pick ROAS mode (most ecommerce) or CPA mode (lead-gen, inverted thresholds). Set the cadence per config: daily (every day's hour-N run), weekly (every Sunday hour-N), monthly (1st of month). The hourly cron checks all configs every hour and runs the ones whose schedule fires.
The questions about how the tiers actually work.
How often does the run happen?
The cron itself is hourly. Whether your products re-classify on a given hour depends on your config's schedule: daily configs run every day's chosen hour, weekly configs run every Sunday's chosen hour, monthly configs run on the 1st of the month. Most ecommerce accounts run daily; agency reporting tends to run weekly.
What are the 5 tiers exactly?
heroes (ROAS ≥ target × 1.2 with high click volume), rising stars (ROAS ≥ target with baseline click volume), potential (ROAS within 80% of target), underperformers (active spend, ROAS below the potential floor), unproven (insufficient data to classify, held out of the feed).
What's the click multiplier?
A safeguard against tier whiplash. Default = 3, configurable. Heroes need 3× the click volume of rising stars at the same ROAS — the volume threshold prevents low-volume products from spiking into hero on a lucky 14-day window.
Is this AI?
No. Pure heuristic — bucket thresholds applied to performance metrics. No LLM, no model, no inference. Same inputs always produce the same tier. Deterministic, audit-friendly, defensible to clients.
What happens when a product changes tier?
The new label is written to performance_labelizer_products with a new classification_date and the updated TSV feed is submitted to Merchant Center on the next run. Tier-drift events (hero → underperformer specifically) emit an email alert so you can investigate before the regression compounds.
Run the audit.
Keep the findings.
Connect your account and let Lyra run its 18 tools for 14 days. If the projected waste recovery isn't worth at least 10× the $49, don't pay. You keep every insight either way.
Read-only connect · write access opt-in per tool · SOC 2 in progress · GDPR + CCPA compliant