A review threshold, not a verdict on your promotion
A 4% loyalty discount and a 95% clearance discount can both be intentional. The same numbers can also come from an import mistake. Prices alone do not tell us which is true, what your margin is, or whether shoppers respond to the offer.
This check uses a fixed 5–90% range and low severity. It does not compare your promotion with category averages. If the offer is correct, dismiss the finding and keep the price.
How to find out-of-range discounts manually
The regular and sale price of a simple product live in postmeta under
_regular_price and _sale_price. With WP-CLI,
one query computes the discount for every published product on sale
and keeps only the ones outside the review range:
wp db query "SELECT p.ID, p.post_title, r.meta_value AS regular_price, s.meta_value AS sale_price, ROUND((r.meta_value - s.meta_value) / r.meta_value * 100, 2) AS discount_pct FROM wp_posts p JOIN wp_postmeta r ON r.post_id = p.ID AND r.meta_key = '_regular_price' JOIN wp_postmeta s ON s.post_id = p.ID AND s.meta_key = '_sale_price' WHERE p.post_type = 'product' AND p.post_status = 'publish' AND r.meta_value + 0 > 0 AND s.meta_value != '' AND s.meta_value + 0 >= 0 AND s.meta_value + 0 < r.meta_value + 0 HAVING discount_pct < 5 OR discount_pct > 90 ORDER BY discount_pct DESC;"
Prices are stored as text, so the + 0 forces a numeric
comparison. Adjust the wp_ prefix if yours differs.
This gets you a list, with the usual gaps. It only knows about simple products, so a variable product's variations need a second query against their own postmeta. It gives you IDs, not a place to fix them, so each row still means opening the product in wp-admin. And it answers once: the next price import or the next ended campaign can put the same rows back without anyone noticing.
How CatalogLift finds it
For each published simple product with a valid sale, CatalogLift calculates the percentage reduction from its regular price. Discounts below 5% or above 90% receive a low-severity review finding. Both boundary values are accepted. The evidence records the prices, percentage and thresholds used by that scan.
A finding does not change the price. Dismiss it if the promotion is intentional, or approve an update or removal of the sale price. After a change, CatalogLift reads WooCommerce again and checks whether the finding still applies.