Skip to content

Commit 3aac696

Browse files
committed
v0.9.0: macro 11축 + EDGAR alias 통합 + report extractor 리팩토링
- macro 엔진 5→11축 확장 (예측/위기/재고/기업집계/교역/종합) - StrategySignal에 strength/confidence 필드 추가 (40개 전략) - SNAKEID_ALIASES를 L0(labels.py)으로 통합, EDGAR_TO_DART_ALIASES 중복 제거 - EDGAR report 7개 extractor에 loadXbrlTags() 공용 헬퍼 적용 - macro spec 구조화 (label/description/when/key_output) - edgarBuilder targetAccounts 순서 버그 수정 - credit history 4개사 평가 이력 추가
1 parent c6e18b4 commit 3aac696

39 files changed

Lines changed: 2265 additions & 705 deletions

CHANGELOG.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,21 @@ All notable changes to DartLab will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [0.9.0] - 2026-04-04
9+
10+
### Changed
11+
12+
- **SNAKEID_ALIASES 통합**: `labels.py`(L0)에 42개 alias dict 통합. `mapper.py``EDGAR_TO_DART_ALIASES`는 L0 참조로 전환. 중복 제거.
13+
- **EDGAR report extractor 리팩토링**: `loadXbrlTags()` 공용 헬퍼 추출. XBRL 기반 7개 extractor에서 CIK/path/parquet 보일러플레이트 제거.
14+
- **macro 엔진 11축 확장**: 기존 5축(사이클/금리/자산/심리/유동성)에 예측/위기/재고/기업집계/교역/종합 6축 추가. 축별 기여도 추적.
15+
- **전략 신호 강도/신뢰도**: `StrategySignal``strength`(0.0~1.0) + `confidence`(high/medium/low) 필드 추가. 40개 전략 전수 반영.
16+
- **macro spec 구조화**: 각 축 메타데이터를 label/description/when/key_output 구조로 확장. 내부 방법론(Hamilton RS, Kalman DFM, Nelson-Siegel) 명시.
17+
- **edgarBuilder targetAccounts 순서 수정**: 정의 전 참조 버그 해결.
18+
19+
### Fixed
20+
21+
- **credit history 데이터 갱신**: 삼성전자/SK하이닉스/LG화학/NAVER 4개사 평가 이력 추가.
22+
823
## [0.8.9] - 2026-04-04
924

1025
### Changed

