Catalog raises $3M to build the product data layer for AI commerce. Read the announcement.
All posts
Product Data

Retail price management starts with product identity

Learn how product IDs, live prices, channel feeds, competitor monitoring, and approvals keep retail prices accurate across storefronts and marketplaces.

A blank white price tag rests diagonally on beige fabric.

Retail price management gets messy before a number changes. One product family may contain several sellable variants, and each variant can carry different offers by seller, region, channel, or promotion. If identity, effective time, or source is unclear, a correct price can reach the wrong listing, or a promotion can remain after it ends. Brands need a reliable path from approved offer to each surface, plus evidence of what the shopper sees. At Catalog, we structure live product and offer data; your pricing system remains the authority for the approved amount.

Retail price management connects decision and delivery

Retail price management is the operating process that assigns an approved price to the correct item and offer, publishes it to the intended channels, and reconciles the shopper-facing output. It governs price sources, approvals, timing, channel formatting, and exception handling.

Several nearby jobs often get mixed together:

  • Pricing strategy sets the goal, such as a target margin or market position.
  • Price optimization recommends a price based on costs, demand, and business rules.
  • Repricing executes price changes automatically under configured rules.
  • Competitive monitoring records prices and offer details observed elsewhere.
  • Price management governs which price is approved for each product, seller, market, and time, then controls how that price reaches each channel.

Those jobs can share systems and data. They still need separate responsibilities and records. Consistency does not require the same number everywhere. It requires every visible price to match the approved variant, channel, seller, market, and effective period.

Model the sellable item before its price

A product family is not itself a priceable offer. A family can contain multiple variants, and each variant can have several offers. Keep those records distinct so a price change for one size, seller, or market does not spread to the others.

RecordExampleFacts to keep
Product familyRain shell jacketBrand, model, category, shared product content
Sellable variantNavy, medium, single itemCanonical variant ID, merchant stock keeping unit (SKU), Global Trade Item Number (GTIN), color, size, pack quantity
OfferDirect site, United StatesSeller, channel, market, currency, condition, fulfillment, availability
Price versionSale price on that offerRegular and sale values, effective start and end, time zone, reason, approver

The family groups shared facts. The variant describes exactly what a shopper receives. The offer says who sells it, where, and under what conditions. A price version records when an amount applies.

For example, a brand's navy medium jacket might have a $129 USD direct-site offer and a $119 USD Amazon offer. A competitor listing observed at $112.50 is a third record. Each amount can be accurate because each describes a different offer or source. A single unqualified price field cannot express that context.

An approved variant offer feeds a storefront and marketplace, while an observed competitor price goes to review.

Match the exact sellable item before joining prices

Start with a canonical variant ID, then map each source identifier to it. A merchant stock keeping unit (SKU) belongs to one business. A Global Trade Item Number (GTIN) identifies a trade item, and it can differ by variation or package. GS1 notes that item references can vary with details such as model, color, size, weight, and presentation; the number itself does not encode the product's meaning. GS1's GTIN guidance explains why identifiers need a product record behind them.

Keep source namespaces. Your SKU, a supplier's part number, a Google product ID, an Amazon Standard Identification Number (ASIN), and a seller SKU are not interchangeable keys. Map each to the canonical variant and preserve the original value. Google Merchant Center uses a unique product ID for each variant and a shared item_group_id for the family. Its rules also require variant details, including price, to match the selected product on the landing page. See Google's item group guidance.

A competitor match should mean the same sellable item, including the relevant size, color, pack, condition, and market. A similar title or image is only a clue. Record the evidence and match confidence, and send ambiguous pairs to review before using them for price comparison or repricing. A unit-price comparison can help compare an 18-ounce package with a 20-ounce package, but it does not make the products identical or make one package's price valid for the other. Our product matching guide covers the identity relationships that keep those joins safe.

Give every price scope, timing, and provenance

A useful price record answers five questions: which item, which offer, what amount, when it applies, and where the value came from.

FieldWhy it matters
Item and offer scopeCanonical variant ID, seller, channel, country or store, currency, and condition show which offer the value describes.
Price typeRegular price, sale price, coupon, loyalty price, bundle price, and unit price have different rules and shopper conditions.
ValueStore a numeric amount and currency code. Preserve the tax and shipping basis required by the destination.
Validity and timeKeep effective start, effective end, and time zone separate from the time a value was observed or published.
Provenance and controlRecord the source system or page, capture time, raw and normalized values, approval version, and match confidence.

A live price is a price with an as-of time and a freshness threshold. Observed at says when a competitor offer was captured. Valid from says when your approved sale begins. Published at says when a channel accepted the update. Those clocks can differ. Keep them separate instead of hiding them under one update timestamp.

In an illustrative example, an internal sale and a market observation look different:

RecordValueMeaning
Direct offer for a navy medium jacket$129.00 USD, regularApproved direct-site price
Direct promotion$109.00 USD, valid November 20 through November 30Time-limited price for that offer
Marketplace listing$119.00 USDSeller-specific offer
Competitor observation$112.50 USD, captured at 09:15 Coordinated Universal Time (UTC)External signal, not an approved brand price

The same variant may therefore have several valid prices at once. Store each amount with its seller, destination, and time window. Do not overwrite an approved price with a price scraped from another retailer.

