0% found this document useful (0 votes)
3 views29 pages

Excel KPI Mapping for Sales Reports

The document outlines the mapping of various Key Performance Indicators (KPIs) related to sales reporting using data from different sources like Shopify, POS systems, and Iconic Seller Centre. It details the formulas, necessary data points, and potential sources for calculating Total Sales, Sales Growth, Average Order Value, Sales by Region, and Top Products by Sales. Each KPI is broken down into specific options, highlighting the required columns and any limitations or clarifications needed for accurate reporting.

Uploaded by

harshurajput887
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views29 pages

Excel KPI Mapping for Sales Reports

The document outlines the mapping of various Key Performance Indicators (KPIs) related to sales reporting using data from different sources like Shopify, POS systems, and Iconic Seller Centre. It details the formulas, necessary data points, and potential sources for calculating Total Sales, Sales Growth, Average Order Value, Sales by Region, and Top Products by Sales. Each KPI is broken down into specific options, highlighting the required columns and any limitations or clarifications needed for accurate reporting.

Uploaded by

harshurajput887
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

Excel mapping through chatgpt-

Step 1 — Sales Report KPI mapping (from tables


shared)
KPI 1) Total Sales

Formula: Σ(Order Quantity × Unit Price)

Possible source tables & columns

A) Shopify — Online Weekly Reports LP – Shopify

 Order Quantity: Quantity ordered


 Unit Price: Product variant price
 Alternative “sales amount” already available:
o Gross sales
o Net sales

✅ This table supports quantity and unit price directly.

Important note (no assumption):


This table also already has Net sales, which may include discount/returns handling. Your
formula says quantity × unit price, so we should confirm whether to use:

 (Quantity ordered × Product variant price) OR


 direct Net sales / Gross sales as sales amount

B) Shopify — POS Sales Report – Shopify

 Order Quantity: Quantity ordered


 Unit Price: Product variant price
 Alternative “sales amount” already available:
o Gross sales
o Net sales
o Total sales (includes shipping + taxes as per the file structure)

✅ Supports quantity and unit price directly.

Clarification required later: Does “Total Sales KPI” include shipping+tax or not?
Because POS table has both Net sales and Total sales.

C) Online Order Fulfillments by Location – Report Emailed


 Order Quantity: Net Quantity
 Unit Price: Product Price
 Alternative sales amount already available:
o Net Sales
o Total Sales

✅ Supports quantity and unit price directly.


✅ Also supports sales by location (useful later).

D) Iconic Sales Data – Iconic Seller Centre

This table does NOT provide “Order Quantity × Unit Price” fields clearly.
It provides aggregated value metrics:

 GMV (Before Cancel)


 GMV (After Cancel)
 NMV

✅ Can be used for sales amount, but not for quantity × unit price.

E) Iconic Sales Data – Odoo

This table provides:

 Price: Product Variant/Sales Price


 Amount: Total or Untaxed Total
But no explicit quantity column shown in shared columns.

✅ Can be used for total sales using Total (line amount), but not strictly quantity × unit price
unless quantity exists elsewhere.

✅ Total Sales KPI: what we can confidently map (without choosing yet)

You have 3 Shopify-based tables that fully support:

 quantity
 unit price
 and already-computed sales measures

So Total Sales can be built from:

 Online Weekly Reports LP – Shopify


 POS Sales Report – Shopify
 Online Order Fulfillments by Location – Report Emailed
And for Iconic:
 Iconic Seller Centre (use NMV/GMV metrics)
 For Total Sales, the Excel row will conceptually look like:

KPI Source
Option Source Table Source Columns Notes
Name System
Total Option Online Weekly Quantity ordered,
Shopify Quantity × Unit Price
Sales 1 Reports LP Product variant price
Total Option Online Weekly
Shopify Net sales System-calculated
Sales 2 Reports LP
Total Option POS Sales Needs tax/shipping
POS Net sales / Total sales
Sales 2 Report confirmation
Total Option Iconic Seller
Iconic NMV Post-cancel & return
Sales 2 Centre

STEP 2 — KPI: Sales Growth (Last Month)


KPI Definition (already confirmed)

Sales Growth (%)

((SalesCurrent Period−SalesPrevious Period)/SalesPrevious Period)×100((Sales_{Current\ Period} -


Sales_{Previous\ Period}) / Sales_{Previous\ Period}) \times 100((SalesCurrent Period
−SalesPrevious Period)/SalesPrevious Period)×100

