Skip to content
Price IntelligencePrice Intelligence home

Product

Price monitoring software, field by field

Price monitoring software collects the prices competitors publish, ties each listing to a product in your own catalogue, and stores the result on a schedule. This module records shelf price, was-price, stock status, shipping, promotions, seller and currency on every check, keeps every observation with its timestamp and source URL, and sends alerts on the changes you choose.

Start free trialOpen the live demo14 days, no credit card, cancel in one click.

This is the collection engine. On every check it records the shelf price, the crossed-out was-price, stock status, shipping cost, promotional text, the seller behind the listing and the currency, then stores that observation with a timestamp and the exact source URL. Observations are appended, never overwritten, so a number you saw in March is still there in September, traceable to the page it came from.

What price monitoring software captures on every check

One number is not enough to price against. A listing at $179.00 means something very different when it is in stock, ships free and carries no promotion than when it is a backordered marketplace offer with $14.00 shipping and a 10 percent coupon banner. Every refresh stores the whole listing.

Fields captured on every price check
FieldWhat is storedWhy it changes a decision
Shelf priceThe price a shopper pays today, after on-page discountsThis is the number you actually compete with, not the list price beside it
Was-priceThe crossed-out list or compare-at price, where the page publishes one$179.00 against a $229.00 was-price is a 21.8 percent markdown that will end. $179.00 with no was-price is the new normal, and needs a different answer
Stock statusIn stock, out of stock, backorder or limited availabilityA price nobody can buy should not drag your market average down. Out-of-stock listings can be excluded from every calculation
ShippingShipping cost shown for the listing and any free-shipping thresholdDelivered price is what competes. $169.00 plus $12.00 shipping loses to $175.00 shipped free
PromotionsCoupon codes, percent-off banners, bundle offers and threshold offersExplains why a price moved and tells you whether it is temporary or structural
SellerThe storefront domain, or on a marketplace the seller behind the current offerA marketplace offer can change hands several times a day, and any enforcement conversation needs a name
CurrencyThe currency code published on the page, stored with the amountListings in another currency are kept apart, not averaged into a USD figure
VariantThe specific size, color, capacity or pack count the price belongs toAveraging a 12-pack and a single hides whichever one is losing
Source URL and timestampThe exact page read and the time it was readMakes every number checkable months later, which is what ends arguments about a figure

Anything not published on the page is not collected. There is no inference of a price from a category listing, and no data from behind a login.

Competitor prices — Audio & Small appliances

ProductYouVoltbayHarborlinePrimeDeckCasa & KinBelmont DirectPosition
Aurora H7 Noise-Cancelling HeadphonesNL-1000$249.00$254.75$257.46$263.24$260.16Lowest
Aurora H7 Noise-Cancelling Headphones — BlackNL-1007$275.83$255.57$295.14$273.40$261.36$274.54Above
Aurora H7 Noise-Cancelling Headphones — Midnight BlueNL-1014$275.90$243.97$299.78$294.42$280.25$272.53Above
Aurora H7 Noise-Cancelling Headphones — SandNL-1021$273.31$265.33$265.90$247.33$259.81$288.91Above
Aurora Buds ProNL-1028$149.00$162.74$169.34$159.11$167.18$154.28Lowest
Aurora Buds Pro — BlackNL-1035$165.68$165.93$187.17OOS$173.29$174.95$177.90Matched
Aurora Buds Pro — Midnight BlueNL-1042$165.19$148.24$183.85$161.72$162.17$167.73Above

Out-of-stock listings are struck through and excluded from position and repricing decisions.

One product in the Northline Supply demo tenant with every matched competitor listing, its stock status, shipping and the seller behind the offer.

