Oracle Retail14 min readBy Priyanshu Pandey

Replenishment Fundamentals in Oracle RMS

A comprehensive guide to automated replenishment in Oracle RMS. Learn the core replenishment methods (Min/Max, Dynamic, Time Supply), how Net Inventory is calculated, and the architecture of the REPL_ITEM_LOC table.

Phase 7 · Replenishment

Automating inventory flow: How RMS determines what to order, when to order it, and where it needs to go.

14 min read📅Aug 9, 2026✍️Priyanshu Pandey📚Oracle RMS Series
AUTOMATING INVENTORY

What is RMS Replenishment?

At its core, Replenishment in Oracle RMS is the automated process of keeping stores and warehouses stocked. Instead of buyers manually creating Purchase Orders or Transfers every time stock gets low, RMS calculates the exact required quantity based on predefined rules, sales history, and current inventory positions, and automatically generates the necessary fulfillment documents.

The replenishment module in RMS answers three fundamental questions every single night during the batch run:

  1. Does this location need stock? (Trigger condition)
  2. How much stock does it need? (Order Quantity calculation)
  3. Where should it come from? (Sourcing: Supplier via PO, or Warehouse via Transfer)
REPLENISHMENT METHODS

The 6 Core Replenishment Methods

RMS supports several distinct replenishment methods. The method you choose depends on the type of item (fast fashion vs. staple grocery, seasonal vs. year-round).

1. Min/Max (Minimum/Maximum)

The most common and easiest method to understand. You define a Minimum threshold and a Maximum threshold. If the Net Inventory drops below the Minimum, RMS generates an order to bring the inventory back up to the Maximum.

  • Best for: Staple goods with highly predictable, flat sales (e.g., bottled water, basic white socks).

2. Constant

Similar to Min/Max, but the minimum is effectively the same as the maximum. If the stock drops by 5 units, RMS orders exactly 5 units to replace them.

  • Best for: High-ticket items or highly space-constrained displays where exactly $X$ units must always be present.

3. Dynamic

Dynamic replenishment relies on external sales forecasts (typically fed from Oracle Retail Demand Forecasting - RDF). RMS uses these daily sales forecasts, combined with desired service levels (e.g., 98% in-stock probability), to calculate a dynamic minimum and maximum that fluctuates with seasonality.

  • Best for: Highly seasonal staple goods (e.g., sunscreen, winter coats).

4. Time Supply

Instead of setting hard unit quantities, you set time limits. For example, "Order when we have less than 7 days of supply, and order enough to last 21 days." RMS uses the sales forecast to convert those "days" into unit quantities.

  • Best for: Fast-moving consumer goods (FMCG) where shelf life or warehouse space is a concern.

5. Time Supply - Seasonal

A variation of Time Supply that automatically ramps down inventory as an item reaches its predetermined end-of-life date, ensuring you don't over-order right before a clearance event.

6. Floating Point

A highly specialized method that uses a combination of sales history and complex algorithms to "float" the minimum and maximum points up and down without needing an external forecasting engine.

THE NET INVENTORY FORMULA

The Net Inventory Formula

Before RMS can decide if an item needs replenishing, it must calculate the Net Inventory for that item at that location. Net Inventory is not just what is physically on the shelf; it accounts for stock that is already on its way, and stock that is reserved for other purposes.

The fundamental formula evaluated by the reqext (Requirement Extraction) batch is:

ℹ️

Net Inventory Calculation

Net Inventory =
STOCK_ON_HAND (Physical stock in the building)
+ IN_TRANSIT_QTY (Stock on trucks heading to the location)
+ STOCK_ON_ORDER (Stock on approved POs not yet shipped)
- CUSTOMER_RESERVED (Stock paid for by customers awaiting pickup)
- RTV_QTY (Stock boxed up to be sent back to the vendor)

If Net Inventory < Minimum Threshold (or Order Point), replenishment is triggered.

DATABASE SCHEMA

The REPL_ITEM_LOC Table

The heart of the replenishment configuration in RMS is the REPL_ITEM_LOC table. Every item/location combination that is on automated replenishment must have an active record here.

REPL_ITEM_LOC Table Highlights
ColumnTypeDescription
ITEMPKFK
VARCHAR2(25)

The item on replenishment.

LOCATIONPK
NUMBER(10)

The location (Store or Warehouse) being replenished.

LOC_TYPEPK
VARCHAR2(1)

'S' for Store, 'W' for Warehouse.

REPL_METHOD
VARCHAR2(2)

The method used (e.g., 'MM' for Min/Max, 'DY' for Dynamic, 'TI' for Time Supply).

MIN_STOCK
NUMBER(12,4)

The minimum threshold (Order Point) for Min/Max.

MAX_STOCK
NUMBER(12,4)

The maximum threshold (Order Up To Level) for Min/Max.

ACTIVATE_DATE
DATE

The date automated replenishment begins.

DEACTIVATE_DATE
DATE

The date automated replenishment ends (crucial for seasonal items).

Querying Replenishment Setup

Here is a helpful query to find all active Min/Max replenishment setups for a specific department, including their current net inventory to see if they will trigger tonight:

Active Min/Max Replenishment Status
SQL
SELECT 
    ril.item,
    ril.location,
    ril.min_stock,
    ril.max_stock,
    (s.stock_on_hand + s.in_transit_qty + s.stock_on_order) AS net_inventory,
    CASE 
        WHEN (s.stock_on_hand + s.in_transit_qty + s.stock_on_order) < ril.min_stock 
        THEN 'WILL_TRIGGER' 
        ELSE 'SUFFICIENT' 
    END AS nightly_batch_prediction
FROM 
    repl_item_loc ril
JOIN 
    item_master im ON ril.item = im.item
JOIN 
    item_loc_soh s ON ril.item = s.item AND ril.location = s.loc
WHERE 
    im.dept = 1000
    AND ril.repl_method = 'MM'
    AND ril.activate_date <= SYSDATE
    AND (ril.deactivate_date IS NULL OR ril.deactivate_date > SYSDATE);

Key Takeaways

  • RMS Replenishment automates PO and Transfer creation based on defined rules.
  • Min/Max is best for basic staples, while Dynamic and Time Supply utilize external sales forecasts for seasonal curves.
  • Net Inventory is the key metric; it includes on-hand, in-transit, and on-order quantities.
  • REPL_ITEM_LOC is the master configuration table controlling all automated ordering.
RetailCoder
All systems operational
v1.0 Live

RC:OMS

Multi-channel order management with double-entry inventory ledger. Amazon, Flipkart, Shopify, WooCommerce — one source of truth.

Launch demo →
v1.0 Live

RC:Storefront

Self-hosted headless e-commerce. Your server, your data, zero transaction fees. Native RC:OMS inventory sync.

Visit Storefront →
Pipeline

RC:Pulse

AI-powered retail analytics and demand forecasting — built natively on top of your RC:OMS and Storefront data.

Request early access →
Built in India 🇮🇳  ·  Architected by Priyanshu PandeyTalk to an engineer →