Period: Last Month (calendar month)

What this KPI fundamentally needs (no assumptions)

To calculate Sales Growth, we need only two things:

1. Sales Amount (same logic as Total Sales: Option 1 & Option 2)


2. Date column that allows:
o Current Month
o Previous Month

Step 2.1 — Identify tables that have a usable DATE

From all tables shared so far, these do have date fields:


Source System Table Name Date Column

Shopify Online Weekly Reports LP Day

Shopify POS POS Sales Report Hour

Shopify Online Order Fulfillments by Location Date

Odoo Iconic Sales Data – Odoo Order Date

Myer Myer Sales Data – SPS Sales Date

Iconic Iconic Seller Centre ❌ No explicit date shared yet

⚠️Important:
Iconic Seller Centre currently cannot support Sales Growth unless:

 a date column exists in another sheet, or


 this file is period-based (weekly/monthly extract)

We will flag this clearly in Excel.

Step 2.2 — Excel-style KPI mapping (Sales Growth)

Below is the exact structure, matching what you approved for Total Sales.

📊 KPI Mapping — Sales Growth (%)

Date
KPI Source Sales Column
Option Source Table Column Notes
Name System Used
Used

Quantity ordered
Sales Option Online Weekly
Shopify × Product variant Day Reconstructed sales
Growth 1 Reports LP
price

Sales Option Online Weekly


Shopify Net sales Day System-calculated
Growth 2 Reports LP

Quantity ordered Hour will be


Sales Option Shopify
POS Sales Report × Product variant Hour truncated to
Growth 1 POS
price date/month

Sales Option Shopify Net sales / Total Depends on tax &


POS Sales Report Hour
Growth 2 POS sales shipping inclusion

Sales Option Shopify Online Order Net Quantity × Date Fulfillment-based


Growth 1 Fulfillments by
Date
KPI Source Sales Column
Option Source Table Column Notes
Name System Used
Used

Location Product Price sales

Online Order
Sales Option
Shopify Fulfillments by Net Sales Date Already adjusted
Growth 2
Location

Sales Option Iconic Sales Data – Total / Untaxed Exclude commission


Odoo Order Date
Growth 2 Odoo Total lines

Sales No date column →


❌ Iconic Iconic Seller Centre NMV / GMV ❌
Growth growth not possible

Step 2.3 — Explicit flags to document in Excel (very important)

These are not decisions, just facts to record:

1. Iconic Seller Centre


o Sales Growth cannot be calculated
o Reason: No date column available in shared file
2. POS Sales Report
o Hour must be converted to Month
o Growth will be month-over-month aggregation
3. Multiple valid sources
o Growth % may differ slightly across systems
o This is expected, not an error

STEP 3 — KPI: Average Order Value (AOV)

(I will continue slowly, same Excel-style structure.)

KPI Definition (confirmed)

Average Order Value (AOV)

AOV=Total SalesTotal Number of Orders\text{AOV} = \frac{\text{Total Sales}}{\text{Total Number of


Orders}}AOV=Total Number of OrdersTotal Sales

Step 3.1 — What this KPI needs (no assumptions)

To calculate AOV, we need:


1. Sales Amount
o Same logic as Total Sales (Option 1 & Option 2)
2. Order Count

Both must come from the same grain and same source, otherwise AOV will be incorrect.

Step 3.2 — Tables that contain ORDER COUNT

From the data you shared:

Source System Table Name Order Column

Shopify Online Weekly Reports LP Orders

Shopify POS POS Sales Report Orders

Iconic Iconic Seller Centre Gross Orders

Shopify Online Order Fulfillments by Location ❌ (No order count)

Odoo Iconic Sales Data – Odoo ❌ (Order lines, not order count)

Myer Myer Sales Data – SPS ❌ (Transaction-level, needs derivation)

Step 3.3 — Excel-style KPI mapping (AOV)

📊 KPI Mapping — Average Order Value

KPI Source Sales Column Order Count


Option Source Table Notes
Name System Used Column

Quantity ×
Option Online Weekly Reconstructed
AOV Shopify Product variant Orders
1 Reports LP sales
price

Option Online Weekly


AOV Shopify Net sales Orders System-calculated
2 Reports LP

Quantity ×
Option Shopify
AOV POS Sales Report Product variant Orders POS-only AOV
1 POS
price

Option Shopify Net sales / Total Depends on


