---
id: wiki-2026-0508-매몰-비용-오류-sunk-cost-fallacy
title: 매몰 비용 오류 (Sunk Cost Fallacy)
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [Sunk Cost Fallacy, Concorde Fallacy]
duplicate_of: none
source_trust_level: A
confidence_score: 0.9
verification_status: applied
tags: [cognitive-bias, decision-making, architecture-decision]
raw_sources: []
last_reinforced: 2026-05-10
github_commit: pending
tech_stack:
  language: na
  framework: decision-framework
---

# 매몰 비용 오류 (Sunk Cost Fallacy)

## 매 한 줄
> **"매 이미 쓴 비용 때문에 매 잘못된 길을 더 간다"**. Arkes & Blumer (1985) 가 실증. 매 software 에서 "이미 6개월 썼으니 이 framework 못 버려" 의 형태로 발현 — 매 Concorde 사례 (영국+프랑스 정부가 이미 투자 때문에 적자 supersonic jet 을 1976-2003 운영) 에서 명명.

## 매 핵심

### 매 매커니즘
- **Loss aversion** (Kahneman): 매 손실 회피 본능이 합리적 abandon 을 막음.
- **Commitment escalation**: 매 공개적 commitment 일수록 후퇴 비용 (face) 추가.
- **Effort justification**: 매 노력한 만큼 가치 있다고 후방 합리화.

### 매 Software 발현
- Legacy framework 을 1년 마이그레이션 했는데 막힘 → 매 그래도 끝까지.
- 6개월 짠 architecture 의 fundamental flaw 발견 → 매 patch 만 계속.
- 1만 LOC PR review 에서 fundamental design 문제 발견 → 매 reviewer 가 미안해서 통과.

### 매 응용 (decision rule)
1. "Forward-looking only": 매 future cost vs future benefit 만 비교.
2. Pre-commit kill criteria: 매 시작 전에 abandon 조건 명문화.
3. Sunk cost label 명시: 매 retro 에서 "this is sunk cost reasoning" 언급 normalizing.

## 💻 패턴

### Decision Journal Template
```markdown
## Project Continuation Review
- Already invested: $X / Y months (sunk — IGNORE for decision)
- Estimated cost-to-complete: $A / B months
- Estimated value if completed: $V
- Estimated value of best alternative: $W
- DECISION: continue iff (V - A) > (W - 0)
```

### Pre-Mortem Kill Criteria
```yaml
# project-charter.yml
project: legacy-migration
abandon_if:
  - cost_overrun_percent: 50
  - timeline_overrun_percent: 100
  - critical_unknown_unknowns_found: true
  - team_morale_score_below: 5
  - alternative_emerges_with_value_ratio: 2.0
```

### LLM-Assisted Sunk Cost Detection
```python
# Project review prompt
prompt = """
Analyze this project status report for sunk cost reasoning.
Flag phrases like:
- "we've already invested..."
- "we've come too far..."
- "we can't waste what we've done..."
Suggest forward-looking reframes.

Report: {status_report}
"""
# Use Claude Opus 4.7 for nuanced detection
```

### Stop-Loss Rule (Trading-style)
```python
class ProjectStopLoss:
    def __init__(self, max_overrun=1.5):
        self.max_overrun = max_overrun
        self.original_estimate = None

    def should_kill(self, current_spend, original_estimate):
        return current_spend / original_estimate > self.max_overrun
```

### Reverse-Engineering the Decision
```markdown
## Fresh-Eye Test
"If I were starting today with zero invested,
 would I choose this path?"
- If NO → sunk cost reasoning is in play
- If YES → continue is rational
```

## 매 결정 기준
| 상황 | Approach |
|---|---|
| 50% 진행, 막힘 발견 | Fresh-eye test 적용 |
| 사용자 commit 한 feature | Demo MVP 후 재평가 (sunk cost 제외) |
| Public roadmap 약속 | Communicate honestly, kill if forward-looking 비합리 |
| 팀 morale 의 sunk cost | Retro + explicit naming |

**기본값**: Forward-looking analysis + pre-commit kill criteria.

## 🔗 Graph
- 부모: [[Cognitive_Bias]] · [[Decision_Making]]
- 변형: [[Concorde_Fallacy]]
- Adjacent: [[Loss_Aversion]]

## 🤖 LLM 활용
**언제**: 매 project status report 의 sunk cost reasoning 자동 탐지, 매 retro facilitation, 매 reframe suggestion.
**언제 X**: 매 emotional / political stakes 가 본질인 상황 — 매 사람의 심리적 work 필요.

## ❌ 안티패턴
- **"이미 X% 했어"**: 매 그 자체가 결정 근거가 됨 — 매 fallacy 본체.
- **No kill criteria**: 매 시작할 때 abandon 조건이 없음 → 매 무한 escalation.
- **Public commitment 의 hostage**: 매 face-saving 위해 매 손실 누적.
- **Confirmation seeking**: 매 "이미 했으니 옳다" 증거만 모음.

## 🧪 검증 / 중복
- Verified (Arkes & Blumer 1985, *Organizational Behavior and Human Decision Processes*; Kahneman *Thinking Fast and Slow* 2011).
- 신뢰도 A.

## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — software-specific patterns + LLM detection 추가 |
