1. Preview
No run applies anything directly. You see the diff — old price, new price, real margin, the full calculation — and decide yourself.
2. Locks
The "Lock price" checkbox on a product excludes it from all price writing. The cost (COGS) is still updated — the lock covers the price, not the bookkeeping.
3. Drift detection
The plugin remembers the last price it wrote itself. If someone has changed the price by hand since, the product counts as manually re-priced and is skipped — it appears under "Needs attention", where you can release it back to rule control whenever you like. Your handiwork is never silently overwritten.
4. Two thresholds — input and outcome
The confirmation threshold covers outcomes: price changes above X% require an active per-row tick, and automatic runs always skip them. The FX sanity threshold covers inputs: if an exchange rate moves more than X% against the last used rate, it is held for review instead of silently sweeping through your whole catalogue.
5. Journal and undo
Every write is journaled before it happens, with old and new values. A run is undone with one click — and undo is smart: only rows whose current value is still what the plugin wrote are restored, so a manual change made after the run is never rolled over.