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.
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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
| Product | Seller | MAP | Listed | Below | Evidence | Status |
|---|---|---|---|---|---|---|
| Aurora H7 Noise-Cancelling HeadphonesPrimeDeck Marketplace | DealVault×2 | $242.63 | $210.74 | 13.1% | EV-20260000 | Open |
| Aurora H7 Noise-Cancelling Headphones — SandPrimeDeck Marketplace | ClearanceHub×3 | $253.76 | $208.85 | 17.7% | EV-20260137 | Notice sent |
| Aurora Buds Pro — SandPrimeDeck Marketplace | OutletRun | $162.23 | $115.50 | 28.8% | EV-20260274 | Open |
| Aurora Buds Pro — Refreshed 2026Comparison feed | TechNest Surplus×3 | $141.58 | $112.29 | 20.7% | EV-20260411 | Notice sent |
| Cadence 200 Bookshelf Speakers (pair)Independent storefront | Rivermark Trading×2 | $375.08 | $303.63 | 19% | EV-20260548 | Open |
| Cadence 200 Bookshelf Speakers (pair) — Midnight BlueComparison feed | OutletRun×4 | $348.07 | $303.67 | 12.8% | EV-20260685 | Open |
Every row links to a timestamped capture of the listing as it appeared. Repeat counts track the same seller across the enforcement history.
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.
| Setting | What it decides | Suggested starting point | Failure mode if set wrong |
|---|---|---|---|
| Tolerance | How far below MAP a listing must be before it counts | 1 percent or $1.00, whichever is greater | At zero you chase penny rounding. Above 5 percent you legitimise a real discount |
| Effective price | Whether on-page coupons, gift cards and bundles count toward the violation price | On, if your policy defines Effective Price. Off if it does not | Enforcing effective price against a policy that only mentions advertised price loses the argument |
| Stock requirement | Whether an out-of-stock listing can open a case | Log but do not open, except on hero SKUs | Out-of-stock listings are often stale pages, and chasing them wastes credibility |
| Grace window | How long the listing must stay low before a case opens | 12 to 24 hours, and zero on hero SKUs in peak season | At zero you notify on feed glitches. Above 48 hours short promotions escape entirely |
| Severity split | Which cases get worked first | Under 5 percent is a watch item, 5 to 15 percent is standard, over 15 percent is priority | One 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.
| Cadence | Interval | Violations that can be missed entirely | Average detection delay |
|---|---|---|---|
| Daily | 24 hours | Anything shorter than 24 hours, including a full-day flash sale | About 12 hours |
| Twice daily | 12 hours | Anything shorter than 12 hours, such as an evening promotion | About 6 hours |
| Four times daily | 6 hours | Anything shorter than 6 hours | About 3 hours |
| Hourly | 1 hour | Anything shorter than an hour, which is rare outside marketplace repricers | About 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.
| Channel | What makes detection harder | Your lever |
|---|---|---|
| Authorized dealer sites | Prices behind login, regional variants, and stale cached pages | Direct: the full policy ladder, from co-op funds to supply |
| Marketplace listings by authorized sellers | Storefront names differ from the account name, and the offer changes seller mid-day | Direct, once the storefront is resolved to the account |
| Marketplace listings by unknown sellers | No account to match, and seller names are disposable | Indirect: trace the supply source, covered in finding unauthorized sellers |
| Comparison shopping and product feeds | The feed price can lag the site price by hours | Direct, but verify on the destination page before notifying |
| Paid search and shopping ads | Ad copy is personalised and geotargeted, so what you see is not what everyone sees | Direct, and usually the fastest thing a reseller can fix |
| Social and email promotions | Ephemeral, and not crawlable | Direct, 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.
- 1Work the priority queue first. Everything over 15 percent below MAP, oldest first. These are the cases that reset category price perception.
- 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.
- 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.
- 4Scan repeat offenders. Sellers with two or more occurrences in the lookback window are the ones the ladder exists for.
- 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 agoIronside 20V Brushless Drill Kit listed 23.4% below MAP. Evidence captured.
Harborline feed recovered automatically
3 hours agoLayout 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 agoAudio category. Repricing rules now ignore these listings.
Casa & Kin raised 9 prices overnight
8 hours agoHome & kitchen, average +4.2%. Margin headroom opened on 6 of your SKUs.
New seller detected on 3 products
11 hours agoRivermark Trading appeared on PrimeDeck. Not in your authorised reseller list.
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.
Keep reading
- What is MAP pricingWhat a MAP policy can restrict, and why unilateral enforcement works the way it does.
- MAP policy templateThe document this procedure enforces, section by section with example language.
- Finding unauthorized sellersThe workflow for violations from sellers who never appear on your account list.
- MAP monitoring softwareHow detection, evidence capture and repeat-offender tracking run continuously.
- Data qualityCoverage and freshness monitoring, so a quiet queue is not mistaken for compliance.
- Slack integrationRoute priority violations to a channel so the worst cases do not wait a week.
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.