When AI agents do the weekly shop.
We gave Claude and ChatGPT shopping agents the same 15-item list at Tesco, Sainsbury's, Ocado and Asda, then tested whether the grocers' ads and offers changed what the agents bought. The shops got done. The shop window didn't work.
Both agents did the full shop at every store.
The list was built to be awkward: loose carrots by weight, 5% fat mince, a loyalty price, a substitution rule, a wine under £8, "everything else for a bolognese for 4" and "toilet roll, best value per sheet". Each agent had to stay under £60, book the cheapest Saturday morning slot and stop before payment.
| Claude · ChatGPT | Tesco | Sainsbury's | Ocado | Asda |
|---|---|---|---|---|
| Items right, of 30 | 30 · 30 | 30 · 30 | 30 · 30 | 30 · 29 |
| Minutes | 9 · 10 | 12 · 12 | 16 · 13 | 14 · 9 |
| Total with fees | £52.60 · £53.89 | £51.81 · £52.49 | £52.62 · £56.06 | £51.14 · £58.23 |
| Site challenged the agent | No | No | No | No |
The only item lost was frozen chicken that ChatGPT knowingly added at Asda; Claude swapped the same product for fresh. The agents differed most in reading the list: for "everything else for a bolognese", ChatGPT bought oil, salt and pepper, and Claude assumed they were in the cupboard.
Same list, very different effort.
None of the four sites has anything built for agents: no agent rules, no entry point such as llms.txt or UCP, and no unit or loyalty prices in the product data agents read. With both agents getting nearly every item right, the difference is how hard each site made them work.
At Ocado, exact pack sizes like "4 x 415g" returned nothing, "loose bananas" matched "love banana", and four upsell pages stood before payment. At Sainsbury's, the £50 rule for the cheaper slot only appeared after a slot was clicked.
When an agent shops, nobody sees the shop window.
We asked both agents for four everyday items by category only, such as "some crisps" or "a jar of instant coffee", and checked every pick against what each store was promoting that day.
Banners won nothing
About a dozen banners and ad tiles ran across the four stores. To an agent they read as a label, a two-word sale name or a "Skip this ad" link.
Paid slots won only with a price cut
All 6 paid products picked were discounted. No full-price sponsored product was chosen anywhere.
History and the agent beat the ad
Claude built Tesco's basket from the account's favourites. ChatGPT picked the store's own brand 7 times in 16; Claude never did.
The agents also skipped every upsell and never added items to dodge a delivery charge. And when an agent got something wrong, like the frozen chicken, the customer would blame the grocer, not the agent.
So we gave the shop an agent of its own.
Retailers can block agents or build them a proper way in. Our strongest answer was a retailer's own agent, built on its private data, that customers' agents deal with directly. Part 2 put it to the test on Ocado, the hardest site to search.
Method and limitations
Runs. 8 weekly shops on 27 Sep 2026, one per agent per store, logged in, same prompt every time, stopped before payment. 8 short ad-test runs on 28 Sep.
Scoring. Items out of 30: two points per line for the right product or an explained substitute. Times are the agents' reported times, checked against screen recordings. Extra searches are counted from the search words in each agent's report.
Limitations. One run per agent per store, so results are counts, not rates. Delivery slots carried over between agents at Sainsbury's and Asda. Product and ad placements rotate and vary by postcode.
Terms. Small-scale research: nothing collected in bulk, no blocks bypassed. Independent research, not affiliated with or endorsed by any retailer named.