The Discovery Tax is the cost of building the complex system you need to build in order to discover the simple system that replaces it.
It is always paid. It is never budgeted. The receipt is the complex system itself.
“We built five systems to learn that we needed one. The five systems were not waste. The five systems were the invoice.”
— riclib, after the content editor migration
The Tax, Itemised
The Discovery Tax manifests as:
- Lines of code written and later deleted — not because they were wrong, but because they taught what “right” looks like
- Systems built and later replaced — each one encoding exactly one discovery that the replacement requires
- Architecture decisions that were correct at the time — and remain correct at the time, but are no longer the simplest correct answer
- Time spent building what you’ll discard — which feels like waste and is actually curriculum
The tax is not optional. Liberato’s Law states that the simple system requires building all N complex predecessors. The Discovery Tax is the economic expression of this requirement: someone has to pay for the understanding, and the currency is working code that becomes obsolete the moment you understand why it works.
Distinction from Sunk Cost
The Discovery Tax looks like a Sunk Cost Fallacy but operates in the opposite direction.
The Sunk Cost Fallacy says: “We built it, so we must keep it.” This leads to weight — complex systems preserved past their teaching life because someone paid for them.
The Discovery Tax says: “We built it, it taught us what we needed, now we delete it.” This leads to liberation — complex systems composted into the understanding that makes the simple system possible.
The correct response to having paid the Discovery Tax is not “preserve the investment.” The correct response is “cash the receipt” — take the understanding, build the simple thing, delete the complex thing. The investment was in learning, not in code.
THE SUNK COST KEEPS THE PRISON
THE DISCOVERY TAX BUYS THE KEYBOTH COST THE SAME
ONLY ONE OPENS THE DOOR
Why It’s Never Budgeted
No project plan has ever contained the line item: “Build five systems we will delete in order to discover the one system we will keep.”
This is because project plans describe destinations, not journeys. The destination is the simple system. The journey is the five complex ones. The plan says “build the content editor” and allocates two weeks. It does not say “build a NATS KV draft store, understand that drafts are working copies, build a pub/sub bridge, understand that the writer already has the channel, build a streaming buffer, understand that text streaming is universal, then delete all of it and write forty lines.”
The two weeks are correct. The forty lines are correct. The plan just doesn’t mention the 650 lines that were written and deleted along the way — the Discovery Tax — because the plan was written by someone who hadn’t paid it yet.
Measured Characteristics
Discovery Taxes paid in the content editor epic: 5
Discovery Taxes budgeted: 0
Discovery Taxes that could have been avoided: 0
Lines of code that were the tax: ~650
Lines of code that were the receipt: ~40
Ratio: 16:1
Time paying the tax: ~4 months
Time cashing the receipt: 2 hours
See Also
- Liberato’s Law — The law that makes the tax mandatory
- Gall’s Law — The law that makes the complex systems necessary
- Tending — The practice of cashing the receipt (pruning what the tax taught)
- Technical Debt — What happens when you pay the tax but never cash the receipt
- The Best Architecture Is the One You Delete — The essay on earning simplicity
