Skip to content
Early access is open
Repic
LoginJoin early access
← Back to the journal
Playbook

Brand drift, and how to catch it before your audience does

Brands rarely break. They decay, one acceptable decision at a time. What drift actually is, the five places it starts, and how to make it visible.

By Saffi & JaveriaJuly 26, 2026 · 6 min read

Nobody wakes up and rebrands by accident. Brand drift is not an event, and that is precisely why it is expensive: there is no moment to catch, no artefact to point at, and no error message. There is just a body of work that looked coherent in March and looks like three different companies in September, assembled entirely out of decisions that were individually reasonable.

We have watched this happen to brands we built by hand, and then we built a product whose least exciting feature exists specifically to prevent it. This is what we learned about the mechanism.

What drift actually is

Drift is the accumulated distance between the brand you decided on and the brand you are currently executing.

Two things make it hard to see. First, it accumulates in small increments that are each defensible, so there is never a decision you would reverse in isolation. Second, it accumulates in different dimensions at once, so no single dimension looks alarming. Your colours are slightly off in three places, your voice has got a little more corporate, your audience description now describes who you sell to rather than who you started for, and your logo has been used at four different sizes with four different clear-space margins. Each of those is a shrug. Together they are why your feed no longer reads as one thing.

The useful mental model is not "a mistake was made" but "no force was maintaining coherence." Coherence is not the default state of a brand. It is the result of continuous work, and drift is what the absence of that work looks like from the outside.

The five places drift starts

One: the offer changes and the description does not. You add a service, drop a product, move upmarket. The thing you actually sell changes on Monday, and the brand description you wrote in January keeps producing copy for the January business. This is the highest-impact source and the most commonly missed, because updating your own positioning document is nobody's ticket.

Two: the audience quietly narrows or widens. You started for freelancers and now most of your revenue is small agencies. Your best-performing content is already about agency problems, and your written audience description still says freelancers. Every generated line splits the difference between the two, which serves neither.

Three: voice erodes under volume. Voice is the first thing to go when energy runs out, because in-voice writing takes more effort than competent writing. Post one in a batch sounds like you; post forty sounds like whoever is fastest to write. We wrote the framework for pinning voice down concretely in how to define your brand voice, and the reason it needs pinning down is exactly this.

Four: visual decisions get re-made in situ. Someone needs a colour for a button and the kit is in another tab, so they pick something close. Someone needs a heading and the pairing is not to hand, so they use the system font. Neither person did anything wrong. Both introduced a variant, and variants do not get cleaned up because nobody knows they exist.

Five: tooling changes underneath you. A new design tool, a new AI assistant, a new template. Each one re-asks questions you already answered and applies its own default to whatever you do not restate. This is the failure mode we wrote about in why prompt-per-post content quietly falls apart, and it is drift arriving one prompt at a time.

Why none of it trips an alarm

Every other kind of decay in a business has a detector. Revenue has a dashboard. Uptime has a monitor. Code has a test suite. Brand coherence has, historically, a person who happens to care and happens to be looking.

That is not a detector, it is a hope. And it fails in the specific way hopes fail: it works while attention is available and stops working exactly when you get busy, which is exactly when drift accelerates. The pattern is self-reinforcing, and it is why "we will keep an eye on it" has never once worked.

For a detector you need three things that most brand setups do not have:

  1. A single authoritative description. Not a folder, not a PDF, not a shared understanding. One object, in one place, that is unambiguously the answer when two people disagree.
  2. Structure, so it can be inspected. Prose cannot be scored. Fields can. "Audience" as a field can be checked for whether it contains specifics; "our brand doc" cannot.
  3. Dependency awareness. The system has to know which outputs were generated from which fields, so that changing a field can tell you what is now out of date rather than leaving you to remember.

How to make decay measurable

If you have those three, drift stops being a vibe and becomes a metric. Concretely, this is what we built and what we would recommend building even without us:

Score each field independently, and never roll up into one mystery number. A single brand-health percentage is worse than useless, because it cannot tell you what to do next. Per-field scoring on completeness, specificity and consistency can. "Audience: Underspecified" is actionable. "Brand health: 62%" is a mood.

Make every alert carry a fix. The difference between a score and an alert is that a score says you are at 62% and an alert says which sentence to write next. "One line is not enough for the engines to write to; add two or three concrete struggles your audience would recognise" is a task. Anything less specific gets ignored, and an ignored alert is worse than no alert because it trains you to dismiss the surface.

Track staleness across the dependency graph. When a source field changes, the work generated from it is now potentially out of date. Say so. Do not silently regenerate, because destroying published work to fix a definition is worse than the drift was; and do not silently do nothing, because that is how you end up with a library nobody trusts.

Score before you block. The strong temptation is to require a complete brand before allowing any output. Resist it. People will abandon the form, and a partially-described brand that generates is worth more than a perfectly-described brand that does not exist. Let output happen, and be honest that quality is capped by the thinnest input.

What it looks like when it works

You edit your audience description because you have moved upmarket. Three things happen immediately: the audience field rescores, the fields that depend on it are marked as needing review, and the generated work that read the old description is flagged as potentially stale. Nothing was rewritten without you, nothing was blocked, and the size of the change is visible in one place.

That is the whole ambition. Not a brand that cannot change, which would be a worse problem than drift. A brand that cannot change by accident, and that tells you the size of the change when you make one on purpose.

If you want the mechanics, the Quality Engine page covers the scoring, the statuses and the staleness tracking, and the Branding engine page covers the source of truth all of it reads. The describe-once walkthrough puts both in sequence.