data/credit/history/000660.json

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,30 @@
5959
"previousGrade": "dCR-AA+",
6060
"changed": false
6161
},
62+
{
63+
"date": "2026-04-04",
64+
"grade": "dCR-AA+",
65+
"gradeRaw": "AA+",
66+
"score": 4.55,
67+
"eCR": "eCR-3",
68+
"outlook": "긍정적",
69+
"methodologyVersion": "v4.0",
70+
"period": "2025Q4",
71+
"previousGrade": "dCR-AA+",
72+
"changed": false
73+
},
74+
{
75+
"date": "2026-04-04",
76+
"grade": "dCR-AA+",
77+
"gradeRaw": "AA+",
78+
"score": 4.55,
79+
"eCR": "eCR-3",
80+
"outlook": "긍정적",
81+
"methodologyVersion": "v4.0",
82+
"period": "2025Q4",
83+
"previousGrade": "dCR-AA+",
84+
"changed": false
85+
},
6286
{
6387
"date": "2026-04-04",
6488
"grade": "dCR-AA+",

data/credit/history/003550.json

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,30 @@
119119
"previousGrade": "dCR-AA",
120120
"changed": false
121121
},
122+
{
123+
"date": "2026-04-04",
124+
"grade": "dCR-AA",
125+
"gradeRaw": "AA",
126+
"score": 5.74,
127+
"eCR": "eCR-1",
128+
"outlook": "부정적",
129+
"methodologyVersion": "v4.0",
130+
"period": "2025Q4",
131+
"previousGrade": "dCR-AA",
132+
"changed": false
133+
},
134+
{
135+
"date": "2026-04-04",
136+
"grade": "dCR-AA",
137+
"gradeRaw": "AA",
138+
"score": 5.74,
139+
"eCR": "eCR-1",
140+
"outlook": "부정적",
141+
"methodologyVersion": "v4.0",
142+
"period": "2025Q4",
143+
"previousGrade": "dCR-AA",
144+
"changed": false
145+
},
122146
{
123147
"date": "2026-04-04",
124148
"grade": "dCR-AA",

data/credit/history/005930.json

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,42 @@
227227
"previousGrade": "dCR-AA+",
228228
"changed": false
229229
},
230+
{
231+
"date": "2026-04-04",
232+
"grade": "dCR-AA+",
233+
"gradeRaw": "AA+",
234+
"score": 4.03,
235+
"eCR": "eCR-1",
236+
"outlook": "안정적",
237+
"methodologyVersion": "v4.0",
238+
"period": "2025Q4",
239+
"previousGrade": "dCR-AA+",
240+
"changed": false
241+
},
242+
{
243+
"date": "2026-04-04",
244+
"grade": "dCR-AA+",
245+
"gradeRaw": "AA+",
246+
"score": 4.03,
247+
"eCR": "eCR-1",
248+
"outlook": "안정적",
249+
"methodologyVersion": "v4.0",
250+
"period": "2025Q4",
251+
"previousGrade": "dCR-AA+",
252+
"changed": false
253+
},
254+
{
255+
"date": "2026-04-04",
256+
"grade": "dCR-AA+",
257+
"gradeRaw": "AA+",
258+
"score": 4.03,
259+
"eCR": "eCR-1",
260+
"outlook": "안정적",
261+
"methodologyVersion": "v4.0",
262+
"period": "2025Q4",
263+
"previousGrade": "dCR-AA+",
264+
"changed": false
265+
},
230266
{
231267
"date": "2026-04-04",
232268
"grade": "dCR-AA+",

data/credit/history/035420.json

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,30 @@
131131
"previousGrade": "dCR-AA",
132132
"changed": false
133133
},
134+
{
135+
"date": "2026-04-04",
136+
"grade": "dCR-AA",
137+
"gradeRaw": "AA",
138+
"score": 5.86,
139+
"eCR": "eCR-1",
140+
"outlook": "안정적",
141+
"methodologyVersion": "v4.0",
142+
"period": "2025Q4",
143+
"previousGrade": "dCR-AA",
144+
"changed": false
145+
},
146+
{
147+
"date": "2026-04-04",
148+
"grade": "dCR-AA",
149+
"gradeRaw": "AA",
150+
"score": 5.86,
151+
"eCR": "eCR-1",
152+
"outlook": "안정적",
153+
"methodologyVersion": "v4.0",
154+
"period": "2025Q4",
155+
"previousGrade": "dCR-AA",
156+
"changed": false
157+
},
134158
{
135159
"date": "2026-04-04",
136160
"grade": "dCR-AA",

docs/changelog.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,21 @@ All notable changes to DartLab will be documented in this file.
99
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
1010
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
1111

12+
## [0.9.0] - 2026-04-04
13+
14+
### Changed
15+
16+
- **SNAKEID_ALIASES 통합**: `labels.py`(L0)에 42개 alias dict 통합. `mapper.py``EDGAR_TO_DART_ALIASES`는 L0 참조로 전환. 중복 제거.
17+
- **EDGAR report extractor 리팩토링**: `loadXbrlTags()` 공용 헬퍼 추출. XBRL 기반 7개 extractor에서 CIK/path/parquet 보일러플레이트 제거.
18+
- **macro 엔진 11축 확장**: 기존 5축(사이클/금리/자산/심리/유동성)에 예측/위기/재고/기업집계/교역/종합 6축 추가. 축별 기여도 추적.
19+
- **전략 신호 강도/신뢰도**: `StrategySignal``strength`(0.0~1.0) + `confidence`(high/medium/low) 필드 추가. 40개 전략 전수 반영.
20+
- **macro spec 구조화**: 각 축 메타데이터를 label/description/when/key_output 구조로 확장. 내부 방법론(Hamilton RS, Kalman DFM, Nelson-Siegel) 명시.
21+
- **edgarBuilder targetAccounts 순서 수정**: 정의 전 참조 버그 해결.
22+
23+
### Fixed
24+
25+
- **credit history 데이터 갱신**: 삼성전자/SK하이닉스/LG화학/NAVER 4개사 평가 이력 추가.
26+
1227
## [0.8.9] - 2026-04-04
1328

1429
### Changed

ops/edgar.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,11 @@ EXEMPT에 **등록하면 안 되는** 경우:
5555

5656
## EDGAR alias 확장 (select bridge)
5757

58-
`show.py::_expandEdgarAliases()` — DART snakeId를 EDGAR snakeId로 확장:
58+
`core/finance/labels.py::SNAKEID_ALIASES` — DART EDGAR snakeId 통합 alias dict (L0):
5959
- `cash_flows_from_financing``cash_flows_from_financing_activities`
6060
- `capex``purchase_of_property_plant_and_equipment`
61+
- `revenue``sales`, `net_income``net_profit` 등 44개
62+
- `show.py::_expandEdgarAliases()``mapper.py::EDGAR_TO_DART_ALIASES` 모두 이 dict 사용
6163
- analysis calc 함수에서 한국어 계정명 사용 → bridge → alias 확장 → EDGAR 매칭
6264

6365
`_quarterlyCols()` / `quarterlyColsFromPeriods()` — EDGAR 연간 데이터 fallback:

0 commit comments

Comments
 (0)