Skip to main content

Inventory management

Inventory granularity

Inventory dimensions

In Hubble, Inventory is tracked with a low granularity, which includes the 5 below dimensions:

  • SKU: basic unit to track stock, representing a similar version of a commercial product (see SKU definition on Wikipedia)
  • Warehouse: represents a place where is stored the physical stock
  • Owner: reason to dedicate stock for a specific sales channel, or a business unit who owns the stock
  • Lot or S/N: if the stock is tracked by production lot or production serial numbers
  • Expiry date: if the stock has an expiry or best before date
TERMINOLOGY

The stock given for a set of these 5 dimensions is called a Stock Line. A Stock Line is then the lowest granularity of stock tracking in Hubble.

Inventory positions

A Stock Line is composed within 4 stock positions:

  • Incoming: an inbound order is created, but the stock is not received yet.
  • Available: stock is available for sales.
  • Allocated: an outbound order is created and the stock is reserved for such order.
  • Blocked: the stock is blocked for some reason (damaged, expired), hence not available for sales.

Stock on hand is the stock counted inside the 4 walls of a warehouse. Therefore is it the sum of Available, Allocated and Blocked

Example

SKUWarehouseOwnerLot or S/NExpiry dateIncomingAvailableAllocatedBlockedStock on Hand
A001Bonded WarehouseCommonL202300101/08/2025100178202200
A001Non-bonded WarehouseB2C stockL202300101/08/202905012062
A001Non-bonded WarehouseB2B stockL202300101/08/2029012000120
B001Bonded WarehouseCommonL202308701/03/202712000000

The above stock has 4 stock lines.

  • SKU A001 (3 lines) is:
    • in Bonded warehouse, with incoming quantities (100 from factory for example), allocated quantities (20 for an export order for example) and locked quantities (2 pieces were damaged on the last reception)
    • in Non-bonded warehouse
      • part of the stock is dedicated to to B2C, and 12 pieces are reserved for some ecom orders not shipped yet
      • part of the stock is dedicated to to B2B, all orders have been shipped.
    • SKU B001 is a new SKU, with 1200 pieces expected from the factory

Inventory Transactions

A transaction records a stock change, and any stock change will be recorded by a transaction.

A transaction is directly linked to a Stock Line, and therefore will record a change on a given SKU, warehouse, owner, lot or S/N and expiry date.

The recorded change could be either a move from a position to another one, either an adjustment on one of the position (plus or minus).

TRANSACTION IS HISTORY

Transactions are frozen data: transactions are written once by Hubble, and can never be changed later on.

The movements between positions could be due to one of the below scenarios.

Order flow

For a typical order flow, IN and OUT from a warehouse:

  1. When an inbound order is created, the stock is tracked as incoming to warehouse: + Incoming
  2. When an inbound order is received, the stock becomes available for sales: - Incoming & + Available
  3. When an outbound order is created, the stock is allocated: - Available & + Allocated
  4. When an outbound order is shipped, the stock is removed from Hubble: - Allocated

As exceptions:

  1. When an inbound order is cancelled, the stock is untracked from incoming: - Incoming
  2. When an outbound order is cancelled, the stock is de-allocated: - Allocated & + Available

Stock management

In case of stock management outside of order flow:

  1. Positive adjustment: if some stock is found during stock-take: + Available
  2. Negative adjustment: If some stock is lost during stock-take, some stock need to be destroyed (defective), ... : - Available
  3. Block stock: The stock can't be sold temporarily or definitively (ex: quarantine, damaged, expired, end of season, ...): - Available & + Blocked
  4. Release stock: The sock can be back to sales (ex: end of quarantine) - Available
  5. Change dimension: It is also possible to have changes directly in the Available stock, in case of one of the dimension has to be changed, because of a wrong input at receiving:
    • SKU change
    • Owner change
    • Lot change
    • Expiry date change
tip

For more practical example of Stock Transactions, check a real example here