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

> ## Agent Instructions
> Ready for Commerce is an ecosystem that currently contains two products, PIM and Repricer, standing on one shared foundation: one identity, one organization, one team, one bill. Do not call it a platform with features, and never hint at an unreleased product.
> PIM connects to Shopify, Amazon, Square, Google Merchant Center and BigCommerce. Repricer connects to Amazon, Walmart, Shopify, BigCommerce, eBay and Square. The two products do not share one list, and each integration is authorized separately inside each product. The roster grows on purpose, so describe what the product does and let a table carry which integrations do it today, instead of counting them or writing that only one does something.
> Integration is the word this product uses, and it is the default in the documentation: the connection, the account, the Integrations screen, the per-account settings and the sync state are all integrations. Channel is reserved for the narrow sense of a destination where a listing lives, as in a product being live on a channel or archived on the channel.
> Newegg is not a supported channel. Do not describe it.
> On Amazon, PIM manages the offer only: price, availability and condition. It does not publish listing content such as titles, descriptions, images or specifications.
> Sign-in is passwordless: a single-use code emailed to the user, or Google. There are no passwords anywhere, so never describe a password, a sign-up with a password, or an email confirmation link.
> There is no public API for customers and no customer-facing webhooks. There is no organization-wide activity feed and no audit export, but the PIM does keep version history on products, brands, categories, tags and specifications, with who changed what and a restore, so never write that changes are not recorded or that an edit cannot be undone. Do not describe capabilities that are not documented here.
> Never write that the products have no AI, and never write that anything is AI-powered. Both are wrong. The PIM's image Optimizer runs AI-backed transforms the seller starts on purpose: Upscale, Remove background, and the region selection behind Refine. The Repricer reads competitor prices off web pages on the server. No control, badge or tooltip in either product names AI, and the seller never writes a prompt, so describe what the buttons do in the app's own words instead of reaching for the word.
> A PIM product, brand, category or variant can be switched off per connected integration account. Hover the channel badge and the switch is beside the account name in the card that opens. It carries no visible caption, so never call it the Sync switch: Sync is only its accessible name. On a variant-grained provider, Amazon today, the switch moves into the variant editor. On a product it asks whether to delete it from the channel, archive it there, or leave it live. Disabling stops publishing, not reading. There is still no per-field sync toggle.
> The PIM's image Optimizer replaced a feature called Squarify, which no longer exists. It resizes to an aspect ratio or to exact dimensions, removes backgrounds, upscales, trims the transparent margin around a cutout and re-centers it, pads, fills and re-encodes, and it always publishes a new asset instead of changing the original. Nothing crops into the picture: the subject is always contained whole.
> The PIM has no repricing engine and never reacts to a competitor's price. It does build the price it publishes to each integration account from the seller's own fields, configured in that account's settings, so do not write that the PIM has no pricing rules.
> Neither product has an in-app notification center, bell or inbox. Notifications are delivered by email only.
> Billing is per organization and per product, and only the organization owner can see or change it. Team members are free and uncounted, so never describe seats or per-user pricing.
> The seller never picks a plan. Each product has twelve price tiers assigned automatically from usage: the PIM from catalog product count, which includes drafts and archived products, and the Repricer from trailing 30-day sales. Nothing is feature-gated by plan and exceeding a tier never blocks work, so never write that a feature requires a higher plan.
> A subscription that is past due or paused makes the product read-only, which stops repricing and blocks edits without deleting data. Only a canceled subscription locks the seller out. Nothing is ever charged without a payment method on file.
> Pages containing the text 'This page has not been written yet', or its Spanish equivalent 'Esta página todavía no está escrita', are placeholders. Do not treat their headings as documented behavior.

# Pricing on a listing

> The minimum, the maximum, the MAP, the MSRP and the manual price you put on a listing are the limits your strategy works inside, and you set them here.

