We have made several reliability improvements to how the repricing engine processes price changes. These fixes address edge cases that could cause duplicate submissions, stuck changes, and unclear pricing decisions.
Overlap handling
When multiple repricing cycles target the same listing in quick succession, the system now handles overlaps correctly. If a price change is already being submitted for a listing and a new calculation produces a different target price, the older pending change is marked as "replaced" and the newer one takes its place. Previously, both could attempt to submit simultaneously, leading to unpredictable results.
Stuck change recovery
A background process now monitors price changes that have been in the "submitting" state for too long. If a change gets stuck mid-submission (due to a temporary API outage or network issue), it is automatically detected and retried. The system distinguishes between changes that are genuinely in progress and those that have stalled, preventing premature retries while still recovering from real failures.
Deduplication
If the repricing engine calculates a target price that matches a price change already being submitted for the same listing, the duplicate is skipped entirely. This prevents unnecessary API calls and reduces the load on marketplace APIs. The original submission continues as planned, and the duplicate is logged as "skipped - identical" in Pricing Activity.
Decision explanations
Every entry in Pricing Activity now includes a detailed explanation of why the engine set that specific price. This includes which competitors were considered, what the target price was, whether any safety nets or price floors were triggered, and the final decision logic. When the engine cannot compete (for example, if the floor price is higher than the Buy Box), the explanation clearly states why and what the limiting factor was.