When elegant turns out to mean oversimplified

The idea I was most proud of was the one that needed the most repair.

BUILDING BEHAVIOURKIT

Lauren Kelly

11/14/2025

I need to talk about something I got wrong. Not wrong in a small way. Wrong in the way where the thing you find most satisfying about your work turns out to be the thing that needs the most repair.

Let me start with what a state model is, because the concept matters for what follows.

When you're trying to understand why people aren't doing something, you look at the factors influencing them. In BehaviourKit, those factors are called drivers. Confidence is a driver. Habit strength is a driver. How easy the task feels is a driver. Each driver can be in different states, and the state determines what kind of intervention you need.

Think of it like a thermostat. The temperature in a room can be too cold or too hot. Both are problems, but they need opposite responses. Too cold, you turn the heating on. Too hot, you open a window. Same variable, two failure modes, different fixes.

I built BehaviourKit's state model on this principle. Every driver has a LOW state and a HIGH state. LOW means the factor is missing or insufficient. HIGH means the factor is excessive or overbearing. Different states get different recommendations. LOW confidence gets interventions that build capability and reassurance. HIGH confidence gets interventions that introduce useful reflection or slow people down before they make reckless mistakes.

I found this deeply satisfying. It meant the system didn't just identify the problem. It identified the direction of the problem. And the direction changed the response. That felt like a genuine insight about behaviour change: things don't only fail from absence. They also fail from excess. Too little friction and people make careless errors. Too much friction and people give up entirely. The sweet spot is somewhere in the middle, and the system needed to know which side of the middle you were on.

Elegant. Intuitive. Complete. Every driver, two states, two sets of interventions. No gaps in the grid.

And then I subjected it to an ontology audit, and the audit pointed out, with uncomfortable precision, that most of my "HIGH" states weren't what I thought they were.

Here's what I mean. Take confidence. LOW confidence: people don't believe they can do the thing, so they don't try. That's clearly about confidence. The construct is doing what it says.

HIGH confidence, as I'd defined it: people are so sure of themselves that they skip important steps, ignore guidance, and underestimate risks. Is that really high confidence? Or is that overconfidence, which is a different psychological phenomenon? Or recklessness? Or poor risk perception? When I looked closely, the "HIGH" description was pointing at something adjacent to confidence rather than the other end of the same spectrum.

Now take autonomy. LOW state: people feel they have no choice, no control over the situation. They're being told what to do and they don't like it. That's clearly about autonomy. It matches what Self-Determination Theory describes as a basic psychological need: the need to feel that your actions are self-chosen rather than imposed.

HIGH state, as I'd defined it: people resist any structure or guidance, even when it would help them. They push back against support, reject frameworks, refuse to follow reasonable processes.

But that's not high autonomy. Autonomy, in the psychological sense, is about having a sense of choice and ownership over your actions. Someone with genuinely high autonomy might choose to follow a structured process because they decided it was the best approach. What I was describing as "HIGH autonomy" was actually closer to reactance, a psychological response where people resist perceived threats to their freedom, often by doing the opposite of what's suggested. Reactance and autonomy are related, but they're different constructs with different mechanisms and different intervention implications.

The system was treating them as opposite ends of one spectrum. They're not. They're neighbours in the conceptual space, but they have different addresses.

This pattern repeated across the driver set. Support from Others: LOW state is genuinely about insufficient support. The "HIGH" state was describing something more like over-involvement or micromanagement, which is really a problem about control and trust, not about support being too abundant. Norm Signal: LOW state is about not seeing what others do. The "HIGH" state was describing pressure to conform, which is about social coercion, a different mechanism from norm visibility.

I think I understand why I built it this way. Symmetry is comforting when you're constructing a system. Every cell filled. Every driver with two poles. No awkward gaps or one-sided entries. It makes the grid feel complete and the logic feel clean. But completeness achieved through forced symmetry is a form of false precision. The system looks more confident than the evidence supports.

The repair was to introduce honest state rules. Four options instead of a forced binary.

Symmetric high/low: both ends are genuine forms of the same construct. Task Ease qualifies. Too hard is a problem. Too easy is a problem. Both are about ease.

Low state only: the problem is absence. There isn't a meaningful excess version. Memory is like this. Forgetting to do something is a problem. Remembering too well doesn't really have a behavioural failure mode.

Backfire pattern: what I was calling the "HIGH" state is actually a different construct that shows up when related conditions go wrong. Reactance isn't high autonomy. It's a backfire pattern that occurs when autonomy feels threatened. It deserves its own handling rather than being squeezed into a state model it doesn't fit.

No state model: the construct doesn't split into states at all. Some factors operate as conditions rather than spectrums.

The system is now less symmetrical and more honest. Some drivers have two genuine failure modes. Some have one. Some have a backfire pattern that belongs in a different layer. The engine handles each type differently, which means the recommendations are more accurate even though the grid is less tidy.

I'll miss the elegance. But I'd rather have a system that's right than one that's beautiful.

Go deeper into the Building BehaviourKit series: