When Your AI Starts Fighting Itself: The Curious Problem of Competing Ecommerce Optimisation

While building GrowCentric.ai, I stumbled across a proper head-scratcher. The platform uses machine learning and AI to automatically optimise ecommerce marketing campaigns. It analyses shipping costs, delivery speeds, product margins, and discovers hidden gem products that could be selling better. Brilliant stuff. But then something dawned on me: what if Shop A, Shop B, and Shop C are all selling the same Sony headphones in Manchester, all using the platform, and they're all competing for the same customers? The algorithm would essentially be playing chess against itself. Three times over. This is one of the most fascinating problems in modern AI: multi-agent conflict in shared optimisation systems. And it's something I've had to think deeply about.

The Problem in Plain English

Let me paint the picture properly. GrowCentric.ai does several clever things:

It analyses your product catalogue and identifies which items have the best profit potential. It looks at shipping costs and speeds (because free next-day delivery is gold dust in ecommerce). It automatically adjusts your ad spend across Google, Meta, and wherever else you're advertising. And it uses machine learning to react to what your competitors are doing.

Now, here's where it gets spicy. Say three online shops in Birmingham all sell the same Dyson vacuum cleaner. All three offer free next-day delivery. All three use GrowCentric.ai. The algorithm's job is to maximise profit and growth for each shop.

What happens next is genuinely fascinating from a mathematical perspective, and it's not necessarily what you'd expect.

The Prisoner's Dilemma of Digital Advertising

Before I dive deeper, let me introduce you to a concept that economists have been banging on about since the 1950s: the Prisoner's Dilemma. It's dead simple but incredibly powerful.

Imagine two criminals get nicked for a robbery. The police separate them and offer each the same deal: grass on your mate and you go free whilst they get ten years. If both stay quiet, they each get one year. If both grass, they each get five years.

The rational choice for each prisoner, acting alone, is to betray their mate. But if they both think this way, they both end up worse off than if they'd cooperated.

This exact dynamic plays out in advertising. When cigarette adverts were legal in America, tobacco companies faced this dilemma constantly. If Marlboro advertises heavily and Camel doesn't, Marlboro wins customers. If both advertise heavily, they cancel each other out and just waste money. If neither advertises, they save money and keep their market shares.

The result? Both companies advertised like mad, spending fortunes to essentially maintain the status quo. The advertising spending became a pure dead weight cost.

Now imagine this happening not between two companies making their own decisions, but between three identical algorithms all trying to outsmart each other in real time. That's the challenge I'm solving with GrowCentric.ai.

What Actually Happens: Three Scenarios

Let me walk through what the platform would do in the real world, using the Dyson vacuum example.

Scenario 1: Identical Offerings

Shop A, B, and C all sell the same vacuum at £399, all with free next-day delivery. Their profit margins are identical.

When the algorithm optimises for Shop A, it might think: "Right, I need to bid higher on Google Shopping ads to appear first." Shop B's algorithm thinks the same. Shop C's algorithm thinks the same.

Within minutes, you could see ad costs spiralling upward. Each algorithm keeps raising bids because, individually, that's the rational thing to do. But collectively, they're all making each other worse off.

This is called a "bidding war" or "escalation to Nash equilibrium." The Nash equilibrium, named after the mathematician John Nash (yes, the Beautiful Mind bloke), is the point where no one can improve their position by changing strategy, assuming everyone else stays put. Unfortunately, in competitive advertising, this equilibrium often means everyone's paying through the nose.

Scenario 2: Slight Differences

Now let's say Shop A charges £3.50 for delivery. This changes everything.

The algorithm for Shop A would likely recognise: "Hang on, this shop is at a disadvantage on this particular product. Let's redirect budget to products where it's more competitive."

Meanwhile, Shops B and C still compete for the free-delivery crowd, but now it's a two-way fight instead of three-way.

This is actually how things tend to work in the real world. Total uniformity is rare. One shop might have slightly better margins because of supplier relationships. Another might have a warehouse closer to certain postcodes, enabling genuine same-day delivery. A third might have a loyal customer base that slightly prefers their brand.

