Insights

The Friction Tax: The Retail Failure That Never Fires an Alert

4 min read

Albert Visser

Albert VisserHead of Knowledge at New Black

Woman with shopping bag looking at her phone

Latent failure is hitting retail

There is a concept in engineering called latent failure. It is the kind of failure that does not announce itself. Systems are running. Transactions are completing. No alerts are firing. And yet, somewhere inside the process, something is quietly wrong. The damage accumulates. It only surfaces when the pressure is high enough, or when someone finally looks closely. I think about that concept a lot when I walk through retail stores.

My experience at the counter

You can see it at the checkout counter. A customer mentions a promotion they saw online. The associate checks the register. It is not there. The promotion runs through a different engine, one that never made it into the store system. The associate smiles, says she will sort it out, and picks up the phone. The customer waits. The queue builds. Nobody flags this as an incident. It happens twelve times a day.

Or consider click and collect. The confirmation email went out. The customer comes in, pleased with themselves for being efficient. The item is not there. It sold out this morning, after the last inventory sync. The associate apologizes. The customer does not come back.

Edge cases? I think they’re not

These situations have a name in boardrooms: edge cases. But they are not edge cases. They are the everyday texture of retail in a world where systems were built to coexist rather than to converge. Every integration adds a seam. Every seam creates a moment where reality on one side does not match reality on the other. The loyalty points exist, somewhere, in a ledger. But the POS does not know about them yet. The batch runs tonight. The customer is standing here now.

System A · Online

System B · Store

Promotion Engine

POS register

Loyalty ledger

Points appear later

Web inventory

Last night's sync

Confirmation sent

Checked manually

Two systems, built to coexist rather than converge. The failure lives in the gap between them.

This is the friction tax

It does not show up in your uptime metrics. Every component did its job. The failure happened in the gap between them, in the milliseconds of latency that add up to seconds at the counter, in the human moments where your associate has to bridge two systems that were never introduced to each other. The tax collects in conversion, in queue time, in NPS points that drift quietly downward without a single incident ticket to explain why.

The harder problem is that this friction is invisible to the people who manage the systems. From the integration dashboard, everything is green. The pain lives in the store, in the heads of associates who develop an informal vocabulary of workarounds over time. They know which promotions will not show up. They know which order types to check manually. They know when to warn the customer that the points will appear later. That knowledge is not in any documentation. It lives in the gap.

The question worth asking is not technical. It is: what does it mean for something to work? A 15-minute inventory sync is not a bug. It is a design choice. And design choices have consequences that compound across thousands of transactions, across every peak hour when every second at the counter matters most.

A different premise

EVA starts from a different premise. Not integration in the sense of connecting existing systems and managing the seams between them, but a single operational core where loyalty, inventory, orders, and promotions share the same truth, in the same moment. The points are there when the customer is there. The inventory is accurate when the confirmation goes out. The promotion that exists online also exists in the store, because there is no separate online and separate store, only one commerce engine expressing itself across different surfaces.

EVA, one operational core

  • Loyalty

    Points are there when the customer is there

  • Inventory

    Accurate when the confirmation goes out

  • Orders

    One pipeline across every surface

  • Promotions

    Online and in-store are the same thing

No separate online and separate store. One commerce engine expressing itself across surfaces. No seam to manage, because there is only one core.

We cut the crap

The friction tax drops to zero not because we optimized the batch, but because there is no batch. Not because we sped up the sync, but because there is nothing to sync.

Retailers who have lived on the other side of this know exactly what I am describing. They remember the workarounds. They remember the associate vocabulary. They remember the customer who stood at the counter while someone called the helpdesk, and did not come back.


“The systems worked. They just didn’t work for the people inside them.”