Every [listing](/repricer/listings) has a small set of price numbers of its own. The lowest price you will sell it for, the highest, the manufacturer's MAP and MSRP, and a fixed price you can set yourself. None of these is a price a shopper ever sees. They are the numbers your strategy has to work inside.

That split is the thing to get straight first. A strategy decides how to price, and one strategy usually covers hundreds of listings. These numbers decide how far it can go on this one listing. So two listings on the same strategy come out at different prices, because what you typed here is different.

Two of the fields do more than set a limit. A manual price takes the listing out of repricing and keeps your number, and the `Pause Repricing` switch stops repricing without a number at all.

You get to all of it from `Listings`, in the sidebar down the left. Click a row and that listing opens in a dialog with tabs across the top. The second tab is `Pricing`, and everything on this page is on it. There is no Save button anywhere on that tab, because each field saves itself.

## Before you start

### What your role lets you do

Everyone can open the `Pricing` tab on a listing and read every number on it. What changes with your role is what you can change.

| What you want to do | The lowest role that can |
| --- | --- |
| Read every number on the tab | `Analyst` |
| Type into a price field | `Editor` |
| Change the strategy, or use `Pause Repricing` | `Manager` |

Below your role, nothing disappears. A price field you cannot change is still there, still readable, in a box with a dashed edge you cannot type into, and `Pause Repricing` is grayed out. Roles are set in [team, roles and permissions](/team#what-each-repricer-role-can-do).

### A manual price turns your strategy off

<Warning>
  With a number in `Manual Price`, on the `Pricing` tab, the listing stays at that price. Your strategy and every limit on that tab are skipped, the minimum and the maximum included. Clear the field to reprice again.
</Warning>

## How to get a listing repricing

<Steps>
  <Step title="Open the listing">
    Click `Listings` in the sidebar down the left. Click any cell in the row except `Cost`, `Manual Price`, `Min`, `Max`, `MAP` or `MSRP`, because those six columns open an edit inside the table instead. The listing opens in a dialog.
  </Step>

  <Step title="Go to the Pricing tab">
    The tabs run across the top of the dialog. Click `Pricing`, the second one. You get two columns of cards.
  </Step>

  <Step title="Read the strategy on the listing">
    `Strategy` is the first card in the left column. It is a dropdown, and the name in it is the strategy pricing this listing right now. Pick another if you want a different one.
  </Step>

  <Step title="Fill in the number your strategy needs">
    In the right column, find the card called `Price Limits` and type your lowest acceptable price into `Minimum Price`.

    Some strategies calculate that floor from your cost. If `Minimum Price` is a box you cannot type into with `Auto` beside it, that is what yours does. Put your cost into `Unit Cost` instead, under `Cost of Goods`, at the top of the same column.
  </Step>

  <Step title="Click somewhere outside the field">
    `Saved` appears inside the field for a moment. That is the whole save.
  </Step>
</Steps>

That is all it takes. Saving that number queues this listing for repricing right away, so there is no scheduled run to wait for. Its `Repricing Status` in the listings table changes from `Not working` to `Working`.

Everything below goes through the tab one card at a time, then explains what the repricer does with the numbers. You do not need any of it for the common case.

## Every field in detail

The `Pricing` tab is two columns. The left column has the two controls that decide whether the repricer touches this listing at all. The right column has the numbers, in four cards from the top: `Cost of Goods`, `Selling Price`, `Price Limits` and `Manufacturer Pricing`.

Not every card is on every listing. Two of them depend on the strategy you picked, and each section below says when one of them is missing.

### Picking the strategy for this listing

`Strategy` is the first card in the left column of the `Pricing` tab, and it is a dropdown. Open it and you get the strategies built for this listing's region, and only those. Pick one and it applies to this listing right away, with nothing to confirm.

Your listings do not start empty. A listing gets its region's default strategy when it first arrives, so there is a name in this dropdown before you touch anything.

Two things can happen instead of a list of names. If your role is below `Manager`, the dropdown reads the name and does not open. If nothing has been built for this region yet, the dropdown is grayed out and reads `No strategies for this region`. Hover it and it tells you to create one on the strategies page.

Which strategy you pick changes the rest of the tab, which is why it is worth reading first. It decides three things. Whether you type your minimum price or the repricer calculates it, whether `Price Limits` appears at all, and whether your MAP and MSRP do anything. How a strategy is built is covered in [strategies](/repricer/strategies).

### Pausing repricing on one listing

`Pause Repricing` is the second card in the left column of the `Pricing` tab, with a switch on the right of it. Turn it on and the repricer stops changing this listing's price. The card turns amber so you can see the state from across the tab.

Nothing else changes. Your price on the channel stays where it is, every number on the tab keeps its value, and turning the switch off starts repricing again. This is the setting for a listing you want to leave alone for a week, not for one you want at a price of your own.

**Pause and a manual price are not the same thing**, and picking the wrong one is the common mistake. Use `Pause Repricing` when you want today's price frozen and you do not care what the number is. Use `Manual Price` when you have a number in mind. A paused listing shows `Paused` in your listings table and a manual one shows `Manual`.

### Setting a price of your own

`Manual Price` is the first field in the `Selling Price` card, second down the right column of the `Pricing` tab. Type a price into it and the repricer publishes exactly that, over and over, until you clear the field.

A manual price is the strongest setting on the tab. Your strategy does not run, no competitor price is read, and none of the limits below it apply. So a manual price under your minimum price still goes out. The field is there for a listing whose price you have already decided yourself.

**Clear the field to go back.** Delete what is in it, click outside, and the listing is repriced by its strategy again, starting right away.

One warning appears under this field and does not stop anything. Type a manual price below your `Unit Cost` and you get `Below your cost` in amber. The price still saves and still goes out.

### Setting the floor and the ceiling

`Price Limits` is the third card down the right column of the `Pricing` tab, with two fields in it.

| Field | What it does |
| --- | --- |
| `Minimum Price` | The lowest price the repricer will ever publish for this listing |
| `Maximum Price` | The highest price it will ever publish |

**A minimum price is the number most listings are waiting on.** Some strategies take the floor from you instead of from your cost. On one of those, a listing with no minimum price does not reprice at all. It shows `Not working` in your listings table until you type a number here.

A maximum price is never required, and a listing reprices without one. Fill one in anyway when your strategy raises prices. A listing that is winning the Buy Box gets pushed up a little at a time to earn more per sale. The maximum is what tells it where to stop.

The two are checked against each other while you type. A minimum above the maximum turns both fields red, with `Must be ≤ max` under one and `Must be ≥ min` under the other. Neither saves until you fix it.

<Note>
  This card is missing on a store of your own whose strategy prices from your cost. That kind of strategy builds the price out of your cost and a markup, so there is no floor and no ceiling to set.
</Note>

### When your minimum price is calculated for you

Some strategies calculate the floor themselves, from your cost and the profit you asked for. On a listing with one of those, `Minimum Price` in the `Price Limits` card is a box with a dashed edge that you cannot type into. A small `Auto` label is to the right of it, and the number in the box is the floor the repricer calculated.

Hover the `Auto` label and you get the whole calculation in words: which strategy did it, the target it is protecting, and the cost and estimated fees it used. When your cost is empty, that same tooltip tells you so, which is your sign that the field you actually need is `Unit Cost`.

**To type your own minimum again, change the strategy, not the listing.** The floor is a strategy setting, so a listing cannot opt out of it on its own. Either assign this listing a strategy whose floor you set yourself, or change the one it is on. [Price floor](/repricer/strategies/price-floor) covers both.

The number in the box moves on its own. Change your cost and the calculated floor changes with it, in front of you, without a reload.

### Showing a crossed-out price on your own store

`Compare Price` is the second field in the `Selling Price` card, on the `Pricing` tab. It is the higher, crossed-out price your store shows next to what you are charging, so a shopper reads the difference as a discount.

You only get this field on a store of your own, and only when the strategy on the listing sets a compare price. Everywhere else it is not on the tab.

What you can do with it depends on which compare price your strategy uses.

| Your strategy is set to | What you get here |
| --- | --- |
| Setting it manually | An empty field you type the price into |
| Calculating it | A box you cannot type into, with `Auto` beside it and the calculated price in it |

Hover that `Auto` label and you get the strategy's name and how it got the number, including the markup it added if that is the mode you are on.

A compare price has to be above the price you are charging, or a shopper sees a discount that is not one. So a compare price at or below your `Manual Price` turns both fields red. You get `Must be > manual price` under one and `Must be < compare price` under the other.

Empty the field and the crossed-out price is taken off your store. The same happens on its own whenever the price you charge rises to meet the compare price, for the same reason.

### Recording the manufacturer's MAP and MSRP

`Manufacturer Pricing` is the last card down the right column of the `Pricing` tab, and it has two fields.

| Field | What it is |
| --- | --- |
| `MAP` | The lowest price your supplier lets you advertise |
| `MSRP` | The price the manufacturer suggests you sell at |

**Typing them in does nothing on its own**, and this surprises people. Both are switched off in a new strategy, so a MAP you filled in months ago is only a number until a strategy is told to use it. A strategy can then turn MAP into a floor, cap the price at MSRP, or lock the price to one of the two. [Safety nets](/repricer/strategies/safety-nets) is where those switches are.

They are also checked against each other. A MAP above the MSRP turns both fields red with `Must be ≤ MSRP` and `Must be ≥ MAP`, and nothing saves until one of them moves.

Two amber warnings appear here and stop nothing. A `Unit Cost` above either number gives you `Your cost is above MAP`, `Your cost is above MSRP`, or `Your cost is above MAP and MSRP` under the cost. Under the manufacturer field itself you get `Lower than your cost`. Every value still saves.

They are worth reading. A cost above the price you are allowed to advertise means you cannot sell that listing at a profit, and finding that out here beats finding it in a report.

### Pricing separately for business buyers

A strategy can price for business buyers as well as ordinary shoppers, and when the one on this listing does, the `Pricing` tab grows a second set of fields for it. What appears depends on how the strategy prices business orders.

<AccordionGroup>
  <Accordion title="The business pricing fields, and when each one appears">
    A strategy that gives business buyers one fixed price adds a section called `Fixed Business Price` at the bottom of the `Selling Price` card. It has a single `B2B Price` field in it.

    A strategy that prices business orders against the market adds a section called `B2B Price Limits` at the bottom of the `Price Limits` card. In it are `B2B Minimum Price` and `B2B Maximum Price`.

    Those two work exactly like the ordinary minimum and maximum above them, red messages and all. `B2B Minimum Price` gets the same `Auto` treatment when the strategy calculates the business floor from your cost.

    [Business pricing](/repricer/strategies/b2b-pricing) covers what the strategy does with all four.
  </Accordion>
</AccordionGroup>

### How each field saves

There is no Save button on the `Pricing` tab. Every field saves itself, and it saves in three ways: a moment after you stop typing, the instant you click outside the field, and when you close the dialog. Pressing Ctrl+S, or Cmd+S on a Mac, saves everything at once without closing anything.

What you see while that happens is inside the field itself, at the right edge.

| What you see | What it means |
| --- | --- |
| Nothing | Nothing to save, or you have not finished typing |
| `Saving` | Your number is on its way |
| `Saved` | Your number is stored. It fades after a moment |
| `Error` | Nothing was saved, and a message tells you why |

Each field takes digits and a decimal point, up to 2 decimal places. Anything else does not appear as you type, so there is no way to enter a letter, a minus sign or a thousands separator. The currency is your listing's, shown as a symbol on the left of every field, and you never type it.

**To clear a number, empty the field.** Delete what is in it, click outside, and the field goes back to having no value. That is different from typing a zero, which is rejected with `Enter a valid amount` because none of these numbers can be zero.

**Six of the fields put the listing back in line to be repriced the moment they save**: `Unit Cost`, `Manual Price`, `Minimum Price`, `Maximum Price`, `MAP` and `MSRP`. So a listing you just fixed does not wait. The rest of the tab saves the same way and takes effect at the next run.

### Limits

| What | Limit |
| --- | --- |
| The highest number any field takes | 9,999,999.99 |
| The lowest | Anything above zero |
| Decimal places | 2 |
| Strategies on one listing | 1 |

### What you cannot do here

| You cannot | Do this instead |
| --- | --- |
| Publish a price straight to the channel | Type it into `Manual Price`, which the repricer then publishes |
| Set a minimum or a maximum as a percentage | Type the amount, or have your strategy [calculate the floor](/repricer/strategies/price-floor#build-the-floor-from-your-cost) from your cost |
| Fill in these fields for many listings at once | Run an [import](/repricer/uploads/imports) with your numbers in it |
| Change your strategy's own settings from here | Open it on the [strategies](/repricer/strategies) page |
| Undo a number you replaced | Type the old one back. Nothing on this tab is versioned |
| See what the repricer will price this listing at next | Read the `Target` column in your listings table |
| Set a different limit per region or per account | Open each listing. These numbers are per listing |
| Schedule a price for a date | Nothing here works on a date. The schedule is a strategy setting |

## What the repricer does with your numbers

The tab records numbers. What turns them into a price is the next repricing run, and the order it works in explains almost every price you did not expect.

### The order your limits are applied in

Your strategy calculates a price first, from whatever it prices against. Then that price is pushed inside your limits, one at a time, in this order.

| Step | What happens |
| --- | --- |
| 1 | The floor is applied, either your `Minimum Price` or the one calculated from your cost |
| 2 | Your `Minimum Price` is applied |
| 3 | Your `Maximum Price` is applied |
| 4 | Your `MAP` is applied as a floor, if the strategy was told to |
| 5 | Your `MSRP` caps the price, if the strategy was told to |
| 6 | The profit floor is applied, if the strategy has one |
| 7 | The ceilings are applied again, so no floor above can push the price past them |

That last step is why a ceiling always beats a floor. Set a minimum price above your MSRP with a strategy capping at MSRP, and the price comes out at the MSRP, because step 7 pulls it back down.

Rounding happens after all of it, so a price you set a limit on can come out a cent or two away from your number. [Rounding](/repricer/strategies/rounding) covers what it does.

### What a manual price skips

None of the order above runs when the `Manual Price` field, in the `Selling Price` card, has a number in it. Your strategy does not run, no competitor is read, no limit is applied and nothing is rounded. Your number is what goes out.

So the field is worth checking whenever a listing is not doing what you expect. A manual price left on a listing from months ago looks like a broken strategy and is not one, and the listings table says so, because `Repricing Status` on it reads `Manual`.

### Where these numbers come from besides you

The `Pricing` tab is not the only place these fields get filled in, which is why a number can be different from the one you remember typing.

| It also changes when | What it changes |
| --- | --- |
| Someone edits the `Cost`, `Manual Price`, `Min`, `Max`, `MAP` or `MSRP` column straight in the listings table | The same field on this tab |
| Someone runs an [import](/repricer/uploads/imports) with those columns in the file | Every listing in the file, matched by SKU |
| A [sync link](/repricer/listings/sync-links) copies fields from another listing onto this one | Whichever fields that link covers |
| The listing is matched to a variant in the PIM | Your cost, MAP and MSRP, which the PIM then owns |

The [activity](/repricer/pricing-activity) page is where you find out what the repricer did and why, one price change at a time.

## When something goes wrong

### A field you cannot type into

Three different things make a field on the `Pricing` tab read-only, and what is next to the box tells you which.

| What you see | What it is | What to do |
| --- | --- | --- |
| A dashed box with `Auto` beside it | Your strategy calculates this number | Hover `Auto` to read the calculation, or change the strategy |
| A dashed box with `Managed by PIM` beside it | The listing is matched to a variant in the PIM, which owns your cost, MAP and MSRP | Click `Managed by PIM`, which opens that variant in the PIM in a new tab |
| Every price field dashed, and `Pause Repricing` grayed | Your role is below `Editor` | Ask an `Admin` on your team |

`Managed by PIM` only ever appears on three fields, `Unit Cost`, `MAP` and `MSRP`. Everything else on the tab stays yours. [The PIM connection](/repricer/integrations/pim) covers what the link does and how to switch it off.

### The messages under a field

A red message under a field on the `Pricing` tab means nothing was saved. Fix the number and it saves itself.

| Message | What to do |
| --- | --- |
| `Enter a valid amount` | You typed a zero, or nothing usable. Type a number above zero, or empty the field |
| `Maximum is $9,999,999.99` | Your number is too large for the field |
| `Must be ≤ max` and `Must be ≥ min` | Your minimum is above your maximum. Move one of them |
| `Must be ≤ MSRP` and `Must be ≥ MAP` | Your MAP is above your MSRP. Move one of them |
| `Must be > manual price` and `Must be < compare price` | Your compare price is at or below your manual price. Raise the compare price |

An amber message means the opposite. Your number saved, and it is telling you something about it.

| Message | What it means |
| --- | --- |
| `Your cost is above MAP` | You cannot advertise this listing at a price that covers your cost |
| `Your cost is above MSRP` | The manufacturer's suggested price is under what you paid |
| `Your cost is above MAP and MSRP` | Both of the above |
| `Lower than your cost` | Under `MAP` or `MSRP`, saying the same thing from the other side |
| `Below your cost` | Under `Manual Price`. You are selling this listing at a loss |

### The messages at the corner of the screen

A message in the corner is about the save itself and not about the number in the field.

| Message | What to do |
| --- | --- |
| `Failed to save changes.` | Try the same number again |
| `You do not have permission.` | Your role is below `Editor`. Ask an `Admin` on your team |
| `Price and cost values must be greater than zero.` | Type a number above zero, or empty the field |
| `Cost, MAP and MSRP on this listing are managed by your PIM connection. Edit them in the PIM instead.` | Change the value on the matched variant in the PIM |
| `Failed to update rule` | Pick the strategy again. The old one is still on the listing |
| `Failed to update repricing status` | Use `Pause Repricing` again |
| `Listing not found or access denied.` | Reload the page. The listing may have gone with the account it was on |

### A number you typed in the table did not stay

Editing one of the six price columns straight in the listings table saves the same way this tab does. One difference is worth knowing about: a save that fails there puts the old number back and tells you nothing.

So if a number you typed into the table is not the number you see a moment later, open the listing and type it on this tab. Here the message explains itself.

## Where to go next

<Columns cols={2}>
  <Card title="Cost, fees and profit" icon="receipt" href="/repricer/listings/costs-and-fees">
    Where your unit cost comes from, and what the repricer estimates on top of it.
  </Card>

  <Card title="The price floor and ceiling" icon="arrow-down-to-line" href="/repricer/strategies/price-floor">
    The strategy setting that decides whether you type your minimum or it is calculated.
  </Card>

  <Card title="Safety nets" icon="shield" href="/repricer/strategies/safety-nets">
    The switches that turn your MAP and MSRP into a floor and a ceiling.
  </Card>

  <Card title="The PIM connection" icon="link" href="/repricer/integrations/pim">
    Why cost, MAP and MSRP lock, and what happens to them when you disconnect.
  </Card>
</Columns>
