Resources · AI Search for Ecommerce

How Should Subscription, Discount and Coupon Prices Be Marked So AI Reports the Right Price?

To get AI to report the right price, keep one clear active price that anyone can pay today, and label every other price for what it is. The others are a strikethrough original price, a time-limited sale, a member price, a subscription price per period, or a coupon that needs a code. State each one in text next to the price, with its conditions and end date. Then mirror the same structure in your structured data and product feeds. Google's product markup separates active, strikethrough and member prices, and Merchant Center has separate fields for subscription costs and promotions. Assistants misreport prices when a page shows several numbers without saying which is which. They then pick the lowest, the largest or the one in the biggest font.

How should each type of price be marked?

Price type On the page In structured data and feeds
Regular price "£40" The offer's price
Sale price "£30, was £40. Sale ends 30 November." Active price £30, with the original as a strikethrough price; sale end date where supported
Member or loyalty price "£34 for members (free to join)" A separate member price, marked for the membership tier
Subscription price "£25 per month with a monthly subscription; £40 as a one-off purchase" Structured data: one-off price as the offer's price. Merchant Center: subscription cost with its period only where supported, which for physical goods means US Shopping ads in certain categories, with the item's price set to 0 and the highest recurring payment as the subscription amount
Coupon or code price "£40. Use code SAVE10 for 10% off your first order." Regular price only; the coupon in a separate promotion record
Volume or bundle price "£40 each; £100 for three" Separate offers or bundles, not a lower unit price on the main offer

Google's merchant listing documentation sets out the rules for markup. The active price has no price type and no member tier. A strikethrough price is marked with a price type of StrikethroughPrice. A member price is marked with a membership tier. The documentation also says price specifications that contain both a price type and a member tier are ignored.

How do I prevent coupon prices from becoming the public price in AI search?

Keep the coupon price out of the main price everywhere.

  • Show the regular price as the price, with the coupon as a separate line: "Use code WELCOME10 for 10% off your first order."
  • Do not put the discounted figure in headings, titles or structured data price fields. A title such as "Running shoes from £36 with code" becomes "£36" in an AI answer.
  • Keep coupons in a promotions feed where your shopping platform supports it. Merchant Center, for example, has a separate promotions data specification for offers that need redemption codes.
  • State who can use the code: first order only, members only, minimum spend.
  • Publish your current offers on one page, so assistants have an accurate source for "discount code" questions, as covered in how to check whether AI assistants invent coupon codes for your online store.

How should subscription discounts be marked so AI does not report them as one-time prices?

Say the period every time the subscription price appears, and keep the one-off price visible:

  • Write the period into the price: "£25 per month", not "£25".
  • Show both options side by side: one-off purchase and subscription, with the saving explained.
  • State the commitment: minimum term, cancellation terms and when the price changes. For example: "£19 per month for the first three months, then £25 per month; cancel any time."
  • Use subscription fields in feeds where available. Merchant Center's subscription cost attribute records the period, the period length and the amount. For physical goods it is currently limited to the US, Shopping ads and certain product categories, with weekly, monthly or yearly periods only.
  • Keep the offer's main price as the one-off price in structured data, so the subscription price is not read as the standard price.

For software, show monthly and annual prices in the page's text. Say whether annual prices are billed yearly or per month. "£20 per user per month, billed annually (£240 per user per year)" leaves little room for error.

Why do assistants get prices wrong?

  • Several numbers, no labels. "£40 £30 £25" in a product card, with the meaning conveyed only by colour or strikethrough styling.
  • Prices in images or banners. A sale banner showing "30% off" that is not in the page text.
  • Headlines with the lowest price. "From £9" where £9 is a subscription or member price.
  • Inconsistent feeds and pages. A feed showing the sale price after the sale has ended.
  • Third-party pages that copied a promotional price.

How to find where old prices come from is covered in why AI quotes your old prices, plans or pricing tiers.

How do you test what assistants say?

Ask ChatGPT, Gemini, Perplexity and Google's AI features, several times each:

  • "How much does [product] cost?"
  • "Is [product] on sale?"
  • "How much is [product] with a subscription?"
  • "What is the cheapest way to buy [product]?"
  • "[Brand] discount code"

Check whether each answer gives the right price for the right condition. A good answer says, for example, "£40, or £25 a month on subscription, and 10% off your first order with a newsletter code". A bad one says "£25". Record the sources, and fix whichever page or feed produced the wrong number.

What about prices that differ by country or channel?

If prices differ by country, currency or sales channel, say so rather than letting assistants guess. Show the price in the local currency on each country version of the page, and link the versions with hreflang. If marketplace prices differ from your own store, state your own price clearly and avoid implying it applies everywhere. Where tax or delivery is included in some markets and not others, say which, since "£40 including VAT" and "$40 plus tax" are easy to confuse. Consistent, labelled prices across versions are what let assistants give the right answer to the right shopper.

What should you check after a sale ends?

  • The active price is back to regular, on the page, in markup and in feeds.
  • Strikethrough prices and sale end dates are removed.
  • Sale banners and titles are updated.
  • Promotions records are ended.
  • Third-party listings that copied the sale price are corrected if they matter.

What might an illustrative case look like?

Consider an illustrative coffee subscription brand whose products were quoted by assistants at £7, the member subscription price for a bag. The one-off price was £12. Its product titles read "Single-origin coffee from £7", its structured data used £7 as the offer price, and the page showed £12 and £7 side by side without labels. The brand changed titles to the product name alone and put "£12 one-off, or £7 per bag on a monthly subscription" in the text. It set the one-off price as the active price in markup and the member price as a separate price specification. Within a few weeks, most answers gave both prices with their conditions.

What do people ask about marking prices for AI?

Should the sale price be the main price in markup?

During the sale, yes, as the active price, with the original as a strikethrough price. Change it back when the sale ends.

Can member prices be the headline price?

Only if membership is automatic and free for everyone. Otherwise show the regular price as the headline and the member price as a labelled alternative.

Do assistants read structured data prices?

Some systems do, but several assistants read only visible text when they fetch a page. Label prices clearly in text as well as in markup.

Published by The Kovmere Team · updated Sep 29, 2026 · More resources