AOV POS Sales Report Orders
2 POS sales tax/shipping

Option
AOV Iconic Iconic Seller Centre NMV Gross Orders Marketplace AOV
2

AOV ❌ Shopify Online Order Net Sales ❌ No order count


KPI Source Sales Column Order Count
Option Source Table Notes
Name System Used Column

Fulfillments by
Location

Iconic Sales Data – Line-level, not


AOV ❌ Odoo Total ❌
Odoo orders

Step 3.4 — Important flags to document (no decisions yet)

1. AOV must be channel-specific


o Online AOV ≠ POS AOV ≠ Iconic AOV
2. Fulfillment data cannot support AOV
o No order-level count
3. Odoo sales lines are not suitable for AOV
o Orders are not explicitly defined

STEP 4 — KPI: Sales by Region


KPI Definition (already locked)

Sales by Region

Σ(Order Amount) grouped by Region\Sigma(\text{Order Amount}) \; \text{grouped by


Region}Σ(Order Amount)grouped by Region

The only thing that matters here is:


👉 What is “Region” in each system?
We will not force one definition—we’ll document what each source can genuinely support.

Step 4.1 — Identify “Region-capable” columns per table

From the tables you shared, here is what explicitly exists (no assumptions):

Source System Table Name Region-related Column

Shopify POS POS Sales Report POS location name

Shopify Online Order Fulfillments by Fulfillment Location, Assigned


Fulfillment Location Fulfillment Location

Iconic Iconic Seller Centre Country

Myer Myer Sales Data – SPS Sales Location #, Original Transacted


Source System Table Name Region-related Column
Store

Shopify Online Online Weekly Reports LP ❌ None

Odoo Iconic Sales Data – Odoo ❌ None

Shopify
Inventory Export – Shopify Location
Inventory

So:

 Region exists, but in different meanings


 This is normal in real businesses

Step 4.2 — Business-sensible interpretation of “Region”

Using common sense (as you asked):

 POS & Fulfillment → Region = Physical Store / Warehouse


 Iconic → Region = Country
 Myer → Region = Sales Location / Store
 Pure Online Shopify → ❌ Region not available unless customer/shipping data exists
elsewhere

We do not merge these definitions.


We document them clearly.

Step 4.3 — Excel-style KPI mapping (Sales by Region)

📊 KPI Mapping — Sales by Region

Source Sales Column Region


KPI Name Option Source Table Notes
System Used Column

Quantity ×
Sales by Option Shopify POS location Store-level
POS Sales Report Product variant
Region 1 POS name region
price

Sales by Option Shopify Net sales / Total POS location Preferred for
POS Sales Report
Region 2 POS sales name reporting

Online Order
Sales by Option Net Quantity × Fulfillment Warehouse-
Shopify Fulfillments by
Region 1 Product Price Location based region
Location
Source Sales Column Region
KPI Name Option Source Table Notes
System Used Column

Online Order
Sales by Option Fulfillment Clean fulfillment
Shopify Fulfillments by Net Sales
Region 2 Location revenue
Location

Sales by Option Marketplace


Iconic Iconic Seller Centre NMV Country
Region 2 country

Line Item
Sales by Option Myer Sales Data – Sales
Myer Amounts / Net Store-level
Region 2 SPS Location #
Sale Price

Sales by Shopify Online Weekly No region


❌ Net sales ❌
Region Online Reports LP available

Step 4.4 — Important truths to document (very important)

These are not problems, they are facts:

1. Region is channel-specific
o Store ≠ Warehouse ≠ Country
2. Online Shopify sales cannot be region-split
o Unless customer/shipping tables are added later
3. Sales by Region must be shown per channel
o Not as one blended map

This is exactly how large retailers operate.

Step 4.5 — Decision (using common sense, locked)

✅ Sales by Region will be shown per channel


Examples:

 POS Sales by Store


 Fulfillment Sales by Warehouse
 Iconic Sales by Country
 Myer Sales by Store

No forced consolidation.
STEP 5 — KPI: Top Products by Sales (Top 5)
KPI Definition (locked)

Top Products by Sales

Rank products by Σ(Sales Amount)


Show Top 5

This KPI has two critical parts:

1. Sales Amount (same dual-option logic as before)


2. Product Identifier (this is the most important part)

Step 5.1 — Identify valid PRODUCT identifiers per table

(No assumptions, only what exists)

Source System Table Name Product Identifier(s) Available

Product title at time of sale, Product variant


