Files
2nd/10_Wiki/Topics/AI_and_ML/Finished Goods.md
T
Antigravity Agent f8b21af4be Wiki cleanup: error-doc removal, dedup merge, link normalization
10_Wiki/Topics 대규모 정리:
- 오류 캡처/미완성 stub 문서 227개 제거
- 교차폴더 중복 43클러스터 병합 (63파일 → redirect)
- 링크명 정규화: 깨진 링크 수정·redirect 직결·개념 매핑 ~2,400건
- 카테고리 MOC 6개 신규 생성
- Graph 섹션 미해결 related-keyword 링크 10,058건 제거

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 23:52:15 +09:00

231 lines
6.6 KiB
Markdown

---
id: wiki-2026-0508-finished-goods
title: Finished Goods (제품 완성품)
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [finished goods, FG, finished inventory, supply chain, MRP, ERP]
duplicate_of: none
source_trust_level: A
confidence_score: 0.88
verification_status: applied
tags: [supply-chain, inventory, manufacturing, erp, mrp, finished-goods]
raw_sources: []
last_reinforced: 2026-05-10
github_commit: pending
tech_stack:
language: ERP / Supply Chain
applicable_to: [Manufacturing, Logistics, Forecast]
---
# Finished Goods
## 매 한 줄
> **"매 manufacturing 의 의 의 sale-ready inventory"**. Raw material → WIP → Finished Goods. 매 inventory turnover, 매 demand forecast, 매 safety stock 의 critical. 매 modern: 매 ML demand forecast + 매 real-time visibility.
## 매 핵심
### 매 inventory tier
- **Raw material**.
- **WIP** (Work in Progress).
- **Finished Goods** (FG).
- **MRO** (maintenance, repair, ops).
### 매 metric
- **Inventory turnover** = COGS / avg FG.
- **Days of inventory** = 365 / turnover.
- **Stockout rate**.
- **Service level**.
- **Carrying cost** (보관, capital, obsolete).
### 매 strategy
- **MTS** (Make-to-stock).
- **MTO** (Make-to-order).
- **ATO** (Assemble-to-order).
- **ETO** (Engineer-to-order).
- **JIT** (Just-in-time).
### 매 응용
1. **Demand forecast**: 매 ML.
2. **Safety stock**.
3. **Reorder point**.
4. **EOQ** (Economic Order Quantity).
5. **ABC analysis**: 매 80/20 importance.
## 💻 패턴
### Inventory turnover
```python
def turnover(cogs_year, avg_inventory_value):
return cogs_year / avg_inventory_value
def days_of_inventory(turnover):
return 365 / turnover # 매 lower = leaner
```
### EOQ (Wilson formula)
```python
import math
def eoq(annual_demand, order_cost, holding_cost_per_unit):
return math.sqrt(2 * annual_demand * order_cost / holding_cost_per_unit)
```
### Safety stock
```python
from scipy.stats import norm
def safety_stock(service_level, std_demand_during_lead, lead_time_days):
z = norm.ppf(service_level)
return z * std_demand_during_lead * math.sqrt(lead_time_days)
def reorder_point(avg_demand_per_day, lead_time_days, safety_stk):
return avg_demand_per_day * lead_time_days + safety_stk
```
### ABC analysis
```python
import pandas as pd
def abc(df):
"""매 80/20 importance."""
df = df.sort_values('annual_value', ascending=False)
df['cum_pct'] = df.annual_value.cumsum() / df.annual_value.sum()
df['class'] = df.cum_pct.apply(lambda p: 'A' if p < 0.8 else 'B' if p < 0.95 else 'C')
return df
```
### Demand forecast (ML)
```python
import xgboost as xgb
def forecast_demand(history, exog):
"""매 history: time series. exog: promo, season, price."""
X = create_features(history, exog) # 매 lag, rolling, seasonality
y = history.shift(-7) # 매 1-week ahead
model = xgb.XGBRegressor().fit(X[:-7], y[:-7])
return model.predict(X[-7:])
```
### Bill of Materials (BOM)
```python
@dataclass
class BOM:
finished_good: str
components: dict[str, int] # 매 part: qty
def total_components(self, n_units):
return {part: qty * n_units for part, qty in self.components.items()}
```
### MRP run (simplified)
```python
def mrp_run(forecast_fg, on_hand, bom, lead_time):
"""매 매 component 의 의 의 plan."""
plan = {}
for fg, qty in forecast_fg.items():
net_need = max(0, qty - on_hand.get(fg, 0))
if net_need > 0:
for part, ratio in bom[fg].items():
plan[part] = plan.get(part, 0) + net_need * ratio
return {part: {'order_qty': q, 'order_by': today() - timedelta(days=lead_time[part])} for part, q in plan.items()}
```
### Inventory carrying cost
```python
def carrying_cost(unit_cost, holding_rate=0.25, qty=1, time_year=1):
"""매 holding rate = 매 storage + capital + obsolete."""
return unit_cost * holding_rate * qty * time_year
```
### Stockout cost
```python
def stockout_cost(unit_lost_margin, prob_stockout, expected_demand_during_stockout):
return unit_lost_margin * prob_stockout * expected_demand_during_stockout
```
### JIT signal (kanban)
```python
class KanbanCard:
"""매 trigger production / replenish."""
def __init__(self, part, qty, supplier):
self.part = part; self.qty = qty; self.supplier = supplier
def consume(self): self.send_signal_to(self.supplier)
```
### ERP integration (SAP-like)
```python
def sync_to_erp(fg_movement):
erp_api.post('/inventory/movement', json={
'material': fg_movement.sku,
'plant': fg_movement.plant,
'storage_loc': fg_movement.bin,
'qty': fg_movement.qty,
'movement_type': fg_movement.type,
})
```
### Real-time visibility (RFID / IoT)
```python
def rfid_event_handler(event):
update_inventory(event.sku, event.location, event.timestamp)
if get_quantity(event.sku) < reorder_point(event.sku):
trigger_replenishment(event.sku)
```
### Forecast accuracy (MAPE, WAPE)
```python
def mape(actual, forecast):
return abs((actual - forecast) / actual).mean() * 100
def wape(actual, forecast):
return abs(actual - forecast).sum() / actual.sum() * 100
```
### LLM-aided demand sensing
```python
def demand_sense(news_signals, social_trends, llm):
prompt = f"""You are a supply chain expert.
News: {news_signals}
Social: {social_trends}
Output JSON with demand impact predictions for these SKUs..."""
return json.loads(llm.generate(prompt))
```
## 매 결정 기준
| 상황 | Approach |
|---|---|
| Stable demand | EOQ + safety stock |
| Variable demand | ML forecast + dynamic |
| Seasonal | + seasonality features |
| Custom product | MTO / ETO |
| Mass | MTS + JIT |
| Critical SKU | A class — tight monitor |
**기본값**: 매 ML forecast + 매 ABC class + 매 dynamic safety stock + 매 ERP/MRP integration + 매 RFID visibility.
## 🔗 Graph
- 부모: [[Supply-Chain]]
- 응용: [[ERP]] · [[MRP]]
- Adjacent: [[Dynamic Pricing & Offers]] · [[E-commerce-Optimization]]
## 🤖 LLM 활용
**언제**: 매 manufacturing. 매 retail FG planning. 매 supply chain.
**언제 X**: 매 service-only.
## ❌ 안티패턴
- **No safety stock**: 매 stockout cascade.
- **Fixed reorder regardless demand**: 매 over/under.
- **A/B/C uniform treatment**: 매 efficiency lose.
- **No forecast eval**: 매 bias accumulate.
- **JIT without supplier reliability**: 매 risk.
## 🧪 검증 / 중복
- Verified (APICS, Sahin OR textbook, ERP standards).
- 신뢰도 A.
## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-04-20 | Auto-reinforced |
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — inventory + 매 EOQ / safety / ABC / MRP / forecast code |