[ diagnostic ]

Shown but Not Selected: Why an Agent Picks a Competitor

Agent behavior changes with every model update.
Last verified: 2026-07-11

If you appear in AI shopping answers but the agent keeps picking a competitor, the cause is a selection gap, not eligibility: usually weaker attribute completeness, thinner review depth, a self-applied 'Sponsored' tag, or position bias.

On this page
  1. Appearing is eligibility; being chosen is selection
  2. Cause 1: you are not comparable against your peers
  3. Cause 2: your review depth is thin
  4. Cause 3: you look sponsored, not endorsed
  5. Cause 4: it is position bias, not your offer
  6. Stop guessing and measure your win rate
  7. This page diagnoses; the linked pages fix

Symptoms this page covers:

  • Your products appear in AI shopping answers, but the agent keeps recommending a competitor instead of you.
  • You clear eligibility and your data validates, yet you are rarely the pick for the queries you should win.
  • A rival with a similar or worse price is chosen ahead of you, repeatedly, and you can't see why.
  • You changed your product data, but your agent win rate did not move, and you can't tell which cause is yours.

Key takeaways

  • Appearing in an AI answer is eligibility; being the recommended pick is selection. If you show up but lose, work the selection causes, not the eligibility ones you already cleared.
  • Diagnose which of four gaps is yours before touching anything: you are not comparable against peers, your review depth is thin, you look sponsored instead of endorsed, or it is provider-specific grid position, not your offer at all.
  • Three of the four are content gaps you can close. The fourth, position bias, is a measurement problem first, so measure where you land before you re-guess your content.
  • This page finds the cause. The fixes live in the catalog and platform pages it hands you to, and the honest test of any fix is your agent win rate, measured per engine.

Appearing is eligibility; being chosen is selection

This page is for the harder half of the funnel: you already appear in AI shopping answers, but the agent keeps recommending someone else. That is a different problem from being absent. If your products never surface at all, you have an eligibility or legibility gap, and the flow for that is why you're not in ChatGPT shopping, not this one. Stay here only if you can see yourself in the candidate set and still lose the pick.

The open commerce protocols draw this line themselves: the Agentic Commerce Protocol states that implementing it does not guarantee automatic product listings, and that each AI platform "will manage their own process" for how businesses participate.Spec-factAgentic Commerce Protocol So clearing the protocol bar and being the product an agent recommends are two separate outcomes. Eligibility gets you shown; selection decides who wins, and no public spec governs it. That means "shown but not selected" is almost never fixed by re-validating your feed or hunting an enrollment switch. It is fixed by finding the specific signal a stronger competitor carries that you do not.Hypothesis (our analysis)

The instinct is to change several things at once and refresh the agent to see what sticks. Resist it. Work the four causes below in order, stop at the first one that is true for you, and hand yourself off to the page that fixes it. This page diagnoses; it does not re-teach how agents choose or restate the fixes.

Cause 1: you are not comparable against your peers

The most common reason a shown product loses is that it is under-described relative to the listings it is being compared against. You filled the fields your platform marked "required" and stopped, while the category leaders also filled weight, dimensions, material, compatibility, and use-case. We expect an agent comparing within a category to favor the item it can actually compare on. Every attribute your peers expose and you leave blank is a comparison you sit out, so a complete listing can beat yours even when your product is better.Hypothesis (our analysis) This is a judgment against your peers, not against a validator, which is exactly why no eligibility check flags it.

To check it, pull up the top three competing listings for the query you are losing and write down every attribute they expose. Then diff that list against your own listing and against your feed. The fields they fill and you do not are your gap. Read your descriptions the same way an agent relays them: do they answer the concrete questions a buyer actually asks (fit, compatibility, use-case), or do they trade in adjectives that carry no comparable signal?

The fix is completeness measured against category norms, not against the minimum. Close the attribute gaps in your feed and structured data, and rewrite descriptions to answer buyer questions in plain sentences. The how lives in make your product feed AI-readable, and the reasoning behind why completeness moves selection is in how AI agents choose products. This is the cause to rule out first, because a thin listing loses on every other signal downstream.

Cause 2: your review depth is thin

Having a star rating at all is eligibility; the depth behind it is a selection lever. A lone average with no count, or three testimonials that have sat unchanged for years, reads as thin next to a rival showing scale and recent activity. In the ACES simulation, a product's rating was one of the levers that shifted which item agents chose, alongside price, grid position, and endorsement. ACES is a controlled simulation over a fixed model set (Claude, GPT-4.1, and Gemini variants), not live sales, so read it as a pattern to watch.ReportedACES, Allouah et al., arXiv:2508.02630 (2025-12-17) From that, we expect complete, recent, well-distributed review data to read as more credible depth than a bare number, giving a rating-sensitive agent more to weigh in your favor.Hypothesis (our analysis)

To check it, look at what your review markup actually carries. Does it expose a truthful review count alongside the average, individual reviews with real publication dates, and a distribution rather than a single figure? If a shopper on the page can only see "4.6 stars" with nothing behind it, an agent parsing the same page sees no more than that.