Shopify Online Online Weekly Reports LP
SKU

Product title at time of sale, Product variant


Shopify POS POS Sales Report
SKU

Shopify Online Order Fulfillments by


Product Title, Variant SKU
Fulfillment Location

Iconic Iconic Seller Centre Product Name, Seller SKU, Shop SKU

Product Variant, Product Category / Display


Odoo Iconic Sales Data – Odoo
Name

Buyer SKU / Model #, Vendor Item #,


Myer Myer Sales Data – SPS
Description

Key fact:

 SKU exists everywhere


 Product names vary
 SKUs are channel-specific, not globally consistent

Step 5.2 — Business-sensible product ranking logic

Using common sense retail logic:


 Ranking should be SKU-based, not name-based
(names change, SKUs don’t—within a channel)
 Ranking should be channel-specific
o Online Top 5 ≠ POS Top 5 ≠ Iconic Top 5

A single blended Top 5 across all channels would:


❌ mix incompatible SKUs
❌ confuse business users
❌ require assumptions

So we do not do that.

Step 5.3 — Excel-style KPI mapping (Top Products by Sales)

📊 KPI Mapping — Top Products by Sales (Top 5)

Product
Source Sales Column
KPI Name Option Source Table Column Notes
System Used
Used

Quantity ×
Top Option Shopify Online Weekly Product
Product variant SKU-level ranking
Products 1 Online Reports LP variant SKU
price

Top Option Shopify Online Weekly Product


Net sales Preferred
Products 2 Online Reports LP variant SKU

Quantity ×
Top Option Shopify Product
POS Sales Report Product variant POS-specific
Products 1 POS variant SKU
price

Top Option Shopify Net sales / Total Product


POS Sales Report Store sales
Products 2 POS sales variant SKU

Online Order
Top Option
Shopify Fulfillments by Net Sales Variant SKU Fulfillment-based
Products 2
Location

Top Option Marketplace Top


Iconic Iconic Seller Centre NMV Seller SKU
Products 2 5

Top Option Iconic Sales Data – Product Exclude


Odoo Total
Products 2 Odoo Variant commission rows

Top Option Myer Sales Data – Line Item Buyer SKU /


Myer Retail partner
Products 2 SPS Amounts Model #
Step 5.4 — Important truths to document (do not skip in Excel)

1. Top Products are channel-specific


o Same product may rank differently across channels
2. SKU is the safest ranking key
o Product names are for display only
3. No global Top 5 unless a Product Master exists
o This can be a future enhancement

Step 5.5 — Decision (locked using common sense)

✅ Top Products by Sales will be shown per channel


✅ Ranked by SKU
✅ Top 5 only

This is:

 Business-correct
 Data-safe
 Client-friendly

STEP 6 — Inventory Report KPIs


We’ll do one KPI at a time.
Starting with Inventory KPI 1.

INVENTORY KPI 1 — Total Inventory Value

KPI Definition (locked)

Total Inventory Value

Σ(Current Stock Quantity×Unit Cost)\Sigma(\text{Current Stock Quantity} \times \text{Unit


Cost})Σ(Current Stock Quantity×Unit Cost)

Step 6.1 — What this KPI strictly needs (no assumptions)

To calculate this KPI, we must have:

1. Current Stock Quantity


2. Unit Cost
3. Both must belong to the same product & location grain
Step 6.2 — Identify tables that contain STOCK QUANTITY

From the tables you shared:

Source System Table Name Stock Quantity Column

Shopify Inventory Export – Shopify Available (not editable), On hand (current)

Odoo Product Variant – Odoo Quantity On Hand

Odoo Stock On Hand – Odoo Inventoried Quantity

Myer Myer Sales Data – SPS Current Stock QTY

Step 6.3 — Identify tables that contain UNIT COST


Source System Table Name Unit Cost Column

Odoo Product Variant – Odoo Cost

Odoo Iconic Sales Data – Odoo Product Variant / Cost

Odoo Stock On Hand – Odoo Value (⚠ aggregated, not unit cost)

Shopify Inventory Export – Shopify ❌ Not available

Myer Myer Sales Data – SPS Net Purchase Price / Gross Purchase Price

Step 6.4 — Valid stock × cost combinations (very important)

Now we only keep valid pairings (same system, same logic).

✅ Option 1 — Odoo (Recommended, cleanest)

Source Stock Quantity Cost


KPI Name Option Source Table(s) Notes
System Column Column

