Module 5: Competition And Market

Where the market is going: today's map is no guarantee for tomorrow

Description

Lessons 2 through 4 built Mercado's complete competitive landscape — direct, indirect, and substitutes, with the "doing nothing" substitute identified as the biggest player of all, even though it doesn't share a quadrant with Mercado today. All that work shares a silent limitation: it's a snapshot taken today. This lesson asks what no snapshot can answer on its own: where is each player on the roster moving, and how solid does Mercado's open space stay if the market shifts underneath it?

Connection to the module. You're going to reuse the exact same competitiveMap and the same players from previous lessons — there's no new technical concept. The only difference is that this time we run the model twice, with two different snapshots of the same scene: today's market, and a reasoned projection of where it's heading. The difference between the two runs is, literally, the lesson.

An everyday analogy: the old highway and the new bypass

A roadside diner has been at the same crossroads for twenty years, thriving because that's where every truck and car traveling from one city to another has to stop for gas and a bite to eat. The owner looks around: there's no competing restaurant for miles in any direction. Today's competitive map correctly tells them their position is clear.

What that map doesn't tell them is that, fifteen kilometers away, construction is already finished on a new highway that diverts all that traffic onto a different route. The day the highway opens, the diner will still be at the exact same crossroads, with no new competitor in sight — and yet, business will collapse, because the terrain that made that position valuable changed, not because a rival occupied it, but because the flow that gave that position its meaning moved somewhere else. The owner's mistake wasn't about competition — it was about not looking ahead on a map that only showed the present. This lesson teaches you to look at the highway under construction, not just today's crossroads.

Worked example: Mercado's landscape, today versus three years from now

A real, already-visible technology trend: AI shopping assistants are starting to curate search results directly inside generic search engines —summarizing products, comparing options, recommending— instead of returning a raw list of links. If that trend advances, JustSearchOnGoogle stops being "broad but uncurated" and starts inching closer, little by little, to the exact ground where Mercado built its advantage. We model that projection by raising only that player's curation value —from 1 to 7— without touching anything about Mercado or the rest:

// Pedagogical model: places each player on a 2x2 map along two
// STRATEGIC axes (not objective market metrics) and flags whether
// "our" quadrant is open -- the space where Mercado can win without
// running head-on into another player.
function competitiveMap(us, players, axes) {
  const [xAxis, yAxis] = axes;
  const place = (player) => {
    const xSide = player.scores[xAxis.key] >= xAxis.midpoint ? xAxis.high : xAxis.low;
    const ySide = player.scores[yAxis.key] >= yAxis.midpoint ? yAxis.high : yAxis.low;
    return `${ySide} / ${xSide}`;
  };
  const usQuadrant = place(us);
  const placed = players.map((p) => ({
    name: p.name,
    type: p.type,
    quadrant: place(p),
    sharesQuadrantWithUs: place(p) === usQuadrant,
  }));
  const openSpace = !placed.some((p) => p.sharesQuadrantWithUs);
  return { us: { name: us.name, quadrant: usQuadrant }, players: placed, openSpace };
}

const axesDiscovery = [
  { key: 'breadth', label: 'catalog breadth', low: 'niche', high: 'broad', midpoint: 5 },
  { key: 'curation', label: 'curation depth', low: 'raw-search', high: 'curated', midpoint: 5 },
];
const us = { name: 'Mercado', scores: { breadth: 8, curation: 8 } };

const otherPlayers = [{ name: 'MegaStoreGenerico', type: 'direct', scores: { breadth: 9, curation: 2 } }];
const substituteToday = { name: 'JustSearchOnGoogle', type: 'substitute', scores: { breadth: 10, curation: 1 } };
const substituteIn3Years = { name: 'JustSearchOnGoogle', type: 'substitute', scores: { breadth: 10, curation: 7 } };

const today = competitiveMap(us, [...otherPlayers, substituteToday], axesDiscovery);
const in3Years = competitiveMap(us, [...otherPlayers, substituteIn3Years], axesDiscovery);

console.log('=== competitiveMap: today vs. 3 years from now ===\n');
console.log('-- TODAY --');
console.table(today.players);
console.log(`openSpace today: ${today.openSpace}`);

console.log('\n-- IN 3 YEARS (AI shopping assistants curate search) --');
console.table(in3Years.players);
console.log(`openSpace in 3 years: ${in3Years.openSpace}`);

What to expect. Running the file with Node produces exactly this output:

=== competitiveMap: today vs. 3 years from now ===

-- TODAY --
┌─────────┬──────────────────────┬──────────────┬──────────────────────┬──────────────────────┐
│ (index) │         name         │     type     │       quadrant       │ sharesQuadrantWithUs │
├─────────┼──────────────────────┼──────────────┼──────────────────────┼──────────────────────┤
│    0    │ 'MegaStoreGenerico'  │   'direct'   │ 'raw-search / broad' │        false         │
│    1    │ 'JustSearchOnGoogle' │ 'substitute' │ 'raw-search / broad' │        false         │
└─────────┴──────────────────────┴──────────────┴──────────────────────┴──────────────────────┘
openSpace today: true

-- IN 3 YEARS (AI shopping assistants curate search) --
┌─────────┬──────────────────────┬──────────────┬──────────────────────┬──────────────────────┐
│ (index) │         name         │     type     │       quadrant       │ sharesQuadrantWithUs │
├─────────┼──────────────────────┼──────────────┼──────────────────────┼──────────────────────┤
│    0    │ 'MegaStoreGenerico'  │   'direct'   │ 'raw-search / broad' │        false         │
│    1    │ 'JustSearchOnGoogle' │ 'substitute' │  'curated / broad'   │         true         │
└─────────┴──────────────────────┴──────────────┴──────────────────────┴──────────────────────┘
openSpace in 3 years: false

There's the highway under construction, in numbers: with a single change —JustSearchOnGoogle's curation going from 1 to 7, with no new competitor appearing on the radar—, openSpace flips from true to false. The player who, in previous lessons, was the biggest in attention but the farthest in position becomes, with this single technology trend, the player directly invading Mercado's quadrant. Nobody "copied" Mercado in the traditional sense — the terrain itself moved toward where Mercado was standing, exactly like the highway in the analogy, which never touched the diner and yet changed everything that mattered around it.

Deep dive: projecting isn't guessing, it's reasoning about a visible trend

It's tempting to dismiss any "where the market is going" projection as baseless guessing. The difference between guessing and projecting with judgment lies in where the number comes from: a serious projection doesn't invent a value at random — it anchors it in a trend that's already observable today, and extends its trajectory with explicit logic. In this lesson's example, the trend isn't hypothetical: AI shopping assistants integrated into search engines already exist today, at varying degrees of maturity; the projection just extends that trajectory three years forward, with a declared assumption (that adoption keeps growing at the current pace).

Three questions help distinguish a reasoned projection from a guess:

  • Can I point to today's evidence supporting this trend? If the answer is "no, it's just a hunch," it's not a projection — it's an opinion disguised as data.
  • Which specific player on the map is moving, and on which axis? A useful projection doesn't say "the market is going to change" in the abstract — it says, as in the example, "the substitute is rising in curation," something verifiable with the same model you already built.
  • What would happen if the trend advances more slowly, or faster, than expected? Running the model with more than one scenario (for example, curation: 4 instead of 7) shows how sensitive the conclusion is to the trend's exact pace — and sometimes reveals that the result changes much sooner than the team assumed.

Common mistakes

Assuming the market is static because no new competitor has shown up today. What happens: the team reviews the competitive map, confirms no new player appeared in recent months, and concludes Mercado's position is just as safe as a year ago. Why it happens: "nothing changed" gets confused with "nothing is moving" — but, as this lesson's example shows, a player already on the map can shift quadrants without any new player entering the scene. How to spot it: if your last competitive map review only asked "is there a new competitor?" and not "did any existing player move on an axis?", you're missing half the exercise. How to fix it: for each player on the roster, explicitly ask whether any technology or buyer-behavior trend could move it on either axis over the next two or three years — as you did in this lesson with JustSearchOnGoogle's curation.

Projecting without anchoring the number in any of today's evidence. What happens: someone proposes a "where the market is going" projection based on pure intuition, unable to point to any observable trend supporting it, and the team treats it with the same weight as a well-founded projection. Why it happens: any number inside a spreadsheet feels "objective," regardless of where it came from — the model's professional format hides the lack of evidence behind it. How to spot it: ask whoever proposes the projection to point to today's supporting evidence, in one sentence; if they can't, it's an opinion, not a projection. How to fix it: demand the same discipline this lesson applied — name the trend visible today (AI shopping assistants), the specific player it moves (the substitute), and the exact axis it moves on (curation), before accepting any number as model input.