Assign one owner to each price field

Price accuracy improves when every field has an accountable owner. The owner can vary by price type or channel, but the rule should be explicit.

System or teamTypical ownershipWhat it should not silently replace
Product master or product information management (PIM) systemProduct family, variant, GTIN, model, size, color, and packSeller-specific offer price
Pricing, enterprise resource planning (ERP), or commerce systemApproved base price and price guardrails for a defined channel or marketCompetitor observations
Promotion systemSale amount, eligibility, coupon conditions, and start and end timesProduct identity or unrelated market prices
Feed or marketplace connectorField mapping, delivery status, processing errors, and destination IDsThe business decision that approved the price
Competitive monitoring sourceExternal offer, seller, URL, availability, capture time, and match evidenceYour direct-site or authorized seller price

A commerce platform may own the approved price, or a pricing service may own it and send updates to commerce. Decide which system wins for each price scope. Keep raw imported values beside normalized values and document any conversion. When two sources conflict, route the record to its owner instead of letting the latest write win by default.

Channel feeds require post-publication reconciliation

A product data model should feed each destination through a channel-specific mapping. The feed is an output of the approved record, not a second master. Define how each destination receives the variant ID, price type, amount, currency, effective dates, and variant URL. Prices may differ by channel or market when policy allows it; encode those differences in the price matrix instead of relying on manual edits to exported files.

Google Merchant Center expects the submitted price and currency to match the product landing page and checkout. For a sale, submit the regular price, the sale price, and the period when the sale applies. A timing gap between the feed and the site can create price mismatches, especially when a sale starts or ends. Google's price guidance and mismatch troubleshooting spell out those requirements. The Merchant API also supports partial updates for attributes that change often, such as price and availability, and exposes processing status and data-quality issues in the resulting product. Google's product update documentation describes that flow.

On Amazon, keep the catalog item's ASIN mapped to the seller's listing SKU and offer. Amazon's Selling Partner API models catalog items and seller listings as separate resources, and listing operations can update price and inventory for a seller SKU. Taken together, those separate resources make the distinction clear: use the ASIN to map the catalog item and the seller SKU to key a seller-specific price update. See Amazon's listing management guide.

Post-publication reconciliation compares the approved record with the selected variant on the product page, checkout, feed response, and marketplace offer. A file can pass formatting validation while carrying the wrong variant or amount. Feed acceptance is not proof that the shopper sees the intended offer. Our product feed management guide covers channel schemas and feed operations in more detail.

Use competitor prices as observations, not commands

Choose competitive coverage around a decision. Specify which competitors, products, channels, regions, and stores matter, then set a refresh cadence that matches how quickly someone must act. A daily snapshot may suit category planning. A repricing workflow needs faster observations and a clear rule for when a record is too old to use.

For every observed offer, keep the source URL, seller, price type, amount, currency, availability, fulfillment or shipping detail, promotion terms, capture time, matching evidence, and confidence. The lowest visible number may belong to a different pack, an unavailable item, or a third-party seller. A monitoring system should surface those differences rather than flatten them into one market price.

Use observations to raise a review or feed a governed pricing rule. A useful alert names the exact matched variant, market, seller, observed movement, current approved price, source, and capture time. A pricing owner can then weigh that signal against cost, margin, inventory, promotions, and channel policy. Competitor data should never write directly into an approved price field.

Our price monitoring API guide covers external data collection, coverage, and freshness. For the competitive-monitoring part of the workflow, price management begins after collection: match an observation to the correct item, mark its age and confidence, and route it to the right decision-maker.

Govern changes with a release loop

A short control loop makes price changes traceable from approval to shopper-facing output:

  1. Scope the change. Identify the variant, seller, channel, market, price type, and currency.
  2. Version the request. Store the reason, approving owner, effective start and end, and time zone with the proposed value.
  3. Pre-release validation. Identity, currency, price floors, promotion eligibility, and price-window overlaps must pass. Incomplete or ambiguous records stay blocked.
  4. Publish on schedule. Coordinate the storefront, checkout, and channel feed at the approved effective time. Retry failed destinations and record their responses.
  5. Output reconciliation. The selected variant, product page, checkout, feed response, and marketplace offer must line up with the intended price.
  6. Resolve exceptions. Alert the owner on mismatches, stale data, and rejected records. Keep the previous approved version available for rollback.

Track time from approval to accepted publication, price-mismatch rate by variant and channel, stale-observation share, and the number of unmatched high-priority competitor offers. These measures expose problems that a successful file upload can miss.

Set freshness targets by use case, not by the word “live.” A market benchmark can use a scheduled refresh. A promotion cutover needs a known start and end time, a coordinated update, and a reconciliation after the destination processes it. A price record that feeds a shopper-facing decision should display its latest observation and publication times.

Where Catalog fits

Catalog gives product and ecommerce teams a live, normalized product data layer with typed variants, offers, identifiers, and freshness signals. We keep those records in sync and can publish machine-readable product data to artificial intelligence (AI) shopping surfaces. Your product information management (PIM), enterprise resource planning (ERP), commerce platform, or pricing engine keeps ownership of the source facts and approved price decisions. That gives AI shopping systems structured context without replacing those source systems.

If a dependable product-data layer is the missing part of your price workflow, talk with Catalog.