> ## 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.

# Price Optimization

> AI-powered optimal price recommendations using elasticity and demand signals - suggested prices, not written rules.

**Price Optimization** suggests an optimal price per SKU using your historical sales data, competitor prices (if available), and a demand model. Use it when you want the system to recommend prices instead of writing the rules yourself.

Unlike [Dynamic Pricing](/agents/dynamic-pricing), Price Optimization is suggestion-driven: it looks at how your prices have moved and how units have responded, and picks the price that maximizes a goal you set.

## When to use Price Optimization

Reach for Price Optimization when:

* You have at least a few weeks of transaction history per SKU - the model needs signal.
* You want a goal-based recommendation rather than a deterministic rule output.
* You want to try "what if we re-priced this category to maximize margin?" without committing to specific guardrails.

Use Dynamic Pricing instead when you have explicit constraints (margin floors, competitor parity, rounding patterns) you want enforced consistently.

## Open Price Optimization

In any grid:

1. Click **Agents** in the top toolbar (or the pinned **Price Optimization** button if you have one).
2. Select **Price Optimization** from the All Agents modal.
3. The configuration dialog opens with a **Config by AI** panel beside three tabs - **General**, **Advanced**, and **Source** - and a **Workflow** panel on the right that shows the run pipeline: Optimize Prices → Apply Pricing Rules → Price Approval.

The dialog is a short wizard: fill each tab and use **Next** to move through them, then run the optimization from the final step.

<Frame>
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/retailgrid/images/agents/price-optimization-general.png" alt="Price Optimization - General tab with optimization goal and expected-impact timeframe" />
</Frame>

## Configure by AI - describe what you want in plain language

The **Config by AI** panel sits beside the configuration tabs as a chat-style assistant, usable at any point. Use it when you know the outcome you want but not which knobs to turn.

* **Prompt** - describe your goal in 1-3 sentences. Example: *"Maximize profit across the KVI products without dropping margin too far or moving prices more than 10%."*
* **Run AI** - generates values into the configuration tabs.

AI output is a starting point. Review the generated configuration before running - the AI gives a structured guess, not a final answer. Because Config by AI is independent of the tabs, you can keep editing the configuration manually after the AI fills it in - the two surfaces don't lock each other out.

## Configure across three tabs

The tabs can be filled in order using **Next**. **Config by AI** lives beside the tabs and can be used at any point.

### General - goal and timeframe

* **Optimization Goal** - **Maximize Profit** (prioritize margin and bottom-line return) or **Maximize Revenue** (drive top-line growth and sales volume).
* **Expected Impact Timeframe** - how far ahead the optimizer projects the impact of the new prices when scoring them (e.g. Next 30 days).

### Advanced - confidence tiers and thresholds

The Advanced tab controls how the model treats SKUs of differing signal strength:

* **Confidence Tiers** - toggles for the tiers the optimizer will produce recommendations for (item-level and group-level tiers, including seasonal variants). Lower tiers borrow demand signal from clusters of similar SKUs so sparse items still get a sensible, lower-confidence suggestion.
* **Force Full Recompute** - recompute every SKU from scratch instead of reusing cached model fits.
* **Confidence Thresholds** - the fit quality (R²) required for a SKU or group to qualify for a higher confidence tier (e.g. Item High R² threshold, Group High R² threshold). Raise them for stricter recommendations, lower them to get suggestions for more SKUs.

Defaults are conservative. Start there and widen only when you trust the recommendations.

### Source - scope and inputs

* **Scope** - run against the **Full grid** or a **Sample** of rows to validate the setup before a full run.
* **Inputs** - map the grid columns the model reads: **Price** (current selling price) and **Cost** (cost per unit). Historical sales/transactions provide the demand signal the model fits, and competitor prices (if present) let the model account for competitive position.

Without sales history the model has nothing to fit; without Cost the model can't compute margin-based goals.

## Read the result

After a run, each recommendation lands in its own cell in the output grid - one value per cell, so recommendations are easy to scan and act on row by row. Per recommendation you can:

* Set the **price type** the recommended price should apply as (e.g. regular or promotional).
* Set the **effective date** the price should take effect.

Supporting columns give the context behind each recommendation:

* **Optimal Price** - the recommended price per SKU.
* **Expected Revenue Lift** - estimated impact on revenue at the recommended price (vs. current price).
* **Expected Margin Change** - margin pp change at the recommended price.
* **Confidence** - how strong the model's signal was for that SKU.

Click any **Optimal Price** cell to open the right-side **Price Analysis** panel - same panel pattern as Dynamic Pricing - which explains *why* that price was proposed (current price, optimal price, elasticity used, expected lift).

When you're happy with a recommendation, send it through the [price approval workflow](/agents/price-approval) to review and publish it.

## Common pitfalls

* **Sparse sales history** - SKUs with very few transactions get low confidence and small recommended changes. That's intentional. For SKUs too thin to model on their own, the optimizer borrows demand signal from a cluster of similar SKUs rather than dropping out, so sparse items still get a sensible, lower-confidence suggestion.
* **Recommendations go through approval, not straight to live** - Price Optimization proposes prices; you review, adjust, and publish them through the [price approval workflow](/agents/price-approval). Nothing goes live without your sign-off.
* **Goal mismatch** - if you set Goal = Revenue, expect the model to drop prices on elastic SKUs. If you set Goal = Profit, expect the opposite. Pick the goal that matches the decision you're making.

## Related

* [Agents overview](/agents/overview)
* [Dynamic Pricing](/agents/dynamic-pricing)
* [Review and approve price changes](/agents/price-approval)
* [Sales / Transactions data requirements](/data-requirements/sales)
* [Metrics glossary](/reference/metrics)
* [Runs](/runs/overview)