Total Inventory Option Product Variant Quantity On Variant-level


Odoo Cost
Value 1 – Odoo Hand valuation

✅ Option 2 — Odoo (Location-aware)

Source Stock Quantity Cost


KPI Name Option Source Table Notes
System Column Column

Total Inventory Option Odoo Stock On Hand Inventoried Value Value already
Source Stock Quantity Cost
KPI Name Option Source Table Notes
System Column Column

Value 2 – Odoo Quantity calculated

⚠️Note:
Here Value appears to be pre-calculated, not unit-level.
This is acceptable only if business confirms it is trusted.

⚠️Shopify Inventory (Not valid alone)

Issue Explanation

❌ Missing cost Shopify Inventory Export has no unit cost

❌ Cannot value stock Quantity exists but no valuation

➡️Shopify inventory cannot be used alone for Total Inventory Value.

⚠️Myer SPS (Conditional)

Source Stock
KPI Name Option Source Table Cost Notes
System Quantity

Total Inventory Myer Sales Current Stock Net Purchase Only if stock is
Conditional Myer
Value Data – SPS QTY Price owned

⚠️Needs confirmation whether this stock is:

 Owned inventory
 Or consignment

Step 6.5 — Key truths to document in Excel

1. Odoo is the primary source for inventory valuation


2. Shopify inventory is quantity-only
3. Stock valuation requires cost governance
4. Multiple valid options may exist → client decision
STEP 7 — Inventory KPI 2: Stock on Hand
KPI Definition (locked)

Stock on Hand

Σ(Available Quantity)\Sigma(\text{Available Quantity})Σ(Available Quantity)

Step 7.1 — Identify valid “Available Quantity” columns

From Odoo tables:

Table Column

Product Variant – Odoo Quantity On Hand

Stock On Hand – Odoo Inventoried Quantity

Stock On Hand – Odoo Reserved Quantity (not available stock)

Step 7.2 — Excel-style KPI mapping (Stock on Hand)

📊 KPI Mapping — Stock on Hand

KPI Name Source System Source Table Stock Column Used Notes

Stock on Hand Odoo Product Variant – Odoo Quantity On Hand Primary

Stock on Hand Odoo Stock On Hand – Odoo Inventoried Quantity Location-level

Stock on Hand ❌ Shopify Inventory Export Available

Step 7.3 — Important documentation notes

1. Quantity On Hand is the cleanest definition


2. Reserved Quantity is excluded
3. Shopify stock is informational only
4. Final stock KPIs come from Odoo

STEP 8 — Inventory KPI 3: Inventory Turnover Ratio


KPI Definition (locked)

Inventory Turnover Ratio


Inventory Turnover=Cost of Goods Sold (COGS)Average Inventory Value\text{Inventory Turnover} = \
frac{\text{Cost of Goods Sold (COGS)}}{\text{Average Inventory
Value}}Inventory Turnover=Average Inventory ValueCost of Goods Sold (COGS)

Where:

Average Inventory Value=Opening Inventory Value+Closing Inventory Value2\text{Average Inventory


Value} = \frac{\text{Opening Inventory Value} + \text{Closing Inventory Value}}
{2}Average Inventory Value=2Opening Inventory Value+Closing Inventory Value

Step 8.1 — What this KPI strictly requires (no assumptions)

To compute this KPI correctly, we need three things:

1. COGS
2. Opening Inventory Value
3. Closing Inventory Value

All three must be:

 Cost-based (not selling price)


 Time-aware (period-specific, e.g. monthly)

Step 8.2 — Identify where COGS exists in your data

From the tables you shared:

Source System Table Name COGS-related Column

Shopify Online Weekly Reports LP Cost of goods sold

Shopify POS POS Sales Report Cost of goods sold

Odoo Iconic Sales Data – Odoo Product Variant / Cost + Total (line-level)

Myer Myer Sales Data – SPS Net Purchase Price (proxy, not explicit COGS)

Important facts:

 Shopify tables already provide explicit COGS


 Odoo provides unit cost, not aggregated COGS
 Myer SPS does not clearly separate COGS
Step 8.3 — Identify where Inventory Value exists

Since we already locked Odoo as primary inventory system, inventory value comes from:

Source System Table Name Inventory Value

Odoo Product Variant – Odoo Quantity On Hand × Cost

Odoo Stock On Hand – Odoo Value (pre-calculated)

