Module 4: Differentiation And Value Prop
Sustainable differentiation: how fast you can be copied
Description
Everything you saw in this module up to now was a snapshot: differentiationMap run today, with today's scores, over a single frozen moment in time. This lesson introduces the variable a snapshot can't show: time. Real differentiation, verified today with the map, comes with no guarantee it will still be real in a quarter — because rivals also read the map, and if they spot where you're winning, some of them are going to try to copy it.
This lesson's question isn't "do we win today?" — you already know that from lessons 2 through 4 — it's how fast could a rival stop losing here? Some differentiation gets copied over a weekend, with a single well-aimed engineering sprint. Some would take a rival years to rebuild, even with an unlimited budget starting tomorrow. Telling one from the other — without yet getting into the full mechanics of why some things are so slow to copy, which is module 6's topic — is today's job.
Connection to the module. Lessons 2 through 4 took for granted that the differentiation map, once calculated, describes reality in a stable way. This lesson deliberately breaks that assumption, with the same model, run twice: before and after a rival reacts.
An everyday analogy: the cardboard fence and the brick wall
Imagine two ways of separating your garden from your neighbor's. The first is a corrugated cardboard fence, bought one Saturday morning and put up that same afternoon: it does its job — it marks where your garden ends — and, if the neighbor next door wants an identical one, they can have it ready before Sunday, buying exactly the same thing you did.
The second is a brick wall, built by hand over two years, row by row, with a foundation that settled over time. It also separates your garden from your neighbor's, not one bit more effective at that single job than the cardboard fence. But if the neighbor wants an identical wall, they can't buy it on Saturday — they have to start their own two years, from scratch, with no possible shortcut that lets them skip the time that already passed for you.
Both are "differentiation" the day you finish them: both separate you from your neighbor. The real difference isn't in how well they work today — it's in how fast the neighbor can have the same one. This lesson is about learning to tell, on Mercado's map, which of its advantages are cardboard fence and which are brick wall — without yet fully explaining why some walls take so long to build. That complete explanation — the formal vocabulary for why certain advantages are nearly impossible to reach — comes in module 6.
Worked example: a quarter later, the generic giant reacts
Let's go back to Mercado's two real differentiations — curatedDiscovery and localSellerTrust — and simulate what happens a quarter after the generic giant, seeing the same map you see, decides to invest in closing the discovery gap with a new recommendation engine.
function differentiationMap(us, competitors, dimensions) {
const REAL_DIFF_MARGIN = 2;
return dimensions.map((dim) => {
const usScore = us.scores[dim.key];
const rivals = competitors.map((c) => ({ name: c.name, score: c.scores[dim.key] }));
const best = rivals.reduce((a, b) => (b.score > a.score ? b : a));
const gap = usScore - best.score;
let verdict;
if (gap >= REAL_DIFF_MARGIN) verdict = 'differentiation';
else if (gap <= -REAL_DIFF_MARGIN) verdict = 'gap';
else verdict = 'parity';
return {
dimension: dim.key,
mattersToSegment: dim.matters,
usScore,
bestCompetitor: best.name,
bestCompetitorScore: best.score,
verdict,
};
});
}
const mercado = { name: 'Mercado', scores: { curatedDiscovery: 5, localSellerTrust: 5 } };
const dimensions = [
{ key: 'curatedDiscovery', matters: true },
{ key: 'localSellerTrust', matters: true },
];
const genericMegastoreBefore = { name: 'genericMegastore', scores: { curatedDiscovery: 2, localSellerTrust: 2 } };
const neighborhoodShop = { name: 'neighborhoodShop', scores: { curatedDiscovery: 3, localSellerTrust: 3 } };
console.log('=== BEFORE: the quarter we launch curatedDiscovery ===\n');
const before = differentiationMap(mercado, [genericMegastoreBefore, neighborhoodShop], dimensions);
for (const r of before) {
console.log(`${r.dimension}: us=${r.usScore} vs. best rival ${r.bestCompetitor}=${r.bestCompetitorScore} -> ${r.verdict}`);
}
// A quarter later: genericMegastore copied the recommendation engine
// (a feature, not a seller network) and its curatedDiscovery score rose.
const genericMegastoreAfter = { name: 'genericMegastore', scores: { curatedDiscovery: 4, localSellerTrust: 2 } };
console.log('\n=== AFTER: genericMegastore copies the recommendation engine ===\n');
const after = differentiationMap(mercado, [genericMegastoreAfter, neighborhoodShop], dimensions);
for (const r of after) {
console.log(`${r.dimension}: us=${r.usScore} vs. best rival ${r.bestCompetitor}=${r.bestCompetitorScore} -> ${r.verdict}`);
}
What to expect. Running the file with Node, the output is exactly this:
=== BEFORE: the quarter we launch curatedDiscovery ===
curatedDiscovery: us=5 vs. best rival neighborhoodShop=3 -> differentiation
localSellerTrust: us=5 vs. best rival neighborhoodShop=3 -> differentiation
=== AFTER: genericMegastore copies the recommendation engine ===
curatedDiscovery: us=5 vs. best rival genericMegastore=4 -> parity
localSellerTrust: us=5 vs. best rival neighborhoodShop=3 -> differentiation
Notice exactly what changed and what didn't. Mercado's score on curatedDiscovery is still 5 — Mercado lost nothing, its quality didn't drop, it made no mistake. What changed is the generic giant's score, which rose from 2 to 4 by building its own recommendation engine. That's enough for the gap to fall from 3 to 1, crossing the real-differentiation margin into parity: what was a clear advantage a quarter ago is, today, barely a technical tie. curatedDiscovery, as it was built — a recommendation system, replicable by the right engineering team in a couple of sprints — turned out to be the cardboard fence.
localSellerTrust, on the other hand, didn't move a single point, because the generic giant didn't touch that dimension — and there's an underlying reason, not just coincidence in this example: a network of local sellers, verified one by one, with accumulated trust history, doesn't get built with an engineering sprint. A rival that wanted to close that gap would have to start its own relationship with hundreds of local sellers, from scratch, and wait the same amount of time it took Mercado to build it. That is the brick wall.
Going deeper: the quick sustainability test (and where it stops)
Before you have module 6's full vocabulary, you can apply a surface-level test to any dimension marked differentiation on your map, to know whether it's cardboard fence or brick wall:
- Is it, at bottom, a single piece of software? An algorithm, a UI flow, a new function. If the answer is yes, a competitor with good engineers and budget can replicate it in weeks or months — it isn't impossible, it's a matter of development time, not relationship-building time.
- Does it depend on something accumulated over time, that can't be bought all at once? A network of relationships (sellers verified one by one), a data history (years of purchases that train better recommendations), a reputation built through thousands of real interactions. If the answer is yes, copying it isn't a matter of budget: it's a matter of time that can't be sped up just by throwing more money at it.
- Could a rival announce it next week, in a press release, without it taking them months to actually build it? If a competitor can announce the feature before it's fully functional (common with software features), the advantage feels eroded even before the rival finishes it — another reason feature-type differentiation is more fragile than it looks.
⚠️ Where this lesson stops. This test is, on purpose, surface-level — a quick check of "how long would it take someone to copy this?", not a complete theory of defensibility. Module 6 (
moats-and-defensibility) picks up exactly this question and answers it with precision: why network effects, switching costs, scale, and accumulated data are distinct categories of durable advantage, each with its own logic for why it's slow to copy. Here you only need to know how to recognize the difference between "this is a feature" and "this is a relationship built over time" — the rest comes later.
Common mistakes
Trusting differentiation that's just a feature, with no plan for when it gets copied. What happens: the team celebrates curatedDiscovery as a permanent advantage, builds the entire value proposition on it, and has no plan for the quarter a rival — inevitably — catches up. Why it happens: an advantage that feels good today gets treated, without meaning to, as if it will last forever — it's more comfortable than planning for the day it stops being exclusive. How to spot it: apply this lesson's test to every dimension marked differentiation — if the answer to "is it just a feature?" is yes, that differentiation has an expiration date, even if you don't know the exact date. How to fix it: for any feature-type differentiation, keep the question "and if they catch up here, what other dimension holds us up?" ready — in Mercado's case, that answer is localSellerTrust, the brick wall still standing after curatedDiscovery turned into parity.
Not rerunning the map after the market moves. What happens: the differentiation map gets calculated once, saved in a document, and nobody reruns it even though six months have passed and the rival has launched several new features. Why it happens: recalculating feels like extra work with no clear trigger demanding it — unlike a bug, nobody "reports" that your differentiation eroded. How to spot it: if the last time you ran differentiationMap was before your main competitor's last major launch, your map is already outdated, even if nobody's told you yet. How to fix it: treat the differentiation map as something that gets recalculated every time a rival launches something relevant — not as a document written once and filed away.
Overestimating how long the rival will take to copy. What happens: the team assumes a feature-type advantage is harder to copy than it really is — "they're never going to build something as good as ours" — and doesn't invest in deepening it while it's still exclusive. Why it happens: it's more pleasant to believe the current advantage is special and unique than to accept that, technically, it's reproducible by any competent engineering team given enough time. How to spot it: ask yourself, with an engineer's honesty: if you gave this exact spec to a team at your own company, without seeing your code, how long would they take to build something comparable? That number, not your hope, is your real window. How to fix it: use that time window to deepen the feature-type advantage (improve it faster than the rival can copy it) while, in parallel, you invest in the relationship-type advantage that can't be sped up with money.
Exercises
Exercise 1 — Predict before running. Now it's neighborhoodShop, not genericMegastore, that invests: its localSellerTrust score rises from 3 to 4 (it starts more formally verifying its sellers). Mercado stays at 5, genericMegastore stays at 2. Predict the new verdict for localSellerTrust.
See solution
The best rival becomes neighborhoodShop at 4 (before it was a technical tie between both rivals at 3, but 4 beats 2). Mercado's gap is 5 - 4 = 1, which no longer satisfies gap >= REAL_DIFF_MARGIN (it needs to be >= 2), so the verdict drops to 'parity'. This confirms something important the lesson shouldn't leave as a comforting myth: no differentiation is absolutely unbeatable — even localSellerTrust, the brick wall, can erode if a rival invests seriously and for long enough in the same direction. The difference with curatedDiscovery isn't that one is eternal and the other isn't — it's how much real time and effort it costs the rival to close the gap. One engineering sprint is enough for the first; a serious, sustained seller-verification program is what it would take neighborhoodShop to get here.
Exercise 2 — Evaluate the relative risk. Between Mercado's two real differentiations (curatedDiscovery and localSellerTrust), which do you think is at higher risk of eroding over the next year, and why? Use "going deeper"'s three-question test to justify your answer in one paragraph.
See solution
curatedDiscovery carries more risk. Applying the test: (1) at bottom, it's a recommendation and editorial curation system — software, with data involved, but replicable by the right team; (2) it doesn't depend on anything that accumulates exclusively over years (a rival with enough purchase data of its own could train something comparable in months, not years); (3) it's perfectly announceable in a press release ("we're launching personalized recommendations") without the rival needing to have fully perfected it. localSellerTrust, on the other hand, fails all three questions in the opposite direction: it depends on human relationships, one-by-one verification, and accumulated reputation — none of that speeds up just with more engineers or more budget.
Exercise 3 — Find a real erosion case. Think of a product you've used for several years. Name an advantage that product had over its competitors at some point, and that today is no longer differentiation (it became table stakes, because every rival eventually copied it). Was it, per this lesson's test, a feature (cardboard fence) or an accumulated relationship/data asset (brick wall)?
See solution
There's no single answer — the exercise evaluates whether you recognize the pattern in a real case. A common reference example: years ago, "paying inside the app without switching to another screen" (integrated checkout) was real differentiation for some shopping apps; today it's nearly universal table stakes, because it was, at bottom, a UI feature — a cardboard fence — that any competitor with a decent product team could replicate in one or two quarters. The exercise works just as well with cases where the advantage did hold up for years: those cases, almost always, involve a network, an accumulated database, or a trust relationship — the brick wall, again.
Summary and next step
Every differentiation has a potential expiration date, and the question that matters isn't "is it real today?" — you already know that from lessons 2 through 4 — it's "how fast could a rival stop losing here?" With the same differentiationMap, run before and after the generic giant invested in copying the recommendation engine, you saw curatedDiscovery erode from real differentiation to parity in a single simulated quarter, while localSellerTrust — an advantage built on relationships, not a single feature — held steady.
Before moving on you should be able to: apply the three-question test to any real differentiation on your map, to estimate how fast it could get copied; and explain, without yet using moats' formal vocabulary, why a relationship built over time is harder to replicate than a software feature.
Lesson 6 adds no new risk dimension — it takes everything you've built so far (the map, the value proposition, the sustainability test) and organizes it into an industry-standard format: Strategyzer's Value Proposition Canvas.
Resources
- Gibson Biddle, "The DHM Model" — gibsonbiddle.medium.com/2-the-dhm-model-6ea5dfd80792. Netflix's former VP of Product explains "Hard to Copy" (the H in his DHM model) as one of the three pillars of a good product strategy — the same axis this lesson explores with
differentiationMap. In English. - Ben Thompson, "The Moat Map" — stratechery.com/2018/the-moat-map. A preview, without yet the full vocabulary, of how to analyze how defensible a competitive advantage is — the natural bridge toward module 6. In English.
- Roger Martin, "Why the How-to-Win Strategy Choice Is So Hard" — rogermartin.medium.com/why-the-how-to-win-strategy-choice-is-so-hard-8de222d62f5c. On why building an advantage that's genuinely hard to match demands more than "doing the same, but with more effort" — the mistake that leads to building cardboard fences instead of brick walls. In English.