Skip to content
Price IntelligencePrice Intelligence home

MAP

How to monitor MAP violations, step by step

Monitoring MAP violations means checking every listing that advertises your products against the minimum advertised price in force for that SKU, on a fixed schedule, and capturing the offending page as evidence the moment a listing falls below the floor. The procedure runs in ten steps, from defining the authorized seller list to verifying the cure.

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

MAP monitoring is a loop, not a report. Every listing that advertises your product gets checked against the MAP in force for that SKU on that date. When a listing falls below the floor beyond your tolerance and stays there past your grace window, the page is captured, the seller is identified, a notice goes out, and a later check verifies the cure. The ten steps below are that loop, in the order you have to build it.

Before you monitor: the two lists everything depends on

Almost every stalled MAP program stalls in the same place, and it is not detection. It is that nobody can produce a trustworthy authorized seller list or a MAP price list with effective dates. Without the first, you cannot tell a partner who slipped from a diverter who was never yours. Without the second, you cannot prove which floor applied on the day of the capture.

  • The authorized seller list. Every account permitted to advertise your products, with its legal entity name, its storefront names on every marketplace it operates, and its status date. Marketplace display names change; keep the aliases. This list is what turns a violation into either a channel conversation or a diversion investigation.
  • The MAP price list. One row per SKU with the floor and the date it takes effect, versioned as its own document rather than buried inside the policy. Seasonal or promotional floors get their own dated rows. The MAP policy template covers how the policy should reference it.

How to monitor MAP violations: the ten-step procedure

  1. 1

    1. Fix the authorized seller list, with aliases

    Reconcile your reseller accounts against every storefront name you can observe in the channel. One legal entity often trades under three or four marketplace names. Record each alias against the parent account so a violation attaches to the account you can actually act on, not to a storefront nobody in your building recognises.

  2. 2

    2. Publish the MAP price list with effective dates

    One floor per SKU, one effective date per floor, kept in a file the monitoring reads. Include the currency and the condition the floor applies to. If you run a promotional MAP for a period, add it as a dated row rather than editing the existing one, so the historical floor is still recoverable when you enforce a violation from three weeks ago.

  3. 3

    3. Choose the channels to watch, and rank them

    List every surface where your products are advertised: authorized dealer sites, marketplaces you sell on, marketplaces you do not, comparison shopping engines, and paid search. Rank by revenue exposure rather than by irritation. The largest single source of below-MAP advertising is usually one or two marketplaces, and the loudest complaints usually come from somewhere else.

  4. 4

    4. Set the detection thresholds

    Three settings decide what counts: tolerance in percent or dollars, whether an on-page coupon counts toward the violation price, and whether an out-of-stock listing can violate. Set them to match the wording of your published policy, not to match your instincts. A rule you enforce that is not in the document is a rule a reseller can push back on.

  5. 5

    5. Set the grace window

    A grace window is how long a listing must stay below the floor before a case opens. It filters pricing errors, feed glitches and five-minute experiments out of your queue. Twelve to twenty-four hours suits most brands. Set it to zero on your top SKUs during peak periods, when a short violation still does real damage.

  6. 6

    6. Set the refresh cadence to the speed of the category

    Any violation shorter than your check interval can be missed entirely. Checking once a day means a promotion that runs from 08:00 to 22:00 between two checks leaves no trace. Match the interval to how fast the category moves, then accept that the interval is the floor on what you can see.

  7. 7

    7. Capture evidence at the moment of detection

    A full-page screenshot of the listing, the capture timestamp, the source URL, the observed price, any crossed-out reference price and the seller identity as shown at that moment. Evidence gathered later is evidence of a different page. Capture on every subsequent check too, because a sequence of dated captures establishes duration, and duration is what moves a reseller.

  8. 8

    8. Identify the seller and attach the case to the account

    Resolve the storefront to a legal entity using your alias map. Cases key to the seller, not the URL, so one seller undercutting on nine SKUs appears as one offender with nine listings. If the seller resolves to nothing on your list, it goes to the diversion workflow instead, which is a different problem with a different fix.

  9. 9

    9. Send the notice and start the clock

    Notice goes to the address on file, states the SKU, the URL, the observed price, the MAP in force on that date and the correction window, with the capture attached. Record the send date against the case. The cure clock runs from the observation timestamp in the notice, not from the day the case reached your desk.

  10. 10

    10. Verify the cure, then escalate or close

    Confirm the correction with your own fresh check rather than the seller's reply. If the listing is compliant, close the case and record the time to cure. If it is not, apply the next step on the published ladder without further discussion, because a ladder that pauses for negotiation is not a ladder. Every closed case adds to the seller's occurrence count for the lookback period.

MAP protection — open violations