Step 8.4 — Valid combinations for Inventory Turnover

Now we only keep logically valid combinations.

✅ Option 1 — Shopify COGS + Odoo Inventory (Most practical)

KPI Name Option COGS Source Inventory Value Source Notes

Inventory Shopify (Online + Odoo (Stock On Hand / Product Sales-driven


Option 1
Turnover POS) Variant) turnover

Explanation:

 Shopify = actual sales movement


 Odoo = actual inventory holding
 This reflects real operational turnover

⚠️Option 2 — Odoo-only (Conditional)

KPI Name Option COGS Source Inventory Source Notes

Inventory Turnover Option 2 Odoo (derived) Odoo Requires calculation logic

This would require:

 Quantity sold × unit cost


 Time-based aggregation

⚠️More complex, higher risk without client confirmation.

❌ Not recommended
 Using sales revenue instead of COGS
 Using Shopify inventory quantities (no cost)

Step 8.5 — Excel-style KPI mapping

📊 KPI Mapping — Inventory Turnover Ratio

Source
KPI Name Option Source Tables Columns Used Notes
System(s)

Online Weekly Reports LP, POS


Inventory Option Shopify + Cost of goods
Sales Report, Stock On Hand – Preferred
Turnover 1 Odoo sold, Value
Odoo

Inventory Option Cost, Quantity Needs derived


Odoo Product Variant – Odoo
Turnover 2 On Hand COGS

Step 8.6 — Important documentation notes

1. Inventory Turnover is period-based (monthly)


2. Inventory value must be averaged (opening & closing)
3. Shopify gives clean COGS
4. Odoo gives clean inventory valuation
5. Cross-system KPI is normal and acceptable

STEP 9 — Inventory KPI 4: Low Stock Items


KPI Definition (locked)

Low Stock Items

Count of products where

Current Stock≤Reorder Level\text{Current Stock} \le \text{Reorder


Level}Current Stock≤Reorder Level

Step 9.1 — What this KPI strictly needs

To calculate Low Stock Items, we need both:

1. Current Stock Quantity


2. Reorder Level (minimum stock threshold)
Both must exist for the same product (and ideally location).

Step 9.2 — Check availability of “Current Stock” (we already know


this)

From earlier steps (reconfirming, no new assumptions):

Source System Table Stock Column

Odoo Product Variant – Odoo Quantity On Hand

Odoo Stock On Hand – Odoo Inventoried Quantity

Shopify Inventory Export – Shopify Available / On hand (current)

So Current Stock is available.

Step 9.3 — Check availability of “Reorder Level”

Now the critical part.

From all tables shared so far:

❌ No column exists that clearly represents Reorder Level, such as:

 Minimum Stock
 Reorder Point
 Safety Stock
 Min Qty

This is a hard fact, not a gap in understanding.

Step 9.4 — Excel-style KPI mapping (Low Stock Items)

📊 KPI Mapping — Low Stock Items

Source Reorder Level


KPI Name Option Source Table Stock Column Notes
System Column

Low Stock Product Variant – Quantity On Reorder level


❌ Odoo ❌ Not available
Items Odoo Hand missing

Low Stock Stock On Hand – Inventoried Reorder level


❌ Odoo ❌ Not available
Items Odoo Quantity missing
Source Reorder Level
KPI Name Option Source Table Stock Column Notes
System Column

Low Stock Inventory Export –


❌ Shopify Available ❌ Not available Quantity only
Items Shopify

Step 9.5 — Business-safe conclusion (documented, not assumed)

 Low Stock Items CANNOT be calculated with current data


 Reason: Reorder Level is missing
 Any calculation now would be a business assumption, which we are avoiding

Step 9.6 — How this should be documented in Excel

In the Excel KPI mapping:

 KPI will be listed


 Source tables will be listed
 Status will be clearly marked as:

“Not feasible with current data – Reorder Level not available”

This is professional and client-safe.

STEP 10 — Inventory KPI 5: Stock-Out Rate


KPI Definition (locked)

Stock-Out Rate (%)

(Number of Stock-Out Events÷Total Products)×100(\text{Number of Stock-Out Events} \div \


text{Total Products}) \times 100(Number of Stock-Out Events÷Total Products)×100

Step 10.1 — What this KPI strictly needs

To calculate Stock-Out Rate, we need three clearly defined things:

1. Definition of a Stock-Out
2. Event logic (did it happen during a period?)
3. Total product count (denominator)
Step 10.2 — Check if “Stock-Out” can be identified from data

