Inventory Forecasting for Brightpearl




Lokad can be seen as an add-on for Brightpearl. We deliver advance inventory forecasting, commerce analytics and pricing optimization. Lokad is an app, like Brightpearl, with a monthly subscription. Brightpearl-powered merchants typically get started with Lokad to optimize their inventory, that is, increase service levels while reducing inventory levels in the same time. Don't hesitate to request a free demo; while we strive to make Lokad as simple as possible, optimizing inventory tends to be inherently complex.

The data from Brightpearl can be imported in just a few clicks into Lokad thanks to a native integration that leverages the Brightpearl API (see Brightpearl AppStore). In this page, we details how to make the most of this native Brightpearl integration.


Setup of the Lokad/Brightpearl data connector

In order to import your Brightpearl data into Lokad, you need a Lokad account. If it's not already done, you can get one at no cost in 60s. The suggested process to connect Lokad to your Brightpearl account is the following:

  • You open a Lokad account
  • You log into your Brightpearl account, and go to the Appstore
  • You find the Lokad in-store app, and install it
  • You click Configure on the new installed app

The last step will redirect you to your Lokad account and the data connection between your Lokad account and your Brightpearl account will be finalized there.

Two remarks:
  • our data retrieval logic is read-only. Your Brigtpearl data will not be modified in any way by Lokad. In the future, if Lokad were to add write capabilities for Brightpearl, we will make it very explicit whenever your are about to change anything within Brightpearl.
  • your company remains the sole owner of your data. By default, we treat this data as if an NDA was in place between your company and Lokad. If you want an actual NDA to be signed, just .

Data retrieved from Brightpearl

Lokad retrieves extensive data from Brightpearl which include:
  • All products with the brand, Sku, stock on hand, the stock on order, ...
  • The custom attributes and the seasons associated to the products.
  • The sales order history with the quantity, the delivery date, the net amount, the client, the status, ...
  • The purchase order history with the quantity, the delivery date, the net amount, the supplier, the status, ...
  • The price lists with the SKU, the price, the min quantity and the name of the list.

All data are aggregated per product and per warehouse.

Filter for the sales orders

Lokad treats as sales orders all the orders retrieved from Brightpearl where the order type code is SO and where the order status is not cancelled, quote or not valid.

Filter for the purchase orders

Lokad treats as purchase orders all the orders retrieved from Brightpearl where the order type code is PO and where the order status is not cancelled, quote or not valid.

Stock on order calculation

Brightpearl does not offer a direct way to compute the stock on order, thus, Lokad calculates this value based on the purchase orders. More specifically, we count as on order all the orders where
  • the order type is PO
  • the order status is not cancelled, quote or not valid
  • the stock status code is PON or POP
  • the dropship status is false

Excluding certain seasons

Seasons in Brightpearl are frequently used to flag lists of products as discontinued. By default, Salescast forecasts all the products found in your Brightpearl account - however, it is possible to mark certain seasons not to be forecast. In order to do that, you need to edit your season description and add the keyword Lokad-NoForecast to the description. The keyword can be located anywhere in the description.

Image

All the products associated to at least one season marked with Lokad-NoForecast will not be imported into your Lokad account.

Custom fields for Lead Time

In order to optimize your inventory, the forecasting engine needs to know the applicable lead time. Whenever possible, Lokad tries to automatically compute the lead time based on the purchase orders; but sometimes there is not enough data, and calculating the lead time is not possible. In order to deal with this situation, Lokad offers the possibility to manually enter the lead time values.

In order to keep data properly organized, Lokad offers the possibility to enter those the lead times directly from Brightpearl, by leveraging its custom fields feature. You need to create one field applied to Products and of numeric type.

The lead time field should be named LK_LDTM, and configured as outlined below. This field contains the values indicating the total delay for the renewed availability expressed in days. Strictly positive integers are expected for this field.

Image

Once your custom field is configured, your Brightpearl account should look like (note that the service level is no more required):

Image

Lokad also offers the possibility to define a default value for the lead time. Hence, you do not need to enter the lead for every single product. If you leave the values blank, then Lokad picks the default values instead.