Scenario 3: The Algorithm Learns to Differentiate

Here's where it gets really interesting. A sufficiently clever algorithm wouldn't just react to current conditions. It would learn from patterns over time.

GrowCentric.ai might discover:

Shop A does brilliantly with first-time buyers in London but struggles in Manchester. Shop B has a core audience of over-50s who respond to different ad copy. Shop C dominates on mobile purchases but underperforms on desktop.

By identifying these niches, the algorithm can guide each shop toward its natural strengths rather than having them batter each other over the same customers.

The Mathematical Heart of the Problem

Alright, let's get a bit nerdy. There are several mathematical frameworks that help understand and potentially solve this problem.

Nash Equilibrium

Formally, a Nash equilibrium exists when:

For each player i, their strategy sᵢ is optimal given all other players' strategies s₋ᵢ

Or in plainer terms: nobody can do better by changing what they're doing, assuming everyone else keeps doing their thing.

In the advertising context, if three shops all bid £2 per click and changing to £2.10 or £1.90 would make any individual shop worse off, that's a Nash equilibrium.

The problem is, this equilibrium might be rubbish for everyone. They might all be paying way more than necessary because of the competitive pressure.

Pareto Efficiency

This is where it gets hopeful. A Pareto efficient outcome is one where you can't make anyone better off without making someone else worse off.

The key insight: Nash equilibrium and Pareto efficiency aren't the same thing.

Three shops might reach a Nash equilibrium where they're all spending 40% of revenue on ads. But there might be a Pareto superior outcome where they each spend 25% and make more profit, if only they could coordinate.

In economic notation:

An allocation x is Pareto efficient if there exists no allocation y where:

uᵢ(y) ≥ uᵢ(x) for all i, and

uᵢ(y) > uᵢ(x) for at least one i

Where u represents utility (or profit, in our case).

Multi-Agent Reinforcement Learning

This is the actual technical field that deals with this problem. When multiple learning agents operate in a shared environment, it's called Multi-Agent Reinforcement Learning (MARL).

The core challenge: the environment becomes "non-stationary" from each agent's perspective. When Shop A changes strategy, the world that Shops B and C operate in literally changes. It's like trying to hit a target that moves every time you adjust your aim.

Researchers have developed several approaches:

Independent Learning: Each agent learns as if the others don't exist. Simple but often leads to oscillating behaviour where everyone keeps adapting to each other endlessly.

Centralised Training with Decentralised Execution: Train all the agents together so they learn to account for each other, then let them act independently. This is promising but requires access to everyone's data, which competing businesses might not fancy.

Mean Field Games: Model the aggregate behaviour of many agents rather than tracking each individually. Useful when you have loads of competitors but any single one has minimal individual impact.

The Elephant in the Room: Algorithmic Collusion

Here's where things get legally and ethically dicey. If GrowCentric.ai's algorithm learns that it's better for everyone to keep prices and ad bids stable, isn't that effectively collusion?

This is a genuine concern that competition authorities worldwide are wrestling with. In 2024, the US Department of Justice, the FTC, the UK's Competition and Markets Authority, and the European Commission issued a joint statement warning about "the risk that algorithms can allow competitors to share competitively sensitive information, fix prices, or collude."

The RealPage case in America is instructive. Multiple landlords used the same algorithmic pricing software, and they're now facing antitrust lawsuits alleging that the shared algorithm effectively coordinated their rental prices upward.

The key distinction seems to be:

Probably fine: Using algorithms that react to publicly visible competitor prices

Probably not fine: Sharing confidential pricing data through a common algorithm that then sets everyone's prices

For GrowCentric.ai, this means being extremely careful about what data is shared between clients and how the algorithm uses competitive information.

Will This Actually Happen in Real Life?

Let's be realistic about how this plays out in practice.

The good news: Perfect competition between identical offerings using identical algorithms is actually quite rare.

In the real world:

Different shops have different supplier costs. That creates margin differences that the algorithm can exploit.

Customer loyalty exists. Someone who's bought from Shop A before is more likely to return, even if Shop B shows up first in ads.

Geographic factors matter. A shop in Newcastle might have faster delivery to Scotland than a shop in Bristol.

Product mix varies. Even if two shops both sell Sony headphones, one might also sell premium audio equipment whilst the other focuses on budget options. This affects which customers they attract.

Brand positioning differs. Some shops cultivate a luxury image; others compete on value. This affects which customers respond to their ads.

The challenging news: Even with differences, there's still plenty of overlap where direct competition occurs.

And here's the critical point: even a small amount of head-to-head competition can cause significant cost escalation in ad bidding.

If Shops A and B are both targeting the same 10,000 potential customers for the same product, and their algorithms both identify this as a high-opportunity segment, you'll see bidding wars on those exact customers. The fact that they also have distinct customer segments doesn't prevent the conflict in the overlap zone.

How I'm Handling This with GrowCentric.ai

Right, so what's the solution? How do I optimise for multiple competing clients without creating a digital demolition derby?

Approach 1: Embrace Natural Differentiation

The most straightforward approach is to lean heavily into the differences that already exist between clients.

Rather than: "Here's the optimal strategy for selling Dyson vacuums"

The algorithm asks: "Given Shop A's specific strengths, margins, and customer base, what's their optimal strategy?"

This means the optimisation becomes shop-specific rather than product-specific. Even if three shops sell the same product, their optimal approaches might differ based on their individual circumstances.

The mathematical framework here is Pareto optimisation. Instead of maximising a single objective, I find solutions that lie on the Pareto frontier, where improving one shop necessarily means harming another.

Approach 2: Intelligent Segmentation

The algorithm actively identifies and separates market segments where different clients have natural advantages.

Example: If Shop A converts better on mobile and Shop B converts better on desktop, the algorithm leans into this. Shop A focuses mobile ad spend on contested products; Shop B focuses desktop ad spend.

This isn't about artificially dividing the market. It's about recognising that different shops genuinely do perform differently across segments and playing to those strengths.

Approach 3: Focus on Underserved Opportunities

GrowCentric.ai's ability to identify "hidden gem" products is actually the key to avoiding conflict.

If the algorithm finds products that are selling well but not being promoted, and these differ across shops (they usually will, based on supplier relationships and inventory), then each shop can grow without directly cannibalising the others.

This shifts the focus from "win the battle for established products" to "find and develop new opportunities."

Approach 4: Dynamic Budget Allocation

Instead of fighting for the same keywords at the same time, the algorithm intelligently shifts budgets toward areas of lower competition.

If Shop A and Shop B are both hammering "Dyson V15" ads at 10am, perhaps Shop A should focus there while Shop B focuses on "cordless vacuum reviews" content. Then they swap emphasis based on performance data.

This requires genuine intelligence about when direct competition is worth it versus when it's better to find alternative paths to the customer.

Approach 5: Transparent Communication (Where Appropriate)

This is delicate territory because of competition law, but there are legitimate ways for a platform to help clients understand the competitive landscape.

GrowCentric.ai can tell Shop A: "Competitors are heavily targeting this product segment. Your current approach will require significant budget to compete effectively. I've identified alternative high-opportunity areas where competition is lower."

This isn't sharing confidential competitor data. It's providing market intelligence that helps clients make informed decisions about where to focus.

The Social Welfare Perspective

Here's an interesting philosophical question: should GrowCentric.ai optimise for social welfare across all its clients, or purely for each individual client?