Reacting to the projection as if it had already happened, instead of as an early warning. What happens: seeing openSpace turn false in the three-year projection, the team panics as if the quadrant were already occupied today, instead of treating it as a signal to act with time to spare. Why it happens: it's easy to lose sight of the fact that the projection is precisely a tool for reacting before the problem becomes real — the point of running it is to have runway, not to be surprised on time. How to spot it: if the conversation after seeing the projection is "we're doomed" instead of "what do we do over the next three years," the tone is wrong. How to fix it: use the projection as an input to module 6 (moats) and module 7 (the strategic filter on the roadmap) — the point of seeing the highway under construction is to decide, with time to spare, whether to broaden the business, relocate, or deepen what already makes it unique, not to freeze up.

Exercises

Exercise 1 — Run an intermediate scenario. Instead of projecting curation: 7 for JustSearchOnGoogle three years out, run the model with curation: 4 (slower AI-assistant adoption). Predict whether openSpace changes, then verify.

See solution

With curation: 4 (below 5, the midpoint), JustSearchOnGoogle still falls into 'raw-search' on the curation axis, so its quadrant stays 'raw-search / broad' — the same as today. openSpace stays true. This shows something important: this lesson's conclusion isn't "any progress in the substitute's curation is dangerous" — it's that there's a specific tipping point (the midpoint of 5) before which Mercado's space stays open, and after which it doesn't. Knowing where that tipping point is —not just that "the trend is heading that way"— is far more useful strategic information than a vague alarm.

Exercise 2 — Project a different axis. Instead of moving the substitute's curation, project what would happen if MegaStoreGenerico invested heavily in algorithmic curation over the next few years, raising its curation from 2 to 6, without changing its breadth. Run the model and compare the result with this lesson's original projection.

See solution

With breadth: 9 (unchanged) and curation: 6 (≥ 5, now 'curated'), MegaStoreGenerico would move to the 'curated / broad' quadrant — the same quadrant as Mercado. openSpace would turn false, just like in the substitute's projection, but through a different path: here it's a direct competitor invading the ground, not a substitute. The lesson for Mercado is the same in both cases —today's open space isn't guaranteed—, but the strategic response would differ: against a direct competitor copying the curation, the question is how defensible that curation is (the exact topic of module 6, moats); against a substitute acquiring it through an external technology trend, the question is more about how fast Mercado can deepen its advantage before the gap closes.

Exercise 3 — Justify the investment with the projection. Mercado's finance team asks why more should be invested in curation now, if today's map shows the space is open. Use this lesson's result to answer in a paragraph.

See solution

A sample answer: "Today's map is open, that's true — but 'open today' isn't the same as 'open next year.' We already see, with real evidence and not a hunch, that AI shopping assistants are starting to curate search results directly inside generic search engines. If that trend follows its normal course, in about three years the player that today captures more purchase attention than any named competitor —the option of simply searching on Google— starts offering something very close to what only we offer today: curation. Investing now in deepening that advantage isn't a speculative bet — it's getting ahead of a highway that's already under construction, instead of waiting for it to open and asking, too late, why the business moved."

Summary and next step

This lesson took the same competitiveMap from the whole module and ran it twice on the same scene — today, and a reasoned three-year projection anchored in an already-visible technology trend (AI shopping assistants). The result: Mercado's open space, solid today, stops being open if that trend advances, with no new competitor entering the map — the substitute that was already there simply moves.

Before moving on you should be able to: distinguish a projection anchored in evidence from a guess disguised as data, and explain why "nothing changed on the map" isn't the same as "nothing is moving."

With today's landscape complete (lessons 2 through 4) and tomorrow's projected (this lesson), lesson 6 formalizes the instrument you used across the previous five lessons: the 2×2 strategic map, with the question of how to choose axes that truly discriminate between players — because a map with the wrong axes wouldn't have let you see either today's snapshot or the highway under construction.

Resources

  • Clayton Christensen, Michael Raynor, and Rory McDonald, "What Is Disruptive Innovation?" — hbr.org/2015/12/what-is-disruptive-innovation. The article that explains why competitive terrain shifts even when no rival "attacks" directly — a player that looks marginal today can displace the entire map from an angle nobody was watching. In English.
  • Ben Thompson, "Aggregation Theory" — stratechery.com/2015/aggregation-theory. Thompson's framework on how technology reorganizes entire markets around new types of players — the same phenomenon, at a larger scale, as this lesson's AI shopping assistant. In English.