Configuring the service levels

Lokad also offers the possibility to enter service level within Brightpearl. However, with the latest generation of the Lokad forecasting technology, service levels can be automatically optimized by Lokad, which is the recommended approach. Thus, we don't recommend any more to manually adjust the service levels.

This section is only kept for archival purposes.

The service level is a custom field applied to Products and of numeric type. The service level field should be named LK_SVLV, and configured as outlined below. This field contains the values indicating the probability of not hitting a stock-out. The values should should be between 0 and 100 exclusive. Ex: 95 represents a 95% service level.

Image

Data retrieved from Brightpearl

Lokad retrieves extensive data from Brightpearl which include:
  • All products with the stock on hand, the stock on order, the sell price, the buy price.
  • The sales order history with the quantity, the net amount, the tax amount, the client.
  • The purchase order history with the quantity, the unit price, the delivery date, the supplier, the status.
  • The price lists with the variant, the price and the name of the price list.

Those data are pushed into 4 flat files named Lokad_Items.tsv, Lokad_Orders.tsv, Lokad_PurchaseOrders.tsv and Lokad_Prices.tsv within your Lokad account.

Lokad_Items.tsv

The file Lokad_Items.tsv contains the columns:
  • Id: a synthetic identifier that combines the product ID and the warehouse name
  • Ref: the product ID
  • Loc: the warehouse name
  • Name: the product name
  • Variant: the variant options
  • Sku: the variant SKU
  • Category: the product type
  • Brand: the product brand
  • StockOnHand: the product stock on hand
  • StockOnOrder: the product stock on order
  • StockAvailable the stock available
  • CurrrentReorderPoint: the reorder point for the product
  • Supplier: the last supplier observed in a matching purchase orders (blank if no matching purchase order)
  • SupplierLeadTime: extrapolated from the purchase orders.
  • OrderingLeadTime: extrapolated from the purchase orders.
  • LeadTime: extrapolated from the purchase orders.
  • IsForecasted: boolean flag true or false depending on the Season's setup.

Lokad_Extra.tsv

The file Lokad_Extra.tsv contains the columns:
  • Id: a synthetic identifier that combines the product ID and the warehouse name
  • Ref: the product ID
  • Loc: the warehouse name
  • Type: the type of the extra setting.
  • Field: the name of the field.
  • Value: the value associated to the field.

Lokad_Orders.tsv

The file Lokad_Orders.tsv contains the columns:
  • Id: a synthetic identifier that combines the product ID and the warehouse name
  • Ref: the product ID
  • Loc: the warehouse name
  • Date: the creation date of the order
  • Quantity: the quantity of the order line
  • NetAmount: the amount without tax for the line
  • TaxAmount: the amount of tax for the line
  • Currency: the currency code
  • OrderStatus: the status associated to the order
  • Client: the client email associated to the order
  • OrderId: the ID of the order

Lokad_PurchaseOrders.tsv

The file Lokad_PurchaseOrders.tsv contains the columns:
  • Id: a synthetic identifier that combines the product ID and the warehouse name
  • Ref: the product ID
  • Loc: the warehouse name
  • Date: the creation date of the purchase order
  • DeliveryDate: the reception date of the procurement matching the purchase order
  • Quantity: the quantity of the purchase order line
  • NetAmount: the amount without tax for the line
  • TaxAmount: the amount of tax for the line
  • Currency: the currency of the purchase order
  • OrderStatus: the status of the purchase order
  • Supplier: the name of the supplier
  • IsDropship: indicates whether purchase order is expedited directly to the client from the supplier.
  • OrderId: the order number for the line

Lokad_Prices.tsv

The file Lokad_Prices.tsv contains the columns:
  • Id: a synthetic identifier that combines the product ID and the warehouse name
  • Ref: the product ID
  • Loc: the warehouse name
  • ListName: the name of the price list
  • UnitPrice: the per-unit price
  • Currency: the currency code
  • MinQuantity: the threshold quantity for the price to be eligible
  • IsBuy: boolean flag true or false

The price list is denormalized on purpose in order to include the warehouse column. This denormalization facilitates the processing of price lists within Lokad.