# finance/rawMaterial — 원재료 및 생산설비

> **상태: 실무 투입** (2026-03-07)

## 기능
사업보고서 "3. 원재료 및 생산설비" 섹션에서 3가지 데이터 추출.

### 1. 원재료 매입 현황
### 2. 유형자산 변동 (생산설비)
### 3. 시설투자 현황

## API
```python
from dartlab.finance.rawMaterial import rawMaterial

result = rawMaterial("005930")  # -> RawMaterialResult | None
```

## RawMaterialResult
| 필드 | 타입 | 설명 |
|------|------|------|
| corpName | str \| None | 기업명 |
| year | int \| None | 기준 사업연도 |
| materials | list[RawMaterial] | 원재료 매입 항목 목록 |
| equipment | Equipment \| None | 유형자산 기말잔액 |
| capexItems | list[CapexItem] | 시설투자 항목 목록 |

### RawMaterial
| 필드 | 설명 |
|------|------|
| segment | 사업부문 |
| item | 품목명 |
| usage | 용도 |
| amount | 매입액 |
| ratio | 비율 (%) |
| supplier | 매입처/비고 |

### Equipment
| 필드 | 설명 |
|------|------|
| land | 토지 |
| buildings | 건물/구축물 |
| structures | 구축물 |
| machinery | 기계장치 |
| construction | 건설중인자산 |
| vehicles | 차량운반구 |
| fixtures | 비품 |
| rou | 사용권자산 |
| undelivered | 미착기계 |
| other | 기타유형자산 |
| total | 합계 |
| depreciation | 감가상각비 |
| capex | 자본적지출 |

### CapexItem
| 필드 | 설명 |
|------|------|
| segment | 구분/사업부문 |
| amount | 투자금액 |

## 파싱 성공률 (267종목)
| 항목 | 성공 | Result 있음 | None | 성공률 |
|------|------|------------|------|--------|
| 원재료 | 132 | 142 | 125 | 93.0% |
| 생산설비 | 48 | 142 | 125 | 33.8% |
| 시설투자 | 23 | 142 | 125 | 16.2% |

125종목 None: 해당사항 없음(텍스트만) 또는 매입 테이블 미보유.

### 품질 검증 결과
| 검사 항목 | 결과 |
|-----------|------|
| ratio 이상(>100%) | 2건/1종목 (DL이앤씨) |
| amt=None + ratio있음 | 0건 |
| item이 숫자 | 0건 |
| 설비 total 음수 | 0건 |
| 설비 total 1조 초과 | 0건 |
| 시설투자 음수 | 0건 |
| 런타임 에러 | 0건 |

### 검증 완료 종목 (스팟체크)
| 종목 | 원재료 | 설비 total | 비고 |
|------|--------|-----------|------|
| 삼성전자 | 14건, 1,043,364억 | 2,059,452 | DX/DS/SDC/Harman 4부문 |
| 현대차 | 17건, 866,972 | 44,533,941 | |
| SK하이닉스 | 5건, 12,882,581 | 60,157,474 | |
| LG | 2건, 3,387,189 | - | 매입액(비율) 합쳐진 셀 |
| LG화학 | 5건, 26,313,581 | 54,570,446 | |
| SK(034730) | 2건, 1,429,147 | - | 분할 헤더(2행) |
| F&F | 3건, 491,276 | - | 분할 헤더 + shifted |

### 알려진 제한
- **DL이앤씨 (317400)**: `구분 | (빈칸) | 매입액` 헤더에서 레미콘 shifted 행 2건 ratio 오류
- **단위 혼재**: 자회사별 테이블이 USD/천USD/백만원 혼재하는 경우 단위 통일 미지원
- **생산설비 33.8%**: 테이블 형식 다양 → 인식률 낮음. 파싱된 것은 정확

## 파싱 전략

### 원재료
1. 헤더 직접 감지: (매입액|투입액) + (품목|원재료|부문) 조합
2. `_findHeaderIndices()`로 컬럼 인덱스 동적 매핑
3. shifted 행 감지: segment 생략 시 왼쪽으로 밀린 데이터 역산
4. 합쳐진 "매입액(비율)" 셀: `1,483,067 (43.8%)` 패턴 분리
5. 연도별 헤더 (`제N기`, `20XX년`) 패턴 지원
6. 분할 헤더: row1(품목/구분) + row2(매입액/비율) 2행 헤더 병합
7. 비율>100 shifted 감지: 비율칸 값이 100 초과면 shifted로 판단
8. 연도 컬럼 자동 ratio 제외: 매입액(비율) 합쳐진 헤더, 연도 헤더 제외
9. 생산 테이블 필터: 생산능력/수량 키워드 있는 헤더 제외
10. 숫자 item 필터: item이 순수 숫자면 shift된 데이터로 판단, 제외
11. 각주 참조 필터: (주N) 패턴은 parseAmount에서 None 반환
12. amount 없는 헤더 제외: amount 컬럼 미발견 시 테이블 진입 차단

### 생산설비
1. 자산명 3개 이상 + "계/합계" 포함 행을 헤더로 감지
2. `COL_KEYS`로 한글 자산명 → 영문 키 매핑
3. "기말장부금액"/"기말 순장부금액"/"기말" 행에서 기말잔액 추출
4. 감가상각비/CAPEX도 동일 테이블에서 추출

### 시설투자
1. "시설투자"/"투자계획" 섹션 감지
2. "구분" + "투자" 헤더 탐지
3. 각 행의 마지막 숫자를 투자금액으로 추출

## 실험
- experiments/013_rawMaterial/ (001~004) — 탐색, 비교, 파서 개발, 전체 테스트