How collection works, from URL to stored row

  1. 1

    Resolve the source

    Competitor URLs are attached by hand, imported in bulk by CSV, or discovered by identifier from your product feed. Each domain carries its own fetch profile and extraction recipe.

  2. 2

    Fetch the page

    Checks are spread across the refresh window rather than fired in one burst, and pages that build their price in the browser are rendered before reading, so a client-side price is not stored as null.

  3. 3

    Read structured data first

    Where a retailer publishes schema.org Product markup, price, currency and availability come from it. That is the same feed the site hands to search engines, so it survives most redesigns. A per-domain extraction recipe is the fallback, regenerated automatically when a layout changes.

  4. 4

    Validate before storing

    Every candidate price passes plausibility checks. A $0.00, a shipping fee read as a price, or a fortyfold overnight jump is quarantined rather than published, and the source is flagged in data quality.

  5. 5

    Attach it to a product

    Matching runs by GTIN, UPC, EAN or MPN first, then title and attribute embeddings, then image. Every match carries a confidence score, and low-confidence matches never reach a repricing rule.

  6. 6

    Append the observation

    The row is written with its timestamp, source URL and extraction method. Nothing is overwritten, which is what makes history real rather than a rolling snapshot.

How bot mitigation and moved URLs are handled is covered in price scraping. The matching waterfall and its harder cases are in the product matching guide.

Refresh cadence by plan

Refresh rate and product count are the only two things that change between plans. Every plan includes matching, MAP monitoring with screenshot evidence, repricing, analytics, all integrations, the API and unlimited users.

Refresh rate and capacity by plan
PlanRefreshChecks per product per dayProductsCompetitor URLs per product
Starter, $99/moDaily150010
Growth, $299/moTwice daily22,500Unlimited
Scale, $699/moFour times daily410,000Unlimited
Enterprise, customHourly24UnlimitedUnlimited

Full plan detail is on pricing. Annual billing saves roughly two months.

Pick the cadence from how fast your category moves, not from ambition. Here is the arithmetic that settles it: a competitor runs a six-hour flash sale, and a once-daily check sees it only if the check lands inside those six hours, which is 6 in 24, a 25 percent chance. A four-times-daily check catches it nearly every time. In categories with frequent short promotions, daily collection is sampling rather than monitoring. In furniture or industrial supply, daily is plenty.

How variants are handled

Each purchasable variant is monitored as its own row. Size, color, capacity and pack count each get their own price, stock and history, because averaging them hides the one that is losing.

  • Variant to variant. A 5Ah battery pack is compared against a 5Ah battery pack, not against the 2Ah version on the same product page.
  • Pack count is normalized for comparison. A 12-pack at $47.88 is $3.99 a unit. A single at $4.49 is 12.5 percent more per unit, because (4.49 - 3.99) / 3.99 = 0.125. Both the pack price and the unit price are stored, so you can compare on either.
  • Bundles are not folded in. A drill kit with two batteries and a bare tool are different products. Matching flags the difference instead of treating a $129.00 bare tool as a 31.7 percent undercut on your $189.00 kit.
  • Parent-level rollups are derived, not collected. A product family shows the range and the worst-positioned variant, both computed from the variant rows rather than scraped from a category page.

How history is stored, and what it answers

History is an append-only series of observations. Each one holds the price, was-price, stock, shipping, promotion text, seller, currency, source URL, extraction method and the time of the read. Change events are derived from that series rather than stored separately, which means a correction to a bad reading does not rewrite the past.

  • When a competitor's price drop started, and whether it has ended.
  • Whether a low price is an event or a cadence. A price that falls every second Thursday is somebody's promotional calendar, and chasing it costs margin twice a month.
  • How long a listing sat below MAP, which is the number that matters in MAP protection.
  • How many times a seller changed price in a quarter, which tells you whether they are repricing automatically.
  • What a page said on a given date, since the source URL and timestamp travel with the observation.

Cadence 200 Bookshelf Speakers (pair) — Sand — 60-day price history

