Sunday, 5 October 2025

Inventory Reorder Level

The inventory reorder level (also known as the reorder point, or ROP) is the specific inventory level at which a new order should be placed to replenish stock before it runs out, ensuring there are no stock-outs.

Reorder Level Formula

ROP Daily Usage × Lead Time


Question

A solar battery company stocks Graphene for which the following information is available:

Usage – 50 Graphene per day
Lead time – 20 days
Reorder quantity – 1500 Graphene

Based on the data above, at what level of inventory should a replenishment order be issued in order to ensure that there are no stock-outs?

ROP=50×20=1,000 Graphene

A replenishment order should be issued when the inventory level reaches 1,000 Graphene. This ensures the company has enough stock to cover the 20 days of lead time before new stock arrives.



Code by Chat GPT

import matplotlib.pyplot as plt


# Parameters

daily_usage = 50

lead_time = 20

reorder_quantity = 1500

reorder_point = daily_usage * lead_time  # 1000

initial_inventory = reorder_point + reorder_quantity  # Start with some buffer


# Simulation

days = 100

inventory = initial_inventory

inventory_levels = []

orders = []          # Days when reorders are placed

deliveries = []      # Days when stock arrives

on_order = []        # Pending orders (arrival_day, quantity)


for day in range(days):

    # Check for incoming deliveries

    for arrival_day, qty in on_order[:]:

        if day == arrival_day:

            inventory += qty

            deliveries.append(day)

            on_order.remove((arrival_day, qty))


    # Record current inventory

    inventory_levels.append(inventory)


    # Deplete inventory by daily usage

    inventory -= daily_usage


    # Place a reorder if below or at reorder point and no pending orders

    if inventory <= reorder_point and not any(arrival > day for arrival, _ in on_order):

        arrival_day = day + lead_time

        on_order.append((arrival_day, reorder_quantity))

        orders.append(day)


# Plotting

plt.figure(figsize=(12, 6))

plt.plot(range(days), inventory_levels, label='Inventory Level', color='blue', linewidth=2)

plt.axhline(reorder_point, color='red', linestyle='--', label='Reorder Point (1000)')

plt.scatter(orders, [inventory_levels[day] for day in orders], color='green', marker='o', label='Reorder Placed')

plt.scatter(deliveries, [inventory_levels[day] for day in deliveries], color='orange', marker='^', label='Inventory Replenished')


# Labels and formatting

plt.title('Graphene Inventory Level Over Time', fontsize=14)

plt.xlabel('Day', fontsize=12)

plt.ylabel('Inventory Level (Graphene)', fontsize=12)

plt.legend()

plt.grid(True)

plt.tight_layout()


# Show plot

plt.show()


No comments:

Post a Comment

Machine Learning: Nearest Neighbor (NN) algorithm for stock transfers between warehouses

  🏭 Scenario: Nearest Neighbor Algorithm for Warehouse Stock Transfer Background A company, GrapheneTech , distributes graphene sheets a...