Stock Valuation
by etloveaui
FenokValue v9.6.4 - Korea Discount Reason Code fix. Critical bug fixes. Data contract validation. Global Scouter v2.2.0 integration.
Skill Details
name: stock-valuation description: FenokValue v9.6.4 - Korea Discount Reason Code fix. Critical bug fixes. Data contract validation. Global Scouter v2.2.0 integration.
FenokValue Skill Guide (v9.6.4)
- 엔진: yfinance + Global Scouter v2.2.0 + Damodaran 4-JSON + ValuationOrchestrator
- 핵심 기능: TWO_STAGE DCF, Reverse/Stress, Reason Codes(134개), 8 L1 Pillars, Masters Panel (4 modes), Data Contract Validation
- 버전: 9.6.4 (2026-01-29) · Author: El Fenomeno
🔴 CRITICAL: Quick Start First
MANDATORY: Before any analysis task, complete these steps:
- Read Reference: Review CLAUDE.md for detailed agent reference
- Install Dependencies:
pip install -r requirements.txt - Verify Installation:
python -c "import yfinance, pandas, numpy; print('OK')" - Test Run:
python fenok_value.py report NVDA --format md
⚠️ DO NOT skip these steps. Data fetching requires proper environment setup.
Resources & Folder Structure
stock-valuation/
├── SKILL.md # This guide (user-facing)
├── CLAUDE.md # Agent reference (detailed)
├── PROMPT_GUIDE.md # Prompt examples
├── scripts/
│ ├── fenok_value.py # CLI entry point (22 subcommands)
│ ├── report_generator.py # v9.1.0 UnifiedReportGenerator
│ ├── masters_panel.py # 13 investors, 4 modes
│ ├── valuation_engine.py # DCF/Reverse/Stress
│ ├── quality_score.py # Lynch/Piotroski/Altman
│ ├── core/ # 50+ core modules
│ │ ├── valuation_orchestrator.py # Main orchestrator
│ │ ├── valuation_router.py # Stock type routing
│ │ ├── stock_data_fetcher.py # Data fetching
│ │ └── wacc_calculator.py # WACC engine
│ ├── adapters/ # Data adapters
│ ├── providers/ # DataPack, SEC13F providers
│ └── tests/ # (dev only, excluded from ZIP)
├── masters/ # 13 investor profiles (JSON)
└── references/ # Technical specifications
Dependencies
| Package | Version | Purpose |
|---|---|---|
| yfinance | 0.2.30+ | Stock data fetching |
| pandas | 1.5.0+ | Data processing |
| numpy | 1.23.0+ | Numerical computations |
| requests | 2.28.0+ | API calls |
1. Installation
cd scripts
pip install -r requirements.txt
python -c "import yfinance, pandas, numpy; print('OK')"
2. 핵심 명령어
| 목적 | 명령 |
|---|---|
| Quick 스크리닝 | python fenok_value.py report NVDA --level quick |
| Standard 분석 | python fenok_value.py report NVDA --level standard |
| Full 보고서 (권장) | python fenok_value.py report NVDA --level full |
| Deep 분석 | python fenok_value.py report NVDA --level deep |
| 데이터/WACC | python fetch_data.py NVDA --wacc-breakdown --estimates |
| 밸류에이션 | python valuation_engine.py NVDA --mode full --format md |
| 품질 점수 | python quality_score.py NVDA --mode full --view summary |
| 비교 분석 | python valuation_engine.py NVDA AMD --mode full --compare |
| 적자 성장주 | python ev_sales.py SNOW --debug |
| 대가 패널 | python masters_panel.py NVDA --mode debate |
| 리스크 | python risk_radar.py GME --mode full |
Report Levels (v9.5.0 Hierarchy)
| Level | Analyzers | 시간 | Masters | 용도 | Mode |
|---|---|---|---|---|---|
quick |
5개 | ~10s | ❌ | Screening (standalone) | orchestrator |
standard |
14개 | ~2min | ❌ | Base analysis | orchestrator |
full |
20개 | ~2min | ❌ | STANDARD + 6 advanced (기본값) | orchestrator |
deep |
21개 | ~5min | ✅ | FULL + Masters | orchestrator |
Hierarchy: STANDARD (14) ⊂ FULL (20) ⊂ DEEP (21) | QUICK (5) = standalone
🔥 v9.6.0 Changes:
- BUG-009: dividends 섹션 매핑 추가 → DDM 분석 정상화
- BUG-010: 성장률 30% Cap 추가 → 고성장주 과대평가 방지
- BUG-011: masters_all_modes 임시 제거 (DEEP 22→21)
- NEW: Data Contract 검증 (data_validator.py)
🔥 Breaking Change v9.5.0: 계층 구조 재설계
- STANDARD: subprocess → orchestrator 모드 변경
- Analyzer Names: dcf → conviction_score, relative → relative_valuation, etc.
- New Adapters: altman_z, lynch_classifier, relative_valuation (3개 신규)
- Hierarchy Enforced: validate_hierarchy() 런타임 검증
⚠️ Deprecated:
full및analyze명령은 deprecated 됨.
full→report --level standard사용analyze→report --level full사용
CLI 옵션:
--level: 분석 깊이 (quick/standard/full/deep) - v9.3.0 신규--view: 출력 레벨 (summary/full/debug)--mode: 분석 유형 (dcf/reverse/stress/full/debate)--format: 출력 형식 (text/md/json/html)--compare: 비교 모드 활성화--no-masters: Masters Panel 제외 (report 명령)--no-risk: Risk Radar 제외 (report 명령)
3. v9.5.0 Migration Guide
Breaking Change: Hierarchy Restructure
What Changed:
# Before v9.5.0 (subprocess mode for STANDARD)
STANDARD_ANALYZERS = {fetch, dcf, relative, scenario, risk, ...} # subprocess names
FULL_ANALYZERS = {conviction_score, reverse_dcf, ...} # orchestrator names
# STANDARD ⊄ FULL (different naming, different mode)
# After v9.5.0 (all orchestrator mode)
STANDARD_ANALYZERS = {conviction_score, reverse_dcf, relative_valuation, ...} # 14 analyzers
FULL_ANALYZERS = STANDARD_ANALYZERS | {monte_carlo, sp500_context, ...} # 20 analyzers
DEEP_ANALYZERS = FULL_ANALYZERS | {masters_panel, masters_all_modes} # 22 analyzers
# STANDARD ⊂ FULL ⊂ DEEP (strict superset hierarchy)
Why the Change?
- 계층 무결성: STANDARD가 FULL의 부분집합이 아니었음 → 수정됨
- 일관성: 모든 레벨이 orchestrator 사용 → parallel 실행 이점
- 확장성: 새 분석기(altman_z, lynch_classifier, relative_valuation) 추가 용이
Deprecated Analyzer Names (v9.5.0)
| Old Name (subprocess) | New Name (orchestrator) |
|---|---|
dcf |
conviction_score |
relative |
relative_valuation |
scenario |
scenario_analysis |
risk |
risk_checker |
reverse |
reverse_dcf |
stress |
rate_stress |
sbc, dilution |
sbc_dilution |
lynch |
lynch_classifier |
masters |
masters_panel |
Migration Paths
| Before v9.5.0 | After v9.5.0 | Notes |
|---|---|---|
report --level standard |
No change | CLI 동일, 내부 실행 모드만 변경 |
report --level full |
No change | Analyzer count: 18 → 20 |
report --level deep |
No change | Analyzer count: 20 → 22 |
New Analyzers (v9.5.0)
| Analyzer | Purpose | Level |
|---|---|---|
altman_z |
Bankruptcy risk (Z-Score) | QUICK, STANDARD+ |
lynch_classifier |
Peter Lynch 6-type classification | STANDARD+ |
relative_valuation |
Sector comparison + PER band | STANDARD+ |
4. 워크플로우 예시
단일 종목 기본 분석
python fenok_value.py analyze NVDA --format md
또는 단계별:
python fetch_data.py NVDA --wacc-breakdown --estimates
python valuation_engine.py NVDA --mode full
python quality_score.py NVDA --mode full
비교 분석
python valuation_engine.py NVDA AMD --mode full --compare
python quality_score.py NVDA AMD --compare
적자 성장주
python ev_sales.py SNOW --debug
python rule_of_40.py SNOW --view summary
4. 데이터 소스 (v9.0.0 Policy)
| 우선순위 | 데이터 | 출처 |
|---|---|---|
| 1순위 | EPS/FCF 추정치, PER 밴드 | Global Scouter datapack |
| 2순위 | 주가/재무 (폴백) | yfinance (Lazy init) |
| 3순위 | ERP/CRP, 산업 베타 | Damodaran JSON (178개국, 96산업) |
v9.0.0 핵심: DataPack → yfinance → Damodaran 우선순위. Evidence 추적.
5. 성능 최적화 (v9.2.0)
병렬 처리 설정
| 구성요소 | 설정 | 개선율 | 근거 |
|---|---|---|---|
| 데이터 Fetching | ThreadPoolExecutor(max_workers=5) |
68% | yfinance API rate limit 고려, 5 threads가 안전 마진 확보 |
| Analyzer 실행 | ThreadPoolExecutor(max_workers=6) |
75% | 21개 분석기 중 독립적 분석기만 병렬화, 6 threads 최적 |
벤치마크 결과 (v9.2.0)
| 구성요소 | 순차 실행 | 병렬 실행 | 개선율 |
|---|---|---|---|
| 데이터 Fetching | 2.20s | 0.70s | 68% |
| Analyzer 실행 | 2.00s | 0.50s | 75% |
벤치마크 스크립트:
scripts/benchmark_parallel.py(실행:python benchmark_parallel.py --ticker NVDA)
6. 테스트 (개발 환경 전용)
Note: 테스트는 개발 환경 전용입니다. ZIP 배포본에는 포함되지 않습니다.
7. 버전 히스토리
| 버전 | 주요 변경 |
|---|---|
| v9.6.4 | Korea Discount Reason Code fix, _generate_market_context_codes() 추가 |
| v9.6.3 | Critical fixes: BUG-012 FCF list, BUG-013 Revenue unit, DDM floor |
| v9.6.0 | Root cause fixes: BUG-009 dividends mapping, BUG-010 growth 30% cap, BUG-011 masters removal, Data Contract validation |
| v9.5.5 | Data structure bug fixes: Beta path, EPS estimates, duplicate warnings |
| v9.5.3 | Documentation quality fixes: test stats, ZIP/dev separation |
| v9.5.2 | Claude Desktop bug fixes: P0 info cache, P1 price key resolution |
| v9.5.1 | Bug fixes: P0 race condition, P1 growth fallbacks, P2 logging |
| v9.5.0 | BREAKING: 계층 구조 재설계 (DEC-122), STANDARD ⊂ FULL ⊂ DEEP, 3 new adapters, subprocess 제거 |
| v9.4.0 | QUICK 레벨 재설계 (DEC-120), Industry-aligned screening, 3x faster |
| v9.3.0 | report --level 통합 (DEC-117), quick/standard/full/deep 레벨 |
| v9.2.1 | CLI screening mode added (4 modes complete), 6 masters quantitative fix |
| v9.2.0 | Phase 4 Complete - insufficient_data verdict, SKILL.md sections |
| v9.1.0 | Unified Report Generator, Evidence Trail 개선 |
| v9.0.0 | Major: Masters Panel 4 modes, DataPack Priority, Global Scouter Full |
Last Updated: 2026-01-29
Related Skills
Xlsx
Comprehensive spreadsheet creation, editing, and analysis with support for formulas, formatting, data analysis, and visualization. When Claude needs to work with spreadsheets (.xlsx, .xlsm, .csv, .tsv, etc) for: (1) Creating new spreadsheets with formulas and formatting, (2) Reading or analyzing data, (3) Modify existing spreadsheets while preserving formulas, (4) Data analysis and visualization in spreadsheets, or (5) Recalculating formulas
Clickhouse Io
ClickHouse database patterns, query optimization, analytics, and data engineering best practices for high-performance analytical workloads.
Clickhouse Io
ClickHouse database patterns, query optimization, analytics, and data engineering best practices for high-performance analytical workloads.
Analyzing Financial Statements
This skill calculates key financial ratios and metrics from financial statement data for investment analysis
Data Storytelling
Transform data into compelling narratives using visualization, context, and persuasive structure. Use when presenting analytics to stakeholders, creating data reports, or building executive presentations.
Kpi Dashboard Design
Design effective KPI dashboards with metrics selection, visualization best practices, and real-time monitoring patterns. Use when building business dashboards, selecting metrics, or designing data visualization layouts.
Dbt Transformation Patterns
Master dbt (data build tool) for analytics engineering with model organization, testing, documentation, and incremental strategies. Use when building data transformations, creating data models, or implementing analytics engineering best practices.
Sql Optimization Patterns
Master SQL query optimization, indexing strategies, and EXPLAIN analysis to dramatically improve database performance and eliminate slow queries. Use when debugging slow queries, designing database schemas, or optimizing application performance.
Anndata
This skill should be used when working with annotated data matrices in Python, particularly for single-cell genomics analysis, managing experimental measurements with metadata, or handling large-scale biological datasets. Use when tasks involve AnnData objects, h5ad files, single-cell RNA-seq data, or integration with scanpy/scverse tools.
Xlsx
Spreadsheet toolkit (.xlsx/.csv). Create/edit with formulas/formatting, analyze data, visualization, recalculate formulas, for spreadsheet processing and analysis.