ProductSellerMAPListedBelowEvidenceStatus
Aurora H7 Noise-Cancelling HeadphonesPrimeDeck MarketplaceDealVault×2$242.63$210.7413.1%EV-20260000Open
Aurora H7 Noise-Cancelling Headphones — SandPrimeDeck MarketplaceClearanceHub×3$253.76$208.8517.7%EV-20260137Notice sent
Aurora Buds Pro — SandPrimeDeck MarketplaceOutletRun$162.23$115.5028.8%EV-20260274Open
Aurora Buds Pro — Refreshed 2026Comparison feedTechNest Surplus×3$141.58$112.2920.7%EV-20260411Notice sent
Cadence 200 Bookshelf Speakers (pair)Independent storefrontRivermark Trading×2$375.08$303.6319%EV-20260548Open
Cadence 200 Bookshelf Speakers (pair) — Midnight BlueComparison feedOutletRun×4$348.07$303.6712.8%EV-20260685Open

Every row links to a timestamped capture of the listing as it appeared. Repeat counts track the same seller across the enforcement history.

The queue this procedure produces, in the Northline Supply demo tenant: depth below MAP, seller, how long the listing has been low, and current step on the ladder.

Setting thresholds and grace windows without drowning the queue

Detection settings are a tuning problem. Too tight and the queue fills with rounding artefacts nobody will ever send a letter about. Too loose and you miss the 8 percent undercut that is quietly resetting the price floor in a category. The arithmetic is worth doing explicitly: a $199.00 MAP listed at $189.00 is $10.00 low, which is 5.0 percent, because 10.00 / 199.00 = 0.0503. A $199.00 MAP listed at $159.00 is 20.1 percent low. Those are different problems and should not share a queue.

Threshold settings, what each one filters, and where to start
SettingWhat it decidesSuggested starting pointFailure mode if set wrong
ToleranceHow far below MAP a listing must be before it counts1 percent or $1.00, whichever is greaterAt zero you chase penny rounding. Above 5 percent you legitimise a real discount
Effective priceWhether on-page coupons, gift cards and bundles count toward the violation priceOn, if your policy defines Effective Price. Off if it does notEnforcing effective price against a policy that only mentions advertised price loses the argument
Stock requirementWhether an out-of-stock listing can open a caseLog but do not open, except on hero SKUsOut-of-stock listings are often stale pages, and chasing them wastes credibility
Grace windowHow long the listing must stay low before a case opens12 to 24 hours, and zero on hero SKUs in peak seasonAt zero you notify on feed glitches. Above 48 hours short promotions escape entirely
Severity splitWhich cases get worked firstUnder 5 percent is a watch item, 5 to 15 percent is standard, over 15 percent is priorityOne undifferentiated queue means the 20 percent cases wait behind the 2 percent ones

Start here, then move one setting at a time and look at the queue a week later. Changing three settings at once tells you nothing about which one worked.

How cadence bounds what you can detect

Check interval sets a hard ceiling on detection. If you check every N hours, a violation shorter than N hours can occur entirely between two checks and leave nothing behind, and for violations that do get caught the average delay from start to detection is about N divided by 2. That is not a vendor claim, it is arithmetic, and it is the single most useful number when deciding what cadence a category needs.

What each refresh cadence can and cannot see
CadenceIntervalViolations that can be missed entirelyAverage detection delay
Daily24 hoursAnything shorter than 24 hours, including a full-day flash saleAbout 12 hours
Twice daily12 hoursAnything shorter than 12 hours, such as an evening promotionAbout 6 hours
Four times daily6 hoursAnything shorter than 6 hoursAbout 3 hours
Hourly1 hourAnything shorter than an hour, which is rare outside marketplace repricersAbout 30 minutes

Refresh runs daily on Starter, twice daily on Growth, four times daily on Scale and hourly on Enterprise. Categories with automated marketplace repricers need the shorter intervals; slow-moving durables generally do not.

Choosing channels, and what changes on each one

The same violation looks different depending on where it appears, and the levers available to you differ too. Watch the channels where you have a lever first, then the ones where you only have information.

Channels, detection notes and the lever you actually hold
ChannelWhat makes detection harderYour lever
Authorized dealer sitesPrices behind login, regional variants, and stale cached pagesDirect: the full policy ladder, from co-op funds to supply
Marketplace listings by authorized sellersStorefront names differ from the account name, and the offer changes seller mid-dayDirect, once the storefront is resolved to the account
Marketplace listings by unknown sellersNo account to match, and seller names are disposableIndirect: trace the supply source, covered in finding unauthorized sellers
Comparison shopping and product feedsThe feed price can lag the site price by hoursDirect, but verify on the destination page before notifying
Paid search and shopping adsAd copy is personalised and geotargeted, so what you see is not what everyone seesDirect, and usually the fastest thing a reseller can fix
Social and email promotionsEphemeral, and not crawlableDirect, but it depends on someone forwarding you the artefact

Capturing evidence that survives an argument

