> ## Documentation Index
> Fetch the complete documentation index at: https://docs.alforse.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 수요 예측

> 향후 52주 동안 제조 부품에 대해 예상하는 주간 수요를 입력하여 MRP가 수주가 도착하기 전에 작업과 구매를 계획할 수 있게 하며, 실제 주문은 예측에 더해지지 않고 예측을 소모합니다.

수주는 제때 제작하거나 구매하기에는 너무 늦게 도착하는 경우가 많습니다. 수요 예측을 사용하면 계획 담당자가 매주 부품이 얼마나 필요할지 미리 명시할 수 있으므로 MRP가 지금부터 작업과 구매를 계획할 수 있습니다. 실제 주문이 들어오면 예측 위에 더해지는 대신 예측을 소모합니다.

## 개요

| 질문 | 답변 |
| - | - |
| 예측은 어디에서 입력합니까? | **생산 → 소요량 예측** |
| 어떤 품목입니까? | 제조 부품만 |
| 입도는 어떻게 됩니까? | 부품별, 위치별, 주당 수량 하나 |
| 얼마나 앞까지입니까? | 입력 그리드 기준 52주 |
| 누가 편집할 수 있습니까? | `production` 권한이 있는 사용자 |
| 어떤 플랜입니까? | Business 및 파트너 |

Alforse는 예측을 대신 계산하지 않습니다. 이력, 계절성, 통계 모델은 관여하지 않습니다. 숫자는 사용자가 입력하고, MRP는 상계와 BOM 전개를 수행합니다.

### 제조 부품만 가능한 이유

양식의 품목 선택기는 사용자가 제작하는 부품만 제공합니다(`type="Part"` 및 `replenishmentSystem="Make"`로 제한됨). 구매 구성품에도 수요가 발생합니다. MRP가 제조 부품의 자재 명세서를 전개할 때 수요를 하위로 전달하므로 자체 예측이 필요하지 않습니다.

### 입력과 출력

NOTE

**이름이 비슷한 두 개의 테이블**

입력한 숫자는 `demandProjection`에 들어가며 이것이 **입력**입니다. MRP는 전개한 구성품별 수요를 `planningDemandForecast`에 기록하며 이것이 **출력**으로, 실행할 때마다 다시 생성되고 직접 편집하지 않습니다. 소요량 예측 화면은 `demandProjection`만 읽고 씁니다.

`demandProjection`에는 품목, 위치, 주간 기간마다 한 행이 있으며 `quantity`를 가집니다. 주간 기간은 그리드가 오늘부터 앞으로 이동하면서 생성됩니다.

## 예측 입력

1. **생산 → 소요량 예측**을 열고 예측을 추가합니다.
2. **품목**과 **위치**를 선택합니다.
3. 주를 입력합니다. 52개 주 셀은 네 개의 분기 탭에 나뉘어 있으며 1주차는 현재 주이고 모든 셀에는 달력 날짜가 표시됩니다. 그리드 옆의 막대-선 차트는 입력하는 동안 주간 수요와 누적 수요를 그려 줍니다.
4. 저장합니다. 다음 MRP 실행에서 새 숫자를 사용합니다.

| 필드 | 필수 | 의미 |
| - | - | - |
| **품목** | 예 | 예측 대상 제조 부품입니다. **제조** 조달 방식의 부품만 나열됩니다. |
| **위치** | 예 | 수요가 발생하는 재고 위치입니다. 위치마다 고유한 숫자를 가지므로 공장별로 다를 수 있습니다. |
| **1주 … 52주** | 아니요 | 현재 주부터 해당 주에 소비될 것으로 예상되는 수량입니다. 비어 있거나 0이면 아무것도 저장하지 않습니다. |

### 저장, 편집, 삭제

* **저장**하면 수량이 있는 주만 저장됩니다. 셀을 0으로 설정하면 0을 저장하는 대신 해당 주의 행이 제거되므로 데이터는 희소하게 유지됩니다.
* 부품을 **편집**하면 저장된 주가 그리드에 다시 불러와집니다.
* 부품의 예측을 **삭제**하면 보고 있는 탭만이 아니라 해당 품목과 위치의 향후 모든 주가 지워집니다.

### 목록

목록 화면은 향후 48주를 다루며 저장된 행을 읽기 쉬운 주 열로 다시 변환합니다. 첫 번째 열의 라벨은 "Present Week"(현재 주)입니다.

## MRP가 예측을 사용하는 방식

계획은 Alforse 백엔드에서 실행되며 `demandProjection`을 수요 원천 중 하나로 직접 읽습니다.

### 실제 주문이 예측을 소모합니다

예측은 아직 받지 않은 주문의 추정치이므로 주문이 도착한 후에도 주문에 더해져서는 안 됩니다. MRP는 실행할 때마다 미결 수주 라인과 작업 자재 라인을 같은 부품과 위치의 예측에 대해 상계하며, 예측 중 남은 부분인 *미소모 잔량*만 여전히 집계됩니다. 요약하면 **실제 수요가 예측을 소모합니다**.

| 해당 주의 예측 | 실제 주문 | MRP가 계획하는 수요 |
| - | - | - |
| 10 | 10 | 10 — 20이 아님 |
| 10 | 12 | 12 |

주문은 먼저 자신의 주에서 예측을 소모합니다. 그다음 허용한 주 수만큼 과거 방향으로, 이어서 미래 방향으로 범위를 넓힙니다.

### 소모 윈도우