The fix is to carry count, recency, and distribution truthfully in both the visible page and the structured data, never a fabricated or inflated rating (that is both a rule violation and a weak signal). The markup shape is in product schema for AI shopping; why depth beats a bare average is in how AI agents choose products.

Cause 3: you look sponsored, not endorsed

This one is counterintuitive, and it is where the dark-pattern temptation sits. If any part of your agent-visible page carries self-applied "Sponsored" or "Ad" styling, whether a leftover ribbon component from an old paid-placement test or a promoted-listing class that persisted onto the canonical page, it may be actively costing you. ACES reports that across its simulated trials, agents consistently penalized a "Sponsored" tag and rewarded platform endorsements such as an "Overall Pick" badge, with endorsement among the strongest content signals it tested. Again, this is a simulation, not measured live behavior.ReportedACES, Allouah et al., arXiv:2508.02630 (2025-12-17) So chasing a paid-looking tag to court agents can backfire, and the durable move is the opposite: earn a genuine endorsement you qualify for on its own merits.Hypothesis (our analysis)

To check it, audit your templates and past A/B tests for any sponsored or ad styling still touching organic product pages, including classes and attributes inherited from ad-platform integrations. If a shopper never sees the badge but it lives in the markup, an agent still can.

The fix is two-sided: remove the self-applied sponsored framing from organic listings, and pursue real editor's-pick, verified-seller, or platform-endorsement programs where you legitimately qualify, rather than designing a lookalike badge that implies one. Faking endorsement markup is a fabricated-signal dark pattern, not a shortcut. The endorsement-integrity reasoning is in how AI agents choose products.

Cause 4: it is position bias, not your offer

Before you conclude your content is the problem, rule out that you are simply losing to where the agent placed you. ACES reports that grid position was a large but provider-specific lever, and that this position bias persisted even in text-only interfaces, which the authors note undermines any universal notion of a "top" rank.ReportedACES, Allouah et al., arXiv:2508.02630 (2025-12-17) That matters for diagnosis: a swing between winning and losing can reflect where a competitor's grid rendered rather than any content difference between you, and you cannot fully control placement. So if you keep re-editing content to fix what is actually a placement effect, nothing you observe will make sense.Hypothesis (our analysis)

To check it, stop changing things and measure. In repeated runs of the same prompt, record your on-screen position whenever results render as a grid, logged per engine rather than blended. If you keep losing from good positions, the cause is one of the content branches above. If your outcome swings with position while your content is unchanged, it is position bias, and the honest response is measurement, not another content guess. Note the neighboring case too: if you are specifically the cheapest offer and still lose, that has its own diagnostic, lowest price but not recommended.

The fix here is not a content edit at all; it is discipline. Establish where you land and which signals correlate with a position swing before attributing wins or losses to your own changes. The protocol for doing that, with prompts, sampling, and honest error bars, is in how we test agent selection.

Stop guessing and measure your win rate

Once you have found and closed your cause, resist eyeballing one engine and hoping. A single lucky or unlucky answer tells you nothing, and behavior reshuffles when models update. ACES documents that model updates can drastically reshuffle market shares, so a win you measured last quarter can quietly evaporate after a release.ReportedACES, Allouah et al., arXiv:2508.02630 (2025-12-17) The disciplined next step is to track your agent win rate across engines with a repeatable protocol, so a fix you shipped shows up as a real, repeatable change rather than a coincidence, and re-test after every major model update.

If your symptom is really that you appear in some engines and not others, or that your presence itself is inconsistent, that is a visibility question rather than a selection one: see the AI engine visibility gap. And if agents are quoting a stale price or wrong stock status for you, that is a data-accuracy fault worth fixing first, covered in when AI shows the wrong price or stock.

This page diagnoses; the linked pages fix

Keep the jobs separate. This is the decision tree you run after you notice you are shown but not chosen, to isolate the single cause. The fixes live elsewhere on purpose: the catalog work in make your product feed AI-readable, product schema for AI shopping, and product titles for AI agents; the selection model in how AI agents choose products; and the measurement in how we test agent selection. Its sibling diagnostics narrow the symptom further: lowest price but not recommended, the AI engine visibility gap, and wrong price or stock in AI answers.

Shown but not selected: common questions

My product appears in ChatGPT but it always recommends a competitor. Is that an eligibility problem?

No. Appearing means you cleared eligibility; losing the recommendation is a selection problem. Work the selection causes on this page (comparability, review depth, endorsement framing, and position), not your feed's eligibility settings.

Does adding a 'Sponsored' label help an AI agent pick my product?

The opposite is likely. ACES, a controlled simulation, reports agents consistently penalized a 'Sponsored' tag and rewarded genuine platform endorsements. Remove self-applied sponsored styling from agent-visible pages and pursue endorsements you can honestly earn.

How do I know if I am losing on content or just on grid position?

You cannot tell from a single answer. Record your on-screen position when results render as a grid, per engine, across repeated runs. If you lose from good positions, it is content; if position swings with no content change, it is position bias. Measure it before re-guessing.

[ newsletter ]