# MRP run

> Time-phased net requirements, proposals and exceptions for planned items; the run, simulation, nightly job and requirement pegging.

URL: https://erpdocs.corexlogic.com/en/uretim/ekranlar/mrp-kosusu

MRP (material requirements planning) calculates day by day, for every planned item, **when and how much** will be
short, and creates proposals for the shortage. The proposal for a purchased item is written to a **draft purchase
requisition**, the proposal for a produced item to a **planned order**; the planned order is exploded from the bill of
materials and the requirements of its components are planned again one level down.

- **Type:** Screen
- **Module:** Manufacturing
- **Menu path:** Üretim › Üretim Planlama › MRP Koşusu (Production › Production Planning › MRP Run)
- **Screen route:** `/erp/demand/mrp`
- **Required permission:** `erp-demand-material-requirements.view (liste, kart ayrıntısı, simülasyon, gece işi ayarını görme)`, `erp-demand-mrp-runs.create (MRP'yi Çalıştır, gece işi ayarını değiştirme)`

> **The list is a simulation**
Every time you open the screen, the list is **recalculated on the server and nothing is written**. Documents are
written only with **MRP'yi Çalıştır** (Run MRP) (or by the nightly job). As soon as a document (order, goods receipt,
production order) is saved, the list changes too.

## List