범위는 **설정 → 계획**의 **예측 소모**(Forecast Consumption) 카드에서 **이전 조회 (주)**와 **향후 조회 (주)**를 사용하여 회사 전체에 구성합니다. 새 회사는 둘 다 0에서 시작하며, 이는 상계를 같은 주 안으로 유지합니다.

예측이 고르지 않을 때는 윈도우를 넓히는 것이 도움이 됩니다. 한 주에 10, 다음 주에 0을 예측했다고 가정하면, 비어 있는 주에 날짜가 지정된 주문이 인접한 10을 소모하여 이중으로 집계되지 않습니다. 예측이 주 단위로 정확하다면 두 값을 모두 0으로 유지하십시오.

각 실행 후 소모된 양은 `demandProjection.consumedQuantity`에 저장됩니다. 계획 화면, 품목 계획 차트, 재고는 모두 이 동일한 수치를 읽으며, 편집 양식은 실제 수요가 소모한 모든 주 아래에 "N consumed"(N 소모됨)를 표시합니다.

### 어떤 주문이 소모합니까

| 주문 | 예측을 소모합니까? |
| - | - |
| 미결 수주 | 예, 미결 수량 전체. 연결된 작업이 이미 충당하는 주문 생산 라인도 포함합니다. 예측이 그 라인을 예상했기 때문입니다. |
| 현재 주 이전의 날짜가 지정된 주문 | 아니요. 단, 수요로는 여전히 집계됩니다. |
| 날짜가 없는 주문 | 예. 지금 납기인 것으로 취급됩니다. |

이미 지난 주의 예측은 단순히 계획 기간에서 빠집니다. 유령 수요로 남지 않습니다.

NOTE

**이미 진행 중인 작업은 공급 측에서 반영됩니다**

소모는 예측과 실제 *주문*의 균형만 맞춥니다. 이미 열려 있는 작업과 PO는 *공급*으로 별도로 처리됩니다. BOM 전개 중 확정된 작업 및 PO 공급은 누적 가용 재고 및 공급 잔액에 대해 한 번 반영됩니다. 따라서 진행 중인 작업이 일부 충당하는 예측은 두 번 계획되지 않으며 두 메커니즘은 중첩되지 않습니다.

### 예측에서 구성품 수요까지

예측 중 남은 부분은 실제 수요(미결 수주 라인과 미결 작업 자재)에 더해져 총수요가 됩니다. MRP는 각 제조 부품의 제조방법을 전개하여 수요를 구성품으로 전달하고 결과를 `planningDemandForecast`에 기록합니다. 함께 `planningDemandContribution` 테이블은 모든 수량에 `"Sales Order"`, `"Job Material"`, `"Demand Projection"` 중 출처를 태그하므로, 부품의 계획 페이지에서 임의의 주를 열어 수요를 구성하는 예측, 주문, 상위 작업을 정확히 볼 수 있습니다.

HEADS UP

**MRP는 제안하고, 주문은 사용자가 합니다**

예측된 수요는 *제안된* 작업과 발주서가 되며, 사용자가 조치를 취하기 전에는 아무것도 생성되지 않습니다. 제안이 표시되고 변환되는 방법은 [계획(MRP)](https://docs.alforse.com/ko/docs/reference/planning.md)에서, 예측이 무엇으로 바뀌는지를 결정하는 부품별 설정(리드 타임, 로트 크기, 안전 재고)은 [재주문 정책](https://docs.alforse.com/ko/docs/reference/reordering.md)에서 설명합니다.

## 기술 레퍼런스

| 주제 | 세부 정보 |
| - | - |
| 품목 선택기 필터 | `apps/erp/app/modules/production/ui/DemandProjection/DemandProjectionForm.tsx`의 `type="Part"`, `replenishmentSystem="Make"`(분기 탭과 차트가 있는 서랍도 동일) |
| 저장 | 각 `week{i}`는 `period` id와 짝지어져 `apps/erp/app/routes/x+/production+/demand-forecasts.$itemId.$locationId.tsx`에서 upsert되며, 0인 셀은 `products/supply-and-production-planning/src/forecast/native-forecast.server.ts`의 `upsertDemandProjections`가 삭제 |
| 삭제 | `apps/erp/app/routes/x+/production+/demand-forecasts.delete.$itemId.$locationId.tsx` |
| 입력 그리드 길이 | `demand-forecasts.new.tsx`와 `demand-forecasts.$itemId.$locationId.tsx` 모두 `WEEKS_TO_PROJECT = 52` |
| 목록 길이 | `apps/erp/app/routes/x+/production+/demand-forecasts.tsx`의 `WEEKS_TO_PROJECT = 12 * 4`, 피벗과 "Present Week" 라벨은 `apps/erp/app/modules/production/ui/DemandProjection/DemandProjectionTable.tsx`에 있음 |
| 계획 진입점 | `runMrp`, `products/supply-and-production-planning/src/planning-seam/index.ts` |
| 예측 재생성 | `products/supply-and-production-planning/src/modules/planning-and-mrp/planning-run.ts` |
| 수요 계보 | `products/supply-and-production-planning/src/modules/planning-and-mrp/mrp-engine.ts` |
| 플랜 기능 | `FORECAST`, `kernel/entitlements/src/plan.ts` |
| 사용되지 않는 컬럼 | 스키마는 `forecastMethod`와 `confidence`를 예약해 두었지만 소요량 예측 양식은 이를 기록하지 않습니다. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.