> ## Documentation Index
> Fetch the complete documentation index at: https://docs.retailgrid.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Review and approve price changes

> Review, adjust, and publish every price your pricing agents propose - with comments, filters, bulk-approve, and one-click publish.

The **price approval workflow** is where proposed prices become live prices. Both [Dynamic Pricing](/agents/dynamic-pricing) and [Price Optimization](/agents/price-optimization) write their results into the grid as proposals - they don't change your live prices on their own. You review each proposal here, then publish the ones you're happy with.

This keeps you in control: an agent does the heavy lifting across thousands of SKUs, and you stay the final decision-maker on every price that goes out.

## When to use it

Reach for the approval workflow after any agent run that produced prices you intend to act on:

* A Dynamic Pricing run wrote a new **Rules Based Price** column.
* A Price Optimization run wrote **Optimal Price** recommendations.
* You want a deliberate review-and-publish step rather than treating the agent output as final.

## Open the review queue

After an agent run completes, open the **review queue** for that run from the grid. The queue lists every proposed change as one row: the product, its current price, the proposed price, the delta, and the margin impact, so you can judge each change in context.

## Per-row actions

For each proposed change you can:

* **Approve** - accept the proposed price as-is.
* **Reject** - discard the proposal; the live price is left unchanged.
* **Override** - replace the proposed price with a manual price of your own, then approve that.
* **Comment** - leave a note on a row (why you rejected, what you overrode and why) so the decision is auditable later.

## Filter the queue

Use filters to work through a large queue in deliberate passes rather than row by row:

* Filter by **size of change** to focus on the biggest moves first.
* Filter by **margin impact** to catch changes that push margin the wrong way.
* Filter by product attributes (category, brand, store) to review one segment at a time.

## Bulk-approve

Once a filtered set looks right, **bulk-approve** the whole selection in one action instead of clicking each row. A common pattern: filter to small, in-policy changes, bulk-approve them, then review the large or unusual moves individually.

## Publish

When your approvals are ready, **publish** them in one click. Publishing applies the approved prices as the live prices on those products. From that point the new prices flow through the rest of Retailgrid - [metrics](/reference/metrics) recompute against them, and they appear in [exports](/grids/export) and the Public API.

Rejected and un-reviewed proposals are not published; only the changes you approved go live.

## Common pitfalls

* **Forgetting to publish** - approving a row stages it; nothing goes live until you publish. If prices didn't change, check whether you published.
* **Bulk-approving without a filter** - bulk-approve acts on the current selection. Filter first so you only approve the set you actually reviewed.
* **Overrides skip the agent's guardrails** - a manual override is your number, not the agent's. Double-check it against your margin floor before publishing.

## Related

* [Dynamic Pricing](/agents/dynamic-pricing)
* [Price Optimization](/agents/price-optimization)
* [Agents overview](/agents/overview)
* [Runs](/runs/overview)
* [Metrics glossary](/reference/metrics)
