Product
Repricing rules that cannot quietly break your margin
Repricing rules are the conditions that decide when and how a price changes: which products a rule covers, which competitor listings it reads, what target it aims for, and the floors it can never cross. This module builds those rules, sends each change to a review queue, a CSV export or a connected store, and logs every one.
A repricing rule has five parts: the products it covers, the competitor listings it is allowed to read, the target it aims for, the floors it can never cross, and where the resulting price is sent. The floors are the part that matters. A rule without a margin floor, a cost floor and a MAP floor is a way to lose money quickly and consistently, and every rule here carries all three.
What repricing rules are made of
Rules are built from named parts rather than a formula box, so anyone on the team can read a rule six months later and know what it does.
| Part | What you set | Example |
|---|---|---|
| Scope | Which products the rule covers: a category, a brand, a saved group, a tag from your store, or a list of SKUs | All power tools except clearance |
| Competitor set | Which matched listings count, plus filters for stock, match confidence, freshness and seller type | In-stock authorized retailers only, high-confidence matches |
| Target | What the rule aims at: match the lowest, beat it by an amount or percent, sit at the market average, index against it, or hold a fixed margin | Beat the lowest in-stock competitor by $0.01 |
| Guardrails | Margin floor, cost floor, MAP floor and a price ceiling | Never below 28 percent gross margin |
| Change limits | Maximum change per run and per day, in percent or dollars, plus a minimum change worth making | No more than 5 percent per day, ignore moves under $0.25 |
| Cadence | When the rule evaluates, tied to your refresh rate | After each of the four daily collection runs |
| Destination | Review queue, CSV export, or push to the connected store | Review queue until the rule has earned trust |
Rules are ordered. Where two rules cover the same product, the higher-priority rule wins and the losing rule is recorded on the change so you can see why it did not apply.
Repricing — rule builder
Beat market low on Audio
Active- Scope
- Category: Audio
- Strategy
- Match lowest in-stock competitor − $1.00
- Guardrail
- Never below 22% gross margin
- Excludes
- Out-of-stock competitors, unauthorised sellers
- Max change
- 6% per day
- Apply
- Review queue, then push to store
Simulated impact — next 30 days
- Products in scope7SKUs
- Price changes proposed12this run
- Blocked by margin floor3held
Three changes were blocked because they would have taken gross margin below 22%. The rule never overrides its own floor.
| Rule | Scope | SKUs | Status |
|---|---|---|---|
| Beat market low on Audio | Category: Audio | 7 | Active |
| Hold MSRP on protected brands | Brand: Ironside, Granite | 6 | Active |
| Recover margin on Home & kitchen | Category: Home & kitchen | 7 | Awaiting review |
| Clear slow movers | Tag: aged-90d | 4 | Paused |
Guardrails: the floors a rule can never cross
Guardrails are evaluated after the target, and the most restrictive one wins. That is the entire safety model, and it is worth walking through with numbers because it is where most repricing accidents happen.
Take a product currently listed at $89.99 with a landed cost of $62.00. The lowest in-stock matched competitor is $84.99, and the rule says to beat the lowest by a cent, so the target price is $84.98. Four constraints now apply.
| Constraint | Setting | Minimum price it allows | Arithmetic |
|---|---|---|---|
| Cost floor | Never below landed cost | $62.00 | The cost itself |
| Margin floor | 28 percent gross margin | $86.12 | 62.00 / (1 - 0.28) = 86.11, rounded up so the floor is actually cleared |
| MAP floor | MAP price of $87.99 | $87.99 | The MAP itself |
| Max daily change | 5 percent of the current price | $85.50 | 89.99 x 0.95 = 85.49, rounded up for the same reason |
The rule proposes $87.99, not the $84.98 it wanted. The binding constraint is recorded on the change, so the queue shows MAP floor rather than leaving you to work out why the rule stopped short.
That last detail matters more than it sounds. A rule that silently fails to reach its target looks identical to a rule that is working, until margin erodes somewhere else. Every proposal carries the constraint that bound it. If a whole category is repeatedly held by its margin floor, the answer is usually that you are not competitive on cost in that category, and no repricing rule fixes that.
How repricing consumes matched competitor data
A repricing rule is only as good as the observations feeding it, so the rule engine is deliberately picky about what it will read. Data has to clear five filters before it can move a price.
- 1Match confidence. Only matches above the confidence threshold you set are eligible. Low-confidence candidates never move a price, they go to review. The waterfall behind those scores is described in the product matching guide.
- 2Stock status. Out-of-stock listings are excluded by default. Chasing a price nobody can buy is the most common way an automated rule gives away margin for nothing.
- 3Freshness. An observation older than the window you set is ignored. If a source has not returned a good price for two refresh cycles, its last known price stops counting rather than quietly anchoring the rule.
- 4Validation. Prices quarantined by plausibility checks never reach a rule. A $0.00 reading or a shipping fee misread as a price is held back at collection, which is covered in price monitoring.
- 5Seller filters. You can restrict a rule to authorized retailers, exclude specific marketplace sellers, or exclude anyone currently in violation, so a rule does not chase a price that MAP protection is actively enforcing against.
Product matching — confirmation queue
| Your product | Matched at | Method | Confidence | Action |
|---|---|---|---|---|
| Aurora H7 Noise-Cancelling Headphones — SandGTIN 009100010713 | Voltbay | GTIN exact | 94% | Confirm or correct |
| Aurora Buds ProGTIN 009100014284 | Harborline | Title + attributes | 97% | Auto-confirmed |
| Aurora Buds Pro — BlackGTIN 009100017855 | PrimeDeck | Image + title | 94% | Confirm or correct |
| Aurora Buds Pro — Midnight BlueGTIN 009100021426 | Casa & Kin | GTIN exact | 99% | Auto-confirmed |
| Aurora Buds Pro — SandGTIN 009100024997 | Belmont Direct | Title + attributes | 90% | Confirm or correct |
Matches at or above 95% confidence are applied automatically. Anything below is queued, and every correction you make is fed back into matching.
Variants are priced individually. A rule evaluates the 5Ah battery against 5Ah listings, not against the 2Ah on the same competitor page, and pack sizes are compared on unit price where they differ.
Review queue, CSV export, or push to your store
Every rule sends its output to exactly one destination, chosen per rule. Auto-push is off by default on every account and every rule. Nothing is written to a connected store until you turn that on for a specific rule, and turning it off again takes one click.
| Destination | What happens | Latency | Best for |
|---|---|---|---|
| Review queue | Proposals collect with old price, new price, the competitor observation that triggered it and the binding constraint. You approve, edit or reject, singly or in bulk | As fast as someone reviews | New rules, high-value SKUs, and any category where a human should look |
| CSV export | Approved or proposed changes export on a schedule to CSV over SFTP, or pull through the REST API | Your own import cycle | Teams whose ERP or PIM owns price, not the storefront |
| Push to store | The new price is written to the connected store through its API, only for rules where you have enabled it | Minutes after the rule runs | Proven rules on a defined subset, with tight daily change limits |
Pushes are supported for Shopify, WooCommerce, BigCommerce and Adobe Commerce. See integrations for what each connection reads and writes.
Push results are recorded, not assumed. If a store rejects a write, the change is marked failed with the error returned, and it is not counted as applied. A rule cannot report success for a price that never landed.
Change history and rollback
Every change is logged, whether it was proposed, approved, rejected, pushed, failed or rolled back. History is append-only, so nothing in it can be edited after the fact.
- Timestamp, and whether the actor was a rule or a named user.
- The rule that produced it, its target and its guardrail settings at that moment, so a later edit to the rule does not rewrite the reason for an old change.
- Product and variant, old price, new price, and the change in dollars and percent.
- The competitor observations that triggered it, each with its source URL and capture time.
- The constraint that bound the price, where the rule did not reach its target.
- The destination and the result, including any error a store returned.
Rollback restores the previous price for one change or a whole batch, and it is written as a new entry rather than erasing the original. That matters when someone asks in October why a price moved in July: the record shows both the move and the reversal, with the reasoning attached to each. Rules can also be paused, which stops new proposals without discarding the queue.
A rollout that does not frighten anyone
- 1
Week one, watch only
Point a rule at one category with the review queue as its destination, and approve nothing. Read the proposals daily. You are testing whether the rule reaches sensible numbers, not repricing yet.
- 2
Week two, approve in batches
Approve the obvious ones, reject the rest, and note why. Rejection reasons almost always point at a filter that needs tightening rather than a target that needs changing.
- 3
Week three, narrow the guardrails
Set the maximum daily change to something conservative, 3 to 5 percent is a common starting point, and confirm the binding constraint on rejected proposals is one you agree with.
- 4
Week four, enable push on a subset
Turn on store push for a defined group of products where the rule has been right consistently. Keep the review queue for everything else. Expand only when the change history gives you a reason to.
Strategy choices, such as when to match, when to hold and when to ignore a competitor entirely, are covered in repricing strategies. This page is about the machinery.
Write a rule against your own catalogue
Connect a store, build one rule, and watch it propose prices into a review queue before anything is ever pushed. Fourteen days, no credit card.
Frequently asked questions
What are repricing rules?
Repricing rules are the conditions that decide when a price changes and what it changes to. Each rule names the products it covers, the competitor listings it may read, a target such as beating the lowest in-stock competitor, guardrails such as margin and MAP floors, limits on how far a price may move in a day, and where the resulting change is sent.
Will repricing change prices in my store automatically?
Only if you turn that on. Auto-push is off by default on every account and every rule. A rule sends its output to a review queue, a CSV export, or a connected store, and store push is enabled per rule. Every change is logged either way, and pushes that a store rejects are marked failed rather than counted as applied.
What guardrails can I set on a repricing rule?
A cost floor, a gross margin floor, a MAP floor, a price ceiling, and maximum change limits per run and per day. Guardrails are evaluated after the target and the most restrictive one wins. The constraint that bound a price is recorded on the change, so you can see why a rule stopped short of its target instead of guessing.
Can I undo a price change?
Yes. Rollback restores the previous price for a single change or a whole batch, and it is recorded as a new history entry rather than erasing the original. History is append-only and holds the rule, its settings at the time, the triggering competitor observations, the binding constraint and the result returned by the store.
Which competitor data does a repricing rule use?
Only observations that clear five filters: match confidence above your threshold, in stock unless you allow otherwise, fresh within the window you set, passed plausibility validation at collection, and from a seller type the rule permits. Low-confidence matches and quarantined prices never move a price; they go to review instead.
Which stores can repricing push prices to?
Shopify, WooCommerce, BigCommerce and Adobe Commerce. Teams whose ERP or PIM owns price usually take a scheduled CSV over SFTP or pull changes through the REST API instead, then import on their own cycle. Both routes produce the same change history.
Is repricing included on every plan?
Yes. The rule builder, guardrails, review queue, change history and rollback are on all four plans, starting at $99 per month. Plans differ only by how many products you monitor and how often prices refresh, and refresh rate is what limits how often a rule can evaluate.
Keep reading
- Repricing softwareThe wider case: strategy trade-offs, the arithmetic of a price cut, and what automation costs you.
- Repricing strategiesWhen to match, when to hold and when to ignore a competitor entirely.
- Price monitoringThe collection layer every rule depends on, including refresh cadence and validation.
- Dynamic pricing softwareHow rule-based repricing differs from demand-driven dynamic pricing.
- IntegrationsWhat each store connection reads and writes, and how pushes are authorized.
- Margin calculatorWork out the margin floor to put in a rule before you build one.
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.