![MRP Run — planned products, proposals and exceptions](https://erpdocs.corexlogic.com/en/en/img/screens/uretim/mrp-listesi.png)
1. Run MRP — writes requisition and planned orders
2. Simulation — scenario, writes nothing
3. Nightly job — automatic run every night
4. Only items with proposals
5. Proposed quantity and its outcome (requisition / planned order)
6. Exception badges — hover for the message

| Column | Meaning |
|---|---|
| **Malzeme** (Material) | The item's code and name. Clicking the row opens the **Stok/İhtiyaç Listesi** (Stock/Requirements List). |
| **Durum** (Status) | The item's place in the run — see the table below. For an item that is not planned, the reason is shown on the row. |
| **Eldeki** (On Hand) | Current stock (in the item's base unit). |
| **Güvenlik Stoğu** (Safety Stock) | The item's **Minimum stok** (Minimum stock) value; 0 if not defined. |
| **İlk Eksik** (First Shortage) | The requirement date of the first proposal. |
| **Önerilen** (Proposed) | Total quantity of the proposals; below it, the number of proposals and their outcome ("talep olur" — becomes a requisition, "planlı emir olur" — becomes a planned order, "siparişe bağlı planlı emir olur" — becomes a planned order linked to a sales order). |
| **İstisnalar** (Exceptions) | Badges for situations that need attention. Hovering over a badge shows the server's message. |

The sort order is fixed: items with proposals first, then the one with the nearest first shortage, then by code.

**Filters:** **Ara** (Search; material code or name), **Durum** (Status), **Yalnız önerisi olanlar** (Only with
proposals; work to do), **Yalnız istisnalılar** (Only with exceptions; needs attention), **Benim ürünlerim** (My
products; items whose **MRP sorumlusu** (MRP controller) is the signed-in user). If there are no items, the list says
"Planlanan kart yok — kartın planlama stratejisi "planlama yok" ise MRP onu planlamaz." (No planned items — if an
item's planning strategy is "no planning", MRP does not plan it.)

### Statuses

| Status | When | Outcome of the proposal |
|---|---|---|
| **Satın Alma** (Purchasing) | The item's **Varsayılan tedarik yolu** (Default procurement type) is *Satın Al* (Purchase) | In the run it becomes a line on a single draft purchase requisition. |
| **Üretim** (Production) | The item's **Varsayılan tedarik yolu** (Default procurement type) is *Üret* (Produce) | In the run it becomes a planned production order and its BOM is exploded. |
| **Siparişe Özel** (Order-Specific) | The item's **Planlama stratejisi** (Planning strategy) is *Siparişe Üretim* (Make to Order) | For a produced item the proposal is made per sales order item and becomes a planned order **linked to the sales order item** (the row shows a **Siparişe üretim** (Make to order) badge). For a configurable item, the planned order carries the configuration of the sales order item. |
| **Planlanmıyor** (Not Planned) | The item is inactive or outside its validity, discontinued, blocked by its material status, or has no procurement type | No proposal; the reason is on the row: "Kart pasif ya da geçerlilik penceresi dışında." (The item is inactive or outside its validity window.), "Kesilen kart — kalan ihtiyaç halefe devredildi." (Discontinued item — the remaining requirement was transferred to the successor.), "Tedarik yolu belirlenmemiş." (No procurement type has been set.) |

An item whose **Planlama stratejisi** (Planning strategy) is *Planlama Yok* (No Planning) does not appear in the list
at all.

### Exceptions

| Badge | Server's message | English meaning |
|---|---|---|
| Gecikmiş ihtiyaç (Overdue requirement) | Tarihi geçmiş ihtiyaç bugüne alındı. | An overdue requirement was moved to today. |
| Gecikmiş arz (Overdue supply) | Tarihi geçmiş (gelmemiş) arz bugün gelecek sayıldı — tedarikçiyle teyit edin. | Overdue (not received) supply was assumed to arrive today — confirm with the supplier. |
| Tarihsiz arz (Undated supply) | Tarihsiz arz bugün gelecek sayıldı. | Undated supply was assumed to arrive today. |
| Tarihsiz ihtiyaç (Undated requirement) | Tarihsiz ihtiyaç (üretim emri gereksinimi) bugüne yazıldı. | An undated requirement (production order requirement) was posted for today. |
| Yetişmiyor (Cannot be met in time) | Tedarik süresiyle ihtiyaç tarihine yetişmiyor — en erken temin önerinin teslim tarihinde. | With the lead time, the requirement date cannot be met — the earliest availability is the proposal's delivery date. |
| Tedarik süresi yok (No lead time) | Tedarik süresi tanımsız — sıfır gün sayıldı; kartın planlama verisine süre girin. | Lead time not defined — zero days assumed; enter a lead time in the item's planning data. |
| Birim çevrilemedi (Unit could not be converted) | Birimi temel birime çevrilemeyen belge hesaba girmedi. | A document whose unit could not be converted to the base unit was not included in the calculation. |
| Ağaç yok ya da uygun alternatif/geçerli revizyon yok (No BOM, or no suitable alternative/valid revision) | Yayınlanmış ürün ağacı yok — üretim önerisi patlatılamadı, bağımlı ihtiyaç doğmadı. | No published BOM — the production proposal could not be exploded; no dependent requirement was created. |

## How the calculation works

MRP follows these steps for each item (server rule; the screen does not calculate):

1. **Elements are collected.** Supply (plus): stock on hand, open purchase orders, open purchase requisitions, expected
   output of open production orders, **firmed** or **manually created** planned orders, draft production orders.
   Requirements (minus): approved sales order items, production order requirements, reservations, the **dependent
   requirement** arising from the parent item's planned order, and the part of the forecast not consumed by orders
   ([Planned independent requirement](https://erpdocs.corexlogic.com/en/uretim/ekranlar/planli-bagimsiz-ihtiyaclar)).
2. **An element without a date, or with a past date, is moved to today** and recorded as an exception.
3. **The calculation steps through day by day.** Supply on a given day is processed before the requirements of that
   day. If, at the end of the day, the available quantity is below the **safety stock** (the item's minimum), a
   proposal is created.
4. **Proposal quantity:** if the item's **Maksimum stok** (Maximum stock) value is defined, the stock is topped up to
   the maximum; otherwise the shortage is covered up to the safety stock. Then the quantity is raised to the **Minimum
   sipariş miktarı** (Minimum order quantity), rounded up to a multiple of the **Sipariş katsayısı** (Order multiple)
   and rounded up to the decimal precision of the unit.
5. **Date (backward offset):** start = requirement date − **Tedarik süresi (gün)** (Lead time, days). If the start
   falls before today, delivery becomes today + lead time and the proposal is flagged **Yetişmiyor** (Cannot be met in
   time); the requirement date does not change.
6. **BOM explosion:** the proposal for a produced item is exploded from the BOM valid on the start date; the component
   requirement is written to the proposal's **start** date. A component is planned after all of its parent items have
   been planned.

> **Example**
**MAM-0005 Dosya Dolabı** (filing cabinet) — on hand 6, minimum 2, maximum 8, lead time 7 days; December forecast 6
pieces. On 01.12.2026 the available quantity is 6 − 6 = 0, below the minimum (2) → proposal 8 − 0 = **8 pieces**,
requirement date 01.12.2026, start 24.11.2026. January forecast 4 pieces: 8 − 4 = 4 ≥ 2, no new proposal.

The item's planning fields are on the product master record: **Planlama stratejisi** (Planning strategy),
**Varsayılan tedarik yolu** (Default procurement type), **MRP sorumlusu** (MRP controller), **Tedarik süresi (gün)**
(Lead time, days), **Minimum sipariş miktarı** (Minimum order quantity), **Sipariş katsayısı** (Order multiple)
(**Planlama Verileri**, Planning Data) and **Minimum stok** / **Maksimum stok** (Minimum stock / Maximum stock) (**Stok
Verileri**, Stock Data). A maximum on its own does nothing; the proposal is triggered by the minimum.

## Run MRP

![Run MRP confirmation](https://erpdocs.corexlogic.com/en/en/img/screens/uretim/mrp-calistir.png)
1. Unfirmed MRP orders are rebuilt
2. Make to order: order pegged to sales item
3. Run

The run is visible only with the `erp-demand-mrp-runs.create` permission. The confirmation window states what will
happen:

- Proposals for purchased items are written to **a single draft purchase requisition**; the requisition is opened in
  your name and stays a draft until you submit it.
- Proposals for produced items become **planned production orders**.
- **Old MRP drafts that have not been submitted or edited** are cancelled and rebuilt; a requisition that has been
  submitted or edited is not touched — it counts as supply.
- **MRP planned orders that have not been firmed** are cancelled and rebuilt; a firmed or changed planned order is not
  touched.
- Make-to-order products become planned orders linked to the sales order item.
- A planned order does not post stock; it is converted to a production order on the **Planlı Emirler** (Planned
  Orders) screen.

When the run finishes, the **MRP koşusu tamamlandı** (MRP run completed) section opens above the list: the number of
planned products, the number of purchase proposals written to the requisition, the number of planned orders opened;
**Açılan taslak talep** (Draft requisition opened; with its number, as a link if you have requisition permission),
**Açılan planlı emirler** (Planned orders opened; the first few and "ve N tane daha" — and N more), old drafts and
planned orders cancelled because they were rebuilt, and **Talebe ya da planlı emre giremeyen öneriler** (Proposals that
could not be added to a requisition or planned order; item and reason). If an error occurs, the window shows "MRP
koşusu tamamlanamadı." (The MRP run could not be completed.) and the server's reason. Step by step:
[Run MRP](https://erpdocs.corexlogic.com/en/uretim/islemler/mrp-kosusu-yapma).

> **The list still shows proposals after the run**
An MRP planned order that has not been firmed does not count as supply (it is rebuilt in every run); that is why the
item's proposal still appears in the list after the run. To "close" the proposal, **Sabitle** (Firm) the planned order
or convert it to a production order.

## Stock/Requirements List (item details)

![Stock/Requirements List — item timeline](https://erpdocs.corexlogic.com/en/en/img/screens/uretim/mrp-stok-ihtiyac.png)
1. Safety stock = item minimum; proposal fills up to the maximum
2. Proposals — requirement, start, delivery
3. Timeline — available quantity element by element
4. Pegging — where the requirement comes from

Clicking a row opens the item's time-phased list (address `/erp/demand/mrp/{itemId}`):

- **Summary:** **Eldeki** (On hand) · **Güvenlik stoğu / maksimum** (Safety stock / maximum; "Öneri maksimuma
  tamamlar" — the proposal tops up to the maximum, or "Öneri açığı kapatır" — the proposal covers the shortage) ·
  **İhtiyaç / arz** (Requirements / supply) · **Tedarik süresi** (Lead time); below that, the item's exceptions with
  their messages.
- **Öneriler** (Proposals): **İhtiyaç** (Requirement) · **Başlangıç** (Start; for purchasing, order date = delivery −
  lead time) · **Teslim** (Delivery) · **Miktar** (Quantity); for a proposal that cannot be met in time, "Geç — tedarik
  süresiyle yetişmiyor" (Late — cannot be met with the lead time). For make-to-order, a **Satış siparişi** (Sales
  order) column ("Sipariş SS-… · Müşteri" — Order SS-… · Customer; a proposal without a link shows "Anonim ihtiyaç" —
  Anonymous requirement) and a configuration summary.
- **Zaman Çizelgesi** (Timeline): **Tarih** (Date) · **Eleman** (Element; Eldeki stok (Stock on hand), Satış siparişi
  (Sales order), Üretim gereksinimi (Production requirement), Rezervasyon (Reservation), Satın alma siparişi (Purchase
  order), Üretim çıktısı (Production output), Satınalma talebi (Purchase requisition), Planlı emir (Planned order),
  Bağımlı ihtiyaç (Dependent requirement), Tahmin (Forecast), MRP önerisi (MRP proposal), Kesilen karttan devir
  (Transfer from discontinued item), Kesilen kartın stoğu (Stock of discontinued item)) · **Belge** (Document) ·
  **Karşı taraf** (Counterparty) · **Miktar** (Quantity; supply plus, requirement minus) · **Kullanılabilir**
  (Available; after the element).
- **İhtiyaç İzleme** (Requirement Pegging): the **İhtiyaçları İzle** (Trace Requirements) button shows, through the
  parent items, which sales order, forecast or safety stock the item's requirement comes from: the **Üst talepler**
  (Parent demands) table and the **İzleme ağacı** (Pegging tree).

If the item is not planned in MRP, the details say "Kart MRP'de planlanmıyor — planlama stratejisi "planlama yok" ya
da kart stok tutmuyor." (The item is not planned in MRP — its planning strategy is "no planning" or the item is not
stock-managed.)

## Simulation

![MRP Simulation — forecast scale and extra demand](https://erpdocs.corexlogic.com/en/en/img/screens/uretim/mrp-simulasyon.png)
1. Forecast scale — 100 as is
2. Extra demands — item, date, quantity
3. Simulate — writes nothing
4. Items whose proposal changes (current → scenario)

The **Simülasyon** (Simulation) button (with the view permission) opens the **MRP Simülasyonu** (MRP Simulation)
window: the scenario goes through the same calculation as a real run, but **no requisitions or planned orders are
written**.

| Field | Rule |
|---|---|
| **Tahmin ölçeği (%)** (Forecast scale, %) | Applied to the open remainder of the planned independent requirement — 100 as is, 120 means 20 percent more. An integer between 0 and 500 ("Tahmin ölçeği %0 ile %500 arasında tam sayı olmalı." — The forecast scale must be an integer between 0% and 500%.). |
| **Ek talepler** (Additional demands) | Item (searched from the MRP list), requirement date, quantity. At most 200 rows; quantity greater than zero, at most 4 decimals; date at most two years ahead. |

**Simüle Et** (Simulate) returns the result in three sections: **Öneriler (mevcut → senaryo)** (Proposals, current →
scenario) totals, **Önerisi değişen kartlar** (Items whose proposal changed; **Kart** (Item) · **Durum** (Status) ·
**Mevcut** (Current) · **Senaryo** (Scenario) · **İlk serbest bırakma** (First release); at most 500 rows) and **İş
merkezi kaba yükü** (Rough-cut work center load; **Mevcut** (Current) · **Senaryo** (Scenario) · **Kullanılabilir**
(Available) · **Kullanım** (Utilization); rows over 100% are highlighted). Load is not calculated for a product
without a routing.

## Nightly Job

![Nightly job — MRP and automatic ordering schedule](https://erpdocs.corexlogic.com/en/en/img/screens/uretim/mrp-gece-isi.png)
1. MRP run — every night
2. Automatic order from requisition
3. Run hour — company time
4. Last and next run

The **Gece İşi** (Nightly Job) window runs the MRP run and **Talepten otomatik sipariş** (Automatic order from
requisition) automatically every night at the selected **Koşu saati** (Run time) (in company time); if the time has
already passed on the day it is turned on, the first run happens that night.

- Everyone can see the setting; changing it requires the MRP run permission ("Ayarı değiştirmek MRP koşusu yetkisi
  ister." — Changing the setting requires the MRP run permission.).
- Turning on **Talepten otomatik sipariş** (Automatic order from requisition) requires the permissions to create
  purchase orders and to determine sources; if Source List and Quota are disabled, the switch cannot be turned on
  ("Kaynak Listesi ve Kota kapalı — otomatik sipariş kaynak belirlemesine dayanır." — Source List and Quota are
  disabled — automatic ordering relies on source determination.). Turning it off is unrestricted.
- **Son ve sıradaki koşu** (Last and next run): the next run time ("Gece işi kapalı" — Nightly job off), the status of
  the last run ("— başladı, sonuç yazılmadı" — started, no result written; "— tamamlandı" — completed), and the draft
  requisitions and orders opened, from the server.

## Related

- [Run MRP](https://erpdocs.corexlogic.com/en/uretim/islemler/mrp-kosusu-yapma)
- [Planned orders](https://erpdocs.corexlogic.com/en/uretim/ekranlar/planli-emirler)
- [Planned independent requirements](https://erpdocs.corexlogic.com/en/uretim/ekranlar/planli-bagimsiz-ihtiyaclar)
- [Material requirements](https://erpdocs.corexlogic.com/en/uretim/ekranlar/malzeme-ihtiyaclari)
- [Make-to-stock process](https://erpdocs.corexlogic.com/en/surecler/stoga-uretim)
