skills/thinking-opportunity-cost/SKILL.md
Before committing scarce time/people/money to one thing, ask "what's the next-best use of these resources, and what does doing nothing cost?" — the real cost is the best option you skip.
npx skillsauth add tjboudreaux/cc-thinking-skills thinking-opportunity-costInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
If both answers are cheap/obvious, you don't need the full framework below — just decide.
Opportunity cost is the value of the next-best alternative foregone when making a choice. Every decision to do X is simultaneously a decision not to do Y, Z, and everything else. Engineers often focus on the value of their chosen path while underweighting what they're giving up.
Core Principle: The true cost of anything is what you give up to get it. A "free" option that consumes time has massive opportunity cost.
Decision flow:
Making a commitment?
→ Have you considered what you're NOT doing? → no → APPLY OPPORTUNITY COST
→ Is the foregone value significant? → yes → Factor into decision
↘ no → Proceed
Before committing scarce time, people, or money to one thing:
Skip if the work is mandatory (compliance, security fix, hard dependency) — there's no optional alternative. If the next-best option is clearly worse, don't manufacture alternatives to look rigorous.
State the decision explicitly:
Choice: Build custom authentication system
Commitment: 3 engineers for 4 months
What else could you do with those resources?
Alternatives for 3 engineers × 4 months:
A. Build custom auth (the choice)
B. Use Auth0 ($500/mo) + build 3 features
C. Improve performance of existing system
D. Reduce technical debt backlog by 40%
E. Build new product line MVP
Estimate the value of each path:
| Alternative | Direct Value | Strategic Value | Risk | Total Value |
|-------------|--------------|-----------------|------|-------------|
| Custom auth | Full control, no vendor cost | IP ownership | High (security) | Medium |
| Auth0 + features | Features faster | Time to market | Low | High |
| Performance work | 2x throughput | Customer satisfaction | Low | Medium-High |
| Tech debt | Faster future dev | Developer retention | Low | Medium |
| New product MVP | Revenue diversification | Growth potential | High | High |
Opportunity cost = Value of best foregone alternative
If we choose Custom Auth:
Best alternative foregone: Auth0 + features (rated "High")
Opportunity cost: The features we won't build + faster time to market
Total cost of choice = Direct cost + Opportunity cost
Custom Auth True Cost:
Direct: 3 engineers × 4 months = 12 engineer-months
Opportunity: 3 features delayed by 4 months
+ Market share lost to faster competitors
+ Developer time not on revenue features
Question: Is custom auth worth all of that?
Nothing is free if it consumes time:
Scenario: "We can build this ourselves instead of paying $10K for the tool"
Analysis:
- Tool cost: $10,000
- Build time: 2 engineers × 2 weeks = 4 engineer-weeks
- Engineer cost: ~$4,000/week fully loaded = $16,000
- Maintenance: 1 week/quarter = $16,000/year ongoing
True cost: $16K + ongoing maintenance > $10K + $0 maintenance
Plus: What else could those engineers have built?
Don't let sunk costs distort opportunity cost analysis:
BAD thinking:
"We've already spent 6 months on this, we can't abandon it"
(Sunk cost fallacy ignores opportunity cost of continuing)
GOOD thinking:
"Given where we are now, what's the best use of the NEXT 6 months?"
(Fresh opportunity cost analysis from current state)
The status quo is always an alternative:
Proposal: Migrate to Kubernetes
Alternatives considered: ECS, Nomad, K8s
Missing alternative: Don't migrate, improve current system
Full analysis should include:
- Cost of migration (all options)
- Cost of staying put (often undervalued)
- Opportunity cost of engineers doing migration vs. features
Time opportunity cost is often highest:
"Quick meeting, only 30 minutes"
For 8-person meeting:
- Direct cost: 30 min × 8 = 4 person-hours
- Opportunity cost: 4 hours not spent on focused work
- Context switching cost: 15 min recovery × 8 = 2 more hours
- True cost: ~6 person-hours of productivity
Question: Is this meeting worth 6 hours of productivity?
## Opportunity Cost Analysis: Feature A vs. B
| Factor | Feature A | Feature B |
|--------|-----------|-----------|
| Dev time | 4 weeks | 2 weeks |
| Revenue impact | $50K/month | $30K/month |
| Time to value | 4 weeks | 2 weeks |
If we build A first:
- We get A in 4 weeks
- We get B in 6 weeks
- 2 extra weeks without B = $60K foregone
If we build B first:
- We get B in 2 weeks
- We get A in 6 weeks
- 2 extra weeks without A = $100K foregone
Decision: Build A first despite higher dev cost (higher opportunity cost of delay)
## Build vs. Buy: Monitoring System
Build:
- Development: $200K (4 engineers × 6 months)
- Maintenance: $80K/year
- Time to production: 6 months
- Opportunity cost: Features those engineers would have built
Buy (Datadog):
- License: $50K/year
- Integration: $30K (2 engineers × 1 month)
- Time to production: 1 month
- Opportunity cost: None significant
5-year TCO:
- Build: $200K + ($80K × 5) + opportunity cost = $600K + opportunity
- Buy: ($50K × 5) + $30K = $280K
Decision: Buy unless unique requirements justify 2x+ cost
## Technical Debt Opportunity Cost
Current state: 20% of engineering time on maintenance
Proposed: 3-month refactoring project
Analysis:
- 3 months of refactoring = no features for 3 months
- After refactoring: 10% time on maintenance (saves 10%)
- Break-even: When does saved maintenance = investment?
If team = 10 engineers:
- Investment: 10 × 3 = 30 engineer-months
- Monthly savings: 10 × 10% = 1 engineer-month
- Break-even: 30 months
Opportunity cost: Features not built during 3-month refactoring
Real question: Are those features worth more than 30+ months of 10% overhead?
## Hiring Opportunity Cost
Choice: Hire senior engineer at $250K
Alternative: Two mid-level at $300K total
Analysis:
- Senior: Higher immediate productivity, mentorship
- Two mid: More throughput long-term, redundancy
Opportunity cost of senior:
- Fewer total engineers
- Less coverage/redundancy
- Longer ramp-up if they leave
Opportunity cost of two mid:
- More management overhead
- Longer to complex projects
- Training investment
Decision depends on: Current team composition, project complexity, growth stage
# Opportunity Cost Analysis: [Decision]
## The Choice
What we're considering: [Primary option]
Resource commitment: [Time, money, people]
## Alternatives
What else could we do with these resources?
| # | Alternative | Resource Use | Direct Value | Strategic Value |
|---|-------------|--------------|--------------|-----------------|
| 1 | [Primary choice] | [X] | [Value] | [Strategic] |
| 2 | [Alternative 1] | [X] | [Value] | [Strategic] |
| 3 | [Alternative 2] | [X] | [Value] | [Strategic] |
| 4 | Do nothing | [X] | [Value] | [Strategic] |
## Opportunity Cost Calculation
Best foregone alternative: [Which one]
Value of that alternative: [Quantified if possible]
## True Cost of Primary Choice
- Direct cost: [Resources consumed]
- Opportunity cost: [Value of foregone alternative]
- Total: [Sum]
## Decision
Is [primary choice] worth [total cost]?
[Reasoning]
## Reversibility
If we're wrong, can we change course? At what cost?
Always ask: "If we didn't do this, what would we do instead?"
If opportunity cost is 10x the direct cost, rethink the decision.
Engineer time often has 3-5x multiplier in opportunity cost vs. dollar cost.
Always include "change nothing" as an explicit alternative.
"There is no such thing as a free lunch." — Milton Friedman
Every choice has a cost, even if it's not written on an invoice. The cost is what you gave up to make that choice. Recognizing opportunity cost transforms how you evaluate decisions.
"The cost of a thing is the amount of what I will call life which is required to be exchanged for it." — Henry David Thoreau
For engineers: substitute "engineering time" for "life" — it's your most valuable and constrained resource.
tools
About to add a feature/layer/process to fix a problem. First ask what to remove instead — subtraction is often more robust than addition. Use for simplification and complexity reduction.
development
Use when stuck between two architecture or API requirements that seem mutually exclusive — name the contradiction precisely, then separate the conflicting states in time, space, or condition.
testing
You need to trace how a system would fail or behave at a scale you can't cheaply test or measure. Use to imagine the scenario and walk the consequence chain step by step.
devops
Use when optimizing latency or throughput in a pipeline and one stage dominates—focus all effort on that single bottleneck, since speeding up the others changes nothing until it's fixed.