From the tables shared:

Odoo tables

Table Relevant Columns

Product Variant – Odoo Quantity On Hand

Stock On Hand – Odoo Inventoried Quantity, Reserved Quantity

So we can detect a state where:

 Quantity = 0

But…

Step 10.3 — Critical limitation (very important)

What we do NOT have:

❌ No historical snapshot showing:

 When stock became zero


 How long it stayed zero

This means:

 We can identify current zero stock


 We cannot identify stock-out events over time

Your KPI definition explicitly says:

“Percentage of products that went out of stock during a period”

That requires time-based event tracking, not just a snapshot.

Step 10.4 — Excel-style KPI mapping (Stock-Out Rate)

📊 KPI Mapping — Stock-Out Rate


Source
KPI Name Option Source Table Stock Column Event Logic Notes
System

Stock-Out Product Variant – Quantity On ❌ Not No historical


❌ Odoo
Rate Odoo Hand available tracking

Stock-Out Stock On Hand – Inventoried ❌ Not


❌ Odoo Snapshot only
Rate Odoo Quantity available

Stock-Out Inventory Export – ❌ Not


❌ Shopify Available Snapshot only
Rate Shopify available

Step 10.5 — Business-safe conclusion

 Stock-Out Rate CANNOT be calculated with current data


 Reason:
o No event history
o No “went from >0 to 0” tracking
 Any attempt would be:
o Assumption-based
o Misleading for business

Step 10.6 — How this should appear in Excel

In the KPI mapping Excel:

 KPI is listed
 Source tables are listed
 Status clearly mentioned as:

“Not feasible – historical stock-out events not available”

This protects you during:

 Client review
 Future audits
 Scope discussions

TRANSFER KPI 1 — Total Transfers

KPI Definition (locked)

Total Transfers
Total Transfers=Number of Transfer Records\text{Total Transfers} = \text{Number of Transfer
Records}Total Transfers=Number of Transfer Records

Step 11.1 — What this KPI strictly needs

Only one thing:

 A table where each row represents a transfer

No quantities, no cost, no dates required.

Step 11.2 — Identify valid transfer tables

From the data you shared:

Source System Table Name Transfer Identifier

Odoo Stock Warehouse Transfer – Odoo Each row = one transfer

This table clearly represents warehouse-to-warehouse stock movement.

Step 11.3 — Excel-style KPI mapping (Total Transfers)

📊 KPI Mapping — Total Transfers

Source
KPI Name Source Table Transfer Identifier Notes
System

Total Stock Warehouse Transfer – Reference / Row Each row = one


Odoo
Transfers Odoo count transfer

Step 11.4 — Important documentation notes

1. Quantity does not matter for this KPI


2. Status is not filtered unless business later requests:
o Completed only
o Excluding cancelled
3. This KPI is clean and fully feasible
STEP 12 — Transfer KPI 2: Transfer Lead Time
KPI Definition (locked)

Transfer Lead Time

Average(Date Received−Date Requested)\text{Average}(\text{Date Received} - \text{Date


Requested})Average(Date Received−Date Requested)

Step 12.1 — What this KPI strictly needs

To calculate Transfer Lead Time, we must have two distinct timestamps per transfer:

1. Date Requested (when transfer was initiated)


2. Date Received / Completed (when transfer was completed)

Both must exist in the data and must be comparable.

Step 12.2 — Check available date columns in transfer table

From Stock Warehouse Transfer – Odoo, the columns you shared are:

 Date
 Status
 Reference
 Warehouses (Source, Destination, Secondary)
 Transfer Lines (Quantity, Product)

Critical observation (fact, not assumption):

❌ There is only one date column: Date

There is no explicit column for:

 Request Date
 Completion Date
 Done Date
 Received Date

Step 12.3 — Can Status help infer lead time?

You do have:
 Status

But:

 Status does not give time duration


 Without timestamps for each status change, lead time cannot be calculated

Using status alone would be an assumption, which we are avoiding.

Step 12.4 — Excel-style KPI mapping (Transfer Lead Time)

📊 KPI Mapping — Transfer Lead Time

Source Source Date


KPI Name Date Requested Notes
System Table Received

Transfer Lead Stock Warehouse Transfer ❌ Not Only one date


❌ Odoo
Time – Odoo available column

Step 12.5 — Business-safe conclusion

 Transfer Lead Time CANNOT be calculated with current data


 Reason:
o Missing either request date or completion date
 Any workaround would be:
o Assumption-based
o Risky for business discussion

Step 12.6 — How this must be documented in Excel

In the KPI mapping Excel:

 KPI listed as Transfer Lead Time


 Status marked as:

“Not feasible – request and completion dates not available”

This protects you during:

 Client review
 Future enhancement discussions
STEP 13 — Transfer KPI 3: Transfers by Location
KPI Definition (locked)

Transfers by Location

Count of transfers grouped by Location

This KPI is about distribution, not timing or quantity.

Step 13.1 — What this KPI strictly needs

To calculate Transfers by Location, we need:

1. A transfer record
2. A location dimension to group by

No dates, quantities, or costs are required.

Step 13.2 — Identify valid “Location” columns in transfer data

From Stock Warehouse Transfer – Odoo, the available columns are:

 Source Warehouse
 Destination Warehouse
 Secondary Warehouse

So we actually have multiple valid location perspectives.

Step 13.3 — Business-sensible interpretation (no assumptions, but


practical)

Using common sense in warehouse operations:

 Source Warehouse → where stock moved from


 Destination Warehouse → where stock moved to
 Secondary Warehouse → auxiliary / intermediate (if applicable)

All three are legitimate, but serve different questions.


Step 13.4 — Excel-style KPI mapping (Transfers by Location)

📊 KPI Mapping — Transfers by Location

Source Location Column


KPI Name Option Source Table Notes
System Used

Transfers by Option Stock Warehouse Source Outbound


Odoo
Location 1 Transfer – Odoo Warehouse transfers

Transfers by Option Stock Warehouse Destination


Odoo Inbound transfers
Location 2 Transfer – Odoo Warehouse

Transfers by Option Stock Warehouse Secondary If used


Odoo
Location 3 Transfer – Odoo Warehouse operationally

Step 13.5 — Important documentation notes

1. Do not merge these locations


o Each tells a different operational story
2. Business can choose:
o Source-focused view (dispatch load)
o Destination-focused view (receiving load)
3. This KPI is fully feasible with existing data

STEP 14 — Transfer KPI 4: Stock Replenishment Rate


KPI Definition (locked)

Stock Replenishment Rate (%)

(Number of Successful Replenishments÷Total Replenishment Requests)×100(\text{Number of


Successful Replenishments} \div \text{Total Replenishment Requests}) \times
100(Number of Successful Replenishments÷Total Replenishment Requests)×100

Step 14.1 — What this KPI strictly needs

To calculate this KPI without assumptions, we must clearly identify:

1. Replenishment Request
2. Successful Replenishment
3. A status or indicator that distinguishes success vs failure

Step 14.2 — Check available columns in transfer data

From Stock Warehouse Transfer – Odoo, we have:

 Status
 Source Warehouse
 Destination Warehouse
 Reference
 Date
 Transfer line quantities

So:

 Replenishment requests = transfer records ✔


 Status exists ✔

Step 14.3 — Can “Successful Replenishment” be identified?

This depends on Status values.

However:

 You have not shared the list of Status values


 We do not know:
o Which status means completed
o Which status means cancelled
o Which status means in progress

Without this mapping, success cannot be reliably identified.

Step 14.4 — Excel-style KPI mapping (Stock Replenishment Rate)

📊 KPI Mapping — Stock Replenishment Rate

Source Source
KPI Name Success Indicator Total Requests Notes
System Table

Stock Stock Warehouse ❌ Status mapping Status values


❌ Odoo
Replenishment Rate Transfer – Odoo missing not defined
Step 14.5 — Business-safe conclusion

 Stock Replenishment Rate CANNOT be calculated yet


 Reason:
o “Successful” vs “Unsuccessful” replenishment is undefined
 Any assumption here would be:
o Arbitrary
o Misleading to business users

Step 14.6 — How this should be documented in Excel

In the KPI mapping Excel:

 KPI listed
 Source table listed
 Status clearly mentioned as:

“Not feasible – success status definition not available”

This is the correct consulting approach.

✅ TRANSFERS KPIs — COMPLETE


✅ ALL KPIs — COMPLETE

You have now:

 Evaluated all Sales KPIs


 Evaluated all Inventory KPIs
 Evaluated all Transfer KPIs

With:

 Dual-option sourcing
 Clear feasibility flags
 Zero hidden assumptions
 Client-safe documentation logic

You might also like