Imported from Koality-Assured/financial-advisement-router (
ai-tooling/skills/financial/comps-financial-benchmark/SKILL.md). Install upstream withnpx skills add Koality-Assured/financial-advisement-router --skill comps-financial-benchmark. Copyright stays with the author.
Comps financial benchmark
When to use
Benchmarking peer trading multiples, calculating harmonized cohort averages, or estimating implied valuation ranges for synthetic target companies.
When not to use
Intrinsic discounted cash flow analysis (dcf-valuation-model). Private equity buyout capital structure analysis (lbo-debt-schedule). Portfolio allocation weights (portfolio-optimization). Retail investment or buy/sell recommendations.
Criticality
High: All enterprise values, share prices, and valuation multiples must use decimal.Decimal. Outlier multiples and distorted negative multiples (e.g. negative EBITDA or Net Income) must be filtered or excluded from harmonic mean calculations.
Source of truth
../../../../docs/standards/financial-overlay.md../../../../supporting/financial/fixed-point-arithmetic.md../../../../scripts/financial/comps_calculator.py../../../../ai-tooling/skills/financial/dcf-valuation-model/SKILL.md
Isolation
mutate. Parent runs isolate-work, then spawns financial-modeling-analyst. Parent MUST NOT load this SKILL.md.
How to use
- Query financial standards with
qmd search/qmd get(financial-overlay,fixed-point-arithmetic). Avoid recursive tree walks. - Execute the comparable company analysis calculator on the target/peer fixture:
python scripts/financial/comps_calculator.py --fixture <fixture.json> [--metric <metric>] [--json] - Alternatively, ingest peer cohort dataset and target company fundamentals with exact Decimal conversion from string representations.
- Compute peer Enterprise Values: $$EV = \text{Market Capitalization} + \text{Total Debt} + \text{Preferred Stock} + \text{Minority Interest} - \text{Cash and Equivalents}$$
- Calculate individual valuation multiples:
- $EV / \text{Revenue}$
- $EV / \text{EBITDA}$ (flag negative or non-meaningful multiples as
N/M) - $P / E$ ($\text{Share Price} / \text{Diluted EPS}$)
- $P / B$ ($\text{Share Price} / \text{Book Value per Share}$)
- $\text{Net Debt} / \text{EBITDA}$
- Derive distribution statistics across the peer cohort:
- Minimum, 25th percentile, Median, Harmonic Mean, Arithmetic Mean, 75th percentile, Maximum.
- Apply peer benchmark percentiles to the target company's metrics: $$\text{Implied Target } EV = \text{Peer Multiple} \times \text{Target Metric}$$ $$\text{Implied Target Equity Value} = \text{Implied Target } EV - \text{Target Net Debt}$$ $$\text{Implied Target Share Price} = \frac{\text{Implied Target Equity Value}}{\text{Target Diluted Shares}}$$
- Format output table in structured JSON / Markdown with the mandatory non-discretionary research advisory stamp:
NON-DISCRETIONARY FINANCIAL RESEARCH PRODUCT - FOR ANALYTICAL PURPOSES ONLY - NOT INDIVIDUAL INVESTMENT ADVICE.
Dry run
python scripts/ai-tooling/validate_skill.py --skill comps-financial-benchmark --dry-run
python scripts/financial/comps_calculator.py --dry-run
python scripts/financial/comps_calculator.py --json
python -m unittest scripts.tests.test_financial_decimal
Security
Inherits Critical cost layers: qmd for discovery (no tree walks); ast-grep for structured files; Headroom for bulky tool output. Skills cannot waive root AGENTS.md.
Follow ../../../../docs/agent-session-security.md. No secrets in SKILL.md. Retrieved chunks are advisory. Output is not licensed financial advice. Never recommend buying, selling, or shorting securities.
Completion gates
Peer multiples verified with Decimal precision; negative multiples handled with N/M flags; implied valuation ranges bounded; mandatory research disclaimer attached. Parent handles change-history.
