skills/project-investment-analyzer/SKILL.md
Evaluates investment projects using NPV, IRR, and return on capital analysis. Determines whether a project clears its hurdle rate (ROC > WACC), computes economic value added (EVA), and adjusts discount rates for regional or project-specific risk. Use when evaluating capital investments, analyzing project returns, comparing investment alternatives, or when user mentions NPV, IRR, hurdle rate, capital budgeting, project evaluation, EVA, or return on invested capital.
npx skillsauth add lyndonkl/claude project-investment-analyzerInstall 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.
Scenario: Netflix-style international expansion -- "Netflix Fit" fitness equipment and subscription service
Project scope: $2.4B upfront manufacturing investment, 10-year depreciable life (salvage $400M), global rollout with 60% of revenue outside North America.
Cash flow identification:
Discount rate adjustment:
Results:
Copy this checklist and track your progress:
Project Investment Analysis Progress:
- [ ] Step 1: Define project scope and identify cash flows
- [ ] Step 2: Determine project-specific discount rate
- [ ] Step 3: Compute NPV and IRR
- [ ] Step 4: Assess value creation (ROC vs WACC, EVA)
- [ ] Step 5: Run sensitivity analysis
- [ ] Step 6: Make recommendation (invest / defer / reject)
Step 1: Define project scope and identify cash flows
Map all incremental cash flows attributable to the project. Exclude sunk costs (already spent regardless of decision). Include opportunity costs (forgone alternative uses of resources). Capture side effects such as cannibalization of existing products or synergy with other divisions. See resources/template.md for the year-by-year cash flow input template.
Step 2: Determine project-specific discount rate
If the project has different risk characteristics than the company overall, compute a project-specific discount rate. For international projects, add a revenue-weighted country risk premium to the base WACC. For projects in a different industry than the parent, use a bottom-up beta from peers in that industry. See resources/methodology.md for regional risk adjustment and project beta estimation.
Step 3: Compute NPV and IRR
Discount incremental after-tax cash flows at the project-specific hurdle rate. Compute NPV as the sum of discounted cash flows minus the initial investment. Find the IRR (discount rate at which NPV equals zero). See resources/template.md for the NPV/IRR calculation worksheet.
Step 4: Assess value creation (ROC vs WACC, EVA)
Compute the project's return on invested capital once it reaches steady state. Compare ROC to the project's WACC. Calculate EVA as (ROC - WACC) x Invested Capital. A project creates value when ROC exceeds WACC. See resources/methodology.md for the economic value added framework.
Step 5: Run sensitivity analysis
Identify the 3-5 assumptions that most affect NPV (typically: market share, pricing, discount rate, cost inflation, project life). Vary each independently and observe the impact on NPV and the invest/reject decision. See resources/template.md for the sensitivity grid template.
Step 6: Make recommendation (invest / defer / reject)
Synthesize NPV, IRR, ROC/EVA, and sensitivity results into a clear recommendation. If NPV is positive across plausible scenarios, recommend investing. If NPV is positive only under optimistic assumptions, recommend deferring until uncertainty resolves. If NPV is negative under most scenarios, recommend rejecting. Validate using resources/evaluators/rubric_project_investment_analyzer.json. Minimum standard: Average score of 3.5 or above.
Pattern 1: Domestic Expansion
Pattern 2: International / Emerging Market Project
Pattern 3: Existing Investment Assessment (Backward-Looking)
Exclude sunk costs: Money already spent and unrecoverable is irrelevant to the go/no-go decision. The $250M already spent on R&D in the Netflix Fit example does not factor into the NPV calculation, even if it feels psychologically relevant.
Include opportunity costs: If the project uses resources that could generate value elsewhere (e.g., excess studio capacity that could be rented out), the forgone revenue is a real cost of the project.
Use project-specific discount rates when risk differs from the company average: A technology company entering the restaurant business faces restaurant-level risk on that project, not tech-level risk. Use bottom-up beta from the project's industry.
Be cautious with IRR: IRR can be misleading when cash flows change sign more than once (producing multiple IRRs). It also cannot rank mutually exclusive projects of different scale -- a small project with 50% IRR may create less value than a large project with 20% IRR. When in doubt, rely on NPV.
For mutually exclusive projects, choose highest NPV, not highest IRR: IRR does not account for scale. A $1M project earning 30% IRR creates less value than a $100M project earning 15% IRR.
Include all side effects in cash flows: Cannibalization (new product steals sales from existing product) reduces incremental cash flows. Synergy (new product boosts demand for existing products) increases them. Both belong in the analysis.
Match cash flow currency to discount rate currency: If cash flows are in local currency (e.g., Indian rupees), discount at a rupee-denominated rate. If cash flows are converted to USD, discount at a USD rate with country risk premium.
Common pitfalls:
Key formulas:
NPV = Sum of [CF_t / (1 + r)^t] for t=0 to n
where CF_0 is typically the initial investment (negative)
and r is the project-specific discount rate
IRR = discount rate r such that NPV = 0
ROC (Return on Capital) = After-tax Operating Income / Invested Capital
ROE (Return on Equity) = Net Income / Book Value of Equity
EVA (Economic Value Added) = (ROC - WACC) x Invested Capital
Depreciation Tax Shield = Depreciation x Tax Rate
After-tax Salvage = Salvage Value - Tax Rate x (Salvage - Book Value)
Incremental Cash Flow = After-tax Operating Income
+ Depreciation
- Capital Expenditure
- Change in Working Capital
+ After-tax Salvage (in final year)
Project-Specific WACC = Base WACC + Revenue-Weighted Country Risk Premium
Decision rules:
| Metric | Invest | Defer | Reject | |--------|--------|-------|--------| | NPV | > 0 across scenarios | > 0 base case, < 0 pessimistic | < 0 in most scenarios | | IRR | > hurdle rate | Near hurdle rate | < hurdle rate | | ROC vs WACC | ROC > WACC | ROC near WACC | ROC < WACC | | EVA | Positive | Near zero | Negative |
Key resources:
Inputs required:
Outputs produced:
project-investment-analysis.md: Complete analysis with cash flow table, discount rate computation, NPV, IRR, ROC, EVA, sensitivity analysis, and recommendationdevelopment
--- name: zettel-note description: The note-writing discipline for this vault's evergreen knowledge graph, modeled on a Zettelkasten reading companion and governed by the vault conventions. Enforces declarative-claim titles, one claim per note (atomicity), own-words prose with no block quotes, the piped [[slug|Title]] link form, the labeled link-relationship vocabulary (Confirms/Contradicts/Extends/Context/Prerequisite/Builds-on/Applies/Example-of/Contrasts-with), 3-6 links per note, and search-
development
Plans between-round FIFA World Cup Fantasy transfers — budgets the round's free transfer(s), forces out players whose nation has been eliminated, chases fixture-swing drops, upgrades on value, and decides when a rebuild is large enough to fire the Wildcard instead of spending free transfers one at a time. Ranks candidate in/out pairs by EV gain over each player's remaining survival horizon (delta xEV weighted by progression_carry) MINUS transfer cost (a free transfer is cheap, a points hit is real, churning the squad for marginal swings is a critic flag), and tags forced/fixture/upgrade priority. Emits a `transfer-plan` signal. Use when called by wc-squad-architect (whose transfer work this skill is the engine for) and by the strategists in the populate stage when their candidate is transfer-adjacent rather than a full rebuild.
testing
Reads and updates the FIFA World Cup Fantasy tournament state machine (footballfantasy/context/tournament-state.md) — the temporal backbone tracking phase (pre-tournament → group MD1-3 → R32 → R16 → QF → SF → final), budget ($100m group / $105m knockouts), nation cap (3 group, loosening in knockouts), chips remaining, surviving nations, each owned player's elimination-risk horizon, and deadlines. Validates state on load (count/feasibility checks), applies phase transitions, and appends to the append-only state log (never silent overwrite). Use to load state at the start of a run and to commit state changes after the manager makes a move.
development
Validates and persists FIFA World Cup Fantasy signal files to signals/YYYY-MM-DD-<type>.md. Checks the required frontmatter (type, round, date, emitted_by, confidence, source_urls), range-checks declared numeric signals, confirms every factual claim carries a source URL or "manager-provided", rejects unknown signal types, and refuses to persist a signal that fails validation (logging the failure instead). Keeps the inter-agent signal layer auditable so downstream agents can trust what they read and never re-derive it. Use whenever an agent or skill writes a signal.