The Rejected-Paths Problem
The approaches a project deliberately ruled out are the first thing it forgets — and the most expensive thing to relitigate.
There is a particular kind of meeting that tells you a project has lost its memory. Someone proposes an idea with real enthusiasm, and half the room has the same slow realization: we looked at this a year ago, and we said no, and nobody can quite reconstruct why. So you either relitigate it from scratch or wave it off on vibes. Both are bad, and both are avoidable.
Most of the value in a hard decision is invisible. What you can see afterward is the path you chose. What actually took the work was the set of paths you ruled out, and the reasons you ruled them out. That reasoning is the first thing a project loses.
“Not selected” is not the same as “ruled out”
The first thing worth separating is two things we both call “we didn’t do that.”
Some options were simply not selected. They were reasonable; you had to pick one; you picked another. Revisiting them later is cheap and often smart, because nothing was ever wrong with them.
Other options were ruled out for a reason. You investigated, found a specific problem — a cost, a constraint, a data issue, a risk — and closed the path deliberately. That rejection is a small piece of hard-won knowledge. It encodes evidence the project paid to discover.
When a project forgets which is which, both failures follow. A ruled-out path gets treated as merely-not-selected and casually reopened. Or a fine unselected option gets treated as forbidden because someone vaguely remembers a “no.” The distinction matters, and it is exactly the distinction that goes missing first.
Why rejected paths vanish first
Ruled-out paths are uniquely fragile, because nothing downstream depends on them. A decision you acted on leaves a trail: code, a dashboard, a document, the next choice that assumed it. A path you closed leaves nothing except its own absence. There is no artifact whose existence reminds you that you already considered it and said no.
Summaries make this worse rather than better. A readable summary describes what the project did. “We evaluated four options and went with the second” is exactly the kind of line a summary compresses away, because it does not affect the story of what happened next. Retrieval has the same blind spot from the other direction: search will happily surface the old proposal itself — the doc where someone first suggested it — while the conversation that killed it, and the reason, sits somewhere that never gets indexed or read. So the option comes back looking fresh, stripped of the one thing that made it settled.
A concrete case
Take a metric definition, because analytics teams live this constantly. Say a team considers defining an active user on a rolling 30-day window and rules it out: on their data, that window quietly double-counts a large seasonal cohort, and it makes retention look materially better than it is. The team writes the 28-day definition into the product reporting and moves on.
A quarter later a new analyst, or an AI agent asked to “propose a cleaner active-user metric,” suggests the 30-day window. It is cleaner, in the abstract. The double-counting problem is not visible in the definition; it was a property of this team’s data, discovered once, recorded nowhere durable. So the project pays twice: once to rediscover the seasonal double-count, and again in the credibility of having “already decided this.” If the second look happens to miss the seasonal effect, the team can even reverse a correct rejection for a bad reason. The same shape shows up in a long build — an architecture ruled out on cost, proposed again a year later by someone who never saw the cost — but the analytics version is where it bites quietly, inside a number people trust.
When a rejection should actually be reopened
None of this means a ruled-out path should stay closed forever. That is the opposite error, and it is just as costly. Every rejection rests on the evidence and constraints that were true when it was made. When those change, reopening the question is not relitigating — it is responding to new information, and refusing to do it is its own kind of stubbornness.
The 30-day window was ruled out because of a seasonal double-count. If the data pipeline is later fixed so that cohort is handled correctly, the reason no longer holds, and the 30-day window deserves a fresh, honest look. An architecture ruled out on cost deserves another look when the cost drops by an order of magnitude.
The point is that you can only tell a legitimate reconsideration from an accidental one if the rejection and its reason are written down. Reopening a path because its assumption changed is progress. Reopening it because everyone forgot the assumption is how projects walk in circles. The difference is entirely in whether the “why” was kept.
Keeping “ruled out” reviewable
So the fix is to treat “ruled out” as one of the standing states of a project, alongside what was decided, what changed, and what is still open — not as something that survives only if a person happens to remember it. In practice that means three things a maintained state can do and a summary cannot. Each ruled-out path carries its provenance: the evidence and the specific reason that closed it. The rejection itself can be revised, on the record, when the assumption behind it changes, rather than silently flipping. And reopening a path is a human decision, made deliberately, not a default that happens because the reason drifted out of view.
That is also what makes it safe for AI agents, which matters in both of the settings we work in. An agent maintaining a long-running project, or one answering analytics questions, will generate options — including the ones you already killed, because it is doing its job. If the only record of “we ruled this out, here is why” is a buried conversation, the agent cannot know, and it will lead you straight back in. If the rejection and its reason are part of the state the agent reads, it can build on them: surface the path with the reason it was closed, and flag when the assumption behind that reason looks like it has changed.
Keeping your rejected paths is not nostalgia, and it is not stubbornness. It is what lets a project reopen a question for the right reason instead of the wrong one.
See how Propperly keeps decisions and rejected paths reviewable.
For analytics teams, start with a proof of concept. Running a long AI project yourself? Request founding beta access.