Skip to main content
Paravey Products
All posts
UndercutPricing

What's a reasonable scan cadence for competitor price monitoring?

Why Paravey Undercut scans 2 or 3 times a day — not hourly — and what cadences actually catch (vs. generate noise). Trade-offs, duplicate filtering, and the three questions to ask a vendor.

October 23, 20267 min readBy Jitendra Paswan

Prisync scans every 12 hours. Wiser offers hourly. Price2Spy pitches “real-time.” Paravey Undercut's tiers sit at every 12 hours (Starter) and every 8 hours (Growth). None of these are random choices — but the pricing-page footnotes almost never explain the reasoning. This post does.

If you're evaluating competitor price monitoring and wondering whether 2 scans/day is “enough” or you need to pay extra for 24, here's what's actually happening on the other side of that promise.

The three constraints that set a floor

1. The alert that matters is the first one

When a competitor drops a price, you want to know. When they drop it again 30 minutes later because the first drop went live with a typo — you don't need a second alert; the state is the same (“they're under us by ~15%”). An hourly scanner would fire two emails. An 8-hour scanner fires one. Same business signal, cleaner inbox.

This matters more than it sounds. Most pricing moves cluster: a competitor runs a Black Friday sale and shifts 30 SKUs in a window of 2 hours. An hourly scanner can turn that into 60+ alert emails — the ones you actually need are hidden among the duplicates. An 8-hour scanner delivers one digest with 30 lines of context, grouped by competitor. That's a useful morning read, not an inbox fire.

2. Shopify rate-limits are real but friendly

Every Shopify storefront exposes /products.json publicly — this is the endpoint we read. Shopify tolerates about 2 requests per second from a single IP, with short burst allowance. For context, a tenant with 5 competitors scanning every 8 hours is:

5 competitors × 3 scans/day = 15 requests per day

Below any reasonable threshold. But if you scaled every tenant to hourly scans and sat behind a single server IP, 100 tenants × 5 competitors × 24 scans = 12,000 requests/day funneling through one address. Shopify starts throttling, individual stores start returning 429, scrape success collapses. We'd need per-tenant proxy rotation before hourly becomes feasible — a 10× infrastructure cost increase for marginal signal gain.

3. The scrape itself takes real time

For non-Shopify stores (WooCommerce, BigCommerce, Squarespace, Magento, custom), our scanner walks the competitor's sitemap, extracts product URLs, fetches each PDP, parses Schema.org JSON-LD. One competitor takes about 15–45 seconds end-to-end. Five competitors in parallel = 1 scan per tenant ≈ 90 seconds. Hourly cadence against 1,000 tenants doing sitemap-based scrapes would need genuine concurrency planning — not just “run it more often.”

The practical floor: for the volume Paravey actually sees (hundreds of tenants, not tens of thousands), every 2 hours is the hard limit before infrastructure cost balloons out of proportion to the signal gained. Every 8 hours is the sweet spot where cost, success rate, and alert quality all align.

What different cadences actually get you

Here's the question nobody asks when picking a tier: how often does the thing I'm worried about actually happen?

Three real failure modes a Shopify brand loses sleep over:

Flash sales (12–48 hours)

A competitor runs a weekend promo. Hits Friday morning, ends Sunday night. A daily scanner catches it on Friday afternoon (window: 24h). An 8-hour scanner catches it within 8 hours of launch. An hourly scanner catches it in <60 min. For a sale that lasts 48h, the difference between a 1-hour-late alert and an 8-hour-late alert is… not much. You still have ~40 hours of the sale to react.

Permanent price repositioning (weekly+ change)

A competitor announces a new pricing structure. Takes effect permanently. Catching it in hour 1 vs hour 8 is noise. What matters is the history going forward — are they holding, or sliding? Scan cadence doesn't affect that; price-history length does. (Starter and Growth both get 90-day history.)

Stealth drops before major holidays

Competitor softly drops 10% a week before Black Friday to let organic traffic discover the price before paid campaigns start. Any cadence catches this — the window is a week. Your action is to match or hold the line; neither needs hour-level precision.

The one real case where hourly cadence pays off: you're running paid search and your bids are tied to competitor prices in real time. That's a sophisticated martech stack most brands don't have — and if you do, you're building a custom integration anyway, not using a monthly SaaS. For every other case, 8-hour scanning is Pareto-optimal.

Why we settled on 12h / 8h and not 6h / 2h

Three reasons specific to how we built the scanner:

  1. 8h is a nice divisor of a day. Three sweeps land predictably — morning, afternoon, evening. The weekly digest email we send on Mondays has clean “week in review” math built on top of it. A 6h cadence (four sweeps) creates uneven coverage of time zones; 8h (three sweeps) covers US/EU/APAC business hours cleanly for a US-based scanner server.
  2. The 1% alert threshold filters noise. Even at 8h cadence, the scanner suppresses deltas under 1% to avoid currency-conversion rounding and A/B-test-induced micro-moves. A 1h cadence would need an even tighter threshold or you'd email alerts for noise. The trade-off: faster cadence requires more aggressive filtering, which costs you the small-but-real moves at the margin.
  3. The delta algorithm compares to the previous reading per URL — not a time-window. So an 8h cadence doesn't “miss” a drop that happened 7h ago; it catches it on the next scan with full before/after context. The drop happened at hour 23; the alert fires at hour 24.

What our Growth tier gets you specifically

Growth at $199/mo includes 3 scans/day (every 8 hours), up to 1,000 tracked products, 5 competitors, Slack alerts + email digests, and (coming) Google Sheets export. That cadence covers:

  • Any flash sale lasting >8 hours (99% of them)
  • Any permanent repositioning (immediately)
  • Any pre-holiday softening (same-day)

What it won't catch: a 2-hour flash promo targeting your exact SKUs that ends before the next sweep. In our data, that's roughly 0.3% of competitor moves — statistically indistinguishable from a mis-scan.

What to actually ask when evaluating a scanner

“How often do you scan?” is the wrong question. The three that matter:

  • How are duplicates filtered? Hourly scanning + a sloppy dedupe = inbox chaos.
  • What's the alert threshold? If it's 0.1% you'll drown in currency-rounding false positives. 1% is the sweet spot.
  • Can I set alert direction? If drops are the only moves you care about (you already set your prices confidently), filter out competitor-rises in the config. We let you pick in onboarding.

Try the free Price Gap Snapshot — a one-time run of the same scanner, no account needed. You'll see what the output looks like against your actual store + competitors in about 90 seconds. If what you see is useful, start a 14-day Undercut trial (no card). The full product walkthrough has the dashboard screens if you want to see the whole thing first.