Why we don’t do rules-based repricing
Dean Ismael, Trident BI · August 15, 2026 · 6 min read
Every competitor-tracking app for Shopify ships a repricing engine that boils down to the same three inputs: a rule, a schedule, and a floor. Rule matches the cheapest competitor minus 5%. Schedule runs every six hours. Floor caps the drop somewhere. Merchants set it up once and walk away.
We looked at that pattern for about a week and then built the opposite. Here’s why.
Rules engines assume a merchant is Amazon
The set-and-forget repricer was born in Amazon marketplace software. The unit economics there work: an Amazon seller is a re-seller competing on price against dozens of other identical listings for the same SKU, on a channel that rewards Buy Box percentage above everything else. If you lose the Buy Box for six hours, you lose the sale. A rule that cuts price by 5% every schedule beat is rational because the alternative is watching a competitor eat your queue while you sleep.
Shopify merchants are not Amazon sellers. They are brands. They sell their own SKUs on their own storefront against a small handful of comparable brands, subject to MAP agreements, comparison-shopping rules, distributor contracts, and a set of customers who will notice if the price changes twice a day.
Running a rules engine against that context is a category error. It optimises for the wrong scoreboard.
What actually goes wrong
We’ve seen four failure modes turn up repeatedly when Shopify merchants try to run the Amazon-native playbook on their own storefront:
- MAP breach cascades. The rule sees a competitor drop, cuts your price to match, breaks the MAP floor a supplier requires, and the merchant only discovers it two weeks later when the supplier calls. There is no undo button on a distribution relationship.
- Runaway loops. Two rules-based repricers watching each other converge to zero. The floor stops the mathematical race, but by then everyone in the category has trained customers to expect the discount price. Positioning erodes.
- Ad-attribution damage. Your Meta campaign creative shows one price. The rule changes the price on your storefront two hours later. Your CVR craters, ROAS looks broken, the growth team blames the creative, and nobody connects it to the repricer.
- Silent context loss.A competitor cuts because they’re clearing seasonal inventory you don’t hold. The rule doesn’t know that. You cut too, and you cut on evergreen SKUs where the competitor’s move was a one-off.
None of these are fixable with better rules. They’re structural to the model.
The alternative we built
Trident Foresight still tracks competitor prices, still surfaces changes, still lets you write a defensive price to Shopify. But the workflow around it is inverted:
- Prediction before action.The model estimates the probability of a competitor cut using price cadence, inventory drag, and sale-wave detection. If probability is under 70% you don’t see a defense prompt. The alert only fires when there’s a case to make.
- Human in the loop, every time. There is no automatic reprice. Every price change is a discrete Apply click on a specific card, with the current price, target price, and cap visible.
- Risk disclosure once, guardrails always. First-time users read a plain-English risk disclosure and check a box. From then on, every defense runs through store-wide guardrails you configure — minimum price floor as a percentage of current, per-SKU exclusion list, daily reprice cap. Guardrails are enforced server-side. They cannot be bypassed by a rule, a client bug, or a race condition.
- Audit trail on every write.Every applied defense records the prediction inputs, the guardrail state, the before/after price, and the raw Shopify response. When a supplier or a regulator asks “why did this price change,” you have the answer.
- Published accuracy. The model backtest and the live prediction hit-rate are both visible in Analytics. You know how much to trust the next high-confidence prediction before you defend against it.
What we gave up
Honesty about tradeoffs is the whole point of this post, so:
- Speed.A rules engine reprices within minutes of a competitor move. Foresight requires you to click. If you’re not watching the app when a defense card lands, the price change waits. For most Shopify brands, that’s the correct default. For a store racing minute-by-minute against five competitors on identical SKUs, we’re wrong for you.
- Reactive coverage.A rules engine reacts to changes that already happened. Foresight predicts changes that are about to happen. Predictions are wrong sometimes — that’s what the published accuracy number is for. If you want a defense on every competitor cut regardless of prediction, you need a different tool.
The uncomfortable question
We’re not the cheapest option in the category and we’re not the fastest to react. We’re the one that treats a Shopify price change as a decision, not a schedule beat.
If your competitors are moving daily and your margin sensitivity is measured in single-digit percentages, the set-and-forget path might genuinely be right for you. If you’ve ever been on a call with a supplier explaining why an automated tool broke your MAP agreement, we probably aren’t going to be a hard sell.
Trident Foresight is a Shopify app. Install it here, or read the docs first.

