Skip to main content
DoneThat

AI Adoption GuideRetailPrice

Competitor Price Monitor

Automation collects competitor prices, normalizes comparable products, and alerts pricing teams when gaps exceed category thresholds.

Retail processPlanBuyPriceStockSellFulfillReturnClear

By Don, DoneThat’s AI coach · updated

What a competitor price monitor does

A competitor price monitor watches rival shelf and online prices for products that map to your assortment, then surfaces gaps that matter to a pricing analyst. The system collects raw competitor offers, normalizes them into comparable units, and compares them against your current ticket for the matched SKU. When the gap exceeds a category-level threshold you define, it raises an alert. When a competitor offer cannot be matched to a SKU with acceptable confidence, the monitor returns empty output for that item rather than forcing a weak comparison.

The monitor does not change prices. It flags where you look expensive or cheap relative to named competitors so a human can decide whether to hold, match, or adjust. That separation keeps competitive signals fast without handing ticket authority to automation.

How collection and matching work

Collection typically covers public web prices, marketplace listings, and, where available, in-store scan or mystery-shop feeds. Each observation needs at least competitor identity, product identifiers or attributes, price, currency, unit of measure, timestamp, and channel (online vs store). Incomplete observations are dropped or held for review; they should not enter the gap calculation.

Matching is the hard step. Identical barcodes help when competitors expose them. More often you match on brand, size, pack count, flavor, and model attributes, then score confidence. High-confidence matches flow into monitoring. Medium-confidence matches can sit in a review queue. Low-confidence or ambiguous matches produce empty output: no gap, no alert, no implied action. Empty output is intentional. A wrong match (for example, comparing a 12-pack to a 6-pack, or a private-label item to a national brand) creates worse decisions than silence.

Normalization converts prices to a common basis before comparison: same currency, same pack size or price-per-unit, and the same promotional state when your policy separates list from deal price. If you cannot normalize cleanly, treat the observation as unmatched.

Thresholds, alerts, and what the analyst sees

Thresholds should be set by category or subcategory, not as a single storewide percentage. A 3% gap may be material in commodity staples and noise in fashion or highly differentiated brands. Absolute currency floors help on low-ticket items where small percentage gaps are pennies. You can also set asymmetric rules (alert faster when you are above a key competitor than when you are below) if that matches your positioning.

Each alert should be actionable for a pricing analyst: your SKU, matched competitor offer(s), normalized prices, gap size and direction, threshold that fired, match confidence, observation time, and channel. Bundle related SKUs only when they share a pricing decision; otherwise keep alerts SKU-level so ownership stays clear.

Cadence matters. High-velocity categories may need frequent refreshes; slower categories can tolerate daily or multi-day cycles. Stale competitor prices should age out or be marked so analysts do not react to yesterday’s promo as if it were still live.

Human-in-the-loop: flags only, tickets stay human

The monitor’s job ends at the flag. Pricing still owns the ticket. An analyst (or category manager) reviews the gap against stock, margin floors, contract constraints, brand strategy, and upcoming promotions before any change. Some alerts will correctly lead to “do nothing”: you may choose to stay premium, wait for a vendor deal to end, or protect margin on a constrained SKU.

Workflows that work well keep the handoff explicit: alert → review → decision (hold / match / partial move / escalate) → audit log of who decided and why. Automation can prefill a suggested move for convenience, but applying it must remain a deliberate human action. That preserves accountability when competitors misprice, when matching drifts, or when a temporary online glitch looks like a permanent undercut.

Do not wire the monitor directly to price publish jobs. Coupling collection latency or matching errors to live tickets turns a useful signal into operational risk.

Limits and failure modes to design for

Expect incomplete competitor coverage. Not every rival publishes every SKU, and some channels block or throttle scraping. Design for partial visibility: report which competitors and categories are covered this cycle so analysts know when silence means “no gap” versus “no data.”

Promotional and membership pricing blur comparisons. A club price, coupon stack, or limited-time deal is not the same as everyday shelf price. Tag promo state and decide in policy whether alerts use deal price, list price, or both with separate thresholds.

Assortment drift breaks matches over time. Pack sizes change, variants appear, and competitors rotate private label. Revisit match rules on a schedule and require re-validation when attributes change. Until re-validated, prefer empty output over carrying forward a stale match.

Geographic and channel mix also matter. A national online price may not justify a local store move. Scope alerts to the channel and region where you actually price, or require analysts to confirm scope before acting.

Finally, treat competitor price as one input among many. Cost moves, elasticity, inventory age, and strategic roles for hero SKUs still belong in the pricing decision. The monitor accelerates awareness of gaps; it does not replace judgment about whether closing them is worth it.

Is this worth automating for you?

Whether this pays back depends on how much time it takes your team today. Most teams estimate that from memory, and the estimate is usually wrong in one direction or the other.

DoneThat reconstructs where the time actually went, with no timers to forget, so you can measure the baseline before committing to a project and check the gain afterward.

Measure the baseline first