skills/special-situations-valuation/SKILL.md
--- name: special-situations-valuation description: Adapts the standard DCF framework for companies that break normal valuation assumptions. Handles four sub-frameworks: high-growth firms with negative earnings (revenue-based approach with failure probability), distressed firms (equity-as-call-option via Black-Scholes), private companies (total beta and liquidity discount), and financial services firms (excess return model on book equity). Use when valuing unprofitable startups, distressed compa
npx skillsauth add lyndonkl/claude skills/special-situations-valuationInstall 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: High-growth SaaS company with negative earnings
Inputs: Revenue $500M, operating loss -$100M (margin -20%), cash $300M, burn rate $80M/year, WACC 10%
Revenue-based DCF approach:
Projected year-by-year summary:
| Year | Revenue | Op. Margin | EBIT(1-t) | Reinvestment | FCFF | |------|---------|-----------|-----------|--------------|------| | 0 | $500M | -20% | -$75M | $163M | -$238M | | 3 | $1,099M | -6.9% | -$57M | $187M | -$244M | | 5 | $1,592M | +1.9% | $23M | $163M | -$140M | | 8 | $2,015M | +11.9% | $180M | $65M | +$115M | | 10 | $2,139M | +15.0% | $241M | $19M | +$222M |
Terminal value: $241M x (1.03) / (0.085 - 0.03) = $4,512M (WACC converges to 8.5% in stable growth)
DCF value of firm: $3,200M (PV of cash flows + PV of terminal value)
Failure adjustment:
Adjusted value: $3,200M x 0.85 + $200M x 0.15 = $2,750M
Subtract debt $150M, add cash $300M, subtract options $100M = equity value $2,800M
Compare: standard DCF (if earnings were positive) would value firm at $3,200M, so the failure adjustment reduces value by ~14%.
Copy this checklist and track your progress:
Special Situations Valuation Progress:
- [ ] Step 1: Classify the special situation
- [ ] Step 2: Select and apply the sub-framework
- [ ] Step 3: Make model-specific adjustments
- [ ] Step 4: Apply probability weighting or discounts
- [ ] Step 5: Compare to standard DCF result
- [ ] Step 6: Validate and document
Step 1: Classify the special situation
Determine which sub-framework applies based on company characteristics. A company may fall into multiple categories (e.g., a private financial services firm). See resources/template.md for the classification decision tree.
Step 2: Select and apply the sub-framework
Apply the methodology specific to the classified situation. See resources/methodology.md for detailed formulas and step-by-step procedures for each sub-framework.
Step 3: Make model-specific adjustments
Each sub-framework requires specific adjustments beyond the standard DCF. See resources/template.md for the relevant template with fill-in fields.
Step 4: Apply probability weighting or discounts
Incorporate risk adjustments specific to the situation type. See resources/methodology.md for estimation approaches.
Step 5: Compare to standard DCF result
Show the standard DCF value alongside the adjusted value to make the impact of adjustments transparent. See resources/template.md for the comparison template.
Step 6: Validate and document
Validate using resources/evaluators/rubric_special_situations_valuation.json. Minimum standard: Average score of 3.5 or above.
Pattern 1: High-Growth / Negative Earnings
Pattern 2: Distressed Firm
Pattern 3: Private Company
Pattern 4: Financial Services Firm
Target margin sourcing: For high-growth firms, target operating margin comes from mature industry peers, not from management projections or analyst optimism. Use the 25th-75th percentile range of mature companies in the same sector.
Firm value volatility: For the equity-as-call-option model, use asset-side volatility (firm value volatility), not equity volatility. Equity volatility overstates the underlying firm risk due to leverage amplification. Estimate from the unlevered firm or from comparable firms' asset volatility.
Total beta applicability: Total beta (market beta / correlation with market) applies only to undiversified owners who bear total risk. Diversified acquirers (PE funds, public companies) should use market beta. Specify the buyer context before choosing.
Financial services debt treatment: For banks and insurance companies, do not subtract debt from firm value to get equity value -- debt is operational, not financial. Use equity-only models (DDM, FCFE, or excess return model).
Failure probability grounding: Estimate failure probability from observable data -- cash burn rate vs. cash on hand, Altman Z-score, industry base failure rates, credit default swap spreads. Avoid round-number guesses without supporting evidence.
Liquidity discount calibration: The liquidity discount is not a flat percentage. It varies with company characteristics: larger, more profitable companies have smaller discounts. Use restricted stock study regression results that incorporate revenue, profitability, and block size as determinants.
Transparency of adjustments: Show the standard DCF value alongside the special-situation-adjusted value. This makes the magnitude and direction of each adjustment visible, and allows the reader to assess whether each adjustment is justified.
Key formulas per sub-framework:
HIGH-GROWTH (failure-adjusted value):
Adjusted Value = DCF Value x (1 - P_failure) + Distress Value x P_failure
Reinvestment = Change in Revenue / Sales-to-Capital Ratio
Margin convergence: margin_t = current_margin + (target_margin - current_margin) x (t / T)
DISTRESSED (equity as call option):
C = S x e^(-yt) x N(d1) - K x e^(-rt) x N(d2)
d1 = [ln(S/K) + (r - y + sigma^2/2) x t] / (sigma x sqrt(t))
d2 = d1 - sigma x sqrt(t)
where S = firm value, K = face value of debt, t = debt maturity,
sigma = firm value volatility, r = riskfree rate, y = cash flow yield
PRIVATE COMPANY:
Total Beta = Market Beta / Correlation with Market
Cost of Equity (undiversified) = Riskfree Rate + Total Beta x ERP
Liquidity Discount: from restricted stock regression (f(revenue, profitability, block size))
FINANCIAL SERVICES (excess return model):
Equity Value = BV_equity + sum[ (ROE_t - ke) x BV_equity_t / (1+ke)^t ] + Terminal
Terminal = (ROE_stable - ke) x BV_equity_n+1 / ((ke - g) x (1+ke)^n)
Growth in book equity = Retention Ratio x ROE
Sub-framework selection decision tree:
Is the firm a bank, insurer, or financial services company?
Yes -> Pattern 4: Financial Services (excess return model)
No -> Does the firm have negative or near-zero operating income?
Yes -> Pattern 1: High-Growth / Negative Earnings (revenue-based DCF)
No -> Is the firm facing significant distress or default risk?
Yes -> Pattern 2: Distressed (equity as call option)
No -> Is the firm private (no public equity market)?
Yes -> Pattern 3: Private Company (total beta + liquidity discount)
No -> Use standard DCF (intrinsic-valuation-dcf skill)
Key resources:
Cross-references to other skills:
business-narrative-builder: Life cycle stage determines which sub-framework appliescost-of-capital-estimator: Modified for private companies (total beta) and distressed firmsintrinsic-valuation-dcf: Standard DCF for comparison; high-growth sub-framework builds on thisfinancial-statement-analyzer: Provides cleaned base-year financials for all sub-frameworksInputs required (varies by situation type):
Outputs produced:
special-situations-valuation.md: Situation classification, sub-framework applied, model-specific adjustments, probability weighting or discounts, standard vs adjusted comparison, per-share value estimatetesting
Cluster a conference's event records into a small set of coarse themes with finer sub-clusters, an explicit outlier bucket, and soft (multi-membership) affinities — using the hybrid embed-then-label pipeline (embed abstracts, reduce, density-cluster, then LLM-label the clusters) when embedding libraries are available, and an LLM-reasoned hierarchical fallback when they are not. Embeddings do the grouping; the LLM only names the groups. Conference-agnostic. Use when turning structured event records into a navigable theme map for preference elicitation and scheduling, when you need 6-8 reasonable themes rather than 20 muddy ones, or when overlapping talks must belong to more than one theme. Trigger keywords - theme clustering, cluster talks, embed then label, soft membership, outlier talks, conference themes, topic map.
development
Build a personal conference schedule as a constraint-optimization problem — hard constraints (no time overlap, room-to-room travel time, capacity/registration, the attendee's own must-attends and blackouts) plus a user-owned weighted objective trading interest against breadth, pacing (maximize contiguous free time), and serendipity. Surfaces unbreakable conflicts (two high-value overlapping talks the model cannot rank) as decisions for the human rather than silently picking, and reports what each choice traded away. Conference-agnostic. Use to turn a preference profile plus a theme map into a day-by-day plan, to resolve overlapping sessions, or to balance a packed vs paced schedule. Trigger keywords - schedule optimization, conference schedule, constraint optimization, overlapping talks, contiguous free time, conflict surfacing, packed vs paced.
development
Parse a heterogeneous conference program (markdown, HTML, PDF-derived text, or JSON) into normalized event records with per-field confidence scores and independent classification axes (topic, depth, format, prerequisites, recorded, capacity). Detects the program's format before extracting, treats every inferred field as uncertain (present vs inferred vs missing), and flags thin or missing abstracts so downstream enrichment can target them. Conference-agnostic. Use when ingesting a conference or event schedule into a structured store, normalizing a talk/session list, or extracting per-session metadata with calibrated confidence. Trigger keywords - program ingestion, parse schedule, session extraction, event records, conference program, talk metadata, per-field confidence.
development
Build a personalized preference profile from a small number of well-chosen, cluster-grounded questions instead of a long survey. Represents the person's interests as an uncertainty region over the theme map, picks the single highest-information-gain choice-based question (contrasting real talks from different clusters), balances exploiting known interests against exploring uncertain ones, deliberately injects outlier probes to fight selection bias, and stops as soon as the schedule would be stable. Also elicits the user-owned objective weights and hard constraints. Interactive — runs where it can actually ask the person. Conference-agnostic. Use to turn a theme map into a preference profile, to decide what to ask a conference attendee, or to elicit scheduling priorities. Trigger keywords - preference elicitation, ask few questions, information gain, choice-based questions, selection bias probe, objective weights, attendee preferences.