hive-skills 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +28 -0
- package/README.md +235 -0
- package/assets/LICENSE +32 -0
- package/assets/THIRD_PARTY_NOTICES.md +72 -0
- package/assets/manifest.json +1290 -0
- package/assets/skills/authored/code-review/composable/BUNDLE.md +192 -0
- package/assets/skills/authored/code-review/composable/INDEX.md +13 -0
- package/assets/skills/authored/code-review/composable/VERSION +1 -0
- package/assets/skills/authored/code-review/composable/mini/01-review-method.md +34 -0
- package/assets/skills/authored/code-review/composable/mini/02-security-review.md +20 -0
- package/assets/skills/authored/code-review/composable/mini/03-correctness-bugs.md +19 -0
- package/assets/skills/authored/code-review/composable/mini/04-concurrency.md +16 -0
- package/assets/skills/authored/code-review/composable/mini/05-error-handling.md +12 -0
- package/assets/skills/authored/code-review/composable/mini/06-performance.md +11 -0
- package/assets/skills/authored/code-review/composable/mini/07-api-design.md +20 -0
- package/assets/skills/authored/code-review/composable/mini/08-missing-tests.md +25 -0
- package/assets/skills/authored/code-review/composable/mini/09-refactoring-and-communication.md +32 -0
- package/assets/skills/authored/data-analysis/composable/BUNDLE.md +186 -0
- package/assets/skills/authored/data-analysis/composable/INDEX.md +13 -0
- package/assets/skills/authored/data-analysis/composable/VERSION +1 -0
- package/assets/skills/authored/data-analysis/composable/mini/01-data-quality-profiling.md +26 -0
- package/assets/skills/authored/data-analysis/composable/mini/02-aggregation-pitfalls.md +21 -0
- package/assets/skills/authored/data-analysis/composable/mini/03-time-series.md +19 -0
- package/assets/skills/authored/data-analysis/composable/mini/04-segmentation.md +23 -0
- package/assets/skills/authored/data-analysis/composable/mini/05-discount-pricing.md +17 -0
- package/assets/skills/authored/data-analysis/composable/mini/06-insight-generation.md +25 -0
- package/assets/skills/authored/data-analysis/composable/mini/07-executive-writing.md +26 -0
- package/assets/skills/authored/data-analysis/composable/mini/08-recommendations.md +20 -0
- package/assets/skills/authored/data-analysis/composable/mini/09-reproducibility-assumptions.md +20 -0
- package/assets/skills/authored/financial-analysis/composable/BUNDLE.md +1293 -0
- package/assets/skills/authored/financial-analysis/composable/INDEX.md +17 -0
- package/assets/skills/authored/financial-analysis/composable/VERSION +1 -0
- package/assets/skills/authored/financial-analysis/composable/mini/00-core.md +69 -0
- package/assets/skills/authored/financial-analysis/composable/mini/01-profitability-efficiency-ratios.md +173 -0
- package/assets/skills/authored/financial-analysis/composable/mini/02-liquidity-leverage-ratios.md +120 -0
- package/assets/skills/authored/financial-analysis/composable/mini/03-valuation-ratios-interpretation.md +107 -0
- package/assets/skills/authored/financial-analysis/composable/mini/04-dcf-projection-wacc.md +122 -0
- package/assets/skills/authored/financial-analysis/composable/mini/05-dcf-terminal-value-sensitivity.md +75 -0
- package/assets/skills/authored/financial-analysis/composable/mini/06-comparables-precedents.md +78 -0
- package/assets/skills/authored/financial-analysis/composable/mini/07-budget-variance-analysis.md +47 -0
- package/assets/skills/authored/financial-analysis/composable/mini/08-driver-based-forecasting-scenarios.md +111 -0
- package/assets/skills/authored/financial-analysis/composable/mini/09-rolling-forecasts-accuracy.md +114 -0
- package/assets/skills/authored/financial-analysis/composable/mini/10-reporting-exec-summary.md +58 -0
- package/assets/skills/authored/financial-analysis/composable/mini/11-industry-adaptations.md +130 -0
- package/assets/skills/authored/financial-analysis/composable/mini/12-toolkit-scripts-io.md +102 -0
- package/assets/skills/authored/python-api/composable/BUNDLE.md +389 -0
- package/assets/skills/authored/python-api/composable/INDEX.md +13 -0
- package/assets/skills/authored/python-api/composable/VERSION +1 -0
- package/assets/skills/authored/python-api/composable/mini/01-project-structure.md +44 -0
- package/assets/skills/authored/python-api/composable/mini/02-routing-and-app.md +38 -0
- package/assets/skills/authored/python-api/composable/mini/03-pydantic-models.md +45 -0
- package/assets/skills/authored/python-api/composable/mini/04-validation-and-errors.md +59 -0
- package/assets/skills/authored/python-api/composable/mini/05-dependencies-and-auth.md +60 -0
- package/assets/skills/authored/python-api/composable/mini/06-pagination-filtering.md +44 -0
- package/assets/skills/authored/python-api/composable/mini/07-async-performance.md +30 -0
- package/assets/skills/authored/python-api/composable/mini/08-testing.md +45 -0
- package/assets/skills/authored/python-api/composable/mini/09-middleware-observability.md +29 -0
- package/assets/skills/authored/tech-writing/composable/BUNDLE.md +220 -0
- package/assets/skills/authored/tech-writing/composable/INDEX.md +12 -0
- package/assets/skills/authored/tech-writing/composable/VERSION +1 -0
- package/assets/skills/authored/tech-writing/composable/mini/01-audience-analysis.md +26 -0
- package/assets/skills/authored/tech-writing/composable/mini/02-document-types.md +27 -0
- package/assets/skills/authored/tech-writing/composable/mini/03-readme-quickstart-changelog.md +22 -0
- package/assets/skills/authored/tech-writing/composable/mini/04-information-architecture.md +21 -0
- package/assets/skills/authored/tech-writing/composable/mini/05-style-clarity.md +29 -0
- package/assets/skills/authored/tech-writing/composable/mini/06-breaking-changes-migrations.md +33 -0
- package/assets/skills/authored/tech-writing/composable/mini/07-troubleshooting-security.md +30 -0
- package/assets/skills/authored/tech-writing/composable/mini/08-faq-voice-tone.md +32 -0
- package/assets/skills/converted/claude-api/composable/BUNDLE.md +14996 -0
- package/assets/skills/converted/claude-api/composable/INDEX.md +98 -0
- package/assets/skills/converted/claude-api/composable/VERSION +1 -0
- package/assets/skills/converted/claude-api/composable/mini/00-core.md +235 -0
- package/assets/skills/converted/claude-api/composable/mini/01-model-api-quick-reference.md +258 -0
- package/assets/skills/converted/claude-api/composable/mini/02-common-pitfalls.md +42 -0
- package/assets/skills/converted/claude-api/composable/mini/10-models.md +135 -0
- package/assets/skills/converted/claude-api/composable/mini/11-platform-availability.md +96 -0
- package/assets/skills/converted/claude-api/composable/mini/12-claude-platform-on-aws.md +59 -0
- package/assets/skills/converted/claude-api/composable/mini/13-live-sources.md +143 -0
- package/assets/skills/converted/claude-api/composable/mini/14-error-codes.md +256 -0
- package/assets/skills/converted/claude-api/composable/mini/15-prompt-caching.md +223 -0
- package/assets/skills/converted/claude-api/composable/mini/16-token-counting.md +56 -0
- package/assets/skills/converted/claude-api/composable/mini/17-tool-use-concepts.md +444 -0
- package/assets/skills/converted/claude-api/composable/mini/18-agent-design.md +101 -0
- package/assets/skills/converted/claude-api/composable/mini/19-anthropic-cli.md +246 -0
- package/assets/skills/converted/claude-api/composable/mini/20-model-migration.md +1301 -0
- package/assets/skills/converted/claude-api/composable/mini/30-managed-agents-overview.md +71 -0
- package/assets/skills/converted/claude-api/composable/mini/31-managed-agents-core.md +278 -0
- package/assets/skills/converted/claude-api/composable/mini/32-managed-agents-environments.md +219 -0
- package/assets/skills/converted/claude-api/composable/mini/33-managed-agents-tools.md +366 -0
- package/assets/skills/converted/claude-api/composable/mini/34-managed-agents-events.md +252 -0
- package/assets/skills/converted/claude-api/composable/mini/35-managed-agents-outcomes.md +106 -0
- package/assets/skills/converted/claude-api/composable/mini/36-managed-agents-multiagent.md +101 -0
- package/assets/skills/converted/claude-api/composable/mini/37-managed-agents-webhooks.md +123 -0
- package/assets/skills/converted/claude-api/composable/mini/38-managed-agents-memory.md +197 -0
- package/assets/skills/converted/claude-api/composable/mini/39-managed-agents-scheduled-deployments.md +146 -0
- package/assets/skills/converted/claude-api/composable/mini/40-managed-agents-client-patterns.md +211 -0
- package/assets/skills/converted/claude-api/composable/mini/41-managed-agents-onboarding.md +82 -0
- package/assets/skills/converted/claude-api/composable/mini/42-managed-agents-api-reference.md +441 -0
- package/assets/skills/converted/claude-api/composable/mini/43-managed-agents-self-hosted-sandboxes.md +174 -0
- package/assets/skills/converted/claude-api/composable/mini/50-python-readme.md +564 -0
- package/assets/skills/converted/claude-api/composable/mini/51-python-tool-use.md +590 -0
- package/assets/skills/converted/claude-api/composable/mini/52-python-streaming-batches-files.md +549 -0
- package/assets/skills/converted/claude-api/composable/mini/53-python-managed-agents.md +335 -0
- package/assets/skills/converted/claude-api/composable/mini/55-typescript-readme.md +404 -0
- package/assets/skills/converted/claude-api/composable/mini/56-typescript-tool-use.md +548 -0
- package/assets/skills/converted/claude-api/composable/mini/57-typescript-streaming-batches-files.md +384 -0
- package/assets/skills/converted/claude-api/composable/mini/58-typescript-managed-agents.md +358 -0
- package/assets/skills/converted/claude-api/composable/mini/60-csharp-readme.md +361 -0
- package/assets/skills/converted/claude-api/composable/mini/61-csharp-tool-use.md +163 -0
- package/assets/skills/converted/claude-api/composable/mini/62-csharp-streaming-batches-files.md +64 -0
- package/assets/skills/converted/claude-api/composable/mini/65-go-readme.md +185 -0
- package/assets/skills/converted/claude-api/composable/mini/66-go-tool-use.md +219 -0
- package/assets/skills/converted/claude-api/composable/mini/67-go-streaming-files.md +63 -0
- package/assets/skills/converted/claude-api/composable/mini/68-go-managed-agents.md +564 -0
- package/assets/skills/converted/claude-api/composable/mini/70-java-readme.md +237 -0
- package/assets/skills/converted/claude-api/composable/mini/71-java-tool-use.md +227 -0
- package/assets/skills/converted/claude-api/composable/mini/72-java-streaming-files.md +49 -0
- package/assets/skills/converted/claude-api/composable/mini/73-java-managed-agents.md +443 -0
- package/assets/skills/converted/claude-api/composable/mini/75-php-readme.md +173 -0
- package/assets/skills/converted/claude-api/composable/mini/76-php-tool-use.md +252 -0
- package/assets/skills/converted/claude-api/composable/mini/77-php-streaming-batches-files.md +53 -0
- package/assets/skills/converted/claude-api/composable/mini/78-php-managed-agents.md +443 -0
- package/assets/skills/converted/claude-api/composable/mini/80-ruby-readme.md +133 -0
- package/assets/skills/converted/claude-api/composable/mini/81-ruby-tool-use-streaming.md +56 -0
- package/assets/skills/converted/claude-api/composable/mini/82-ruby-managed-agents.md +394 -0
- package/assets/skills/converted/claude-api/composable/mini/85-curl-examples.md +255 -0
- package/assets/skills/converted/claude-api/composable/mini/86-curl-managed-agents.md +340 -0
- package/assets/skills/converted/claude-api/composable/presets/csharp.md +1151 -0
- package/assets/skills/converted/claude-api/composable/presets/curl.md +1154 -0
- package/assets/skills/converted/claude-api/composable/presets/go.md +1598 -0
- package/assets/skills/converted/claude-api/composable/presets/java.md +1523 -0
- package/assets/skills/converted/claude-api/composable/presets/php.md +1488 -0
- package/assets/skills/converted/claude-api/composable/presets/python.md +2605 -0
- package/assets/skills/converted/claude-api/composable/presets/ruby.md +1146 -0
- package/assets/skills/converted/claude-api/composable/presets/shared.md +6478 -0
- package/assets/skills/converted/claude-api/composable/presets/typescript.md +2261 -0
- package/assets/skills/converted/docx/composable/BUNDLE.md +617 -0
- package/assets/skills/converted/docx/composable/INDEX.md +12 -0
- package/assets/skills/converted/docx/composable/VERSION +1 -0
- package/assets/skills/converted/docx/composable/mini/00-core.md +26 -0
- package/assets/skills/converted/docx/composable/mini/01-reading-converting.md +36 -0
- package/assets/skills/converted/docx/composable/mini/02-creating-setup-layout.md +85 -0
- package/assets/skills/converted/docx/composable/mini/03-creating-elements.md +257 -0
- package/assets/skills/converted/docx/composable/mini/04-editing-existing.md +57 -0
- package/assets/skills/converted/docx/composable/mini/05-xml-reference.md +128 -0
- package/assets/skills/converted/internal-comms/composable/BUNDLE.md +220 -0
- package/assets/skills/converted/internal-comms/composable/INDEX.md +11 -0
- package/assets/skills/converted/internal-comms/composable/VERSION +1 -0
- package/assets/skills/converted/internal-comms/composable/mini/00-core.md +30 -0
- package/assets/skills/converted/internal-comms/composable/mini/01-3p-updates.md +49 -0
- package/assets/skills/converted/internal-comms/composable/mini/02-company-newsletter.md +67 -0
- package/assets/skills/converted/internal-comms/composable/mini/03-faq-answers.md +32 -0
- package/assets/skills/converted/internal-comms/composable/mini/04-general-comms.md +18 -0
- package/assets/skills/converted/mcp-builder/composable/BUNDLE.md +2460 -0
- package/assets/skills/converted/mcp-builder/composable/INDEX.md +23 -0
- package/assets/skills/converted/mcp-builder/composable/VERSION +1 -0
- package/assets/skills/converted/mcp-builder/composable/mini/00-core.md +43 -0
- package/assets/skills/converted/mcp-builder/composable/mini/01-workflow-research-planning.md +54 -0
- package/assets/skills/converted/mcp-builder/composable/mini/02-implementation-process.md +78 -0
- package/assets/skills/converted/mcp-builder/composable/mini/03-naming-conventions.md +33 -0
- package/assets/skills/converted/mcp-builder/composable/mini/04-response-formats.md +21 -0
- package/assets/skills/converted/mcp-builder/composable/mini/05-pagination.md +24 -0
- package/assets/skills/converted/mcp-builder/composable/mini/06-transport.md +47 -0
- package/assets/skills/converted/mcp-builder/composable/mini/07-annotations.md +20 -0
- package/assets/skills/converted/mcp-builder/composable/mini/08-security.md +35 -0
- package/assets/skills/converted/mcp-builder/composable/mini/09-error-handling.md +32 -0
- package/assets/skills/converted/mcp-builder/composable/mini/10-testing-and-documentation.md +21 -0
- package/assets/skills/converted/mcp-builder/composable/mini/11-python-implementation.md +432 -0
- package/assets/skills/converted/mcp-builder/composable/mini/12-python-advanced-and-checklist.md +233 -0
- package/assets/skills/converted/mcp-builder/composable/mini/13-node-implementation.md +717 -0
- package/assets/skills/converted/mcp-builder/composable/mini/14-node-advanced-and-checklist.md +200 -0
- package/assets/skills/converted/mcp-builder/composable/mini/15-evaluation-design.md +200 -0
- package/assets/skills/converted/mcp-builder/composable/mini/16-evaluation-running.md +198 -0
- package/assets/skills/converted/mcp-builder/composable/presets/node-server.md +1381 -0
- package/assets/skills/converted/mcp-builder/composable/presets/python-server.md +1129 -0
- package/assets/skills/converted/pdf/composable/BUNDLE.md +1284 -0
- package/assets/skills/converted/pdf/composable/INDEX.md +14 -0
- package/assets/skills/converted/pdf/composable/VERSION +1 -0
- package/assets/skills/converted/pdf/composable/mini/00-core.md +46 -0
- package/assets/skills/converted/pdf/composable/mini/01-creation.md +176 -0
- package/assets/skills/converted/pdf/composable/mini/02-extraction.md +178 -0
- package/assets/skills/converted/pdf/composable/mini/03-merge-split-manipulate.md +240 -0
- package/assets/skills/converted/pdf/composable/mini/04-images-ocr.md +168 -0
- package/assets/skills/converted/pdf/composable/mini/05-encryption.md +51 -0
- package/assets/skills/converted/pdf/composable/mini/06-forms.md +300 -0
- package/assets/skills/converted/pdf/composable/mini/07-libraries-reference.md +89 -0
- package/assets/skills/converted/pptx/composable/BUNDLE.md +911 -0
- package/assets/skills/converted/pptx/composable/INDEX.md +12 -0
- package/assets/skills/converted/pptx/composable/VERSION +1 -0
- package/assets/skills/converted/pptx/composable/mini/00-core.md +37 -0
- package/assets/skills/converted/pptx/composable/mini/01-reading.md +37 -0
- package/assets/skills/converted/pptx/composable/mini/02-creating-from-scratch.md +422 -0
- package/assets/skills/converted/pptx/composable/mini/03-editing-templates.md +207 -0
- package/assets/skills/converted/pptx/composable/mini/04-design.md +89 -0
- package/assets/skills/converted/pptx/composable/mini/05-qa-and-rendering.md +91 -0
- package/assets/skills/converted/pptx/composable/presets/creating.md +659 -0
- package/assets/skills/converted/pptx/composable/presets/editing.md +485 -0
- package/assets/skills/converted/skill-creator/composable/BUNDLE.md +1681 -0
- package/assets/skills/converted/skill-creator/composable/INDEX.md +21 -0
- package/assets/skills/converted/skill-creator/composable/VERSION +1 -0
- package/assets/skills/converted/skill-creator/composable/mini/00-core.md +59 -0
- package/assets/skills/converted/skill-creator/composable/mini/01-creating-a-skill.md +27 -0
- package/assets/skills/converted/skill-creator/composable/mini/02-skill-writing-guide.md +71 -0
- package/assets/skills/converted/skill-creator/composable/mini/03-test-cases.md +21 -0
- package/assets/skills/converted/skill-creator/composable/mini/04-running-and-evaluating.md +128 -0
- package/assets/skills/converted/skill-creator/composable/mini/05-improving-the-skill.md +30 -0
- package/assets/skills/converted/skill-creator/composable/mini/06-blind-comparison.md +5 -0
- package/assets/skills/converted/skill-creator/composable/mini/07-description-optimization.md +74 -0
- package/assets/skills/converted/skill-creator/composable/mini/08-packaging.md +11 -0
- package/assets/skills/converted/skill-creator/composable/mini/09-environment-specific.md +38 -0
- package/assets/skills/converted/skill-creator/composable/mini/10-scripts-and-references.md +34 -0
- package/assets/skills/converted/skill-creator/composable/mini/11-json-schemas.md +414 -0
- package/assets/skills/converted/skill-creator/composable/mini/12-agent-grader.md +225 -0
- package/assets/skills/converted/skill-creator/composable/mini/13-agent-comparator.md +204 -0
- package/assets/skills/converted/skill-creator/composable/mini/14-agent-analyzer.md +276 -0
- package/assets/skills/converted/skill-creator/composable/presets/authoring.md +198 -0
- package/assets/skills/converted/skill-creator/composable/presets/evaluating.md +1334 -0
- package/assets/skills/converted/skill-creator/composable/presets/optimizing.md +160 -0
- package/assets/skills/converted/skill-creator/composable/presets.json +5 -0
- package/assets/skills/meta/ccs-skill-creator/composable/BUNDLE.md +465 -0
- package/assets/skills/meta/ccs-skill-creator/composable/INDEX.md +8 -0
- package/assets/skills/meta/ccs-skill-creator/composable/VERSION +1 -0
- package/assets/skills/meta/ccs-skill-creator/composable/mini/00-core.md +46 -0
- package/assets/skills/meta/ccs-skill-creator/composable/mini/01-create-new-skill.md +167 -0
- package/assets/skills/meta/ccs-skill-creator/composable/mini/02-convert-existing-skill.md +120 -0
- package/assets/skills/meta/ccs-skill-creator/composable/mini/03-review-and-maintain.md +112 -0
- package/assets/skills/sources/anthropic/PROVENANCE.md +3 -0
- package/assets/skills/sources/anthropic/claude-api/LICENSE.txt +202 -0
- package/assets/skills/sources/anthropic/docx/LICENSE.txt +30 -0
- package/assets/skills/sources/anthropic/internal-comms/LICENSE.txt +202 -0
- package/assets/skills/sources/anthropic/mcp-builder/LICENSE.txt +202 -0
- package/assets/skills/sources/anthropic/pdf/LICENSE.txt +30 -0
- package/assets/skills/sources/anthropic/pptx/LICENSE.txt +30 -0
- package/assets/skills/sources/anthropic/skill-creator/LICENSE.txt +202 -0
- package/assets/skills/sources/financial-analyst/PROVENANCE.md +1 -0
- package/assets/tools/hive.py +728 -0
- package/dist/cli.js +7494 -0
- package/package.json +40 -0
|
@@ -0,0 +1,1293 @@
|
|
|
1
|
+
<!-- GENERATED by tools/hive.py compile. Do not hand-edit. -->
|
|
2
|
+
# financial-analysis: Compiled Skill Bundle (v1.0.0)
|
|
3
|
+
|
|
4
|
+
All composable mini-skills for `financial-analysis` concatenated in index order, frontmatter stripped. Regenerate with `tools/hive.py compile <skill-dir>`. Do not edit by hand.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
<!-- module: 00-core.md -->
|
|
8
|
+
|
|
9
|
+
# Core: Financial Analyst Method
|
|
10
|
+
|
|
11
|
+
Always-loaded foundation for a production-ready financial analysis toolkit providing ratio analysis, DCF valuation, budget variance analysis, and rolling forecast construction. Designed for financial modeling, forecasting & budgeting, management reporting, business performance analysis, and investment analysis. Load the focused minis (see INDEX) for formulas, benchmarks, methods, and tooling.
|
|
12
|
+
|
|
13
|
+
## The 5-Phase Workflow
|
|
14
|
+
|
|
15
|
+
### Phase 1: Scoping
|
|
16
|
+
- Define analysis objectives and stakeholder requirements
|
|
17
|
+
- Identify data sources and time periods
|
|
18
|
+
- Establish materiality thresholds and accuracy targets
|
|
19
|
+
- Select appropriate analytical frameworks
|
|
20
|
+
|
|
21
|
+
### Phase 2: Data Analysis & Modeling
|
|
22
|
+
- Collect and validate financial data (income statement, balance sheet, cash flow)
|
|
23
|
+
- **Validate input data completeness** before running ratio calculations (check for missing fields, nulls, or implausible values)
|
|
24
|
+
- Calculate financial ratios across 5 categories (profitability, liquidity, leverage, efficiency, valuation)
|
|
25
|
+
- Build DCF models with WACC and terminal value calculations; **cross-check DCF outputs against sanity bounds** (e.g., implied multiples vs. comparables)
|
|
26
|
+
- Construct budget variance analyses with favorable/unfavorable classification
|
|
27
|
+
- Develop driver-based forecasts with scenario modeling
|
|
28
|
+
|
|
29
|
+
### Phase 3: Insight Generation
|
|
30
|
+
- Interpret ratio trends and benchmark against industry standards
|
|
31
|
+
- Identify material variances and root causes
|
|
32
|
+
- Assess valuation ranges through sensitivity analysis
|
|
33
|
+
- Evaluate forecast scenarios (base/bull/bear) for decision support
|
|
34
|
+
|
|
35
|
+
### Phase 4: Reporting
|
|
36
|
+
- Generate executive summaries with key findings
|
|
37
|
+
- Produce detailed variance reports by department and category
|
|
38
|
+
- Deliver DCF valuation reports with sensitivity tables
|
|
39
|
+
- Present rolling forecasts with trend analysis
|
|
40
|
+
|
|
41
|
+
### Phase 5: Follow-up
|
|
42
|
+
- Track forecast accuracy (target: +/-5% revenue, +/-3% expenses)
|
|
43
|
+
- Monitor report delivery timeliness (target: 100% on time)
|
|
44
|
+
- Update models with actuals as they become available
|
|
45
|
+
- Refine assumptions based on variance analysis
|
|
46
|
+
|
|
47
|
+
## Data-Validation Discipline (do this before computing)
|
|
48
|
+
|
|
49
|
+
- **Validate completeness first**: check for missing fields, nulls, or implausible values before running any calculation. Forecasting without key driver inputs is a top accuracy killer.
|
|
50
|
+
- **Check plausibility**: values within sane bounds (e.g., margins ≤ 100%, positive denominators).
|
|
51
|
+
- **Cross-check outputs against sanity bounds**: reconcile DCF implied multiples against comparables; if terminal value exceeds 80% of enterprise value, shorten the projection or revisit assumptions; both TV methods (perpetuity vs exit multiple) should agree.
|
|
52
|
+
|
|
53
|
+
## Cross-Cutting Traps
|
|
54
|
+
|
|
55
|
+
- **Compare within industry**: ratios and multiples vary hugely across sectors; use direct peers, not just broad benchmarks.
|
|
56
|
+
- **Trends over snapshots**: a single period is insufficient; review 3–5 year trends.
|
|
57
|
+
- **Use multiple measures**: no single ratio or method tells the whole story.
|
|
58
|
+
- **Consider context**: accounting policies, business cycle, and company stage matter.
|
|
59
|
+
- **Watch for manipulation**: revenue-recognition changes, off-balance-sheet items, and one-time adjustments distort ratios.
|
|
60
|
+
- **Avoid confirmation bias**: never work backward from a desired conclusion.
|
|
61
|
+
- **Present ranges, not points**: always show sensitivity and quantify uncertainty rather than false precision.
|
|
62
|
+
- **Documentation**: document every assumption; explain 100% of material variances.
|
|
63
|
+
|
|
64
|
+
## Key Metrics & Targets
|
|
65
|
+
|
|
66
|
+
| Metric | Target |
|
|
67
|
+
|--------|--------|
|
|
68
|
+
| Forecast accuracy (revenue) | +/-5% |
|
|
69
|
+
| Forecast accuracy (expenses) | +/-3% |
|
|
70
|
+
| Report delivery | 100% on time |
|
|
71
|
+
| Model documentation | Complete for all assumptions |
|
|
72
|
+
| Variance explanation | 100% of material variances |
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
<!-- module: 01-profitability-efficiency-ratios.md -->
|
|
76
|
+
|
|
77
|
+
# Profitability & Efficiency Ratios
|
|
78
|
+
|
|
79
|
+
## 1. Profitability Ratios
|
|
80
|
+
|
|
81
|
+
Measure a company's ability to generate earnings relative to revenue, assets, or equity.
|
|
82
|
+
|
|
83
|
+
### Return on Equity (ROE)
|
|
84
|
+
|
|
85
|
+
**Formula:** Net Income / Total Shareholders' Equity
|
|
86
|
+
|
|
87
|
+
**Interpretation:**
|
|
88
|
+
- Measures how effectively management uses equity to generate profits
|
|
89
|
+
- Higher ROE indicates more efficient use of equity capital
|
|
90
|
+
- Compare against cost of equity: ROE should exceed it
|
|
91
|
+
|
|
92
|
+
**Benchmarks:**
|
|
93
|
+
| Rating | Range |
|
|
94
|
+
|--------|-------|
|
|
95
|
+
| Below Average | < 8% |
|
|
96
|
+
| Acceptable | 8% - 15% |
|
|
97
|
+
| Good | 15% - 25% |
|
|
98
|
+
| Excellent | > 25% |
|
|
99
|
+
|
|
100
|
+
**Caveats:** High leverage can inflate ROE. Use DuPont decomposition (ROE = Margin × Turnover × Leverage) for deeper analysis.
|
|
101
|
+
|
|
102
|
+
### Return on Assets (ROA)
|
|
103
|
+
|
|
104
|
+
**Formula:** Net Income / Total Assets
|
|
105
|
+
|
|
106
|
+
**Interpretation:**
|
|
107
|
+
- Measures how efficiently assets generate profit
|
|
108
|
+
- Asset-light businesses naturally have higher ROA
|
|
109
|
+
- Compare within industry only
|
|
110
|
+
|
|
111
|
+
**Benchmarks:**
|
|
112
|
+
| Rating | Range |
|
|
113
|
+
|--------|-------|
|
|
114
|
+
| Below Average | < 3% |
|
|
115
|
+
| Acceptable | 3% - 6% |
|
|
116
|
+
| Good | 6% - 12% |
|
|
117
|
+
| Excellent | > 12% |
|
|
118
|
+
|
|
119
|
+
### Gross Margin
|
|
120
|
+
|
|
121
|
+
**Formula:** (Revenue - COGS) / Revenue
|
|
122
|
+
|
|
123
|
+
**Interpretation:**
|
|
124
|
+
- Measures production efficiency and pricing power
|
|
125
|
+
- Declining gross margin may signal competitive pressure or cost inflation
|
|
126
|
+
- Critical for evaluating business model sustainability
|
|
127
|
+
|
|
128
|
+
**Benchmarks by Industry:**
|
|
129
|
+
| Industry | Typical Range |
|
|
130
|
+
|----------|--------------|
|
|
131
|
+
| Software/SaaS | 70% - 85% |
|
|
132
|
+
| Financial Services | 50% - 70% |
|
|
133
|
+
| Retail | 25% - 45% |
|
|
134
|
+
| Manufacturing | 20% - 40% |
|
|
135
|
+
| Grocery | 25% - 30% |
|
|
136
|
+
|
|
137
|
+
### Operating Margin
|
|
138
|
+
|
|
139
|
+
**Formula:** Operating Income / Revenue
|
|
140
|
+
|
|
141
|
+
**Interpretation:**
|
|
142
|
+
- Measures operational efficiency after all operating expenses
|
|
143
|
+
- Excludes interest and taxes for better operational comparison
|
|
144
|
+
- Indicates management effectiveness in controlling costs
|
|
145
|
+
|
|
146
|
+
**Benchmarks:**
|
|
147
|
+
| Rating | Range |
|
|
148
|
+
|--------|-------|
|
|
149
|
+
| Below Average | < 5% |
|
|
150
|
+
| Acceptable | 5% - 15% |
|
|
151
|
+
| Good | 15% - 25% |
|
|
152
|
+
| Excellent | > 25% |
|
|
153
|
+
|
|
154
|
+
### Net Margin
|
|
155
|
+
|
|
156
|
+
**Formula:** Net Income / Revenue
|
|
157
|
+
|
|
158
|
+
**Interpretation:**
|
|
159
|
+
- Bottom-line profitability after all expenses
|
|
160
|
+
- Affected by tax strategy, capital structure, and one-time items
|
|
161
|
+
- Most comprehensive profitability measure
|
|
162
|
+
|
|
163
|
+
**Benchmarks:**
|
|
164
|
+
| Rating | Range |
|
|
165
|
+
|--------|-------|
|
|
166
|
+
| Below Average | < 3% |
|
|
167
|
+
| Acceptable | 3% - 10% |
|
|
168
|
+
| Good | 10% - 20% |
|
|
169
|
+
| Excellent | > 20% |
|
|
170
|
+
|
|
171
|
+
## 4. Efficiency Ratios
|
|
172
|
+
|
|
173
|
+
Measure how effectively a company uses its assets and manages operations.
|
|
174
|
+
|
|
175
|
+
### Asset Turnover
|
|
176
|
+
|
|
177
|
+
**Formula:** Revenue / Total Assets
|
|
178
|
+
|
|
179
|
+
**Interpretation:**
|
|
180
|
+
- Measures revenue generated per dollar of assets
|
|
181
|
+
- Higher indicates more efficient asset utilization
|
|
182
|
+
- Inversely related to profit margins (DuPont)
|
|
183
|
+
|
|
184
|
+
**Benchmarks:**
|
|
185
|
+
| Industry | Typical Range |
|
|
186
|
+
|----------|--------------|
|
|
187
|
+
| Retail | 2.0 - 3.0 |
|
|
188
|
+
| Manufacturing | 0.8 - 1.5 |
|
|
189
|
+
| Utilities | 0.3 - 0.5 |
|
|
190
|
+
| Technology | 0.5 - 1.0 |
|
|
191
|
+
|
|
192
|
+
### Inventory Turnover
|
|
193
|
+
|
|
194
|
+
**Formula:** COGS / Average Inventory
|
|
195
|
+
|
|
196
|
+
**Interpretation:**
|
|
197
|
+
- Measures how quickly inventory is sold
|
|
198
|
+
- Low turnover suggests overstock or obsolescence risk
|
|
199
|
+
- High turnover may indicate strong sales or thin inventory
|
|
200
|
+
|
|
201
|
+
**Benchmarks:**
|
|
202
|
+
| Rating | Range |
|
|
203
|
+
|--------|-------|
|
|
204
|
+
| Slow | < 4x |
|
|
205
|
+
| Average | 4x - 8x |
|
|
206
|
+
| Efficient | 8x - 12x |
|
|
207
|
+
| Very Efficient | > 12x |
|
|
208
|
+
|
|
209
|
+
### Receivables Turnover
|
|
210
|
+
|
|
211
|
+
**Formula:** Revenue / Accounts Receivable
|
|
212
|
+
|
|
213
|
+
**Interpretation:**
|
|
214
|
+
- Measures efficiency of credit and collections
|
|
215
|
+
- Higher turnover means faster collections
|
|
216
|
+
- Monitor trends for credit policy changes
|
|
217
|
+
|
|
218
|
+
**Benchmarks:**
|
|
219
|
+
| Rating | Range |
|
|
220
|
+
|--------|-------|
|
|
221
|
+
| Slow | < 6x |
|
|
222
|
+
| Average | 6x - 10x |
|
|
223
|
+
| Efficient | 10x - 15x |
|
|
224
|
+
| Very Efficient | > 15x |
|
|
225
|
+
|
|
226
|
+
### Days Sales Outstanding (DSO)
|
|
227
|
+
|
|
228
|
+
**Formula:** 365 / Receivables Turnover
|
|
229
|
+
|
|
230
|
+
**Interpretation:**
|
|
231
|
+
- Average days to collect payment after a sale
|
|
232
|
+
- Lower DSO = faster cash conversion
|
|
233
|
+
- Compare against payment terms
|
|
234
|
+
|
|
235
|
+
**Benchmarks:**
|
|
236
|
+
| Rating | Range |
|
|
237
|
+
|--------|-------|
|
|
238
|
+
| Excellent | < 30 days |
|
|
239
|
+
| Good | 30 - 45 days |
|
|
240
|
+
| Acceptable | 45 - 60 days |
|
|
241
|
+
| Concern | > 60 days |
|
|
242
|
+
|
|
243
|
+
Always compare within industry, review 3–5 year trends, and pair with liquidity/leverage and valuation ratios for a complete picture.
|
|
244
|
+
|
|
245
|
+
---
|
|
246
|
+
<!-- module: 02-liquidity-leverage-ratios.md -->
|
|
247
|
+
|
|
248
|
+
# Liquidity & Leverage Ratios
|
|
249
|
+
|
|
250
|
+
## 2. Liquidity Ratios
|
|
251
|
+
|
|
252
|
+
Measure a company's ability to meet short-term obligations.
|
|
253
|
+
|
|
254
|
+
### Current Ratio
|
|
255
|
+
|
|
256
|
+
**Formula:** Current Assets / Current Liabilities
|
|
257
|
+
|
|
258
|
+
**Interpretation:**
|
|
259
|
+
- Measures short-term solvency
|
|
260
|
+
- Too high may indicate inefficient asset use
|
|
261
|
+
- Too low signals potential liquidity risk
|
|
262
|
+
|
|
263
|
+
**Benchmarks:**
|
|
264
|
+
| Rating | Range |
|
|
265
|
+
|--------|-------|
|
|
266
|
+
| Concern | < 1.0 |
|
|
267
|
+
| Acceptable | 1.0 - 1.5 |
|
|
268
|
+
| Healthy | 1.5 - 3.0 |
|
|
269
|
+
| Excessive | > 3.0 |
|
|
270
|
+
|
|
271
|
+
### Quick Ratio (Acid Test)
|
|
272
|
+
|
|
273
|
+
**Formula:** (Current Assets - Inventory) / Current Liabilities
|
|
274
|
+
|
|
275
|
+
**Interpretation:**
|
|
276
|
+
- More conservative than current ratio
|
|
277
|
+
- Excludes inventory (least liquid current asset)
|
|
278
|
+
- Critical for businesses with slow-moving inventory
|
|
279
|
+
|
|
280
|
+
**Benchmarks:**
|
|
281
|
+
| Rating | Range |
|
|
282
|
+
|--------|-------|
|
|
283
|
+
| Concern | < 0.8 |
|
|
284
|
+
| Acceptable | 0.8 - 1.0 |
|
|
285
|
+
| Healthy | 1.0 - 2.0 |
|
|
286
|
+
| Excessive | > 2.0 |
|
|
287
|
+
|
|
288
|
+
### Cash Ratio
|
|
289
|
+
|
|
290
|
+
**Formula:** Cash & Equivalents / Current Liabilities
|
|
291
|
+
|
|
292
|
+
**Interpretation:**
|
|
293
|
+
- Most conservative liquidity measure
|
|
294
|
+
- Indicates ability to pay obligations with cash on hand
|
|
295
|
+
- Particularly important during credit crunches
|
|
296
|
+
|
|
297
|
+
**Benchmarks:**
|
|
298
|
+
| Rating | Range |
|
|
299
|
+
|--------|-------|
|
|
300
|
+
| Low | < 0.2 |
|
|
301
|
+
| Adequate | 0.2 - 0.5 |
|
|
302
|
+
| Strong | 0.5 - 1.0 |
|
|
303
|
+
| Excessive | > 1.0 |
|
|
304
|
+
|
|
305
|
+
## 3. Leverage Ratios
|
|
306
|
+
|
|
307
|
+
Measure the extent to which a company uses debt financing.
|
|
308
|
+
|
|
309
|
+
### Debt-to-Equity Ratio
|
|
310
|
+
|
|
311
|
+
**Formula:** Total Debt / Total Shareholders' Equity
|
|
312
|
+
|
|
313
|
+
**Interpretation:**
|
|
314
|
+
- Measures financial leverage and risk
|
|
315
|
+
- Higher ratio = more reliance on debt financing
|
|
316
|
+
- Industry norms vary significantly (utilities vs tech)
|
|
317
|
+
|
|
318
|
+
**Benchmarks:**
|
|
319
|
+
| Rating | Range |
|
|
320
|
+
|--------|-------|
|
|
321
|
+
| Conservative | < 0.3 |
|
|
322
|
+
| Moderate | 0.3 - 0.8 |
|
|
323
|
+
| Elevated | 0.8 - 2.0 |
|
|
324
|
+
| High Risk | > 2.0 |
|
|
325
|
+
|
|
326
|
+
### Interest Coverage Ratio
|
|
327
|
+
|
|
328
|
+
**Formula:** Operating Income (EBIT) / Interest Expense
|
|
329
|
+
|
|
330
|
+
**Interpretation:**
|
|
331
|
+
- Measures ability to service debt from operating earnings
|
|
332
|
+
- Below 1.5x is a red flag for lenders
|
|
333
|
+
- Critical for credit analysis
|
|
334
|
+
|
|
335
|
+
**Benchmarks:**
|
|
336
|
+
| Rating | Range |
|
|
337
|
+
|--------|-------|
|
|
338
|
+
| Distressed | < 2.0 |
|
|
339
|
+
| Adequate | 2.0 - 5.0 |
|
|
340
|
+
| Strong | 5.0 - 10.0 |
|
|
341
|
+
| Very Strong | > 10.0 |
|
|
342
|
+
|
|
343
|
+
### Debt Service Coverage Ratio (DSCR)
|
|
344
|
+
|
|
345
|
+
**Formula:** Operating Cash Flow / Total Debt Service
|
|
346
|
+
|
|
347
|
+
**Interpretation:**
|
|
348
|
+
- Cash-based measure of debt servicing capacity
|
|
349
|
+
- Includes principal repayments (unlike interest coverage)
|
|
350
|
+
- Required by many loan covenants
|
|
351
|
+
|
|
352
|
+
**Benchmarks:**
|
|
353
|
+
| Rating | Range |
|
|
354
|
+
|--------|-------|
|
|
355
|
+
| Default Risk | < 1.0 |
|
|
356
|
+
| Minimum | 1.0 - 1.5 |
|
|
357
|
+
| Comfortable | 1.5 - 2.5 |
|
|
358
|
+
| Strong | > 2.5 |
|
|
359
|
+
|
|
360
|
+
## Application
|
|
361
|
+
|
|
362
|
+
Compare within industry: leverage norms differ sharply across sectors. Analyze 3–5 year trends rather than a single snapshot, and use these alongside profitability, efficiency, and valuation ratios. Watch for off-balance-sheet items and one-time adjustments that can distort the liquidity and leverage picture.
|
|
363
|
+
|
|
364
|
+
---
|
|
365
|
+
<!-- module: 03-valuation-ratios-interpretation.md -->
|
|
366
|
+
|
|
367
|
+
# Valuation Ratios & Ratio-Analysis Discipline
|
|
368
|
+
|
|
369
|
+
## 5. Valuation Ratios
|
|
370
|
+
|
|
371
|
+
Measure a company's market value relative to financial metrics.
|
|
372
|
+
|
|
373
|
+
### Price-to-Earnings (P/E) Ratio
|
|
374
|
+
|
|
375
|
+
**Formula:** Share Price / Earnings Per Share
|
|
376
|
+
|
|
377
|
+
**Interpretation:**
|
|
378
|
+
- Most widely used valuation metric
|
|
379
|
+
- High P/E suggests growth expectations or overvaluation
|
|
380
|
+
- Use trailing (TTM) and forward P/E for comparison
|
|
381
|
+
|
|
382
|
+
**Benchmarks:**
|
|
383
|
+
| Rating | Range |
|
|
384
|
+
|--------|-------|
|
|
385
|
+
| Value | < 10x |
|
|
386
|
+
| Fair | 10x - 20x |
|
|
387
|
+
| Growth | 20x - 35x |
|
|
388
|
+
| Premium | > 35x |
|
|
389
|
+
|
|
390
|
+
### Price-to-Book (P/B) Ratio
|
|
391
|
+
|
|
392
|
+
**Formula:** Share Price / Book Value Per Share
|
|
393
|
+
|
|
394
|
+
**Interpretation:**
|
|
395
|
+
- Compares market value to accounting value
|
|
396
|
+
- Below 1.0 may indicate undervaluation or distress
|
|
397
|
+
- Most useful for asset-heavy industries
|
|
398
|
+
|
|
399
|
+
**Benchmarks:**
|
|
400
|
+
| Rating | Range |
|
|
401
|
+
|--------|-------|
|
|
402
|
+
| Undervalued | < 1.0 |
|
|
403
|
+
| Fair | 1.0 - 2.5 |
|
|
404
|
+
| Premium | 2.5 - 5.0 |
|
|
405
|
+
| Rich | > 5.0 |
|
|
406
|
+
|
|
407
|
+
### Price-to-Sales (P/S) Ratio
|
|
408
|
+
|
|
409
|
+
**Formula:** Market Cap / Revenue
|
|
410
|
+
|
|
411
|
+
**Interpretation:**
|
|
412
|
+
- Useful for companies without positive earnings
|
|
413
|
+
- Compare within industry only
|
|
414
|
+
- Lower = potentially better value
|
|
415
|
+
|
|
416
|
+
**Benchmarks:**
|
|
417
|
+
| Rating | Range |
|
|
418
|
+
|--------|-------|
|
|
419
|
+
| Value | < 1.0 |
|
|
420
|
+
| Fair | 1.0 - 3.0 |
|
|
421
|
+
| Growth | 3.0 - 8.0 |
|
|
422
|
+
| Premium | > 8.0 |
|
|
423
|
+
|
|
424
|
+
### EV/EBITDA
|
|
425
|
+
|
|
426
|
+
**Formula:** Enterprise Value / EBITDA
|
|
427
|
+
|
|
428
|
+
**Interpretation:**
|
|
429
|
+
- Capital-structure-neutral valuation metric
|
|
430
|
+
- Preferred for M&A analysis and leveraged buyouts
|
|
431
|
+
- More comparable across capital structures than P/E
|
|
432
|
+
|
|
433
|
+
**Benchmarks:**
|
|
434
|
+
| Rating | Range |
|
|
435
|
+
|--------|-------|
|
|
436
|
+
| Value | < 6x |
|
|
437
|
+
| Fair | 6x - 12x |
|
|
438
|
+
| Growth | 12x - 20x |
|
|
439
|
+
| Premium | > 20x |
|
|
440
|
+
|
|
441
|
+
### PEG Ratio
|
|
442
|
+
|
|
443
|
+
**Formula:** P/E Ratio / Earnings Growth Rate (%)
|
|
444
|
+
|
|
445
|
+
**Interpretation:**
|
|
446
|
+
- Growth-adjusted P/E ratio
|
|
447
|
+
- PEG of 1.0 suggests fair valuation relative to growth
|
|
448
|
+
- Below 1.0 may indicate undervaluation
|
|
449
|
+
|
|
450
|
+
**Benchmarks:**
|
|
451
|
+
| Rating | Range |
|
|
452
|
+
|--------|-------|
|
|
453
|
+
| Undervalued | < 0.5 |
|
|
454
|
+
| Fair | 0.5 - 1.0 |
|
|
455
|
+
| Fully Valued | 1.0 - 2.0 |
|
|
456
|
+
| Overvalued | > 2.0 |
|
|
457
|
+
|
|
458
|
+
## Ratio Analysis Best Practices
|
|
459
|
+
|
|
460
|
+
1. **Compare within industry** - Ratios vary significantly across sectors
|
|
461
|
+
2. **Analyze trends** - A single period snapshot is insufficient; look at 3-5 year trends
|
|
462
|
+
3. **Use multiple ratios** - No single ratio tells the complete story
|
|
463
|
+
4. **Consider context** - Accounting policies, business cycle, and company stage matter
|
|
464
|
+
5. **DuPont decomposition** - Break ROE into margin, turnover, and leverage components
|
|
465
|
+
6. **Peer comparison** - Compare against direct competitors, not just broad benchmarks
|
|
466
|
+
7. **Watch for manipulation** - Revenue recognition changes, off-balance-sheet items, and one-time adjustments can distort ratios
|
|
467
|
+
|
|
468
|
+
These valuation multiples double as sanity checks on DCF outputs: an implied EV/EBITDA or P/E far outside peer ranges signals inconsistent DCF assumptions.
|
|
469
|
+
|
|
470
|
+
---
|
|
471
|
+
<!-- module: 04-dcf-projection-wacc.md -->
|
|
472
|
+
|
|
473
|
+
# DCF: Cash-Flow Projection & WACC
|
|
474
|
+
|
|
475
|
+
## Discounted Cash Flow (DCF) Methodology
|
|
476
|
+
|
|
477
|
+
### Overview
|
|
478
|
+
|
|
479
|
+
DCF is an intrinsic valuation method that estimates the present value of a company's expected future free cash flows, discounted at an appropriate rate reflecting the risk of those cash flows.
|
|
480
|
+
|
|
481
|
+
**Core Principle:** The value of a business equals the present value of all future cash flows it will generate.
|
|
482
|
+
|
|
483
|
+
**Formula:**
|
|
484
|
+
|
|
485
|
+
```
|
|
486
|
+
Enterprise Value = Sum of [FCF_t / (1 + WACC)^t] + Terminal Value / (1 + WACC)^n
|
|
487
|
+
```
|
|
488
|
+
|
|
489
|
+
Where:
|
|
490
|
+
- FCF_t = Free Cash Flow in year t
|
|
491
|
+
- WACC = Weighted Average Cost of Capital
|
|
492
|
+
- n = number of projection years
|
|
493
|
+
|
|
494
|
+
### Step 1: Historical Analysis
|
|
495
|
+
|
|
496
|
+
Before projecting, analyze 3-5 years of historical financials:
|
|
497
|
+
|
|
498
|
+
- **Revenue growth rates** - Identify organic vs acquisition-driven growth
|
|
499
|
+
- **Margin trends** - Gross, operating, and net margin trajectories
|
|
500
|
+
- **Capital intensity** - CapEx as % of revenue
|
|
501
|
+
- **Working capital** - Cash conversion cycle trends
|
|
502
|
+
- **Free cash flow conversion** - FCF / Net Income ratio
|
|
503
|
+
|
|
504
|
+
### Step 2: Revenue Projections
|
|
505
|
+
|
|
506
|
+
**Approaches:**
|
|
507
|
+
1. **Top-down:** Market size × Market share × Pricing
|
|
508
|
+
2. **Bottom-up:** Units × Price, or Customers × ARPU
|
|
509
|
+
3. **Growth rate extrapolation:** Historical growth with decay
|
|
510
|
+
|
|
511
|
+
**Revenue Projection Best Practices:**
|
|
512
|
+
- Use 5-7 year explicit projection period
|
|
513
|
+
- Growth should converge toward GDP growth by terminal year
|
|
514
|
+
- Support assumptions with market data and management guidance
|
|
515
|
+
- Model revenue by segment/product line when possible
|
|
516
|
+
|
|
517
|
+
### Step 3: Free Cash Flow Calculation
|
|
518
|
+
|
|
519
|
+
**Unlevered Free Cash Flow (UFCF):**
|
|
520
|
+
|
|
521
|
+
```
|
|
522
|
+
UFCF = EBIT × (1 - Tax Rate)
|
|
523
|
+
+ Depreciation & Amortization
|
|
524
|
+
- Capital Expenditures
|
|
525
|
+
- Changes in Net Working Capital
|
|
526
|
+
```
|
|
527
|
+
|
|
528
|
+
**Key Drivers:**
|
|
529
|
+
- Operating margin trajectory
|
|
530
|
+
- CapEx as % of revenue (maintenance vs growth)
|
|
531
|
+
- Working capital requirements (DSO, DIO, DPO)
|
|
532
|
+
- Tax rate (effective vs marginal)
|
|
533
|
+
|
|
534
|
+
### Step 4: WACC Calculation
|
|
535
|
+
|
|
536
|
+
**Weighted Average Cost of Capital:**
|
|
537
|
+
|
|
538
|
+
```
|
|
539
|
+
WACC = (E/V × Re) + (D/V × Rd × (1 - T))
|
|
540
|
+
```
|
|
541
|
+
|
|
542
|
+
Where:
|
|
543
|
+
- E/V = Equity weight (market value)
|
|
544
|
+
- D/V = Debt weight (market value)
|
|
545
|
+
- Re = Cost of equity
|
|
546
|
+
- Rd = Cost of debt (pre-tax)
|
|
547
|
+
- T = Marginal tax rate
|
|
548
|
+
|
|
549
|
+
#### Cost of Equity (CAPM)
|
|
550
|
+
|
|
551
|
+
```
|
|
552
|
+
Re = Rf + Beta × (Rm - Rf) + Size Premium + Company-Specific Risk
|
|
553
|
+
```
|
|
554
|
+
|
|
555
|
+
| Component | Description | Typical Range |
|
|
556
|
+
|-----------|-------------|---------------|
|
|
557
|
+
| Risk-Free Rate (Rf) | 10-year Treasury yield | 3.5% - 5.0% |
|
|
558
|
+
| Equity Risk Premium (ERP) | Market return above risk-free | 5.0% - 7.0% |
|
|
559
|
+
| Beta | Systematic risk relative to market | 0.5 - 2.0 |
|
|
560
|
+
| Size Premium | Small-cap additional risk | 0% - 5% |
|
|
561
|
+
| Company-Specific Risk | Unique risk factors | 0% - 5% |
|
|
562
|
+
|
|
563
|
+
**Beta Estimation:**
|
|
564
|
+
- Use 2-5 year weekly returns against broad market index
|
|
565
|
+
- Unlevered betas for comparability, then re-lever to target capital structure
|
|
566
|
+
- Consider industry median beta for stability
|
|
567
|
+
|
|
568
|
+
#### Cost of Debt
|
|
569
|
+
|
|
570
|
+
```
|
|
571
|
+
Rd = Yield on comparable-maturity corporate bonds
|
|
572
|
+
OR
|
|
573
|
+
Rd = Risk-Free Rate + Credit Spread
|
|
574
|
+
```
|
|
575
|
+
|
|
576
|
+
**Credit Spread by Rating:**
|
|
577
|
+
| Rating | Typical Spread |
|
|
578
|
+
|--------|---------------|
|
|
579
|
+
| AAA | 0.5% - 1.0% |
|
|
580
|
+
| AA | 1.0% - 1.5% |
|
|
581
|
+
| A | 1.5% - 2.0% |
|
|
582
|
+
| BBB | 2.0% - 3.0% |
|
|
583
|
+
| BB | 3.0% - 5.0% |
|
|
584
|
+
| B | 5.0% - 8.0% |
|
|
585
|
+
|
|
586
|
+
Beware circular references: WACC depends on equity value which depends on WACC. Continue to terminal value, the equity bridge, and sensitivity in the paired mini.
|
|
587
|
+
|
|
588
|
+
---
|
|
589
|
+
<!-- module: 05-dcf-terminal-value-sensitivity.md -->
|
|
590
|
+
|
|
591
|
+
# DCF: Terminal Value, Equity Bridge & Sensitivity
|
|
592
|
+
|
|
593
|
+
### Step 5: Terminal Value
|
|
594
|
+
|
|
595
|
+
Terminal value typically represents 60-80% of total enterprise value. Use two methods and cross-check.
|
|
596
|
+
|
|
597
|
+
#### Perpetuity Growth Method
|
|
598
|
+
|
|
599
|
+
```
|
|
600
|
+
TV = FCF_n × (1 + g) / (WACC - g)
|
|
601
|
+
```
|
|
602
|
+
|
|
603
|
+
Where g = terminal growth rate (typically 2.0% - 3.0%, should not exceed long-term GDP growth)
|
|
604
|
+
|
|
605
|
+
**Sensitivity:** Terminal value is highly sensitive to g. A 0.5% change in g can move enterprise value by 15-25%.
|
|
606
|
+
|
|
607
|
+
#### Exit Multiple Method
|
|
608
|
+
|
|
609
|
+
```
|
|
610
|
+
TV = Terminal Year EBITDA × Exit EV/EBITDA Multiple
|
|
611
|
+
```
|
|
612
|
+
|
|
613
|
+
**Exit Multiple Selection:**
|
|
614
|
+
- Use current trading multiples of comparable companies
|
|
615
|
+
- Consider whether current multiples are at historical highs/lows
|
|
616
|
+
- Apply a discount for lack of marketability if private
|
|
617
|
+
|
|
618
|
+
**Cross-Check:** Both methods should yield similar results. Large discrepancies signal inconsistent assumptions.
|
|
619
|
+
|
|
620
|
+
### Step 6: Enterprise to Equity Bridge
|
|
621
|
+
|
|
622
|
+
```
|
|
623
|
+
Enterprise Value
|
|
624
|
+
- Net Debt (Total Debt - Cash)
|
|
625
|
+
- Minority Interest
|
|
626
|
+
- Preferred Equity
|
|
627
|
+
+ Equity Method Investments
|
|
628
|
+
= Equity Value
|
|
629
|
+
|
|
630
|
+
Equity Value / Diluted Shares Outstanding = Value Per Share
|
|
631
|
+
```
|
|
632
|
+
|
|
633
|
+
Use fully diluted shares (treasury stock method for options): ignoring dilution overstates per-share value.
|
|
634
|
+
|
|
635
|
+
### Step 7: Sensitivity Analysis
|
|
636
|
+
|
|
637
|
+
Always present results as a range, not a single point estimate.
|
|
638
|
+
|
|
639
|
+
**Standard Sensitivity Tables:**
|
|
640
|
+
1. WACC vs Terminal Growth Rate
|
|
641
|
+
2. WACC vs Exit Multiple
|
|
642
|
+
3. Revenue Growth vs Operating Margin
|
|
643
|
+
|
|
644
|
+
**Scenario Analysis:**
|
|
645
|
+
- Base case: Management guidance / consensus estimates
|
|
646
|
+
- Bull case: Upside scenario with faster growth or margin expansion
|
|
647
|
+
- Bear case: Downside scenario with slower growth or margin compression
|
|
648
|
+
|
|
649
|
+
## Common Pitfalls
|
|
650
|
+
|
|
651
|
+
1. **Hockey stick projections** - Unrealistic growth acceleration in later years
|
|
652
|
+
2. **Terminal value dominance** - If TV > 80% of EV, shorten projection period or question assumptions
|
|
653
|
+
3. **Circular references** - WACC depends on equity value which depends on WACC
|
|
654
|
+
4. **Ignoring working capital** - Can significantly affect FCF
|
|
655
|
+
5. **Single-point estimates** - Always present as a range
|
|
656
|
+
6. **Stale comparables** - Market conditions change; update regularly
|
|
657
|
+
7. **Confirmation bias** - Don't work backward from a desired conclusion
|
|
658
|
+
8. **Ignoring dilution** - Use fully diluted shares (treasury stock method for options)
|
|
659
|
+
|
|
660
|
+
---
|
|
661
|
+
<!-- module: 06-comparables-precedents.md -->
|
|
662
|
+
|
|
663
|
+
# Comparable Companies, Precedent Transactions & Framework Selection
|
|
664
|
+
|
|
665
|
+
Use these market-based methods to sanity-check intrinsic (DCF) values and to value companies where DCF is weak.
|
|
666
|
+
|
|
667
|
+
## Comparable Company Analysis
|
|
668
|
+
|
|
669
|
+
### Methodology
|
|
670
|
+
|
|
671
|
+
1. **Select peer group** - Similar size, industry, growth profile, and margins
|
|
672
|
+
2. **Calculate trading multiples** for each peer
|
|
673
|
+
3. **Determine appropriate multiple range**
|
|
674
|
+
4. **Apply to target company's metrics**
|
|
675
|
+
|
|
676
|
+
### Common Multiples
|
|
677
|
+
|
|
678
|
+
| Multiple | When to Use |
|
|
679
|
+
|----------|-------------|
|
|
680
|
+
| EV/Revenue | Pre-profit companies, high-growth tech |
|
|
681
|
+
| EV/EBITDA | Most common for mature companies |
|
|
682
|
+
| EV/EBIT | When D&A differs significantly across peers |
|
|
683
|
+
| P/E | Stable earnings, financial services |
|
|
684
|
+
| P/B | Banks, insurance, asset-heavy industries |
|
|
685
|
+
| EV/FCF | Capital-light businesses with clean FCF |
|
|
686
|
+
|
|
687
|
+
### Peer Selection Criteria
|
|
688
|
+
|
|
689
|
+
- **Industry:** Same or closely adjacent sectors
|
|
690
|
+
- **Size:** Within 0.5x to 2x of target revenue/market cap
|
|
691
|
+
- **Geography:** Same primary markets
|
|
692
|
+
- **Growth profile:** Similar revenue growth rates (within 5-10%)
|
|
693
|
+
- **Margin profile:** Similar operating margin structure
|
|
694
|
+
- **Business model:** Comparable revenue mix and customer base
|
|
695
|
+
|
|
696
|
+
### Premium/Discount Adjustments
|
|
697
|
+
|
|
698
|
+
| Factor | Adjustment |
|
|
699
|
+
|--------|-----------|
|
|
700
|
+
| Higher growth | Premium of 1-3x on EV/EBITDA |
|
|
701
|
+
| Lower margins | Discount of 1-2x |
|
|
702
|
+
| Smaller scale | Discount of 10-20% |
|
|
703
|
+
| Private company | Discount of 15-30% (illiquidity) |
|
|
704
|
+
| Control premium | Premium of 20-40% (for acquisitions) |
|
|
705
|
+
|
|
706
|
+
## Precedent Transaction Analysis
|
|
707
|
+
|
|
708
|
+
### Methodology
|
|
709
|
+
|
|
710
|
+
1. **Identify comparable transactions** in same industry
|
|
711
|
+
2. **Calculate transaction multiples** (EV/Revenue, EV/EBITDA)
|
|
712
|
+
3. **Adjust for market conditions** and deal-specific factors
|
|
713
|
+
4. **Apply adjusted multiples** to target
|
|
714
|
+
|
|
715
|
+
### Key Considerations
|
|
716
|
+
|
|
717
|
+
- Transactions include control premiums (typically 20-40%)
|
|
718
|
+
- Market conditions at time of deal affect multiples
|
|
719
|
+
- Strategic vs financial buyer valuations differ
|
|
720
|
+
- Consider synergy expectations embedded in price
|
|
721
|
+
- More recent transactions carry greater relevance
|
|
722
|
+
|
|
723
|
+
## Valuation Framework Selection
|
|
724
|
+
|
|
725
|
+
| Situation | Primary Method | Secondary Method |
|
|
726
|
+
|-----------|---------------|-----------------|
|
|
727
|
+
| Profitable, stable | DCF | Comparable companies |
|
|
728
|
+
| High growth, pre-profit | Comparable companies (EV/Revenue) | DCF with scenario analysis |
|
|
729
|
+
| M&A target | Precedent transactions | DCF |
|
|
730
|
+
| Asset-heavy, cyclical | Asset-based valuation | Normalized DCF |
|
|
731
|
+
| Financial institution | Dividend discount model | P/B, P/E comps |
|
|
732
|
+
| Distressed | Liquidation value | Restructured DCF |
|
|
733
|
+
|
|
734
|
+
Sanity check: DCF-implied multiples should fall within the comparable range; large gaps flag inconsistent assumptions or stale comps.
|
|
735
|
+
|
|
736
|
+
---
|
|
737
|
+
<!-- module: 07-budget-variance-analysis.md -->
|
|
738
|
+
|
|
739
|
+
# Budget Variance Analysis
|
|
740
|
+
|
|
741
|
+
Analyze actual vs budget vs prior-year performance with materiality filtering to explain what happened and drive corrective action.
|
|
742
|
+
|
|
743
|
+
## Core Calculations
|
|
744
|
+
|
|
745
|
+
- **Dollar variance** = Actual − Budget (also compute vs prior year).
|
|
746
|
+
- **Percentage variance** = (Actual − Budget) / Budget × 100%.
|
|
747
|
+
- Compute both against budget and against prior-year actuals for a full picture.
|
|
748
|
+
|
|
749
|
+
## Favorable / Unfavorable Classification
|
|
750
|
+
|
|
751
|
+
Direction depends on line-item type (revenue vs expense logic):
|
|
752
|
+
- **Revenue:** actual above budget is **favorable**; below is **unfavorable**.
|
|
753
|
+
- **Expense:** actual below budget is **favorable**; above is **unfavorable**.
|
|
754
|
+
|
|
755
|
+
Apply this sign logic per line item: never treat a raw positive dollar variance as automatically "good."
|
|
756
|
+
|
|
757
|
+
## Materiality Filtering
|
|
758
|
+
|
|
759
|
+
Filter to variances worth explaining using a materiality threshold: **default 10% or $50K** (whichever triggers). Tighten for sensitive analyses (e.g., 5% / $25K). Only material variances demand root-cause explanation, keeping reports focused.
|
|
760
|
+
|
|
761
|
+
## Breakdown & Reporting
|
|
762
|
+
|
|
763
|
+
- Break variances down by **department** and by **category** so ownership is clear.
|
|
764
|
+
- Generate an **executive summary** highlighting the largest and most material variances.
|
|
765
|
+
- Target: **explain 100% of material variances** with root causes.
|
|
766
|
+
|
|
767
|
+
## Variance Analysis Loop (feedback into forecasting)
|
|
768
|
+
|
|
769
|
+
After each period closes:
|
|
770
|
+
- Compare actual vs budget/forecast
|
|
771
|
+
- Identify root causes of significant variances
|
|
772
|
+
- Update driver assumptions based on learnings
|
|
773
|
+
- Document what changed and why
|
|
774
|
+
|
|
775
|
+
Build a **variance bridge** that walks from budget (or prior forecast) to the current actual/forecast, attributing the gap to specific drivers. This closed loop both explains the period and improves the next forecast's accuracy.
|
|
776
|
+
|
|
777
|
+
## Discipline
|
|
778
|
+
|
|
779
|
+
Validate input completeness before computing (missing or null line items produce misleading variances). Watch for reclassifications and one-time items that create apparent variances without economic substance.
|
|
780
|
+
|
|
781
|
+
---
|
|
782
|
+
<!-- module: 08-driver-based-forecasting-scenarios.md -->
|
|
783
|
+
|
|
784
|
+
# Driver-Based Forecasting & Scenario Planning
|
|
785
|
+
|
|
786
|
+
## 1. Driver-Based Forecasting
|
|
787
|
+
|
|
788
|
+
### Overview
|
|
789
|
+
|
|
790
|
+
Driver-based forecasting models financial outcomes based on key business drivers rather than extrapolating from historical trends alone. This approach creates more transparent, actionable, and accurate forecasts.
|
|
791
|
+
|
|
792
|
+
### Identifying Key Drivers
|
|
793
|
+
|
|
794
|
+
**Revenue Drivers:**
|
|
795
|
+
|
|
796
|
+
| Business Model | Primary Drivers |
|
|
797
|
+
|---------------|----------------|
|
|
798
|
+
| SaaS/Subscription | Customers × ARPU × Retention Rate |
|
|
799
|
+
| E-commerce | Visitors × Conversion Rate × AOV |
|
|
800
|
+
| Manufacturing | Units × Price per Unit |
|
|
801
|
+
| Professional Services | Headcount × Utilization × Bill Rate |
|
|
802
|
+
| Retail | Stores × Revenue per Store (or sqft) |
|
|
803
|
+
| Marketplace | GMV × Take Rate |
|
|
804
|
+
|
|
805
|
+
**Cost Drivers:**
|
|
806
|
+
|
|
807
|
+
| Category | Common Drivers |
|
|
808
|
+
|----------|---------------|
|
|
809
|
+
| COGS | Revenue × (1 - Gross Margin) or Units × Unit Cost |
|
|
810
|
+
| Headcount Costs | Employees × Average Compensation × (1 + Benefits Rate) |
|
|
811
|
+
| Sales & Marketing | Revenue × S&M % or CAC × New Customers |
|
|
812
|
+
| R&D | Engineering Headcount × Avg Salary |
|
|
813
|
+
| G&A | Headcount-based + fixed costs |
|
|
814
|
+
| CapEx | Revenue × CapEx Intensity or Project-based |
|
|
815
|
+
|
|
816
|
+
### Building a Driver-Based Model
|
|
817
|
+
|
|
818
|
+
**Step 1: Map the value chain**
|
|
819
|
+
- Revenue = f(volume drivers, pricing drivers, mix drivers)
|
|
820
|
+
- Costs = f(variable drivers, fixed components, step functions)
|
|
821
|
+
|
|
822
|
+
**Step 2: Establish driver relationships**
|
|
823
|
+
- Linear: Revenue = Units × Price
|
|
824
|
+
- Non-linear: Revenue = Base × (1 + Growth Rate)^t
|
|
825
|
+
- Step function: Facilities costs that jump at capacity thresholds
|
|
826
|
+
|
|
827
|
+
**Step 3: Validate driver assumptions**
|
|
828
|
+
- Compare driver values to historical actuals
|
|
829
|
+
- Benchmark against industry data
|
|
830
|
+
- Stress-test extreme values
|
|
831
|
+
|
|
832
|
+
**Step 4: Build sensitivity**
|
|
833
|
+
- Identify which drivers have the largest impact on output
|
|
834
|
+
- Quantify the range of reasonable values for each driver
|
|
835
|
+
- Create scenario combinations
|
|
836
|
+
|
|
837
|
+
### Driver Sensitivity Matrix
|
|
838
|
+
|
|
839
|
+
Rank drivers by impact and uncertainty:
|
|
840
|
+
|
|
841
|
+
| | High Impact | Low Impact |
|
|
842
|
+
|---|-----------|-----------|
|
|
843
|
+
| **High Uncertainty** | Model these carefully, run scenarios | Monitor but don't over-model |
|
|
844
|
+
| **Low Uncertainty** | Get these right; high accuracy needed | Use simple assumptions |
|
|
845
|
+
|
|
846
|
+
## 4. Scenario Planning
|
|
847
|
+
|
|
848
|
+
### Three-Scenario Framework
|
|
849
|
+
|
|
850
|
+
| Scenario | Description | Probability |
|
|
851
|
+
|----------|-------------|-------------|
|
|
852
|
+
| **Base Case** | Most likely outcome based on current trajectory | 50-60% |
|
|
853
|
+
| **Bull Case** | Favorable conditions, upside realization | 15-25% |
|
|
854
|
+
| **Bear Case** | Adverse conditions, downside risks | 15-25% |
|
|
855
|
+
|
|
856
|
+
### Scenario Construction
|
|
857
|
+
|
|
858
|
+
**Base Case:**
|
|
859
|
+
- Continuation of current trends
|
|
860
|
+
- Management's operational plan
|
|
861
|
+
- Market consensus assumptions
|
|
862
|
+
- Normal competitive dynamics
|
|
863
|
+
|
|
864
|
+
**Bull Case (apply selectively, not uniformly):**
|
|
865
|
+
- Faster customer acquisition or market adoption
|
|
866
|
+
- Successful product launch or expansion
|
|
867
|
+
- Favorable macro conditions
|
|
868
|
+
- Competitor weakness or exit
|
|
869
|
+
- Margin expansion from operating leverage
|
|
870
|
+
|
|
871
|
+
**Bear Case (be realistic, not catastrophic):**
|
|
872
|
+
- Slower growth or market contraction
|
|
873
|
+
- Increased competition or pricing pressure
|
|
874
|
+
- Key customer or contract loss
|
|
875
|
+
- Supply chain disruption
|
|
876
|
+
- Regulatory headwinds
|
|
877
|
+
|
|
878
|
+
### Scenario Variables
|
|
879
|
+
|
|
880
|
+
Map each scenario to specific driver values:
|
|
881
|
+
|
|
882
|
+
| Driver | Bear | Base | Bull |
|
|
883
|
+
|--------|------|------|------|
|
|
884
|
+
| Revenue Growth | +2% | +8% | +15% |
|
|
885
|
+
| Gross Margin | 35% | 40% | 43% |
|
|
886
|
+
| Customer Churn | 8% | 5% | 3% |
|
|
887
|
+
| New Customers/Month | 50 | 100 | 180 |
|
|
888
|
+
| Price Increase | 0% | 3% | 5% |
|
|
889
|
+
|
|
890
|
+
---
|
|
891
|
+
<!-- module: 09-rolling-forecasts-accuracy.md -->
|
|
892
|
+
|
|
893
|
+
# Rolling Forecasts, 13-Week Cash Flow & Accuracy Tracking
|
|
894
|
+
|
|
895
|
+
## 2. Rolling Forecasts
|
|
896
|
+
|
|
897
|
+
### What Is a Rolling Forecast?
|
|
898
|
+
|
|
899
|
+
A rolling forecast continuously extends the forecast horizon as each period closes. Unlike a static annual budget, a rolling forecast always looks forward the same number of periods (typically 12-18 months).
|
|
900
|
+
|
|
901
|
+
### Rolling Forecast vs Annual Budget
|
|
902
|
+
|
|
903
|
+
| Feature | Annual Budget | Rolling Forecast |
|
|
904
|
+
|---------|--------------|-----------------|
|
|
905
|
+
| Time Horizon | Fixed (Jan-Dec) | Rolling (12-18 months) |
|
|
906
|
+
| Update Frequency | Once per year | Monthly or quarterly |
|
|
907
|
+
| Detail Level | Very detailed | Driver-level |
|
|
908
|
+
| Preparation Time | 3-6 months | 2-5 days per cycle |
|
|
909
|
+
| Relevance | Declines over time | Stays current |
|
|
910
|
+
| Flexibility | Rigid | Adaptive |
|
|
911
|
+
|
|
912
|
+
### Implementation Steps
|
|
913
|
+
|
|
914
|
+
1. **Select the horizon** - 12 months rolling is most common (some use 18 months for CapEx planning)
|
|
915
|
+
2. **Define update cadence** - Monthly for volatile businesses; quarterly for stable ones
|
|
916
|
+
3. **Choose the right detail** - Driver-level, not line-item detail
|
|
917
|
+
4. **Automate data feeds** - Reduce manual effort per cycle
|
|
918
|
+
5. **Separate actuals from forecast** - Clear delineation between reported and projected periods
|
|
919
|
+
6. **Track forecast accuracy** - Measure MAPE (Mean Absolute Percentage Error) over time
|
|
920
|
+
|
|
921
|
+
### 13-Week Cash Flow Forecast
|
|
922
|
+
|
|
923
|
+
A specialized rolling forecast for liquidity management:
|
|
924
|
+
|
|
925
|
+
**Structure:**
|
|
926
|
+
- Week-by-week cash inflows and outflows
|
|
927
|
+
- Opening and closing cash balances
|
|
928
|
+
- Minimum cash threshold alerts
|
|
929
|
+
|
|
930
|
+
**Key Components:**
|
|
931
|
+
| Inflows | Outflows |
|
|
932
|
+
|---------|----------|
|
|
933
|
+
| Customer collections (by aging) | Payroll (fixed cadence) |
|
|
934
|
+
| Other receivables | Rent / Lease payments |
|
|
935
|
+
| Asset sales | Vendor payments (by terms) |
|
|
936
|
+
| Financing proceeds | Debt service |
|
|
937
|
+
| Tax refunds | Tax payments |
|
|
938
|
+
| Other income | Capital expenditures |
|
|
939
|
+
|
|
940
|
+
**Collection Modeling:**
|
|
941
|
+
- Apply collection rates by customer segment or aging bucket
|
|
942
|
+
- Model DSO trends to project collection timing
|
|
943
|
+
- Account for seasonal patterns in payment behavior
|
|
944
|
+
|
|
945
|
+
## 3. Accuracy Improvement
|
|
946
|
+
|
|
947
|
+
### Measuring Forecast Accuracy
|
|
948
|
+
|
|
949
|
+
**Mean Absolute Percentage Error (MAPE):**
|
|
950
|
+
```
|
|
951
|
+
MAPE = (1/n) × Sum of |Actual - Forecast| / |Actual| × 100%
|
|
952
|
+
```
|
|
953
|
+
|
|
954
|
+
**Accuracy Benchmarks:**
|
|
955
|
+
| MAPE | Rating |
|
|
956
|
+
|------|--------|
|
|
957
|
+
| < 5% | Excellent |
|
|
958
|
+
| 5% - 10% | Good |
|
|
959
|
+
| 10% - 20% | Acceptable |
|
|
960
|
+
| > 20% | Needs improvement |
|
|
961
|
+
|
|
962
|
+
**Weighted MAPE (WMAPE):**
|
|
963
|
+
Use when line items vary significantly in magnitude - weights errors by actual values.
|
|
964
|
+
|
|
965
|
+
### Techniques to Improve Accuracy
|
|
966
|
+
|
|
967
|
+
**1. Bias Detection and Correction**
|
|
968
|
+
- Track directional bias (consistently over or under forecasting)
|
|
969
|
+
- Calculate mean signed error to detect systematic bias
|
|
970
|
+
- Adjust driver assumptions to correct persistent bias
|
|
971
|
+
|
|
972
|
+
**2. Variance Analysis Loop**
|
|
973
|
+
- After each period closes, compare actual vs forecast
|
|
974
|
+
- Identify root causes of significant variances
|
|
975
|
+
- Update driver assumptions based on learnings
|
|
976
|
+
- Document what changed and why
|
|
977
|
+
|
|
978
|
+
**3. Ensemble Approach**
|
|
979
|
+
- Combine multiple forecasting methods
|
|
980
|
+
- Blend statistical (trend) with judgmental (management input)
|
|
981
|
+
- Weight methods by their historical accuracy
|
|
982
|
+
|
|
983
|
+
**4. Granularity Optimization**
|
|
984
|
+
- Forecast at the right level of detail - not too aggregated, not too granular
|
|
985
|
+
- Product/segment level usually more accurate than single top-line
|
|
986
|
+
- Aggregate bottom-up forecasts for total, then adjust
|
|
987
|
+
|
|
988
|
+
**5. Leading Indicators**
|
|
989
|
+
- Identify metrics that predict financial outcomes 1-3 months ahead
|
|
990
|
+
- Pipeline/bookings predict revenue
|
|
991
|
+
- Hiring plans predict headcount costs
|
|
992
|
+
- Customer churn signals predict retention revenue
|
|
993
|
+
|
|
994
|
+
### Common Accuracy Killers
|
|
995
|
+
|
|
996
|
+
1. **Anchoring bias** - Over-relying on last year's numbers
|
|
997
|
+
2. **Optimism bias** - Systematic overestimation of growth
|
|
998
|
+
3. **Lack of accountability** - No one tracks forecast vs actual
|
|
999
|
+
4. **Stale assumptions** - Not updating for market changes
|
|
1000
|
+
5. **Missing data** - Forecasting without key driver inputs
|
|
1001
|
+
6. **Over-precision** - False precision in uncertain environments
|
|
1002
|
+
|
|
1003
|
+
---
|
|
1004
|
+
<!-- module: 10-reporting-exec-summary.md -->
|
|
1005
|
+
|
|
1006
|
+
# Reporting & Executive-Summary Craft
|
|
1007
|
+
|
|
1008
|
+
Analysis has no value until it is communicated to the right audience at the right altitude.
|
|
1009
|
+
|
|
1010
|
+
## 5. Forecast Communication
|
|
1011
|
+
|
|
1012
|
+
### Stakeholder Needs
|
|
1013
|
+
|
|
1014
|
+
| Audience | Needs |
|
|
1015
|
+
|----------|-------|
|
|
1016
|
+
| Board | High-level scenarios, key risks, strategic implications |
|
|
1017
|
+
| CEO/CFO | Detailed drivers, variance explanations, action items |
|
|
1018
|
+
| Department Heads | Their specific budget vs forecast, headcount plans |
|
|
1019
|
+
| Investors | Revenue guidance, margin trajectory, capital allocation |
|
|
1020
|
+
| Operations | Weekly/monthly targets, resource requirements |
|
|
1021
|
+
|
|
1022
|
+
### Presentation Framework
|
|
1023
|
+
|
|
1024
|
+
1. **Executive summary** - Key metrics, direction of travel, confidence level
|
|
1025
|
+
2. **Variance bridge** - Walk from budget/prior forecast to current forecast
|
|
1026
|
+
3. **Driver analysis** - What changed and why
|
|
1027
|
+
4. **Scenario comparison** - Range of outcomes
|
|
1028
|
+
5. **Key risks and opportunities** - What could change the forecast
|
|
1029
|
+
6. **Action items** - Decisions needed based on forecast
|
|
1030
|
+
|
|
1031
|
+
## Presenting Scenarios
|
|
1032
|
+
|
|
1033
|
+
1. **Show the range** - Management needs to see the potential outcomes
|
|
1034
|
+
2. **Quantify the gap** - Dollar impact of bull vs bear on key metrics
|
|
1035
|
+
3. **Identify triggers** - What conditions would cause each scenario
|
|
1036
|
+
4. **Define actions** - What levers to pull in each scenario
|
|
1037
|
+
5. **Assign probabilities** - Not all scenarios are equally likely
|
|
1038
|
+
|
|
1039
|
+
## Report Types
|
|
1040
|
+
|
|
1041
|
+
- Executive summaries with key findings
|
|
1042
|
+
- Detailed variance reports by department and category
|
|
1043
|
+
- DCF valuation reports with sensitivity tables
|
|
1044
|
+
- Rolling forecasts with trend analysis
|
|
1045
|
+
|
|
1046
|
+
### Forecast Cadence
|
|
1047
|
+
|
|
1048
|
+
| Activity | Frequency | Time Required |
|
|
1049
|
+
|----------|-----------|--------------|
|
|
1050
|
+
| 13-week cash flow update | Weekly | 1-2 hours |
|
|
1051
|
+
| Rolling forecast update | Monthly | 1-2 days |
|
|
1052
|
+
| Full reforecast | Quarterly | 3-5 days |
|
|
1053
|
+
| Annual budget/plan | Annually | 4-8 weeks |
|
|
1054
|
+
| Board reporting | Quarterly | 2-3 days |
|
|
1055
|
+
|
|
1056
|
+
## Delivery Standards & Targets
|
|
1057
|
+
|
|
1058
|
+
Forecast accuracy ±5% revenue, ±3% expenses; report delivery 100% on time; complete documentation for all assumptions; explanation of 100% of material variances. Always present valuations and forecasts as ranges with sensitivity, never false-precision single points.
|
|
1059
|
+
|
|
1060
|
+
---
|
|
1061
|
+
<!-- module: 11-industry-adaptations.md -->
|
|
1062
|
+
|
|
1063
|
+
# Industry Adaptations
|
|
1064
|
+
|
|
1065
|
+
Sector-specific metrics, benchmarks, and considerations for financial analysis. Apply the right lens per industry.
|
|
1066
|
+
|
|
1067
|
+
## SaaS / Software
|
|
1068
|
+
|
|
1069
|
+
**Key Metrics:**
|
|
1070
|
+
- ARR / MRR growth rate
|
|
1071
|
+
- Net Revenue Retention (NRR): target >110%
|
|
1072
|
+
- CAC Payback Period: target <18 months
|
|
1073
|
+
- Rule of 40 (growth rate + profit margin ≥ 40%)
|
|
1074
|
+
- LTV:CAC ratio: target >3:1
|
|
1075
|
+
- Gross margin: target >70%
|
|
1076
|
+
|
|
1077
|
+
**Valuation Multiples:**
|
|
1078
|
+
- Revenue multiple: 5-15x ARR (growth-adjusted)
|
|
1079
|
+
- High-growth (>50%): 15-25x ARR
|
|
1080
|
+
- Moderate growth (20-50%): 8-15x ARR
|
|
1081
|
+
- Low growth (<20%): 3-8x ARR
|
|
1082
|
+
|
|
1083
|
+
**Considerations:**
|
|
1084
|
+
- Deferred revenue recognition (ASC 606)
|
|
1085
|
+
- Stock-based compensation impact on margins
|
|
1086
|
+
- Cohort analysis critical for retention metrics
|
|
1087
|
+
|
|
1088
|
+
## Retail / E-Commerce
|
|
1089
|
+
|
|
1090
|
+
**Key Metrics:**
|
|
1091
|
+
- Same-store sales growth (SSS)
|
|
1092
|
+
- Gross margin by category
|
|
1093
|
+
- Inventory turnover: target varies by segment (grocery: 14-20x, fashion: 4-6x)
|
|
1094
|
+
- Revenue per square foot (physical)
|
|
1095
|
+
- Customer acquisition cost vs. AOV
|
|
1096
|
+
- Return rate impact on unit economics
|
|
1097
|
+
|
|
1098
|
+
**Valuation Multiples:**
|
|
1099
|
+
- EV/EBITDA: 8-15x (premium brands higher)
|
|
1100
|
+
- P/E: 15-25x
|
|
1101
|
+
|
|
1102
|
+
**Considerations:**
|
|
1103
|
+
- Seasonal revenue concentration (Q4 holiday)
|
|
1104
|
+
- Working capital intensity (inventory cycles)
|
|
1105
|
+
- Omnichannel attribution complexity
|
|
1106
|
+
|
|
1107
|
+
## Manufacturing
|
|
1108
|
+
|
|
1109
|
+
**Key Metrics:**
|
|
1110
|
+
- Gross margin by product line
|
|
1111
|
+
- Capacity utilization rate: target >80%
|
|
1112
|
+
- Days Inventory Outstanding (DIO)
|
|
1113
|
+
- Warranty reserve as % of revenue
|
|
1114
|
+
- Capex as % of revenue (maintenance vs. growth)
|
|
1115
|
+
- Order backlog / book-to-bill ratio
|
|
1116
|
+
|
|
1117
|
+
**Valuation Multiples:**
|
|
1118
|
+
- EV/EBITDA: 6-12x
|
|
1119
|
+
- P/E: 12-20x
|
|
1120
|
+
|
|
1121
|
+
**Considerations:**
|
|
1122
|
+
- Raw material cost volatility
|
|
1123
|
+
- Currency exposure in supply chain
|
|
1124
|
+
- Depreciation schedules (straight-line vs. accelerated)
|
|
1125
|
+
- Regulatory compliance costs (environmental, safety)
|
|
1126
|
+
|
|
1127
|
+
## Financial Services
|
|
1128
|
+
|
|
1129
|
+
**Key Metrics:**
|
|
1130
|
+
- Net Interest Margin (NIM)
|
|
1131
|
+
- Return on Equity (ROE): target >12%
|
|
1132
|
+
- Cost-to-Income Ratio: target <60%
|
|
1133
|
+
- Non-Performing Loan (NPL) ratio
|
|
1134
|
+
- Tier 1 Capital Ratio: regulatory minimum varies
|
|
1135
|
+
- Assets Under Management (AUM) growth
|
|
1136
|
+
|
|
1137
|
+
**Valuation Multiples:**
|
|
1138
|
+
- Price-to-Book (P/B): 1.0-2.5x
|
|
1139
|
+
- P/E: 10-18x
|
|
1140
|
+
|
|
1141
|
+
**Considerations:**
|
|
1142
|
+
- Regulatory capital requirements (Basel III/IV)
|
|
1143
|
+
- Interest rate sensitivity analysis
|
|
1144
|
+
- Credit risk provisioning (CECL / IFRS 9)
|
|
1145
|
+
- Mark-to-market vs. held-to-maturity accounting
|
|
1146
|
+
|
|
1147
|
+
## Healthcare
|
|
1148
|
+
|
|
1149
|
+
**Key Metrics:**
|
|
1150
|
+
- Revenue per patient / per bed
|
|
1151
|
+
- Payor mix (Medicare/Medicaid vs. commercial)
|
|
1152
|
+
- EBITDAR margin (rent-adjusted for facilities)
|
|
1153
|
+
- Clinical trial pipeline value (biotech/pharma)
|
|
1154
|
+
- Patent cliff exposure
|
|
1155
|
+
- R&D as % of revenue: benchmark 15-25% (pharma)
|
|
1156
|
+
|
|
1157
|
+
**Valuation Multiples:**
|
|
1158
|
+
- EV/EBITDA: 10-18x (medtech), 12-20x (pharma)
|
|
1159
|
+
- EV/Revenue: 3-8x (services), 5-15x (devices)
|
|
1160
|
+
|
|
1161
|
+
**Considerations:**
|
|
1162
|
+
- Reimbursement rate changes (regulatory risk)
|
|
1163
|
+
- FDA approval timelines and probability-weighted pipeline
|
|
1164
|
+
- 340B pricing program impact
|
|
1165
|
+
- Medical device regulation (MDR, QSR compliance)
|
|
1166
|
+
|
|
1167
|
+
## Industry-Specific Forecasting Notes
|
|
1168
|
+
|
|
1169
|
+
### SaaS Metrics in Forecasting
|
|
1170
|
+
- **MRR/ARR decomposition:** New, expansion, contraction, churn
|
|
1171
|
+
- **Cohort-based forecasting:** Forecast by customer cohort for retention accuracy
|
|
1172
|
+
- **Rule of 40:** Revenue growth % + Profit margin % should exceed 40%
|
|
1173
|
+
- **Net Revenue Retention:** Target > 110% for healthy SaaS
|
|
1174
|
+
- **CAC Payback:** Should be < 18 months
|
|
1175
|
+
|
|
1176
|
+
### Retail Forecasting
|
|
1177
|
+
- **Same-store sales growth** as primary organic growth metric
|
|
1178
|
+
- **Seasonal decomposition** for accurate monthly/weekly forecasts
|
|
1179
|
+
- **Markdown optimization** impact on gross margin
|
|
1180
|
+
- **Inventory turns** drive working capital forecasts
|
|
1181
|
+
|
|
1182
|
+
### Manufacturing Forecasting
|
|
1183
|
+
- **Order backlog** as a leading indicator
|
|
1184
|
+
- **Capacity constraints** creating step-function cost increases
|
|
1185
|
+
- **Raw material price forecasts** for COGS
|
|
1186
|
+
- **Maintenance CapEx vs growth CapEx** distinction
|
|
1187
|
+
- **Utilization rates** driving unit cost projections
|
|
1188
|
+
|
|
1189
|
+
---
|
|
1190
|
+
<!-- module: 12-toolkit-scripts-io.md -->
|
|
1191
|
+
|
|
1192
|
+
# Toolkit: Scripts, Templates, Inputs & Dependencies
|
|
1193
|
+
|
|
1194
|
+
> Fidelity note: this mini carries the source SKILL.md's Tools / Templates / Input-Data / Dependencies sections as **knowledge**. The referenced scripts, assets, and templates (`scripts/*.py`, `assets/*`) are **not vendored here**: file paths below are kept as references describing the intended workflow and each tool's capabilities, not runnable files. Reproduce the calculations from the method minis (01–11) when the scripts are unavailable.
|
|
1195
|
+
|
|
1196
|
+
## Tools
|
|
1197
|
+
|
|
1198
|
+
### 1. Ratio Calculator (`scripts/ratio_calculator.py`)
|
|
1199
|
+
|
|
1200
|
+
Calculate and interpret financial ratios from financial statement data.
|
|
1201
|
+
|
|
1202
|
+
**Ratio Categories:**
|
|
1203
|
+
- **Profitability:** ROE, ROA, Gross Margin, Operating Margin, Net Margin
|
|
1204
|
+
- **Liquidity:** Current Ratio, Quick Ratio, Cash Ratio
|
|
1205
|
+
- **Leverage:** Debt-to-Equity, Interest Coverage, DSCR
|
|
1206
|
+
- **Efficiency:** Asset Turnover, Inventory Turnover, Receivables Turnover, DSO
|
|
1207
|
+
- **Valuation:** P/E, P/B, P/S, EV/EBITDA, PEG Ratio
|
|
1208
|
+
|
|
1209
|
+
```bash
|
|
1210
|
+
python scripts/ratio_calculator.py assets/sample_financial_data.json
|
|
1211
|
+
python scripts/ratio_calculator.py assets/sample_financial_data.json --format json
|
|
1212
|
+
python scripts/ratio_calculator.py assets/sample_financial_data.json --category profitability
|
|
1213
|
+
```
|
|
1214
|
+
|
|
1215
|
+
### 2. DCF Valuation (`scripts/dcf_valuation.py`)
|
|
1216
|
+
|
|
1217
|
+
Discounted Cash Flow enterprise and equity valuation with sensitivity analysis.
|
|
1218
|
+
|
|
1219
|
+
**Features:**
|
|
1220
|
+
- WACC calculation via CAPM
|
|
1221
|
+
- Revenue and free cash flow projections (5-year default)
|
|
1222
|
+
- Terminal value via perpetuity growth and exit multiple methods
|
|
1223
|
+
- Enterprise value and equity value derivation
|
|
1224
|
+
- Two-way sensitivity analysis (discount rate vs growth rate)
|
|
1225
|
+
|
|
1226
|
+
```bash
|
|
1227
|
+
python scripts/dcf_valuation.py assets/sample_financial_data.json
|
|
1228
|
+
python scripts/dcf_valuation.py assets/sample_financial_data.json --format json
|
|
1229
|
+
python scripts/dcf_valuation.py assets/sample_financial_data.json --projection-years 7
|
|
1230
|
+
```
|
|
1231
|
+
|
|
1232
|
+
### 3. Budget Variance Analyzer (`scripts/budget_variance_analyzer.py`)
|
|
1233
|
+
|
|
1234
|
+
Analyze actual vs budget vs prior year performance with materiality filtering.
|
|
1235
|
+
|
|
1236
|
+
**Features:**
|
|
1237
|
+
- Dollar and percentage variance calculation
|
|
1238
|
+
- Materiality threshold filtering (default: 10% or $50K)
|
|
1239
|
+
- Favorable/unfavorable classification with revenue/expense logic
|
|
1240
|
+
- Department and category breakdown
|
|
1241
|
+
- Executive summary generation
|
|
1242
|
+
|
|
1243
|
+
```bash
|
|
1244
|
+
python scripts/budget_variance_analyzer.py assets/sample_financial_data.json
|
|
1245
|
+
python scripts/budget_variance_analyzer.py assets/sample_financial_data.json --format json
|
|
1246
|
+
python scripts/budget_variance_analyzer.py assets/sample_financial_data.json --threshold-pct 5 --threshold-amt 25000
|
|
1247
|
+
```
|
|
1248
|
+
|
|
1249
|
+
### 4. Forecast Builder (`scripts/forecast_builder.py`)
|
|
1250
|
+
|
|
1251
|
+
Driver-based revenue forecasting with rolling cash flow projection and scenario modeling.
|
|
1252
|
+
|
|
1253
|
+
**Features:**
|
|
1254
|
+
- Driver-based revenue forecast model
|
|
1255
|
+
- 13-week rolling cash flow projection
|
|
1256
|
+
- Scenario modeling (base/bull/bear cases)
|
|
1257
|
+
- Trend analysis using simple linear regression (standard library)
|
|
1258
|
+
|
|
1259
|
+
```bash
|
|
1260
|
+
python scripts/forecast_builder.py assets/sample_financial_data.json
|
|
1261
|
+
python scripts/forecast_builder.py assets/sample_financial_data.json --format json
|
|
1262
|
+
python scripts/forecast_builder.py assets/sample_financial_data.json --scenarios base,bull,bear
|
|
1263
|
+
```
|
|
1264
|
+
|
|
1265
|
+
## Knowledge Bases
|
|
1266
|
+
|
|
1267
|
+
| Reference | Purpose |
|
|
1268
|
+
|-----------|---------|
|
|
1269
|
+
| `references/financial-ratios-guide.md` | Ratio formulas, interpretation, industry benchmarks (see minis 01–03) |
|
|
1270
|
+
| `references/valuation-methodology.md` | DCF methodology, WACC, terminal value, comps (see minis 04–06) |
|
|
1271
|
+
| `references/forecasting-best-practices.md` | Driver-based forecasting, rolling forecasts, accuracy (see minis 08–10) |
|
|
1272
|
+
| `references/industry-adaptations.md` | Sector-specific metrics and considerations: SaaS, Retail, Manufacturing, Financial Services, Healthcare (see mini 11) |
|
|
1273
|
+
|
|
1274
|
+
## Templates
|
|
1275
|
+
|
|
1276
|
+
| Template | Purpose |
|
|
1277
|
+
|----------|---------|
|
|
1278
|
+
| `assets/variance_report_template.md` | Budget variance report template |
|
|
1279
|
+
| `assets/dcf_analysis_template.md` | DCF valuation analysis template |
|
|
1280
|
+
| `assets/forecast_report_template.md` | Revenue forecast report template |
|
|
1281
|
+
|
|
1282
|
+
## Input Data Format
|
|
1283
|
+
|
|
1284
|
+
All scripts accept JSON input files in either of two shapes:
|
|
1285
|
+
|
|
1286
|
+
1. **Flat**: the tool's expected keys at the top level (e.g., `income_statement` / `balance_sheet` for the ratio calculator, `historical` / `assumptions` for DCF, `line_items` for variance, `historical_periods` / `drivers` / `assumptions` / `cash_flow_inputs` for forecasting).
|
|
1287
|
+
2. **Nested (bundled)**: inputs for all four tools in one file, nested under per-tool keys: `ratio_analysis`, `dcf_valuation`, `budget_variance`, `forecast`. See `assets/sample_financial_data.json` for the complete bundled schema; every quick-start command above runs directly against it.
|
|
1288
|
+
|
|
1289
|
+
Each script auto-detects the shape (flat keys win if present) and exits non-zero with a clear error if neither shape yields usable data.
|
|
1290
|
+
|
|
1291
|
+
## Dependencies
|
|
1292
|
+
|
|
1293
|
+
**None**: All scripts use Python standard library only (`math`, `statistics`, `json`, `argparse`, `datetime`). No numpy, pandas, or scipy required.
|