$317.10$372.88$428.65$484.43$540.21May 25Jun 9Jun 24Jul 8Jul 23
Northline SupplyVoltbayHarborlinePrimeDeckCasa & KinBelmont Direct
Twelve weeks of competitor pricing on one Northline Supply product, showing a repeating promotional cadence rather than a reaction to anything Northline did.

Raw observations export as CSV over SFTP or through the REST API, not just as charts. If you want the series in your own warehouse, take it.

How alerts are configured

An alert is four choices: a trigger, a scope, a threshold and a destination. Set them on a boundary you would actually act on, or the channel becomes noise inside two weeks and everyone mutes it.

  1. 1Trigger. An in-stock competitor crossing your price in either direction; a move larger than a set percent or dollar amount; every in-stock competitor now sitting below you, which is a different signal from one seller going low; a listing below MAP; a stock flip; or a source that has gone quiet for two refresh cycles.
  2. 2Scope. All products, a category, a brand, a saved product group, or a single SKU. Thresholds usually need to differ by category: 3 percent is a sensible starting point for general merchandise, 1 percent for high-velocity electronics.
  3. 3Threshold. Percent, dollars, or a crossing of your own price. Alerts are deduplicated within a refresh cycle, so a price oscillating around your number does not fire six times before lunch.
  4. 4Destination. Email, a Slack channel through the Slack integration, a webhook, or the weekly digest for people who want the summary rather than the feed.

Every alert carries enough to decide without opening anything: your product and price, the competitor and their new price, the move in dollars and percent, their stock status, and a link to the source page with its capture time.

Watch your own SKUs, not a demo catalogue

Connect a store, confirm a handful of matches, and see real competitor prices with real timestamps. Fourteen days, no credit card.

Frequently asked questions

How often does price monitoring software check competitor prices?

Refresh runs daily on Starter, twice daily on Growth, four times daily on Scale and hourly on Enterprise. Checks are spread across the refresh window rather than fired at once. Choose the cadence from how fast your category moves and how quickly you can act on what you see; collecting four times a day and approving changes weekly wastes both.

What data fields are captured for each competitor listing?

Shelf price after on-page discounts, the crossed-out was-price where one is published, stock status, shipping cost and free-shipping thresholds, promotional and coupon text, the seller behind the offer, the currency code, the specific variant, and the source URL with the time of the read. Everything is stored together as one timestamped observation.

How are product variants tracked?

Each purchasable variant is monitored as its own row with its own price, stock and history, so a 5Ah battery is compared against a 5Ah battery rather than the 2Ah on the same page. Pack counts are normalized to a unit price as well as the pack price. Bundles and multipacks are flagged during matching instead of being folded into a single product.

How long is price history kept?

Observations are appended, never overwritten, so history accumulates from the day a competitor URL starts collecting. Each row keeps its price, stock, promotion, seller, source URL and capture time. Raw observations export as CSV over SFTP or through the REST API, so the series can also live in your own warehouse.

What happens when a competitor redesigns their product page?

Structured product data is read first, so many redesigns change nothing at all. Where a per-domain extraction recipe is in use, a layout change triggers automatic regeneration of that recipe. If the product URL moves, the match is re-discovered by identifier rather than URL, and plausibility validation quarantines suspicious values before they reach a chart or a rule.

Can I get alerts in Slack?

Yes. Alerts go to email, a Slack channel, or a webhook into your own systems, and a weekly digest summarizes what moved for people who do not want a live feed. Every alert includes your price, the competitor price, the move in dollars and percent, their stock status and a link to the timestamped source page.

How many competitor URLs can I track per product?

Starter includes ten competitor URLs per product. Growth, Scale and Enterprise have no per-product limit. In practice most products need three to six meaningful competitors. Adding a dozen marginal marketplace sellers usually adds noise to the market average rather than accuracy, especially if they are frequently out of stock.

Start monitoring in the next ten minutes

Connect your store, match your catalogue and get your first competitor comparison in the same session.

14 days, no credit card, cancel in one click.