A notice that says our system shows you below MAP invites a conversation about your system. A notice with a dated image of the reseller's own page ends it. The difference in outcome is not subtle, and it is the reason evidence capture belongs at detection rather than at escalation.

  • Full page, not a crop. The surrounding page carries the promotional wording, the badge and the shipping offer, all of which matter if the case turns on effective price.
  • Timestamp on the capture, not on the export. The cure clock is measured from when the page was read.
  • The URL as read, including any parameters. Resellers move pages; the URL at capture time is what the notice refers to.
  • A capture per check, not per case. Three dated captures on consecutive days prove duration. One capture proves a moment, and a moment is easy to call a mistake.
  • Seller identity at capture time. Marketplace offers change hands. Record who held the offer when the price was observed.

Everything on that list is what the MAP protection module produces automatically on each violation, and what an evidence packet contains when you export it for enforcement.

The weekly review that keeps the program alive

Detection running is not a program. A program is a scheduled review where somebody decides what happens next, and it takes about forty minutes a week once the queue is tuned.

  1. 1Work the priority queue first. Everything over 15 percent below MAP, oldest first. These are the cases that reset category price perception.
  2. 2Check cure verification on last week's notices. Any case still open past its window moves to the next rung of the ladder, without an email discussion about it.
  3. 3Review new sellers. Any storefront advertising your products for the first time this week gets resolved to an account or routed to the diversion workflow.
  4. 4Scan repeat offenders. Sellers with two or more occurrences in the lookback window are the ones the ladder exists for.
  5. 5Read the coverage report. If a source stopped returning data, you have a blind spot rather than a clean week. Silence and compliance look identical in a violation count.

Alerts — last 24 hours

  • Voltbay cut Aurora H7 by 12%

    18 min ago

    $249.00 → $219.00. You are now $30.00 above the market low.

  • New MAP violation — DealVault

    42 min ago

    Ironside 20V Brushless Drill Kit listed 23.4% below MAP. Evidence captured.

  • Harborline feed recovered automatically

    3 hours ago

    Layout change detected at 04:12, new extraction recipe live at 04:19. No gap in history.

  • PrimeDeck out of stock on 4 tracked products

    5 hours ago

    Audio category. Repricing rules now ignore these listings.

  • Casa & Kin raised 9 prices overnight

    8 hours ago

    Home & kitchen, average +4.2%. Margin headroom opened on 6 of your SKUs.

  • New seller detected on 3 products

    11 hours ago

    Rivermark Trading appeared on PrimeDeck. Not in your authorised reseller list.

New below-MAP detections routed to email and Slack as they open, so the priority cases do not wait for the weekly review.

Month to month, four numbers tell you whether the program is working: compliance rate, median time to cure, repeat-offender share, and the share of violations coming from sellers not on your authorized list. The last one is the important one. If it is the majority, the pricing conversation is a distraction and the real work is upstream. For the wider context on what a policy can reach in the first place, start with what MAP pricing is.

Run the loop without running it by hand

Load your MAP list, point monitoring at your channels, and see the first violations with evidence attached. 14-day free trial, no credit card.

Frequently asked questions

How often should MAP violations be checked?

Match the interval to how fast the category prices move. Any violation shorter than the check interval can be missed entirely, and average detection delay is roughly half the interval. Daily checks suit slow-moving durables. Categories with automated marketplace repricers, where prices change several times a day, need four checks a day or hourly.

What counts as evidence of a MAP violation?

A full-page screenshot of the listing as it appeared, the capture timestamp, the source URL, the observed price, any promotional wording on the page, and the seller identity at that moment. A single capture proves a moment. A sequence of dated captures across consecutive checks proves duration, which is what usually moves a reseller to act.

What tolerance should be set for MAP monitoring?

Start at 1 percent or $1.00, whichever is greater, so penny rounding and cached prices do not open cases. Below that the queue fills with noise; above about 5 percent you are quietly permitting a real discount. Review the tolerance after a week of live data and change one setting at a time so you can see what the change did.

Should out-of-stock listings count as MAP violations?

Log them, but think before opening a case. An out-of-stock listing still advertises a price, so it can still damage price perception. It is also frequently a stale page nobody is maintaining. A reasonable default is to record them without notifying, and to open cases only on hero SKUs where the advertised anchor matters most.

How do you find out who is behind a marketplace listing?

Resolve the storefront name to a legal entity using an alias map built from your reseller accounts, marketplace seller profile details and observed behaviour across SKUs. Cases attach to the entity rather than the URL, so one seller undercutting across nine listings is a single offender. Storefronts that resolve to nothing go to a diversion investigation instead.

How long should a reseller get to correct a MAP violation?

Between 24 and 72 hours on a first notice is common, tightening on repeat occurrences. Whatever you choose has to be the number in your published policy, and the clock should start from the observation timestamp in the evidence rather than the day the case reached someone's desk. Verify the correction with your own check.

Why did our MAP violation count suddenly drop to zero?

Usually because collection broke, not because the channel complied. A site redesign, a moved product URL or a new bot defence stops data arriving, and an empty violation list looks exactly like a clean week. Track source coverage and freshness alongside the violation count, and treat any unexplained drop as an outage until you have proven otherwise.

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.