If I optimise for total social welfare (the sum of all clients' profits), I might sometimes recommend that Client A back off from a particular segment because Client B has a stronger position there. Client A might be slightly worse off individually, but the platform as a whole does better.

The mathematical framework here is mechanism design. Can I design a system where acting in self-interest leads to collectively beneficial outcomes?

One approach: tiered pricing based on competitive overlap. If your target segments overlap heavily with other clients, you pay more for the optimisation service. This creates an incentive for clients to naturally differentiate.

Another approach: success sharing. If the platform's overall client base succeeds, everyone benefits through lower platform fees or additional features. This aligns individual and collective incentives.

Building Multi-Agent Awareness Into the System

This depends entirely on how the system is designed.

A pure reinforcement learning system that only sees its own client's data won't have the information needed to recognise when it's fighting against itself. It'll just see fluctuating ad costs and try to adapt.

A more sophisticated system that has visibility across clients can:

Detect when multiple clients are competing for identical customer segments. Recognise patterns that suggest escalating bidding wars. Identify opportunities for Pareto improvements where clients could collectively do better.

Building this requires deliberate architectural choices. The system needs to be designed with multi-agent awareness from the ground up. That's exactly what I'm doing.

Practical Recommendations

For anyone building something similar, here's what I've learned:

1. Build in differentiation detection from day one

Your onboarding process should extensively map each client's unique strengths, margins, customer base, and competitive advantages. This isn't just good business practice; it's the foundation for avoiding harmful competition between your own clients.

2. Create "collision detection" systems

Monitor when multiple clients are targeting the same customer segments with the same products. When overlap reaches a threshold, flag it for review and potentially adjust strategies to reduce direct competition.

3. Implement "soft constraints" around contested areas

Rather than letting all clients bid aggressively on the same opportunities, the system should guide clients toward their areas of strength. This might mean recommending budget shifts away from highly contested segments.

4. Develop a "discovery" focus

Put significant algorithmic effort into finding new opportunities rather than optimising competition for existing ones. If each client has a stream of fresh opportunities, the need to fight over established ground diminishes.

5. Consider explicit market separation for premium tiers

For high-value clients, you might offer "exclusive optimisation zones" where they have first right of refusal on certain customer segments. This is essentially mechanism design to prevent conflict.

6. Stay far away from anything that looks like price coordination

The algorithm should never, ever recommend pricing strategies based on what other clients are charging. That's a one-way ticket to antitrust trouble.

The Bigger Picture

What I'm really talking about here is a fundamental tension in platform businesses that serve competitors.

Google faces this with advertisers. Amazon faces this with marketplace sellers. And any AI optimisation platform faces it with their clients.

The resolution isn't a single clever algorithm. It's a combination of:

Technical intelligence about differentiation and opportunity discovery. Business model alignment between platform success and client success. Ethical guardrails that prevent the platform from facilitating harmful competition. Transparent communication about the competitive landscape without sharing confidential data.

GrowCentric.ai won't "realise" the problem automatically. I've built it with this problem in mind, with systems designed to detect, measure, and mitigate competitive conflict between clients.

Done well, this becomes a competitive advantage. "I optimise each client for their unique position, avoiding the wasteful bidding wars that plague other platforms."

Done poorly, you end up with clients who are all paying more to achieve the same results they'd have gotten without the "optimisation" at all.

Final Thoughts

The multi-agent conflict problem in ecommerce optimisation is genuinely fascinating. It touches on game theory, mechanism design, multi-agent reinforcement learning, and competition law all at once.

The key insight is that "optimising" isn't a single thing when you have multiple agents in the same environment. You need to think carefully about:

What are you optimising for? (Individual client profit? Total platform profit? Market efficiency?)

What information does each agent have? (Own data only? Aggregate competitor data? Full visibility?)

What constraints exist? (Legal, ethical, practical?)

How do you align incentives? (Platform success tied to client success?)

For GrowCentric.ai, my path forward is:

Heavy investment in differentiation discovery and niche identification. Collision detection systems that flag competitive overlap. Strategic guidance that steers clients toward their unique strengths. A business model that rewards collective success rather than just individual wins.

The mathematics is there to support these approaches. The question is whether the platform is designed to use it. I've made sure mine is.

And if you're a shop considering using an optimisation platform, it's worth asking: "What happens when my competitors use the same system?" If the platform can't give you a good answer, that might tell you something important.

This blog post explores the theoretical and practical challenges of multi-agent optimisation in ecommerce. The scenarios described are illustrative examples based on established principles from game theory, economics, and machine learning research.

Ready to optimise your ecommerce marketing intelligently? Visit GrowCentric.ai to learn more.

Building an AI platform that serves competing clients? I can help you design systems that identify differentiation opportunities, avoid wasteful bidding wars, and stay on the right side of competition law. Let's talk about turning multi agent conflict into a competitive advantage.